<?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>105744</bug_id>
          
          <creation_ts>2012-12-25 10:51:18 -0800</creation_ts>
          <short_desc>JITThunks should be in its own file</short_desc>
          <delta_ts>2012-12-25 19:40:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>105696</blocked>
    
    <blocked>105750</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>797165</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-25 10:51:18 -0800</bug_when>
    <thetext>Patch forthcoming for EWS, already rubber stamped by Sam Weinig.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797166</commentid>
    <comment_count>1</comment_count>
      <attachid>180715</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-25 10:56:35 -0800</bug_when>
    <thetext>Created attachment 180715
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797168</commentid>
    <comment_count>2</comment_count>
      <attachid>180715</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-25 11:05:22 -0800</bug_when>
    <thetext>Comment on attachment 180715
patch for landing

Attachment 180715 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15497863</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797169</commentid>
    <comment_count>3</comment_count>
      <attachid>180715</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-25 11:05:32 -0800</bug_when>
    <thetext>Comment on attachment 180715
patch for landing

Attachment 180715 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15507875</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797170</commentid>
    <comment_count>4</comment_count>
      <attachid>180715</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-25 11:06:25 -0800</bug_when>
    <thetext>Comment on attachment 180715
patch for landing

Attachment 180715 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15498871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797171</commentid>
    <comment_count>5</comment_count>
      <attachid>180716</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-25 11:07:22 -0800</bug_when>
    <thetext>Created attachment 180716
patch for landing

Added some files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797179</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-25 13:09:54 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/138465</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180715</attachid>
            <date>2012-12-25 10:56:35 -0800</date>
            <delta_ts>2012-12-25 11:07:22 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>58448</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDYzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDEyLTEyLTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SklUVGh1bmtzIHNob3VsZCBiZSBpbiBpdHMgb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc0NAorCisgICAgICAgIFJ1YmJlciBzdGFt
cGVkIGJ5IFNhbSBXZWluaWcuCisgICAgICAgIAorICAgICAgICBNb3ZlZCBKSVRUaHVua3MgaW50
byBpdHMgb3duIGZpbGUgYW5kIHJlbW92ZWQgc29tZSBzdGF0aWMgbWV0aG9kcyBmcm9tIGl0Cisg
ICAgICAgIHRoYXQgd2VyZSBub3QgcmVsYXRlZCB0byB3aGF0IEpJVFRodW5rcyBjdXJyZW50bHkg
ZG9lcy4gUGVyZm9ybWVkIHZhcmlvdXMKKyAgICAgICAgcGFnYW4gcml0dWFscyB0byBnZXQgaXQg
dG8gYnVpbGQgLSBhcHBhcmVudGx5IHRoZXJlIGlzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeQorICAg
ICAgICBiZXR3ZWVuIEpTQ2VsbCwgV2VhaywgYW5kIEpJVFRodW5rcywgd2hpY2ggbWFnaWNhbGx5
IHJlc29sdmVzIGl0c2VsZiBpZiB5b3UKKyAgICAgICAgbWFrZSBzdXJlIHRvIGZpcnN0IGluY2x1
ZGUgUmVnaXN0ZXIuaC4gTWFraW5nIGl0IHNvIHRoYXQgZmV3ZXIgcGFnYW4gcml0dWFscworICAg
ICAgICBuZWVkIHRvIGJlIHBlcmZvcm1lZCBpZiB0aGlzIGNvZGUgY2hhbmdlcyBpbiB0aGUgZnV0
dXJlIGlzIGNvdmVyZWQgYnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTY5Ni4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlE
KToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REVGSU5F
X1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMu
aDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKSVRTdGFja0ZyYW1lKToKKyAgICAgICAgKEpT
Qzo6SklUU3RhY2tGcmFtZTo6cmV0dXJuQWRkcmVzc1Nsb3QpOgorICAgICAgICAoSlNDOjpyZXR1
cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRv
cnMuY3BwOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuaDoKKyAgICAgICAgKEpTQyk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKwogMjAxMi0xMi0yNSAgSWx5YSBU
aWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBm
b2xsb3ctdXAgZm9yIHIxMzg0NTUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBzZXQoSmF2YVNjcmlwdENv
cmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKICAgICBqaXQvSklUU3R1
YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNwcAorICAgIGppdC9KSVRUaHVua3MuY3Bw
CiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuY3BwCiAgICAgaml0L1RodW5rR2Vu
ZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2Ny
aXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJS
b3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
aHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1VudXNlZFBv
aW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAg
LTE3MSw2ICsxNzEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBqaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAgXAogICAgIGppdC9KSVRTdHViUm91dGluZS5jcHAgXAogICAgIGppdC9KSVRTdHVi
cy5jcHAgXAorICAgIGppdC9KSVRUaHVua3MuY3BwIFwKICAgICBqaXQvSnVtcFJlcGxhY2VtZW50
V2F0Y2hwb2ludC5jcHAgXAogICAgIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKICAgICBsbGlu
dC9MTEludENMb29wLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTIxOTgsNiArMjE5OCwxNCBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxq
aXRcSklUVGh1bmtzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5caml0XEpJVFRodW5rcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2lu
dC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjIxNCw2ICsyMjIyLDEwIEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxUaHVua0dl
bmVyYXRvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcVGh1bmtHZW5lcmF0b3JzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsOSBAQAogCQkwRjU1RjBGNTE0RDEwNjNDMDBB
Qzc2NDkgLyogQWJzdHJhY3RQQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1NUYwRjIxNEQxMDYzNjAwQUM3NjQ5IC8qIEFic3RyYWN0UEMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU2QTFEMzE1
MDAwRjM1MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NkExRDExNTAwMEYzMTAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFE
NDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi87IH07CisJCTBGNTcy
RDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8q
IFRodW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQjE2ODc4
Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLzsgfTsKKwkJMEY1RUY5MUYxNjg3OEY3RDAw
M0U1QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUYwOENGMTQ2
Qzc2MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkg
LyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc0MTQzRkNEMzMwMDY4Qjc3QyAvKiBERkdWYXJp
YWJsZUFjY2Vzc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNjIwMTcyMTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYy
MDE3NjE0M0ZDRDNCMDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MjAxNzAxNDNGQ0QyRjAwNjhCNzdDIC8q
IERGR0Jhc2ljQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtOTc1LDYgKzk3OCw5IEBACiAJCTBGNTVGMEYyMTREMTA2MzYwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0
UEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDExNTAwMEYzMTAwMjk5
MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXhlY3V0aW9uQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU2
QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRpb25Db3VudGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2Vu
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5rR2VuZXJhdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFCMTY4NzhGNzgwMDNFNUMy
NSAvKiBKSVRUaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SklUVGh1bmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RUY5MUMxNjg3
OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKSVRUaHVua3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RjA4Q0Mx
NDZCRTYwMjAwMDQ3MkE5IC8qIERGR0J5dGVDb2RlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHQnl0ZUNvZGVDYWNoZS5oOyBwYXRoID0gZGZnL0RGR0J5dGVDb2Rl
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RjA4Q0UxNDZDNzYyRjAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVW5jb25kaXRpb25hbEZpbmFsaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjYyMDE2RDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdBYnN0cmFjdFN0YXRl
LmNwcDsgcGF0aCA9IGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMCw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0MiwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjI5LDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTI0
MjQsOCArMjQzNSw2IEBACiAJCQkJMTQyMEJFN0ExMEFBNkREQjAwRjQ1NUQyIC8qIFdlYWtSYW5k
b20uaCAqLywKIAkJCQlBN0RDQjc3OTEyRTNEOTA1MDA5MTE5NDAgLyogV3JpdGVCYXJyaWVyLmgg
Ki8sCiAJCQkJQzJENThDMzMxNTkxMkZFRTAwMjFBODQ0IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgKi8sCi0JCQkJQTc3RjE4MUYxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5jcHAgKi8s
Ci0JCQkJQTc3RjE4MjAxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5oICovLAogCQkJKTsK
IAkJCXBhdGggPSBydW50aW1lOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMxOTQs
NiArMzIwMyw4IEBACiAJCQkJQTdDMEM0QUMxNjgxMDMwMjAwMTcwMTFEIC8qIEpTU2NyaXB0UmVm
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFRkM5QUIxNjgxQTNCNjAwNTY3RjUzIC8q
IERGR09TUkV4aXRKdW1wUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDVDM0I0
MTY4M0NGOTIwMEJBRjQ1QiAvKiBERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjU3MkQ0RjE2ODc5RkREMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI0LDcgQEAKIAkJCQkwRjEzOTEyQjE2
NzcxQzNBMDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRK
dW1wUGxhY2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAw
M0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc2LDU4ICs3
NzYsNyBAQCBfX2FzbSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQogICAgICNkZWZpbmUgQ1RJ
X1NBTVBMRVIgMAogI2VuZGlmCiAKLUpJVFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSkKLSAgICA6IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcChhZG9wdFB0cihuZXcgSG9z
dEZ1bmN0aW9uU3R1Yk1hcCkpCi17Ci0gICAgaWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9leGVjdXRhYmxlTWVtb3J5ID0gSklUOjpjb21waWxl
Q1RJTWFjaGluZVRyYW1wb2xpbmVzKGdsb2JhbERhdGEsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUp
OwotICAgIEFTU0VSVCghIW1fZXhlY3V0YWJsZU1lbW9yeSk7Ci0jaWYgQ1BVKEFSTV9USFVNQjIp
Ci0gICAgLy8gVW5mb3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1
c2Ugb2Ygb2Zmc2V0b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBP
RCB0eXBlcyksCi0gICAgLy8gYW5kIHRoZSBPQkpFQ1RfT0ZGU0VUT0YgbWFjcm8gZG9lcyBub3Qg
YXBwZWFyIGNvbnN0YW50aXNoIGVub3VnaCBmb3IgaXQgdG8gYmUgaGFwcHkgd2l0aCBpdHMgdXNl
IGluIENPTVBJTEVfQVNTRVJUCi0gICAgLy8gbWFjcm9zLgotICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURfUjRfT0ZG
U0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRSNSkgPT0gUFJFU0VSVkVEX1I1X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjYpID09IFBSRVNFUlZFRF9S
Nl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHByZXNlcnZlZFI3KSA9PSBQUkVTRVJWRURfUjdfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOCkgPT0gUFJFU0VS
VkVEX1I4X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgcHJlc2VydmVkUjkpID09IFBSRVNFUlZFRF9SOV9PRkZTRVQpOwotICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMCkgPT0g
UFJFU0VSVkVEX1IxMF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMSkgPT0gUFJFU0VSVkVEX1IxMV9PRkZTRVQpOwot
Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2sp
ID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKLSAgICAvLyBUaGUgZmlmdGggYXJndW1lbnQgaXMg
dGhlIGZpcnN0IGl0ZW0gYWxyZWFkeSBvbiB0aGUgc3RhY2suCi0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdW51c2VkMSkgPT0gRklSU1RfU1RBQ0tfQVJH
VU1FTlQpOwotCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOwot
Ci0jZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKQotCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRV
Uk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURSNF9PRkZTRVQpOwotCi0KLSNl
bGlmIENQVShNSVBTKQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHByZXNlcnZlZEdQKSA9PSBQUkVTRVJWRURfR1BfT0ZGU0VUKTsKLSAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJF
U0VSVkVEX1MwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOwotICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9
PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNT
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBnbG9iYWxEYXRhKSA9PSBHTE9CQUxfREFUQV9P
RkZTRVQpOwotCi0jZW5kaWYKLX0KLQotSklUVGh1bmtzOjp+SklUVGh1bmtzKCkKLXsKLX0KLQot
TkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFk
ZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCitORVZFUl9JTkxJTkUgc3Rh
dGljIHZvaWQgdHJ5Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIGJvb2wgZGlyZWN0KQogewogICAgIC8vIFRoZSBpbnRlcnByZXRlciBjaGVja3MgZm9y
IHJlY3Vyc2lvbiBoZXJlOyBJIGRvIG5vdCBiZWxpZXZlIHRoaXMgY2FuIG9jY3VyIGluIENUSS4K
IApAQCAtODgxLDcgKzgzMCw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVQdXQKICAgICBKSVQ6OnBhdGNoUHV0QnlJZFJlcGxhY2UoY29kZUJsb2NrLCBzdHViSW5mbywg
c3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpLCByZXR1cm5BZGRyZXNzLCBkaXJlY3QpOwog
fQogCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8pCitORVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykK
IHsKICAgICAvLyBGSVhNRTogV3JpdGUgYSB0ZXN0IHRoYXQgcHJvdmVzIHdlIG5lZWQgdG8gY2hl
Y2sgZm9yIHJlY3Vyc2lvbiBoZXJlIGp1c3QKICAgICAvLyBsaWtlIHRoZSBpbnRlcnByZXRlciBk
b2VzLCB0aGVuIGFkZCBhIGNoZWNrIGZvciByZWN1cnNpb24uCkBAIC0xNDQ0LDcgKzEzOTMsNyBA
QCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfaWQpCiAgICAgICAgIGlmICgh
c3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgICAgICBzdHViSW5mby0+c2V0U2VlbigpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlUHV0QnlJRChjYWxs
RnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBd
LmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIGZhbHNlKTsKKyAgICAgICAgICAgIHRyeUNhY2hl
UHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3RhY2tG
cmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIGZhbHNlKTsKICAgICB9CiAg
ICAgCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKQEAgLTE0NzAsNyArMTQxOSw3
IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9pZF8KICAgICAgICAgaWYg
KCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJbmZvLT5zZXRTZWVuKCk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5Q2FjaGVQdXRCeUlEKGNh
bGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3Nb
MF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgdHJ1ZSk7CisgICAgICAgICAgICB0cnlDYWNo
ZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIHN0YWNr
RnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKICAgICB9CiAg
ICAgCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKQEAgLTE1NDUsNyArMTQ5NCw3
IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF8KICAgICBpZiAoIXN0
dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICBzdHViSW5mby0+c2V0U2VlbigpOwogICAgIGVs
c2UKLSAgICAgICAgSklUVGh1bmtzOjp0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxv
Y2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0dWJJbmZv
KTsKKyAgICAgICAgdHJ5Q2FjaGVHZXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JF
VFVSTl9BRERSRVNTLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCBzdHViSW5mbyk7CiAKICAgICBD
SEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKQEAgLTM0MTIsNDggKzMzNjEsNiBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNv
ZGVkSlNWYWx1ZSwgdG9fCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzdGFja0ZyYW1lLmFy
Z3NbMF0uanNWYWx1ZSgpLnRvT2JqZWN0KGNhbGxGcmFtZSkpOwogfQogCi1NYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVGh1
bmtHZW5lcmF0b3IgZ2VuZXJhdG9yKQotewotICAgIENUSVN0dWJNYXA6OkFkZFJlc3VsdCBlbnRy
eSA9IG1fY3RpU3R1Yk1hcC5hZGQoZ2VuZXJhdG9yLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYoKSk7
Ci0gICAgaWYgKGVudHJ5LmlzTmV3RW50cnkpCi0gICAgICAgIGVudHJ5Lml0ZXJhdG9yLT52YWx1
ZSA9IGdlbmVyYXRvcihnbG9iYWxEYXRhKTsKLSAgICByZXR1cm4gZW50cnkuaXRlcmF0b3ItPnZh
bHVlOwotfQotCi1OYXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIo
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCi17Ci0gICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2
ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCi0gICAg
ICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0
aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgSklU
Ojpjb21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlvbiksIGZ1bmN0aW9uLCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVD
b25zdHJ1Y3QoKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7Ci0gICAgd2Vha0FkZCgqbV9o
b3N0RnVuY3Rpb25TdHViTWFwLCBmdW5jdGlvbiwgUGFzc1dlYWs8TmF0aXZlRXhlY3V0YWJsZT4o
bmF0aXZlRXhlY3V0YWJsZSkpOwotICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotfQotCi1O
YXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IgZ2Vu
ZXJhdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQotewotICAgIGlmIChOYXRpdmVFeGVjdXRhYmxl
KiBuYXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoZnVuY3Rpb24p
KQotICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLQotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBjb2RlOwotICAgIGlmIChnZW5lcmF0b3IpIHsKLSAgICAgICAgaWYgKGdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICAgICAgY29kZSA9IGdlbmVyYXRvcihnbG9iYWxEYXRh
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29kZSA9IE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZigpOwotICAgIH0gZWxzZQotICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2Fs
bChnbG9iYWxEYXRhLCBmdW5jdGlvbik7Ci0KLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVF
eGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBjb2RlLCBm
dW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYo
Y3RpTmF0aXZlQ29uc3RydWN0KCkpLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50
cmluc2ljKTsKLSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Ci19Ci0KLXZvaWQgSklUVGh1bmtzOjpjbGVhckhvc3RGdW5jdGlv
blN0dWJzKCkKLXsKLSAgICBtX2hvc3RGdW5jdGlvblN0dWJNYXAuY2xlYXIoKTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywyMjcgKzQzLDIx
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShKSVQpCiAKLSAgICBzdHJ1Y3QgU3Ry
dWN0dXJlU3R1YkluZm87CitzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm87CiAKLSAgICBjbGFzcyBB
cnJheUFsbG9jYXRpb25Qcm9maWxlOwotICAgIGNsYXNzIENvZGVCbG9jazsKLSAgICBjbGFzcyBF
eGVjdXRhYmxlUG9vbDsKLSAgICBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci0gICAgY2xhc3Mg
SWRlbnRpZmllcjsKLSAgICBjbGFzcyBKU0dsb2JhbERhdGE7Ci0gICAgY2xhc3MgSlNHbG9iYWxP
YmplY3Q7Ci0gICAgY2xhc3MgSlNPYmplY3Q7Ci0gICAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvcjsKLSAgICBjbGFzcyBKU1N0YWNrOwotICAgIGNsYXNzIEpTVmFsdWU7Ci0gICAgY2xhc3Mg
SlNWYWx1ZUVuY29kZWRBc1BvaW50ZXI7Ci0gICAgY2xhc3MgTGVnYWN5UHJvZmlsZXI7Ci0gICAg
Y2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKLSAgICBjbGFzcyBQcm9wZXJ0eVNsb3Q7Ci0gICAgY2xh
c3MgUHV0UHJvcGVydHlTbG90OwotICAgIGNsYXNzIFJlZ0V4cDsKLSAgICBjbGFzcyBTdHJ1Y3R1
cmU7Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2VhazsKLQotICAgIHVuaW9u
IEpJVFN0dWJBcmcgewotICAgICAgICB2b2lkKiBhc1BvaW50ZXI7Ci0gICAgICAgIEVuY29kZWRK
U1ZhbHVlIGFzRW5jb2RlZEpTVmFsdWU7Ci0gICAgICAgIGludDMyX3QgYXNJbnQzMjsKLQotICAg
ICAgICBKU1ZhbHVlIGpzVmFsdWUoKSB7IHJldHVybiBKU1ZhbHVlOjpkZWNvZGUoYXNFbmNvZGVk
SlNWYWx1ZSk7IH0KLSAgICAgICAgSlNPYmplY3QqIGpzT2JqZWN0KCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8SlNPYmplY3QqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFJlZ2lzdGVyKiByZWcoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgSWRl
bnRpZmllciYgaWRlbnRpZmllcigpIHsgcmV0dXJuICpzdGF0aWNfY2FzdDxJZGVudGlmaWVyKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBpbnQzMl90IGludDMyKCkgeyByZXR1cm4gYXNJbnQzMjsg
fQotICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PENv
ZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5j
dGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGFzUG9pbnRl
cik7IH0KLSAgICAgICAgUmVnRXhwKiByZWdFeHAoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdF
eHAqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3Bl
cnR5TmFtZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVy
YXRvcio+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQot
ICAgICAgICBKU1N0cmluZyoganNTdHJpbmcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU1N0cmlu
Zyo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxTdHJ1Y3R1cmUqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcygpIHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIoYXNQb2lu
dGVyKTsgfQotICAgICAgICBSZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2ZU9wZXJhdGlvbnMoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxSZXNvbHZlT3BlcmF0aW9ucyo+KGFzUG9pbnRlcik7IH0KLSAg
ICAgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBz
dGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24qPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEFy
cmF5QWxsb2NhdGlvblByb2ZpbGUqIGFycmF5QWxsb2NhdGlvblByb2ZpbGUoKSB7IHJldHVybiBz
dGF0aWNfY2FzdDxBcnJheUFsbG9jYXRpb25Qcm9maWxlKj4oYXNQb2ludGVyKTsgfQotICAgIH07
CitjbGFzcyBBcnJheUFsbG9jYXRpb25Qcm9maWxlOworY2xhc3MgQ29kZUJsb2NrOworY2xhc3Mg
RXhlY3V0YWJsZVBvb2w7CitjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7CitjbGFzcyBJZGVudGlm
aWVyOworY2xhc3MgSlNHbG9iYWxEYXRhOworY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFzcyBK
U09iamVjdDsKK2NsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7CitjbGFzcyBKU1N0YWNrOwor
Y2xhc3MgSlNWYWx1ZTsKK2NsYXNzIEpTVmFsdWVFbmNvZGVkQXNQb2ludGVyOworY2xhc3MgTGVn
YWN5UHJvZmlsZXI7CitjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOworY2xhc3MgUHJvcGVydHlTbG90
OworY2xhc3MgUHV0UHJvcGVydHlTbG90OworY2xhc3MgUmVnRXhwOworY2xhc3MgU3RydWN0dXJl
OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2VhazsKKwordW5pb24gSklUU3R1YkFy
ZyB7CisgICAgdm9pZCogYXNQb2ludGVyOworICAgIEVuY29kZWRKU1ZhbHVlIGFzRW5jb2RlZEpT
VmFsdWU7CisgICAgaW50MzJfdCBhc0ludDMyOworCisgICAgSlNWYWx1ZSBqc1ZhbHVlKCkgeyBy
ZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFsdWUpOyB9CisgICAgSlNPYmplY3Qq
IGpzT2JqZWN0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihhc1BvaW50ZXIpOyB9
CisgICAgUmVnaXN0ZXIqIHJlZygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4oYXNQ
b2ludGVyKTsgfQorICAgIElkZW50aWZpZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGlj
X2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9pbnRlcik7IH0KKyAgICBpbnQzMl90IGludDMyKCkgeyBy
ZXR1cm4gYXNJbnQzMjsgfQorICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q29kZUJsb2NrKj4oYXNQb2ludGVyKTsgfQorICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZnVuY3Rpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihh
c1BvaW50ZXIpOyB9CisgICAgUmVnRXhwKiByZWdFeHAoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxS
ZWdFeHAqPihhc1BvaW50ZXIpOyB9CisgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogcHJvcGVy
dHlOYW1lSXRlcmF0b3IoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yKj4oYXNQb2ludGVyKTsgfQorICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KKyAgICBK
U1N0cmluZyoganNTdHJpbmcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KGFzUG9p
bnRlcik7IH0KKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PFN0cnVjdHVyZSo+KGFzUG9pbnRlcik7IH0KKyAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFk
ZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7IH0KKyAgICBSZXNv
bHZlT3BlcmF0aW9ucyogcmVzb2x2ZU9wZXJhdGlvbnMoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxS
ZXNvbHZlT3BlcmF0aW9ucyo+KGFzUG9pbnRlcik7IH0KKyAgICBQdXRUb0Jhc2VPcGVyYXRpb24q
IHB1dFRvQmFzZU9wZXJhdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFB1dFRvQmFzZU9wZXJh
dGlvbio+KGFzUG9pbnRlcik7IH0KKyAgICBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBhcnJheUFs
bG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZSo+KGFzUG9pbnRlcik7IH0KK307CiAgICAgCi0gICAgc3RydWN0IFRyYW1wb2xpbmVTdHJ1
Y3R1cmUgewotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJh
bXBvbGluZTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGlu
azsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5r
OwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGw7Ci0gICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0OwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbDsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdDsKLSAgICB9OwotCiAjaWYgQ1BVKFg4Nl82NCkKLSAg
ICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVz
ZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotICAgICAgICB2b2lkKiBwYWRkaW5nWzJd
OyAvLyBNYWludGFpbiAzMi1ieXRlIHN0YWNrIGFsaWdubWVudCAocG9zc2libHkgb3ZlcmtpbGwp
LgotCi0gICAgICAgIHZvaWQqIGNvZGU7Ci0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAgICAg
dm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwotCi0gICAg
ICAgIHZvaWQqIHNhdmVkUkJYOwotICAgICAgICB2b2lkKiBzYXZlZFIxNTsKLSAgICAgICAgdm9p
ZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAgICB2b2lkKiBzYXZl
ZFIxMjsKLSAgICAgICAgdm9pZCogc2F2ZWRSQlA7Ci0gICAgICAgIHZvaWQqIHNhdmVkUklQOwot
Ci0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJl
dHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgotICAgICAgICBS
ZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRoaXMpIC0gMTsgfQotICAgIH07CitzdHJ1Y3QgSklU
U3RhY2tGcmFtZSB7CisgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJB
cmcgYXJnc1s2XTsKKyAgICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAzMi1ieXRlIHN0
YWNrIGFsaWdubWVudCAocG9zc2libHkgb3ZlcmtpbGwpLgorCisgICAgdm9pZCogY29kZTsKKyAg
ICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1
bnVzZWQxOworICAgIHZvaWQqIHVudXNlZDI7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
OworCisgICAgdm9pZCogc2F2ZWRSQlg7CisgICAgdm9pZCogc2F2ZWRSMTU7CisgICAgdm9pZCog
c2F2ZWRSMTQ7CisgICAgdm9pZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSMTI7CisgICAg
dm9pZCogc2F2ZWRSQlA7CisgICAgdm9pZCogc2F2ZWRSSVA7CisKKyAgICAvLyBXaGVuIEpJVCBj
b2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93
IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRy
ZXNzU2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRo
aXMpIC0gMTsgfQorfTsKICNlbGlmIENQVShYODYpCiAjaWYgQ09NUElMRVIoTVNWQykgfHwgKE9T
KFdJTkRPV1MpICYmIENPTVBJTEVSKEdDQykpCiAjcHJhZ21hIHBhY2socHVzaCkKICNwcmFnbWEg
cGFjayg0KQogI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01Q
SUxFUihHQ0MpKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgdm9pZCogcmVz
ZXJ2ZWQ7IC8vIFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3NbNl07CitzdHJ1Y3QgSklU
U3RhY2tGcmFtZSB7CisgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJB
cmcgYXJnc1s2XTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5n
WzJdOyAvLyBNYWludGFpbiAxNi1ieXRlIHN0YWNrIGFsaWdubWVudC4KKyAgICB2b2lkKiBwYWRk
aW5nWzJdOyAvLyBNYWludGFpbiAxNi1ieXRlIHN0YWNrIGFsaWdubWVudC4KICNlbmRpZgogCi0g
ICAgICAgIHZvaWQqIHNhdmVkRUJYOwotICAgICAgICB2b2lkKiBzYXZlZEVESTsKLSAgICAgICAg
dm9pZCogc2F2ZWRFU0k7Ci0gICAgICAgIHZvaWQqIHNhdmVkRUJQOwotICAgICAgICB2b2lkKiBz
YXZlZEVJUDsKLQotICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsK
LSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0g
ICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsK
KyAgICB2b2lkKiBzYXZlZEVCWDsKKyAgICB2b2lkKiBzYXZlZEVESTsKKyAgICB2b2lkKiBzYXZl
ZEVTSTsKKyAgICB2b2lkKiBzYXZlZEVCUDsKKyAgICB2b2lkKiBzYXZlZEVJUDsKKworICAgIHZv
aWQqIGNvZGU7CisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7
CisgICAgdm9pZCogdW51c2VkMTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YTsKICAgICAgICAgCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMg
YSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qg
b2YgdGhlIHN0YWNrLgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xv
dCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRoaXMpIC0g
MTsgfQotICAgIH07CisgICAgLy8gV2hlbiBKSVQgY29kZSBtYWtlcyBhIGNhbGwsIGl0IHB1c2hl
cyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUgcmVzdCBvZiB0aGUgc3RhY2suCisg
ICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVy
cHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KK307CiAjaWYgQ09NUElM
RVIoTVNWQykgfHwgKE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKEdDQykpCiAjcHJhZ21hIHBhY2so
cG9wKQogI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxF
UihHQ0MpKQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUg
ewotICAgICAgICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1
YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRy
ZXNzOwotCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI0OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjY7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI3OwotICAgICAgICB2b2lk
KiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQq
IHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjExOwotCi0gICAgICAgIC8v
IFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gcjEuLnIzIChyMCBjb250YWluZWQgdGhlIGVudHJ5
IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKLSAgICAgICAgSlNTdGFjayog
c3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotCi0gICAgICAgIC8vIFRoZXNl
IGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgotICAgICAgICB2b2lkKiB1bnVzZWQxOwot
ICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7
CisgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdz
WzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2
b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOworICAgIHZvaWQqIHByZXNlcnZlZFI0OworICAg
IHZvaWQqIHByZXNlcnZlZFI1OworICAgIHZvaWQqIHByZXNlcnZlZFI2OworICAgIHZvaWQqIHBy
ZXNlcnZlZFI3OworICAgIHZvaWQqIHByZXNlcnZlZFI4OworICAgIHZvaWQqIHByZXNlcnZlZFI5
OworICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSMTE7CisKKyAg
ICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBl
bnRyeSBjb2RlIHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCisgICAgSlNTdGFjayog
c3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVu
dHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KKyAgICB2b2lkKiB1bnVzZWQxOworICAgIEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YTsKICAgICAgICAgCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJl
dHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07
CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1
bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKICNpZiBD
T01QSUxFUihNU1ZDKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2soNCkKICNlbmRp
ZiAvLyBDT01QSUxFUihNU1ZDKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAg
SklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzdd
OwotCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotCi0gICAg
ICAgIHZvaWQqIHByZXNlcnZlZFI0OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKLSAgICAg
ICAgdm9pZCogcHJlc2VydmVkUjY7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI4OwotICAgICAg
ICB2b2lkKiBwcmVzZXJ2ZWRSOTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjEwOwotICAgICAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZExpbms7Ci0KLSAg
ICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAg
ICAgICB2b2lkKiB1bnVzZWQxOwotCi0gICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQg
b24gdGhlIHN0YWNrLgotICAgICAgICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGE7Ci0KLSAgICAgICAgLy8gV2hlbiBKSVQgY29kZSBtYWtlcyBhIGNhbGws
IGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUgcmVzdCBvZiB0aGUg
c3RhY2suCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CitzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSB7CisgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbN107CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKKworICAg
IHZvaWQqIHByZXNlcnZlZFI0OworICAgIHZvaWQqIHByZXNlcnZlZFI1OworICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OworICAgIHZvaWQqIHByZXNlcnZlZFI4OworICAgIHZvaWQqIHByZXNlcnZlZFI5
OworICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSMTE7CisgICAg
dm9pZCogcHJlc2VydmVkTGluazsKKworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lOworICAgIHZvaWQqIHVudXNlZDE7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVu
dHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YTsKKworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBp
dCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0
YWNrLgorICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4g
JnRodW5rUmV0dXJuQWRkcmVzczsgfQorfTsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSBw
YWNrKHBvcCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQogI2VsaWYgQ1BVKE1JUFMpCi0gICAg
c3RydWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBV
bnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNrRnJhbWUg
eworICAgIEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJn
c1s2XTsKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIHZvaWQqIHBhZGRpbmc7IC8v
IE1ha2UgdGhlIG92ZXJhbGwgc3RhY2sgbGVuZ3RoIDgtYnl0ZSBhbGlnbmVkLgorICAgIHZvaWQq
IHBhZGRpbmc7IC8vIE1ha2UgdGhlIG92ZXJhbGwgc3RhY2sgbGVuZ3RoIDgtYnl0ZSBhbGlnbmVk
LgogI2VuZGlmCiAKLSAgICAgICAgdm9pZCogcHJlc2VydmVkR1A7IC8vIHN0b3JlIEdQIHdoZW4g
dXNpbmcgUElDIGNvZGUKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzA7Ci0gICAgICAgIHZvaWQq
IHByZXNlcnZlZFMxOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMjsKLSAgICAgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5r
UmV0dXJuQWRkcmVzczsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIGluIGEx
Li5hMyAoYTAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2RlIHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBw
cmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKLSAgICAgICAgdm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBz
dG9yZSBHUCB3aGVuIHVzaW5nIFBJQyBjb2RlCisgICAgdm9pZCogcHJlc2VydmVkUzA7CisgICAg
dm9pZCogcHJlc2VydmVkUzE7CisgICAgdm9pZCogcHJlc2VydmVkUzI7CisgICAgdm9pZCogcHJl
c2VydmVkUmV0dXJuQWRkcmVzczsKKworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5B
ZGRyZXNzOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMgKGEwIGNv
bnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQor
ICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAgIHZvaWQq
IHVudXNlZDE7CiAKLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3Qo
KSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Ci0gICAgfTsKKyAgICAvLyBUaGVzZSBh
cmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKworICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFk
ZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQ
VShTSDQpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJnIHBh
ZGRpbmc7IC8vIFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3NbNl07Ci0KLSAgICAgICAg
UmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7Ci0gICAgICAgIHZvaWQqIHNhdmVk
UjEwOwotICAgICAgICB2b2lkKiBzYXZlZFIxMTsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTM7Ci0g
ICAgICAgIHZvaWQqIHNhdmVkUlBSOwotICAgICAgICB2b2lkKiBzYXZlZFIxNDsKLSAgICAgICAg
dm9pZCogc2F2ZWRUaW1lb3V0UmVnOwotCi0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgSlNWYWx1ZSogZXhjZXB0aW9uOwotICAg
ICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7Citz
dHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQK
KyAgICBKSVRTdHViQXJnIGFyZ3NbNl07CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0
dXJuQWRkcmVzczsKKyAgICB2b2lkKiBzYXZlZFIxMDsKKyAgICB2b2lkKiBzYXZlZFIxMTsKKyAg
ICB2b2lkKiBzYXZlZFIxMzsKKyAgICB2b2lkKiBzYXZlZFJQUjsKKyAgICB2b2lkKiBzYXZlZFIx
NDsKKyAgICB2b2lkKiBzYXZlZFRpbWVvdXRSZWc7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICBKU1ZhbHVlKiBleGNlcHRpb247CisgICAgdm9p
ZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAKLSAgICAgICAgUmV0
dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5B
ZGRyZXNzOyB9Ci0gICAgfTsKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xv
dCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxzZQogI2Vycm9yICJK
SVRTdGFja0ZyYW1lIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgpAQCAt
Mjc0LDIwMiArMjY0LDE1NSBAQCBuYW1lc3BhY2UgSlNDIHsKICNkZWZpbmUgU1RVQl9BUkdTIChh
cmdzKQogCiAjaWYgQ1BVKFg4NikKLSAgICAjaWYgQ09NUElMRVIoTVNWQykKLSAgICAjZGVmaW5l
IEpJVF9TVFVCIF9fZmFzdGNhbGwKLSAgICAjZWxpZiBDT01QSUxFUihHQ0MpCi0gICAgI2RlZmlu
ZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKLSAgICAjZWxpZiBDT01QSUxF
UihTVU5DQykKLSAgICAjZGVmaW5lIEpJVF9TVFVCCi0gICAgI2Vsc2UKLSAgICAjZXJyb3IgIkpJ
VF9TVFVCIGZ1bmN0aW9uIGNhbGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2
LCBhZGQgYXBwcm9wcmlhdGUgZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBp
bGVyISIKLSAgICAjZW5kaWYKKyNpZiBDT01QSUxFUihNU1ZDKQorI2RlZmluZSBKSVRfU1RVQiBf
X2Zhc3RjYWxsCisjZWxpZiBDT01QSUxFUihHQ0MpCisjZGVmaW5lIEpJVF9TVFVCICBfX2F0dHJp
YnV0ZV9fICgoZmFzdGNhbGwpKQorI2VsaWYgQ09NUElMRVIoU1VOQ0MpCisjZGVmaW5lIEpJVF9T
VFVCCiAjZWxzZQotICAgICNkZWZpbmUgSklUX1NUVUIKKyNlcnJvciAiSklUX1NUVUIgZnVuY3Rp
b24gY2FsbHMgcmVxdWlyZSBmYXN0Y2FsbCBjb252ZW50aW9ucyBvbiB4ODYsIGFkZCBhcHByb3By
aWF0ZSBkaXJlY3RpdmUvYXR0cmlidXRlIGhlcmUgZm9yIHlvdXIgY29tcGlsZXIhIgorI2VuZGlm
CisjZWxzZQorI2RlZmluZSBKSVRfU1RVQgogI2VuZGlmCiAKLSAgICBleHRlcm4gIkMiIHZvaWQg
Y3RpVk1UaHJvd1RyYW1wb2xpbmUoKTsKLSAgICBleHRlcm4gIkMiIHZvaWQgY3RpT3BUaHJvd05v
dENhdWdodCgpOwotICAgIGV4dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2
b2lkKiBjb2RlLCBKU1N0YWNrKiwgQ2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQq
IC8qdW51c2VkMiovLCBKU0dsb2JhbERhdGEqKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlWTVRocm93
VHJhbXBvbGluZSgpOworZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKTsKK2V4
dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lkKiBjb2RlLCBKU1N0YWNr
KiwgQ2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQqIC8qdW51c2VkMiovLCBKU0ds
b2JhbERhdGEqKTsKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBleHRlcm4gIkMiIHZvaWQgY3Rp
VHJhbXBvbGluZUVuZCgpOworZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1wb2xpbmVFbmQoKTsKIAot
ICAgIGlubGluZSBib29sIHJldHVybkFkZHJlc3NJc0luQ3RpVHJhbXBvbGluZShSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkZHJlc3MpCi0gICAgewotICAgICAgICByZXR1cm4gcmV0dXJuQWRkcmVz
cy52YWx1ZSgpID49IGJpdHdpc2VfY2FzdDx2b2lkKj4oJmN0aVRyYW1wb2xpbmUpCi0gICAgICAg
ICAgICAmJiByZXR1cm5BZGRyZXNzLnZhbHVlKCkgPCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlU
cmFtcG9saW5lRW5kKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGNsYXNzIEpJVFRodW5rcyB7Ci0g
ICAgcHVibGljOgotICAgICAgICBKSVRUaHVua3MoSlNHbG9iYWxEYXRhKik7Ci0gICAgICAgIH5K
SVRUaHVua3MoKTsKLQotICAgICAgICBzdGF0aWMgdm9pZCB0cnlDYWNoZUdldEJ5SUQoQ2FsbEZy
YW1lKiwgQ29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVl
IGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0
eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pOwotICAgICAgICBzdGF0aWMgdm9p
ZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiwgQ29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCk7Ci0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsgfQotICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rKCkgeyByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsTGluazsgfQotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVybiBtX3Ry
YW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5l
U3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlWaXJ0dWFsQ29uc3RydWN0KCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0
aVZpcnR1YWxDb25zdHJ1Y3Q7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5h
dGl2ZUNhbGwoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAgaWYg
KCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xp
bmUpOwotI2VuZGlmCi0gICAgICAgICAgICByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0
aU5hdGl2ZUNhbGw7Ci0gICAgICAgIH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aU5hdGl2ZUNvbnN0cnVjdCgpCi0gICAgICAgIHsKLSNpZiBFTkFCTEUoTExJTlQpCi0gICAgICAg
ICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfbmF0aXZlX2NvbnN0
cnVjdF90cmFtcG9saW5lKTsKK2lubGluZSBib29sIHJldHVybkFkZHJlc3NJc0luQ3RpVHJhbXBv
bGluZShSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCit7CisgICAgcmV0dXJuIHJldHVy
bkFkZHJlc3MudmFsdWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQor
ICAgICAgICAmJiByZXR1cm5BZGRyZXNzLnZhbHVlKCkgPCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZj
dGlUcmFtcG9saW5lRW5kKTsKK30KICNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBv
bGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgICAgIH0KLQotICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7Ci0KLSAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2Jh
bERhdGEqLCBOYXRpdmVGdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpOwotICAg
ICAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSosIE5h
dGl2ZUZ1bmN0aW9uLCBUaHVua0dlbmVyYXRvciwgSW50cmluc2ljKTsKLQotICAgICAgICB2b2lk
IGNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHR5cGVk
ZWYgSGFzaE1hcDxUaHVua0dlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPiBDVElTdHVi
TWFwOwotICAgICAgICBDVElTdHViTWFwIG1fY3RpU3R1Yk1hcDsKLSAgICAgICAgdHlwZWRlZiBI
YXNoTWFwPE5hdGl2ZUZ1bmN0aW9uLCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+ID4gSG9zdEZ1bmN0
aW9uU3R1Yk1hcDsKLSAgICAgICAgT3duUHRyPEhvc3RGdW5jdGlvblN0dWJNYXA+IG1faG9zdEZ1
bmN0aW9uU3R1Yk1hcDsKLSAgICAgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IG1f
ZXhlY3V0YWJsZU1lbW9yeTsKLQotICAgICAgICBUcmFtcG9saW5lU3RydWN0dXJlIG1fdHJhbXBv
bGluZVN0cnVjdHVyZTsKLSAgICB9OwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXRhbmQoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2JpdG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfTm90
SlNGdW5jdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9ldmFsKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25z
dHJ1Y3RfTm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NoZWNrX2hhc19pbnN0YW5jZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfY3JlYXRlX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfY3JlYXRlX2FyZ3VtZW50cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGVsX2J5X2lk
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kaXYoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2FycmF5X2ZhaWwoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2dldF9ieV9pZF9jdXN0b21fc3R1YihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5
X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9w
cm90b19saXN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9nZXRfYnlfaWRfc2VsZl9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRf
c3RyaW5nX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pbnN0YW5jZW9mKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9p
c19ib29sZWFuKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNf
bnVtYmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19vYmplY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfdW5kZWZpbmVkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9sZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dyZWF0ZXIoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dyZWF0ZXJlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tb2QoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX211bChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVnYXRlKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9u
b3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX25zdHJpY3RlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9kZWMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Bvc3RfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVfZGVjKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNv
bHZlX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dp
dGhfYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X3RvX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3JzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3RyY2F0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9zdHJpY3RlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3ViKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19q
c251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fcHJpbWl0aXZlKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90eXBl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX3RvX29iamVjdChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3Rp
X29wX25ld19hcnJheShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBK
U09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXlfYnVmZmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19l
eHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJ
VF9TVFVCIGN0aV9vcF9uZXdfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X3JlZ2V4cChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXNoX25hbWVfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF93aXRoX3Nj
b3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBK
SVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBKSVRf
U1RVQiBjdGlfb3BfZ2V0X3BuYW1lcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2psZXNz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBj
dGlfb3Bfamxlc3NlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBp
bnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3BfamdyZWF0ZXJlcShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2p0cnVlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0
aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV90aW1lb3V0X2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfaGFzX3Byb3BlcnR5KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX2Rl
YnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX2VuZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2
b2lkIEpJVF9TVFVCIGN0aV9vcF9qbXBfc2NvcGVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wcm9m
aWxlX2RpZF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9v
cF9wdXRfYnlfaWRfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRf
ZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklU
X1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0
X2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWwoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX2luaXRfZ2xvYmFsX2Nv
bnN0X2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQg
SklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1l
bnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3Rocm93X3N0YXRpY19lcnJvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9hZGQoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
Yml0YW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX2JpdG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdHhvcihTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX05vdEpTRnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9ldmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnN0
cnVjdF9Ob3RKU0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfY3JlYXRlX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29udmVydF90aGlzKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Ny
ZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGVsX2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV92
YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRf
YnlfaWRfYXJyYXlfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2dldHRlcl9zdHVi
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9w
cm90b19saXN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90b19saXN0X2Z1bGwoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfc3RyaW5nX2ZhaWwo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsX2dlbmVyaWMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfZ2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW4oU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5z
dGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9pc19ib29sZWFuKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX2Z1bmN0aW9uKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2lzX251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19vYmplY3QoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNf
c3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2xlc3NlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dyZWF0ZXJlcShTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9sc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX211bChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9uZWdhdGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25zdHJpY3RlcShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wb3N0X2RlYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVfZGVjKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX3ByZV9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlX3N0cmljdF9wdXQoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZW5zdXJl
X3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9yZXNvbHZlX3dpdGhfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3JzaGlmdChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9zdHJjYXQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3ViKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX3RvX2pzbnVtYmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90
eXBlb2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfdXJzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19h
cnJheShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRf
U1RVQiBjdGlfb3BfbmV3X2FycmF5X3dpdGhfc2l6ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5X2J1ZmZlcihT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBj
dGlfb3BfbmV3X2Z1bmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jX2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X29iamVjdChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlf
b3BfbmV3X3JlZ2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2Jq
ZWN0KiBKSVRfU1RVQiBjdGlfb3BfcHVzaF9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cHVzaF93aXRoX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNP
YmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9yZWFsbG9jKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciog
SklUX1NUVUIgY3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0aV9vcF9lcV9zdHJpbmdzKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3Nl
cShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlf
b3BfamdyZWF0ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklU
X1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2p0cnVlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX2xvYWRfdmFyYXJncyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVj
ayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlf
aGFzX3Byb3BlcnR5KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBK
SVRfU1RVQiBjdGlfb3BfZGVidWcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9qbXBfc2NvcGVzKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcG9wX3Njb3BlKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJv
ZmlsZV9kaWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQg
SklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lk
X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJlY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRf
ZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaW5kZXgoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9w
dXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRf
U1RVQiBjdGlfb3BfcHV0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2dldHRlcl9zZXR0ZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0
X2dsb2JhbF9jb25zdF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K3ZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hcmd1
bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVC
IGN0aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3B0aW1p
emUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0
aV9vcHRpbWl6ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKICNlbmRpZgot
ICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX2NvbnN0cnVj
dF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2ppdENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9qaXRD
b21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJ
VF9TVFVCIGN0aV9vcF9zd2l0Y2hfY2hhcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2ltbShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNo
X3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX3N0YWNrX2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIg
Y3RpX3ZtX2xhenlMaW5rQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92bV90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NhbGxfYXJpdHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJpdHlDaGVjayhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2ppdENv
bXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RV
QiBjdGlfb3BfY29uc3RydWN0X2ppdENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2lt
bShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0
aV9vcF9zd2l0Y2hfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
dm9pZCogSklUX1NUVUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX3N0YWNrX2NoZWNrKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX3ZtX2xhenlMaW5rQ2FsbChT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K3ZvaWQqIEpJVF9TVFVCIGN0aV92bV90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogfSAvLyBleHRlcm4gIkMiCiAKICNlbGlmIEVO
QUJMRShMTElOVF9DX0xPT1ApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9U
aHVua0dlbmVyYXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3
LDkgQEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgotI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVB
U00uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklU
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtH
ZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9yLmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xh
c3MgRXhlY3V0YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5h
dGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAg
dHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxE
YXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtH
ZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21D
aGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsK
LSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRh
Kik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihK
U0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0
b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5r
R2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21D
aGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGFic1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGNlaWxUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBmbG9vclRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGxvZ1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYK
KyNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSGVhcC5oIgog
I2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCisjaW5jbHVkZSAi
SklUVGh1bmtzLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgog
I2luY2x1ZGUgIkxMSW50RGF0YS5oIgo=
</data>
<flag name="commit-queue"
          id="198079"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180716</attachid>
            <date>2012-12-25 11:07:22 -0800</date>
            <delta_ts>2012-12-25 11:07:22 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>71928</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDYzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBA
CisyMDEyLTEyLTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SklUVGh1bmtzIHNob3VsZCBiZSBpbiBpdHMgb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc0NAorCisgICAgICAgIFJ1YmJlciBzdGFt
cGVkIGJ5IFNhbSBXZWluaWcuCisgICAgICAgIAorICAgICAgICBNb3ZlZCBKSVRUaHVua3MgaW50
byBpdHMgb3duIGZpbGUgYW5kIHJlbW92ZWQgc29tZSBzdGF0aWMgbWV0aG9kcyBmcm9tIGl0Cisg
ICAgICAgIHRoYXQgd2VyZSBub3QgcmVsYXRlZCB0byB3aGF0IEpJVFRodW5rcyBjdXJyZW50bHkg
ZG9lcy4gUGVyZm9ybWVkIHZhcmlvdXMKKyAgICAgICAgcGFnYW4gcml0dWFscyB0byBnZXQgaXQg
dG8gYnVpbGQgLSBhcHBhcmVudGx5IHRoZXJlIGlzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeQorICAg
ICAgICBiZXR3ZWVuIEpTQ2VsbCwgV2VhaywgYW5kIEpJVFRodW5rcywgd2hpY2ggbWFnaWNhbGx5
IHJlc29sdmVzIGl0c2VsZiBpZiB5b3UKKyAgICAgICAgbWFrZSBzdXJlIHRvIGZpcnN0IGluY2x1
ZGUgUmVnaXN0ZXIuaC4gTWFraW5nIGl0IHNvIHRoYXQgZmV3ZXIgcGFnYW4gcml0dWFscworICAg
ICAgICBuZWVkIHRvIGJlIHBlcmZvcm1lZCBpZiB0aGlzIGNvZGUgY2hhbmdlcyBpbiB0aGUgZnV0
dXJlIGlzIGNvdmVyZWQgYnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTY5Ni4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlE
KToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REVGSU5F
X1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMu
aDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKSVRTdGFja0ZyYW1lKToKKyAgICAgICAgKEpT
Qzo6SklUU3RhY2tGcmFtZTo6cmV0dXJuQWRkcmVzc1Nsb3QpOgorICAgICAgICAoSlNDOjpyZXR1
cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6SklUVGh1
bmtzKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjp+SklUVGh1bmtzKToKKyAgICAgICAgKEpT
Qzo6SklUVGh1bmtzOjpjdGlTdHViKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpob3N0RnVu
Y3Rpb25TdHViKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjbGVhckhvc3RGdW5jdGlvblN0
dWJzKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToK
KyAgICAgICAgKFRyYW1wb2xpbmVTdHJ1Y3R1cmUpOgorICAgICAgICAoSklUVGh1bmtzKToKKyAg
ICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKToKKyAgICAg
ICAgKEpTQzo6SklUVGh1bmtzOjpjdGlWaXJ0dWFsQ2FsbExpbmspOgorICAgICAgICAoSlNDOjpK
SVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1
bmtzOjpjdGlWaXJ0dWFsQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmlydHVh
bENvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbCk6Cisg
ICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KToKKyAgICAgICAgKiBq
aXQvVGh1bmtHZW5lcmF0b3IuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAqIGpp
dC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuaDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKwogMjAx
Mi0xMi0yNSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgZm9yIHIxMzg0NTUuCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBz
ZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
ICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNwcAorICAgIGpp
dC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuY3BwCiAg
ICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00MzQsMTEgKzQz
NCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmggXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
cml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJ
VC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVudFdhdGNo
cG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklU
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFy
Z2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkJKHdv
cmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgXAogICAgIGppdC9KSVRTdHViUm91dGluZS5jcHAgXAog
ICAgIGppdC9KSVRTdHVicy5jcHAgXAorICAgIGppdC9KSVRUaHVua3MuY3BwIFwKICAgICBqaXQv
SnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgXAogICAgIGppdC9UaHVua0dlbmVyYXRvcnMu
Y3BwIFwKICAgICBsbGludC9MTEludENMb29wLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTIx
OTgsNiArMjE5OCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxqaXRcSklUVGh1bmtzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XEpJVFRodW5rcy5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcSnVtcFJlcGxh
Y2VtZW50V2F0Y2hwb2ludC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjIxNCw2ICsyMjIy
LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXGppdFxUaHVua0dlbmVyYXRvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcVGh1bmtHZW5lcmF0b3JzLmNwcCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsOSBAQAogCQkwRjU1
RjBGNTE0RDEwNjNDMDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NUYwRjIxNEQxMDYzNjAwQUM3NjQ5IC8qIEFi
c3RyYWN0UEMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjU2QTFEMzE1MDAwRjM1MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NkExRDExNTAwMEYz
MTAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhl
Y3V0aW9uQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAg
Ki87IH07CisJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3
OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJ
VFRodW5rcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLzsgfTsKKwkJMEY1
RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJ
VFRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNUYwOENGMTQ2Qzc2MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDRTE0
NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc0MTQzRkNEMzMwMDY4
Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjIwMTcyMTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdWYXJp
YWJsZUFjY2Vzc0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjYyMDE3NjE0M0ZDRDNCMDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MjAxNzAxNDNG
Q0QyRjAwNjhCNzdDIC8qIERGR0Jhc2ljQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTc1LDYgKzk3OCw5IEBACiAJCTBGNTVGMEYyMTRE
MTA2MzYwMEFDNzY0OSAvKiBBYnN0cmFjdFBDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFic3RyYWN0UEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkEx
RDExNTAwMEYzMTAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXhlY3V0aW9uQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRpb25Db3VudGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1NzJENEQxNjg3OUZEQjAwRTU3
RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRodW5rR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFC
MTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSklUVGh1bmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKSVRUaHVua3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY1RjA4Q0MxNDZCRTYwMjAwMDQ3MkE5IC8qIERGR0J5dGVDb2RlQ2FjaGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQnl0ZUNvZGVDYWNoZS5oOyBwYXRoID0g
ZGZnL0RGR0J5dGVDb2RlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1
RjA4Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5jb25kaXRpb25hbEZpbmFsaXplci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYyMDE2RDE0M0ZDRDJGMDA2OEI3N0MgLyogREZH
QWJzdHJhY3RTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdBYnN0cmFjdFN0YXRlLmNwcDsgcGF0aCA9IGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMCw2IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQkwRjczRDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91
dGluZS5jcHAgKi8sCiAJCQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxs
U3R1YlJvdXRpbmUuaCAqLywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2Vk
UG9pbnRlci5oICovLAogCQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklU
Q29kZU1hcC5oICovLAogCQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0
YWJsZUFsbG9jYXRvci5oICovLApAQCAtMTkzNywxMyArMTk0MiwxNyBAQAogCQkJCTBGNzY2RDFD
MTVBNTAyOEQwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0
RTE5Q0UwMDIzQ0RBRCAvKiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAw
MDE1MEZEIC8qIEpJVFN0dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8q
IEpJVFRodW5rcy5jcHAgKi8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRo
dW5rcy5oICovLAogCQkJCUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJp
ZXIuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQu
aCAqLywKIAkJCQkwRjc2NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0
Y2hwb2ludC5jcHAgKi8sCiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBs
YWNlbWVudFdhdGNocG9pbnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyog
U3BlY2lhbGl6ZWRUaHVua0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAv
KiBUaHVua0dlbmVyYXRvci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBU
aHVua0dlbmVyYXRvcnMuY3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBU
aHVua0dlbmVyYXRvcnMuaCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51
c2VkUG9pbnRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMjIyMCw2ICsyMjI5LDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAw
NEYzMEQgLyogQ2FsbERhdGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAv
KiBDYWxsRGF0YS5oICovLAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0lu
Zm8uaCAqLywKKwkJCQlBNzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAq
LywKKwkJCQlBNzdGMTgyMDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJ
MEY4Rjk0M0ExNjY3NjMxMTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICov
LAogCQkJCTBGMjFDMjc5MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
LmggKi8sCiAJCQkJNjVFQTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJz
LmNwcCAqLywKQEAgLTI0MjQsOCArMjQzNSw2IEBACiAJCQkJMTQyMEJFN0ExMEFBNkREQjAwRjQ1
NUQyIC8qIFdlYWtSYW5kb20uaCAqLywKIAkJCQlBN0RDQjc3OTEyRTNEOTA1MDA5MTE5NDAgLyog
V3JpdGVCYXJyaWVyLmggKi8sCiAJCQkJQzJENThDMzMxNTkxMkZFRTAwMjFBODQ0IC8qIEdDQWN0
aXZpdHlDYWxsYmFjay5jcHAgKi8sCi0JCQkJQTc3RjE4MUYxNjQwODhCMjAwNjQwQTQ3IC8qIENv
ZGVDYWNoZS5jcHAgKi8sCi0JCQkJQTc3RjE4MjAxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNo
ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBydW50aW1lOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTMxOTQsNiArMzIwMyw4IEBACiAJCQkJQTdDMEM0QUMxNjgxMDMwMjAwMTcwMTFE
IC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFRkM5QUIxNjgx
QTNCNjAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMDVDM0I0MTY4M0NGOTIwMEJBRjQ1QiAvKiBERkdBcnJheWlmeVNsb3dQYXRoR2Vu
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUgLyog
SklUVGh1bmtzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU3MkQ0RjE2ODc5RkREMDBFNTdGQkQg
LyogVGh1bmtHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI0LDcgQEAK
IAkJCQkwRjEzOTEyQjE2NzcxQzNBMDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rl
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNT
Y3JpcHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUz
IC8qIERGR09TUkV4aXRKdW1wUGxhY2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1
RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzc2LDU4ICs3NzYsNyBAQCBfX2FzbSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQog
ICAgICNkZWZpbmUgQ1RJX1NBTVBMRVIgMAogI2VuZGlmCiAKLUpJVFRodW5rczo6SklUVGh1bmtz
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKLSAgICA6IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcChh
ZG9wdFB0cihuZXcgSG9zdEZ1bmN0aW9uU3R1Yk1hcCkpCi17Ci0gICAgaWYgKCFnbG9iYWxEYXRh
LT5jYW5Vc2VKSVQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9leGVjdXRhYmxlTWVtb3J5
ID0gSklUOjpjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKGdsb2JhbERhdGEsICZtX3RyYW1w
b2xpbmVTdHJ1Y3R1cmUpOwotICAgIEFTU0VSVCghIW1fZXhlY3V0YWJsZU1lbW9yeSk7Ci0jaWYg
Q1BVKEFSTV9USFVNQjIpCi0gICAgLy8gVW5mb3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2Vz
IG5vdCBsaWtlIHRoZSB1c2Ugb2Ygb2Zmc2V0b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQg
Y29udGFpbnMgbm9uIFBPRCB0eXBlcyksCi0gICAgLy8gYW5kIHRoZSBPQkpFQ1RfT0ZGU0VUT0Yg
bWFjcm8gZG9lcyBub3QgYXBwZWFyIGNvbnN0YW50aXNoIGVub3VnaCBmb3IgaXQgdG8gYmUgaGFw
cHkgd2l0aCBpdHMgdXNlIGluIENPTVBJTEVfQVNTRVJUCi0gICAgLy8gbWFjcm9zLgotICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVy
bkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQ
UkVTRVJWRURfUjRfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNSkgPT0gUFJFU0VSVkVEX1I1X09GRlNFVCk7Ci0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjYp
ID09IFBSRVNFUlZFRF9SNl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI3KSA9PSBQUkVTRVJWRURfUjdfT0ZGU0VUKTsK
LSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2
ZWRSOCkgPT0gUFJFU0VSVkVEX1I4X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjkpID09IFBSRVNFUlZFRF9SOV9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFIxMCkgPT0gUFJFU0VSVkVEX1IxMF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMSkgPT0gUFJFU0VSVkVE
X1IxMV9PRkZTRVQpOwotCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKLSAgICAvLyBUaGUgZmlm
dGggYXJndW1lbnQgaXMgdGhlIGZpcnN0IGl0ZW0gYWxyZWFkeSBvbiB0aGUgc3RhY2suCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdW51c2VkMSkgPT0g
RklSU1RfU1RBQ0tfQVJHVU1FTlQpOwotCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1
Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQURE
UkVTU19PRkZTRVQpOwotCi0jZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKQotCi0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNz
KSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURSNF9P
RkZTRVQpOwotCi0KLSNlbGlmIENQVShNSVBTKQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZEdQKSA9PSBQUkVTRVJWRURfR1BfT0ZGU0VU
KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRTMCkgPT0gUFJFU0VSVkVEX1MwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9P
RkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUs
IHByZXNlcnZlZFMyKSA9PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9
PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5L
X1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1
Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKLSAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBnbG9iYWxEYXRhKSA9
PSBHTE9CQUxfREFUQV9PRkZTRVQpOwotCi0jZW5kaWYKLX0KLQotSklUVGh1bmtzOjp+SklUVGh1
bmtzKCkKLXsKLX0KLQotTkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNoZVB1dEJ5
SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCitO
RVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
LCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sIGJvb2wgZGlyZWN0KQogewogICAgIC8vIFRoZSBpbnRlcnBy
ZXRlciBjaGVja3MgZm9yIHJlY3Vyc2lvbiBoZXJlOyBJIGRvIG5vdCBiZWxpZXZlIHRoaXMgY2Fu
IG9jY3VyIGluIENUSS4KIApAQCAtODgxLDcgKzgzMCw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpJ
VFRodW5rczo6dHJ5Q2FjaGVQdXQKICAgICBKSVQ6OnBhdGNoUHV0QnlJZFJlcGxhY2UoY29kZUJs
b2NrLCBzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpLCByZXR1cm5BZGRy
ZXNzLCBkaXJlY3QpOwogfQogCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hl
R2V0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8pCitORVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRC
eUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuQWRk
cmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbykKIHsKICAgICAvLyBGSVhNRTogV3JpdGUgYSB0ZXN0IHRoYXQgcHJvdmVz
IHdlIG5lZWQgdG8gY2hlY2sgZm9yIHJlY3Vyc2lvbiBoZXJlIGp1c3QKICAgICAvLyBsaWtlIHRo
ZSBpbnRlcnByZXRlciBkb2VzLCB0aGVuIGFkZCBhIGNoZWNrIGZvciByZWN1cnNpb24uCkBAIC0x
NDQ0LDcgKzEzOTMsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfaWQp
CiAgICAgICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgICAgICBzdHViSW5m
by0+c2V0U2VlbigpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBKSVRUaHVua3M6OnRyeUNh
Y2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3Rh
Y2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIGZhbHNlKTsKKyAgICAg
ICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5f
QUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIGZh
bHNlKTsKICAgICB9CiAgICAgCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKQEAg
LTE0NzAsNyArMTQxOSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZF8KICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgdHJ1ZSk7CisgICAg
ICAgICAgICB0cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJO
X0FERFJFU1MsIHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0
cnVlKTsKICAgICB9CiAgICAgCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKQEAg
LTE1NDUsNyArMTQ5NCw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBv
cF8KICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICBzdHViSW5mby0+c2V0
U2VlbigpOwogICAgIGVsc2UKLSAgICAgICAgSklUVGh1bmtzOjp0cnlDYWNoZUdldEJ5SUQoY2Fs
bEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQs
IHNsb3QsIHN0dWJJbmZvKTsKKyAgICAgICAgdHJ5Q2FjaGVHZXRCeUlEKGNhbGxGcmFtZSwgY29k
ZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCBzdHVi
SW5mbyk7CiAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTM0MTIsNDggKzMzNjEsNiBAQCBERUZJTkVfU1RV
Ql9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgdG9fCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLnRvT2JqZWN0KGNhbGxGcmFtZSkpOwogfQog
Ci1NYWNyb0Fzc2VtYmxlckNvZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yKQotewotICAgIENUSVN0dWJNYXA6
OkFkZFJlc3VsdCBlbnRyeSA9IG1fY3RpU3R1Yk1hcC5hZGQoZ2VuZXJhdG9yLCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYoKSk7Ci0gICAgaWYgKGVudHJ5LmlzTmV3RW50cnkpCi0gICAgICAgIGVudHJ5
Lml0ZXJhdG9yLT52YWx1ZSA9IGdlbmVyYXRvcihnbG9iYWxEYXRhKTsKLSAgICByZXR1cm4gZW50
cnkuaXRlcmF0b3ItPnZhbHVlOwotfQotCi1OYXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhv
c3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBm
dW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCi17Ci0gICAgaWYgKE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChm
dW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0gICAgTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgq
Z2xvYmFsRGF0YSwgSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlv
biksIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29k
ZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7Ci0g
ICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBmdW5jdGlvbiwgUGFzc1dlYWs8TmF0
aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkpOwotICAgIHJldHVybiBuYXRpdmVFeGVj
dXRhYmxlOwotfQotCi1OYXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0
dWIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgVGh1
bmtHZW5lcmF0b3IgZ2VuZXJhdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQotewotICAgIGlmIChO
YXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFw
LT5nZXQoZnVuY3Rpb24pKQotICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLQotICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2RlOwotICAgIGlmIChnZW5lcmF0b3IpIHsKLSAgICAg
ICAgaWYgKGdsb2JhbERhdGEtPmNhblVzZUpJVCgpKQotICAgICAgICAgICAgY29kZSA9IGdlbmVy
YXRvcihnbG9iYWxEYXRhKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29kZSA9IE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZigpOwotICAgIH0gZWxzZQotICAgICAgICBjb2RlID0gSklUOjpjb21w
aWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlvbik7Ci0KLSAgICBOYXRpdmVFeGVj
dXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9i
YWxEYXRhLCBjb2RlLCBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxm
TWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KCkpLCBjYWxsSG9zdEZ1bmN0aW9uQXND
b25zdHJ1Y3RvciwgaW50cmluc2ljKTsKLSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJN
YXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxl
KSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci19Ci0KLXZvaWQgSklUVGh1bmtzOjpj
bGVhckhvc3RGdW5jdGlvblN0dWJzKCkKLXsKLSAgICBtX2hvc3RGdW5jdGlvblN0dWJNYXAuY2xl
YXIoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gMTM4NDI5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MywyMjcgKzQzLDIxNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShKSVQpCiAK
LSAgICBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm87CitzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm87
CiAKLSAgICBjbGFzcyBBcnJheUFsbG9jYXRpb25Qcm9maWxlOwotICAgIGNsYXNzIENvZGVCbG9j
azsKLSAgICBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKLSAgICBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFi
bGU7Ci0gICAgY2xhc3MgSWRlbnRpZmllcjsKLSAgICBjbGFzcyBKU0dsb2JhbERhdGE7Ci0gICAg
Y2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci0gICAgY2xhc3MgSlNPYmplY3Q7Ci0gICAgY2xhc3MgSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvcjsKLSAgICBjbGFzcyBKU1N0YWNrOwotICAgIGNsYXNzIEpTVmFs
dWU7Ci0gICAgY2xhc3MgSlNWYWx1ZUVuY29kZWRBc1BvaW50ZXI7Ci0gICAgY2xhc3MgTGVnYWN5
UHJvZmlsZXI7Ci0gICAgY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKLSAgICBjbGFzcyBQcm9wZXJ0
eVNsb3Q7Ci0gICAgY2xhc3MgUHV0UHJvcGVydHlTbG90OwotICAgIGNsYXNzIFJlZ0V4cDsKLSAg
ICBjbGFzcyBTdHJ1Y3R1cmU7Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2Vh
azsKLQotICAgIHVuaW9uIEpJVFN0dWJBcmcgewotICAgICAgICB2b2lkKiBhc1BvaW50ZXI7Ci0g
ICAgICAgIEVuY29kZWRKU1ZhbHVlIGFzRW5jb2RlZEpTVmFsdWU7Ci0gICAgICAgIGludDMyX3Qg
YXNJbnQzMjsKLQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUoKSB7IHJldHVybiBKU1ZhbHVlOjpk
ZWNvZGUoYXNFbmNvZGVkSlNWYWx1ZSk7IH0KLSAgICAgICAgSlNPYmplY3QqIGpzT2JqZWN0KCkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFJl
Z2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRlcik7
IH0KLSAgICAgICAgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIHsgcmV0dXJuICpzdGF0aWNfY2Fz
dDxJZGVudGlmaWVyKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBpbnQzMl90IGludDMyKCkgeyBy
ZXR1cm4gYXNJbnQzMjsgfQotICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJu
IHN0YXRpY19jYXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgRnVuY3Rpb25F
eGVjdXRhYmxlKiBmdW5jdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0
YWJsZSo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgUmVnRXhwKiByZWdFeHAoKSB7IHJldHVybiBz
dGF0aWNfY2FzdDxSZWdFeHAqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvcio+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1N0cmluZyoganNTdHJpbmcoKSB7IHJldHVybiBzdGF0
aWNfY2FzdDxKU1N0cmluZyo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1Y3R1cmUqPihhc1BvaW50ZXIpOyB9Ci0g
ICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcygpIHsgcmV0dXJuIFJldHVybkFk
ZHJlc3NQdHIoYXNQb2ludGVyKTsgfQotICAgICAgICBSZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2
ZU9wZXJhdGlvbnMoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZXNvbHZlT3BlcmF0aW9ucyo+KGFz
UG9pbnRlcik7IH0KLSAgICAgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRp
b24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24qPihhc1BvaW50ZXIp
OyB9Ci0gICAgICAgIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIGFycmF5QWxsb2NhdGlvblByb2Zp
bGUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxBcnJheUFsbG9jYXRpb25Qcm9maWxlKj4oYXNQb2lu
dGVyKTsgfQotICAgIH07CitjbGFzcyBBcnJheUFsbG9jYXRpb25Qcm9maWxlOworY2xhc3MgQ29k
ZUJsb2NrOworY2xhc3MgRXhlY3V0YWJsZVBvb2w7CitjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7
CitjbGFzcyBJZGVudGlmaWVyOworY2xhc3MgSlNHbG9iYWxEYXRhOworY2xhc3MgSlNHbG9iYWxP
YmplY3Q7CitjbGFzcyBKU09iamVjdDsKK2NsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7Citj
bGFzcyBKU1N0YWNrOworY2xhc3MgSlNWYWx1ZTsKK2NsYXNzIEpTVmFsdWVFbmNvZGVkQXNQb2lu
dGVyOworY2xhc3MgTGVnYWN5UHJvZmlsZXI7CitjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOworY2xh
c3MgUHJvcGVydHlTbG90OworY2xhc3MgUHV0UHJvcGVydHlTbG90OworY2xhc3MgUmVnRXhwOwor
Y2xhc3MgU3RydWN0dXJlOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2VhazsKKwor
dW5pb24gSklUU3R1YkFyZyB7CisgICAgdm9pZCogYXNQb2ludGVyOworICAgIEVuY29kZWRKU1Zh
bHVlIGFzRW5jb2RlZEpTVmFsdWU7CisgICAgaW50MzJfdCBhc0ludDMyOworCisgICAgSlNWYWx1
ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFsdWUpOyB9
CisgICAgSlNPYmplY3QqIGpzT2JqZWN0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3Qq
Pihhc1BvaW50ZXIpOyB9CisgICAgUmVnaXN0ZXIqIHJlZygpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PFJlZ2lzdGVyKj4oYXNQb2ludGVyKTsgfQorICAgIElkZW50aWZpZXImIGlkZW50aWZpZXIoKSB7
IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9pbnRlcik7IH0KKyAgICBpbnQz
Ml90IGludDMyKCkgeyByZXR1cm4gYXNJbnQzMjsgfQorICAgIENvZGVCbG9jayogY29kZUJsb2Nr
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29kZUJsb2NrKj4oYXNQb2ludGVyKTsgfQorICAgIEZ1
bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlv
bkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9CisgICAgUmVnRXhwKiByZWdFeHAoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxSZWdFeHAqPihhc1BvaW50ZXIpOyB9CisgICAgSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3IoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKj4oYXNQb2ludGVyKTsgfQorICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9p
bnRlcik7IH0KKyAgICBKU1N0cmluZyoganNTdHJpbmcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxK
U1N0cmluZyo+KGFzUG9pbnRlcik7IH0KKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSgpIHsgcmV0
dXJuIHN0YXRpY19jYXN0PFN0cnVjdHVyZSo+KGFzUG9pbnRlcik7IH0KKyAgICBSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRl
cik7IH0KKyAgICBSZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2ZU9wZXJhdGlvbnMoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxSZXNvbHZlT3BlcmF0aW9ucyo+KGFzUG9pbnRlcik7IH0KKyAgICBQdXRU
b0Jhc2VPcGVyYXRpb24qIHB1dFRvQmFzZU9wZXJhdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PFB1dFRvQmFzZU9wZXJhdGlvbio+KGFzUG9pbnRlcik7IH0KKyAgICBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QXJy
YXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KK307CiAgICAgCi0gICAgc3RydWN0
IFRyYW1wb2xpbmVTdHJ1Y3R1cmUgewotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
U3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsTGluazsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1
YWxDb25zdHJ1Y3RMaW5rOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVh
bENhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0
OwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbDsKLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdDsKLSAgICB9OwotCiAjaWYg
Q1BVKFg4Nl82NCkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJl
c2VydmVkOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotICAgICAgICB2
b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAzMi1ieXRlIHN0YWNrIGFsaWdubWVudCAocG9z
c2libHkgb3ZlcmtpbGwpLgotCi0gICAgICAgIHZvaWQqIGNvZGU7Ci0gICAgICAgIEpTU3RhY2sq
IHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgdm9pZCogdW51
c2VkMTsKLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhOwotCi0gICAgICAgIHZvaWQqIHNhdmVkUkJYOwotICAgICAgICB2b2lkKiBzYXZlZFIx
NTsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAg
ICAgICB2b2lkKiBzYXZlZFIxMjsKLSAgICAgICAgdm9pZCogc2F2ZWRSQlA7Ci0gICAgICAgIHZv
aWQqIHNhdmVkUklQOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBp
dCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0
YWNrLgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRoaXMpIC0gMTsgfQotICAg
IH07CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNl
ZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKKyAgICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWlu
dGFpbiAzMi1ieXRlIHN0YWNrIGFsaWdubWVudCAocG9zc2libHkgb3ZlcmtpbGwpLgorCisgICAg
dm9pZCogY29kZTsKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZTsKKyAgICB2b2lkKiB1bnVzZWQxOworICAgIHZvaWQqIHVudXNlZDI7CisgICAgSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhOworCisgICAgdm9pZCogc2F2ZWRSQlg7CisgICAgdm9pZCogc2F2ZWRS
MTU7CisgICAgdm9pZCogc2F2ZWRSMTQ7CisgICAgdm9pZCogc2F2ZWRSMTM7CisgICAgdm9pZCog
c2F2ZWRSMTI7CisgICAgdm9pZCogc2F2ZWRSQlA7CisgICAgdm9pZCogc2F2ZWRSSVA7CisKKyAg
ICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRk
cmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KKyAgICBSZXR1cm5BZGRyZXNz
UHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJu
QWRkcmVzc1B0cio+KHRoaXMpIC0gMTsgfQorfTsKICNlbGlmIENQVShYODYpCiAjaWYgQ09NUElM
RVIoTVNWQykgfHwgKE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKEdDQykpCiAjcHJhZ21hIHBhY2so
cHVzaCkKICNwcmFnbWEgcGFjayg0KQogI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMpIHx8IChPUyhX
SU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3Nb
Nl07CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNl
ZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAg
ICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAxNi1ieXRlIHN0YWNrIGFsaWdubWVudC4K
KyAgICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAxNi1ieXRlIHN0YWNrIGFsaWdubWVu
dC4KICNlbmRpZgogCi0gICAgICAgIHZvaWQqIHNhdmVkRUJYOwotICAgICAgICB2b2lkKiBzYXZl
ZEVESTsKLSAgICAgICAgdm9pZCogc2F2ZWRFU0k7Ci0gICAgICAgIHZvaWQqIHNhdmVkRUJQOwot
ICAgICAgICB2b2lkKiBzYXZlZEVJUDsKLQotICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBK
U1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZv
aWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBzYXZlZEVCWDsKKyAgICB2b2lkKiBzYXZlZEVESTsK
KyAgICB2b2lkKiBzYXZlZEVTSTsKKyAgICB2b2lkKiBzYXZlZEVCUDsKKyAgICB2b2lkKiBzYXZl
ZEVJUDsKKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2VkMTsKKyAgICB2b2lkKiB1bnVzZWQyOwor
ICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKICAgICAgICAgCi0gICAgICAgIC8vIFdoZW4g
SklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3Qg
YmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiBy
ZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVz
c1B0cio+KHRoaXMpIC0gMTsgfQotICAgIH07CisgICAgLy8gV2hlbiBKSVQgY29kZSBtYWtlcyBh
IGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUgcmVzdCBv
ZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
K307CiAjaWYgQ09NUElMRVIoTVNWQykgfHwgKE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKEdDQykp
CiAjcHJhZ21hIHBhY2socG9wKQogI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCi0gICAgc3RydWN0
IEpJVFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQK
LSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIg
dGh1bmtSZXR1cm5BZGRyZXNzOwotCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJl
c3M7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI0OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRS
NTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjY7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI3
OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjk7
Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjEx
OwotCi0gICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gcjEuLnIzIChyMCBjb250
YWluZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKLSAg
ICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotCi0g
ICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgotICAgICAgICB2
b2lkKiB1bnVzZWQxOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CitzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOworICAgIHZvaWQqIHBy
ZXNlcnZlZFI0OworICAgIHZvaWQqIHByZXNlcnZlZFI1OworICAgIHZvaWQqIHByZXNlcnZlZFI2
OworICAgIHZvaWQqIHByZXNlcnZlZFI3OworICAgIHZvaWQqIHByZXNlcnZlZFI4OworICAgIHZv
aWQqIHByZXNlcnZlZFI5OworICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKKyAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTE7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAg
Y29udGFpbmVkIHRoZSBlbnRyeSBjb2RlIHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQp
CisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisKKyAgICAv
LyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KKyAgICB2b2lkKiB1bnVzZWQx
OworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKICAgICAgICAgCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRk
cmVzczsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3Qo
KSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2VsaWYgQ1BVKEFSTV9UUkFE
SVRJT05BTCkKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21h
IHBhY2soNCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQotICAgIHN0cnVjdCBKSVRTdGFja0Zy
YW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQKLSAgICAgICAgSklU
U3R1YkFyZyBhcmdzWzddOwotCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5B
ZGRyZXNzOwotCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI0OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSNTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjY7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFI4OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKLSAgICAgICAgdm9pZCogcHJlc2Vy
dmVkUjEwOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZExpbms7Ci0KLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotCi0gICAgICAgIC8vIFRoZXNlIGFy
Z3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgotICAgICAgICB2b2lkKiB1bnVzZWQyOwotICAg
ICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7Ci0KLSAgICAgICAgLy8gV2hlbiBKSVQgY29k
ZSBtYWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0
aGUgcmVzdCBvZiB0aGUgc3RhY2suCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFk
ZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CitzdHJ1
Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQKKyAg
ICBKSVRTdHViQXJnIGFyZ3NbN107CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJu
QWRkcmVzczsKKworICAgIHZvaWQqIHByZXNlcnZlZFI0OworICAgIHZvaWQqIHByZXNlcnZlZFI1
OworICAgIHZvaWQqIHByZXNlcnZlZFI2OworICAgIHZvaWQqIHByZXNlcnZlZFI4OworICAgIHZv
aWQqIHByZXNlcnZlZFI5OworICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKKyAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTE7CisgICAgdm9pZCogcHJlc2VydmVkTGluazsKKworICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAgIHZvaWQqIHVudXNlZDE7CisKKyAgICAv
LyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KKyAgICB2b2lkKiB1bnVzZWQy
OworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKworICAgIC8vIFdoZW4gSklUIGNvZGUg
bWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhl
IHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NT
bG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQorfTsKICNpZiBDT01QSUxFUihN
U1ZDKQogI3ByYWdtYSBwYWNrKHBvcCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQogI2VsaWYg
Q1BVKE1JUFMpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJn
IHJlc2VydmVkOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAg
IEpJVFN0dWJBcmcgYXJnc1s2XTsKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIHZv
aWQqIHBhZGRpbmc7IC8vIE1ha2UgdGhlIG92ZXJhbGwgc3RhY2sgbGVuZ3RoIDgtYnl0ZSBhbGln
bmVkLgorICAgIHZvaWQqIHBhZGRpbmc7IC8vIE1ha2UgdGhlIG92ZXJhbGwgc3RhY2sgbGVuZ3Ro
IDgtYnl0ZSBhbGlnbmVkLgogI2VuZGlmCiAKLSAgICAgICAgdm9pZCogcHJlc2VydmVkR1A7IC8v
IHN0b3JlIEdQIHdoZW4gdXNpbmcgUElDIGNvZGUKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzA7
Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMxOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMjsK
LSAgICAgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVzczsKLQotICAgICAgICBSZXR1cm5B
ZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVu
dHMgcGFzc2VkIGluIGExLi5hMyAoYTAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2RlIHBvaW50ZWQs
IHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgdm9pZCogdW51c2VkMTsKLQotICAgICAg
ICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCog
dW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworICAgIHZvaWQqIHBy
ZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5nIFBJQyBjb2RlCisgICAgdm9pZCogcHJl
c2VydmVkUzA7CisgICAgdm9pZCogcHJlc2VydmVkUzE7CisgICAgdm9pZCogcHJlc2VydmVkUzI7
CisgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKworICAgIFJldHVybkFkZHJlc3NQ
dHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBp
biBhMS4uYTMgKGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBu
b3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lOworICAgIHZvaWQqIHVudXNlZDE7CiAKLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0
dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Ci0gICAgfTsK
KyAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KKyAgICB2b2lkKiB1
bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKworICAgIFJldHVybkFkZHJl
c3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsg
fQorfTsKICNlbGlmIENQVShTSDQpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAg
ICBKSVRTdHViQXJnIHBhZGRpbmc7IC8vIFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3Nb
Nl07Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7Ci0gICAg
ICAgIHZvaWQqIHNhdmVkUjEwOwotICAgICAgICB2b2lkKiBzYXZlZFIxMTsKLSAgICAgICAgdm9p
ZCogc2F2ZWRSMTM7Ci0gICAgICAgIHZvaWQqIHNhdmVkUlBSOwotICAgICAgICB2b2lkKiBzYXZl
ZFIxNDsKLSAgICAgICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOwotCi0gICAgICAgIEpTU3RhY2sq
IHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgSlNWYWx1ZSog
ZXhjZXB0aW9uOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyBwYWRk
aW5nOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07CisKKyAgICBSZXR1cm5BZGRy
ZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBzYXZlZFIxMDsKKyAgICB2b2lk
KiBzYXZlZFIxMTsKKyAgICB2b2lkKiBzYXZlZFIxMzsKKyAgICB2b2lkKiBzYXZlZFJQUjsKKyAg
ICB2b2lkKiBzYXZlZFIxNDsKKyAgICB2b2lkKiBzYXZlZFRpbWVvdXRSZWc7CisKKyAgICBKU1N0
YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICBKU1ZhbHVlKiBleGNl
cHRpb247CisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7
CiAKLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVy
biAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Ci0gICAgfTsKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiBy
ZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAj
ZWxzZQogI2Vycm9yICJKSVRTdGFja0ZyYW1lIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3Jt
LiIKICNlbmRpZgpAQCAtMjc0LDIwMiArMjY0LDE1NSBAQCBuYW1lc3BhY2UgSlNDIHsKICNkZWZp
bmUgU1RVQl9BUkdTIChhcmdzKQogCiAjaWYgQ1BVKFg4NikKLSAgICAjaWYgQ09NUElMRVIoTVNW
QykKLSAgICAjZGVmaW5lIEpJVF9TVFVCIF9fZmFzdGNhbGwKLSAgICAjZWxpZiBDT01QSUxFUihH
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKLSAg
ICAjZWxpZiBDT01QSUxFUihTVU5DQykKLSAgICAjZGVmaW5lIEpJVF9TVFVCCi0gICAgI2Vsc2UK
LSAgICAjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNhbGxzIHJlcXVpcmUgZmFzdGNhbGwgY29u
dmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUgZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJl
IGZvciB5b3VyIGNvbXBpbGVyISIKLSAgICAjZW5kaWYKKyNpZiBDT01QSUxFUihNU1ZDKQorI2Rl
ZmluZSBKSVRfU1RVQiBfX2Zhc3RjYWxsCisjZWxpZiBDT01QSUxFUihHQ0MpCisjZGVmaW5lIEpJ
VF9TVFVCICBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQorI2VsaWYgQ09NUElMRVIoU1VOQ0Mp
CisjZGVmaW5lIEpJVF9TVFVCCiAjZWxzZQotICAgICNkZWZpbmUgSklUX1NUVUIKKyNlcnJvciAi
SklUX1NUVUIgZnVuY3Rpb24gY2FsbHMgcmVxdWlyZSBmYXN0Y2FsbCBjb252ZW50aW9ucyBvbiB4
ODYsIGFkZCBhcHByb3ByaWF0ZSBkaXJlY3RpdmUvYXR0cmlidXRlIGhlcmUgZm9yIHlvdXIgY29t
cGlsZXIhIgorI2VuZGlmCisjZWxzZQorI2RlZmluZSBKSVRfU1RVQgogI2VuZGlmCiAKLSAgICBl
eHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1wb2xpbmUoKTsKLSAgICBleHRlcm4gIkMiIHZv
aWQgY3RpT3BUaHJvd05vdENhdWdodCgpOwotICAgIGV4dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUg
Y3RpVHJhbXBvbGluZSh2b2lkKiBjb2RlLCBKU1N0YWNrKiwgQ2FsbEZyYW1lKiwgdm9pZCogLyp1
bnVzZWQxKi8sIHZvaWQqIC8qdW51c2VkMiovLCBKU0dsb2JhbERhdGEqKTsKK2V4dGVybiAiQyIg
dm9pZCBjdGlWTVRocm93VHJhbXBvbGluZSgpOworZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dO
b3RDYXVnaHQoKTsKK2V4dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lk
KiBjb2RlLCBKU1N0YWNrKiwgQ2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQqIC8q
dW51c2VkMiovLCBKU0dsb2JhbERhdGEqKTsKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBleHRl
cm4gIkMiIHZvaWQgY3RpVHJhbXBvbGluZUVuZCgpOworZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKIAotICAgIGlubGluZSBib29sIHJldHVybkFkZHJlc3NJc0luQ3RpVHJhbXBv
bGluZShSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCi0gICAgewotICAgICAgICByZXR1
cm4gcmV0dXJuQWRkcmVzcy52YWx1ZSgpID49IGJpdHdpc2VfY2FzdDx2b2lkKj4oJmN0aVRyYW1w
b2xpbmUpCi0gICAgICAgICAgICAmJiByZXR1cm5BZGRyZXNzLnZhbHVlKCkgPCBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lRW5kKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGNsYXNz
IEpJVFRodW5rcyB7Ci0gICAgcHVibGljOgotICAgICAgICBKSVRUaHVua3MoSlNHbG9iYWxEYXRh
Kik7Ci0gICAgICAgIH5KSVRUaHVua3MoKTsKLQotICAgICAgICBzdGF0aWMgdm9pZCB0cnlDYWNo
ZUdldEJ5SUQoQ2FsbEZyYW1lKiwgQ29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pOwotICAg
ICAgICBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiwgQ29kZUJsb2NrKiwg
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3Qg
UHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVj
dCk7Ci0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1w
b2xpbmUoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpU3RyaW5nTGVuZ3RoVHJh
bXBvbGluZTsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxM
aW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsTGluazsg
fQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmso
KSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7
IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1
cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsOyB9Ci0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0KCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3Q7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQot
ICAgICAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2
ZV9jYWxsX3RyYW1wb2xpbmUpOwotI2VuZGlmCi0gICAgICAgICAgICByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCi0gICAgICAgIHsKLSNpZiBFTkFCTEUo
TExJTlQpCi0gICAgICAgICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKK2lubGluZSBib29sIHJldHVybkFkZHJl
c3NJc0luQ3RpVHJhbXBvbGluZShSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCit7Cisg
ICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFsdWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZj
dGlUcmFtcG9saW5lKQorICAgICAgICAmJiByZXR1cm5BZGRyZXNzLnZhbHVlKCkgPCBiaXR3aXNl
X2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lRW5kKTsKK30KICNlbmRpZgotICAgICAgICAgICAg
cmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgICAg
IH0KLQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEq
LCBUaHVua0dlbmVyYXRvcik7Ci0KLSAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0
aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29u
c3RydWN0b3IpOwotICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpT
R2xvYmFsRGF0YSosIE5hdGl2ZUZ1bmN0aW9uLCBUaHVua0dlbmVyYXRvciwgSW50cmluc2ljKTsK
LQotICAgICAgICB2b2lkIGNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKTsKLQotICAgIHByaXZhdGU6
Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxUaHVua0dlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPiBDVElTdHViTWFwOwotICAgICAgICBDVElTdHViTWFwIG1fY3RpU3R1Yk1hcDsKLSAg
ICAgICAgdHlwZWRlZiBIYXNoTWFwPE5hdGl2ZUZ1bmN0aW9uLCBXZWFrPE5hdGl2ZUV4ZWN1dGFi
bGU+ID4gSG9zdEZ1bmN0aW9uU3R1Yk1hcDsKLSAgICAgICAgT3duUHRyPEhvc3RGdW5jdGlvblN0
dWJNYXA+IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcDsKLSAgICAgICAgUmVmUHRyPEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKLQotICAgICAgICBUcmFtcG9saW5lU3Ry
dWN0dXJlIG1fdHJhbXBvbGluZVN0cnVjdHVyZTsKLSAgICB9OwogCiBleHRlcm4gIkMiIHsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXRh
bmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX2JpdG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2NhbGxfTm90SlNGdW5jdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9ldmFsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9jb25zdHJ1Y3RfTm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NoZWNr
X2hhc19pbnN0YW5jZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRlX3RoaXMoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRlX2FyZ3VtZW50cyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZGVsX2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9kaXYoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9jdXN0b21fc3R1YihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfZ2V0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0
ZXJfc3R1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2ZhaWwoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19saXN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdF9mdWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfc2VsZl9mYWlsKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9nZXRfYnlfaWRfc3RyaW5nX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWwoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2dldF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3Zh
bF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pbnN0YW5jZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc19ib29sZWFuKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfaXNfbnVtYmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2lzX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfdW5kZWZpbmVkKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9sZXNzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dyZWF0ZXIo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX2dyZWF0ZXJlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbHNoaWZ0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tb2QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX211bChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVnYXRlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9ub3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25zdHJpY3RlcShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfcG9zdF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVf
ZGVjKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJp
Y3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9yZXNvbHZlX3dpdGhfYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX3RoaXMo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBj
dGlfb3BfcHV0X3RvX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3JzaGlmdChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
c3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9zdHJpY3RlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3ViKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fcHJpbWl0aXZlKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF90eXBlb2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX3Rv
X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVj
dCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV93aXRoX3Np
emUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJ
VF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfYnVmZmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0
aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X3Jl
Z2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXNoX25hbWVfc2NvcGUoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHVzaF93aXRoX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxv
YyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yKiBKSVRfU1RVQiBjdGlfb3BfZ2V0X3BuYW1lcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3Ry
aW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NU
VUIgY3RpX29wX2psZXNzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IGludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3NlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3BfamdyZWF0ZXJl
cShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIg
Y3RpX29wX2p0cnVlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV90aW1lb3V0X2NoZWNrKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfaGFzX3By
b3BlcnR5KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklU
X1NUVUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX2VuZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9qbXBfc2NvcGVzKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9z
Y29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29w
X3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZ2VuZXJpYyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZmFpbChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9w
dXRfYnlfaWRfZGlyZWN0X2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92
YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29w
X2luaXRfZ2xvYmFsX2NvbnN0X2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FjdGl2YXRpb24oU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
dGVhcl9vZmZfYXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3Rocm93X3N0YXRpY19lcnJvcihTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9h
ZGQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdG9yKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdHhv
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9ldmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NvbnN0cnVjdF9Ob3RKU0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNf
aW5zdGFuY2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRlX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29udmVydF90aGlz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGVsX2J5X2lkKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2RlbF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZChT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9nZXRfYnlfaWRfYXJyYXlfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfY3Vz
dG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5
X2lkX2dldHRlcl9zdHViKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19saXN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90b19saXN0
X2Z1bGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
aWRfc3RyaW5nX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW4o
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19ib29sZWFuKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2lzX2Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19vYmplY3Qo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfaXNfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9sZXNzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX2xlc3NlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dyZWF0ZXJlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X211bChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9uZWdhdGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25zdHJp
Y3RlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9wb3N0X2RlYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfZGVjKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3ByZV9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9yZXNvbHZlX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlX3N0cmljdF9wdXQoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dpdGhf
YmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dpdGhfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX3JzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9zdHJjYXQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3RyaWN0ZXEoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3Bfc3ViKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3RvX2pzbnVtYmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF90eXBlb2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdXJzaGlmdChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmpl
Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX25ld19hcnJheShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5X3dpdGhfc2l6ZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3
X2FycmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2Jq
ZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jX2V4cChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3Bf
bmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfbmV3X3JlZ2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfcHVzaF9hY3RpdmF0aW9uKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHVz
aF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBK
SVRfU1RVQiBjdGlfb3BfcHVzaF93aXRoX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfdHJhbnNpdGlv
bl9yZWFsbG9jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvciogSklUX1NUVUIgY3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2VxKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0aV9vcF9lcV9zdHJpbmdz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0aV9v
cF9qbGVzcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RV
QiBjdGlfb3Bfamxlc3NlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2lu
dCBKSVRfU1RVQiBjdGlfb3BfamdyZWF0ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2p0cnVlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX2xvYWRfdmFy
YXJncyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBj
dGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2lu
dCBKSVRfU1RVQiBjdGlfaGFzX3Byb3BlcnR5KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfZGVidWcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9qbXBfc2NvcGVzKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cG9wX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRf
U1RVQiBjdGlfb3BfcHJvZmlsZV9kaWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X2lkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBj
dGlfb3BfcHV0X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJl
Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0
aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2dlbmVyaWMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9w
dXRfYnlfaW5kZXgoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2dldHRl
cl9zZXR0ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FjdGl2YXRpb24o
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9v
cF90ZWFyX29mZl9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgdm9pZCBKSVRf
U1RVQiBjdGlfb3B0aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2
b2lkIEpJVF9TVFVCIGN0aV9vcHRpbWl6ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKICNlbmRpZgotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2FyaXR5Q2hlY2so
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIg
Y3RpX29wX2NvbnN0cnVjdF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2ppdENvbXBpbGUoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29w
X2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9zd2l0Y2hfY2hhcihTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2lt
bShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3BfdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX3N0YWNrX2NoZWNrKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
dm9pZCogSklUX1NUVUIgY3RpX3ZtX2xhenlMaW5rQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92bV90aHJvdyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwordm9p
ZCogSklUX1NUVUIgY3RpX29wX2NhbGxfYXJpdHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJpdHlDaGVj
ayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0
aV9vcF9jYWxsX2ppdENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2ppdENvbXBpbGUoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2No
YXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBj
dGlfb3Bfc3dpdGNoX2ltbShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3Zv
aWQqIEpJVF9TVFVCIGN0aV9vcF9zd2l0Y2hfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX3N0YWNrX2NoZWNrKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX3Zt
X2xhenlMaW5rQ2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV90aHJvdyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogfSAvLyBleHRlcm4g
IkMiCiAKICNlbGlmIEVOQUJMRShMTElOVF9DX0xPT1ApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRUaHVua3MuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRUaHVua3MuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSklUVGh1bmtzLmgiCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5j
bHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkpJVC5oIgorI2luY2x1ZGUgIkpTR2xvYmFs
RGF0YS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0pJ
VFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICA6IG1faG9z
dEZ1bmN0aW9uU3R1Yk1hcChhZG9wdFB0cihuZXcgSG9zdEZ1bmN0aW9uU3R1Yk1hcCkpCit7Cisg
ICAgaWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9leGVjdXRhYmxlTWVtb3J5ID0gSklUOjpjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKGds
b2JhbERhdGEsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUpOworICAgIEFTU0VSVCghIW1fZXhlY3V0
YWJsZU1lbW9yeSk7CisjaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgLy8gVW5mb3J0dW5hdGUgdGhl
IGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1c2Ugb2Ygb2Zmc2V0b2Ygb24gSklUU3Rh
Y2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBPRCB0eXBlcyksCisgICAgLy8gYW5kIHRo
ZSBPQkpFQ1RfT0ZGU0VUT0YgbWFjcm8gZG9lcyBub3QgYXBwZWFyIGNvbnN0YW50aXNoIGVub3Vn
aCBmb3IgaXQgdG8gYmUgaGFwcHkgd2l0aCBpdHMgdXNlIGluIENPTVBJTEVfQVNTRVJUCisgICAg
Ly8gbWFjcm9zLgorICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19P
RkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUs
IHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURfUjRfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNSkgPT0gUFJFU0VSVkVE
X1I1X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgcHJlc2VydmVkUjYpID09IFBSRVNFUlZFRF9SNl9PRkZTRVQpOworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI3KSA9PSBQUkVT
RVJWRURfUjdfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOCkgPT0gUFJFU0VSVkVEX1I4X09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjkpID09
IFBSRVNFUlZFRF9SOV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMCkgPT0gUFJFU0VSVkVEX1IxMF9PRkZTRVQpOwor
ICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZl
ZFIxMSkgPT0gUFJFU0VSVkVEX1IxMV9PRkZTRVQpOworCisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VU
KTsKKyAgICAvLyBUaGUgZmlmdGggYXJndW1lbnQgaXMgdGhlIGZpcnN0IGl0ZW0gYWxyZWFkeSBv
biB0aGUgc3RhY2suCisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgdW51c2VkMSkgPT0gRklSU1RfU1RBQ0tfQVJHVU1FTlQpOworCisgICAgQVNTRVJUKE9C
SkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9
PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOworCisjZWxpZiBDUFUoQVJNX1RSQURJVElP
TkFMKQorCisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
dGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOworICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0
KSA9PSBQUkVTRVJWRURSNF9PRkZTRVQpOworCisKKyNlbGlmIENQVShNSVBTKQorICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZEdQKSA9PSBQ
UkVTRVJWRURfR1BfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJFU0VSVkVEX1MwX09GRlNFVCk7CisgICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzEp
ID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsK
KyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2
ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVy
bkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9C
SkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJ
TEVfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBnbG9iYWxEYXRhKSA9PSBHTE9CQUxfREFUQV9PRkZTRVQpOworCisjZW5kaWYKK30KKwor
SklUVGh1bmtzOjp+SklUVGh1bmtzKCkKK3sKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIEpJ
VFRodW5rczo6Y3RpU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFRodW5rR2VuZXJhdG9y
IGdlbmVyYXRvcikKK3sKKyAgICBDVElTdHViTWFwOjpBZGRSZXN1bHQgZW50cnkgPSBtX2N0aVN0
dWJNYXAuYWRkKGdlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCkpOworICAgIGlmIChl
bnRyeS5pc05ld0VudHJ5KQorICAgICAgICBlbnRyeS5pdGVyYXRvci0+dmFsdWUgPSBnZW5lcmF0
b3IoZ2xvYmFsRGF0YSk7CisgICAgcmV0dXJuIGVudHJ5Lml0ZXJhdG9yLT52YWx1ZTsKK30KKwor
TmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNv
bnN0cnVjdG9yKQoreworICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxl
ID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoZnVuY3Rpb24pKQorICAgICAgICByZXR1cm4g
bmF0aXZlRXhlY3V0YWJsZTsKKworICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFi
bGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmdsb2JhbERhdGEsIEpJVDo6Y29tcGlsZUNU
SU5hdGl2ZUNhbGwoZ2xvYmFsRGF0YSwgZnVuY3Rpb24pLCBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KCkp
LCBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9u
U3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1
dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKworTmF0aXZlRXhlY3V0
YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0
YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciwgSW50
cmluc2ljIGludHJpbnNpYykKK3sKKyAgICBpZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhl
Y3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAg
cmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29k
ZTsKKyAgICBpZiAoZ2VuZXJhdG9yKSB7CisgICAgICAgIGlmIChnbG9iYWxEYXRhLT5jYW5Vc2VK
SVQoKSkKKyAgICAgICAgICAgIGNvZGUgPSBnZW5lcmF0b3IoZ2xvYmFsRGF0YSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGNvZGUgPSBNYWNyb0Fzc2VtYmxlckNvZGVSZWYoKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgY29kZSA9IEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwoZ2xvYmFsRGF0
YSwgZnVuY3Rpb24pOworCisgICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9
IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgY29kZSwgZnVuY3Rpb24sIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNv
bnN0cnVjdCgpKSwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7Cisg
ICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBmdW5jdGlvbiwgUGFzc1dlYWs8TmF0
aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkpOworICAgIHJldHVybiBuYXRpdmVFeGVj
dXRhYmxlOworfQorCit2b2lkIEpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicygpCit7
CisgICAgbV9ob3N0RnVuY3Rpb25TdHViTWFwLmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUVGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRUaHVua3MuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUVGh1bmtzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSklUVGh1bmtzX2gKKyNk
ZWZpbmUgSklUVGh1bmtzX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgRU5B
QkxFKEpJVCkKKworI2luY2x1ZGUgIkNhbGxEYXRhLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgi
CisjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCisjaW5jbHVkZSAiUmVzb2x2ZU9w
ZXJhdGlvbi5oIgorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgorI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFz
cyBOYXRpdmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFs
Q29uc3RydWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBK
SVRUaHVua3NQcml2YXRlRGF0YTsKKworY2xhc3MgSklUVGh1bmtzIHsKK3B1YmxpYzoKKyAgICBK
SVRUaHVua3MoSlNHbG9iYWxEYXRhKik7CisgICAgfkpJVFRodW5rcygpOworCisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUoKSB7IHJldHVybiBtX3Ry
YW1wb2xpbmVTdHJ1Y3R1cmUuY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsgfQorICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGxMaW5rOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0
dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1
YWxDYWxsOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3Qo
KSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdDsgfQor
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkKKyAgICB7CisjaWYgRU5B
QkxFKExMSU5UKQorICAgICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKKyAgICAgICAgICAg
IHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9u
YXRpdmVfY2FsbF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNhbGw7CisgICAgfQorICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAg
ICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVy
ZS5jdGlOYXRpdmVDb25zdHJ1Y3Q7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOworCisgICAgTmF0aXZlRXhl
Y3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5jdGlvbiwg
TmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpOworICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RG
dW5jdGlvblN0dWIoSlNHbG9iYWxEYXRhKiwgTmF0aXZlRnVuY3Rpb24sIFRodW5rR2VuZXJhdG9y
LCBJbnRyaW5zaWMpOworCisgICAgdm9pZCBjbGVhckhvc3RGdW5jdGlvblN0dWJzKCk7CisKK3By
aXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPFRodW5rR2VuZXJhdG9yLCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY+IENUSVN0dWJNYXA7CisgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPE5hdGl2ZUZ1bmN0aW9uLCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+ID4g
SG9zdEZ1bmN0aW9uU3R1Yk1hcDsKKyAgICBPd25QdHI8SG9zdEZ1bmN0aW9uU3R1Yk1hcD4gbV9o
b3N0RnVuY3Rpb25TdHViTWFwOworICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBt
X2V4ZWN1dGFibGVNZW1vcnk7CisKKyAgICBUcmFtcG9saW5lU3RydWN0dXJlIG1fdHJhbXBvbGlu
ZVN0cnVjdHVyZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKKworI2VuZGlmIC8vIEpJVFRodW5rc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1RodW5rR2VuZXJhdG9yLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRodW5rR2VuZXJhdG9yX2gKKyNkZWZpbmUgVGh1bmtH
ZW5lcmF0b3JfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoSklU
KQorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjsKKwordHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dl
bmVyYXRvcikoSlNHbG9iYWxEYXRhKik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIFRodW5rR2VuZXJhdG9yX2gKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw5IEBACiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0
b3JzLmgiCiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNN
Lmg+CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNwZWNpYWxpemVkVGh1bmtK
SVQuaCIKKyNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSW1wbC5oPgogCiAjaWYgRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MjYgKzI2LDI0IEBACiAjaWZuZGVmIFRodW5rR2VuZXJhdG9yc19oCiAjZGVmaW5lIFRodW5rR2Vu
ZXJhdG9yc19oCiAKKyNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgorCiAjaWYgRU5BQkxFKEpJ
VCkKIG5hbWVzcGFjZSBKU0MgewotICAgIGNsYXNzIEV4ZWN1dGFibGVQb29sOwotICAgIGNsYXNz
IEpTR2xvYmFsRGF0YTsKLSAgICBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOwotICAgIGNsYXNzIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjsKIAotICAgIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
ICgqVGh1bmtHZW5lcmF0b3IpKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBjaGFyQ29kZUF0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3IoSlNH
bG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5l
cmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZsb29yVGh1
bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiByb3VuZFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBzcXJ0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQXRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsK
K01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0ds
b2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsb2dUaHVua0dlbmVyYXRvcihKU0ds
b2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihK
U0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBwb3dUaHVua0dlbmVyYXRvcihK
U0dsb2JhbERhdGEqKTsKKwogfQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogI2Vu
ZGlmIC8vIFRodW5rR2VuZXJhdG9yX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsRGF0YS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKICNpbmNs
dWRlICJKSVRTdHVicy5oIgorI2luY2x1ZGUgIkpJVFRodW5rcy5oIgogI2luY2x1ZGUgIkpTTG9j
ay5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>