<?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>179688</bug_id>
          
          <creation_ts>2017-11-14 12:57:43 -0800</creation_ts>
          <short_desc>Remove Cocoa CFURLConnection loading code</short_desc>
          <delta_ts>2018-04-27 21:09:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=185105</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1371532</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 12:57:43 -0800</bug_when>
    <thetext>Remove Cocoa CFURLConnection loading code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371533</commentid>
    <comment_count>1</comment_count>
      <attachid>326912</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 12:59:06 -0800</bug_when>
    <thetext>Created attachment 326912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371546</commentid>
    <comment_count>2</comment_count>
      <attachid>326916</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 13:29:23 -0800</bug_when>
    <thetext>Created attachment 326916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371570</commentid>
    <comment_count>3</comment_count>
      <attachid>326916</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-14 14:17:26 -0800</bug_when>
    <thetext>Comment on attachment 326916
Patch

finally! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371574</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 14:20:59 -0800</bug_when>
    <thetext>http://trac.webkit.org/r224846</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373232</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-17 13:04:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/35621929&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326912</attachid>
            <date>2017-11-14 12:59:06 -0800</date>
            <delta_ts>2017-11-14 13:29:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179688-20171114125906.patch</filename>
            <type>text/plain</type>
            <size>93762</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ4MjIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTExLTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENvY29hIENGVVJMQ29u
bmVjdGlvbiBsb2FkaW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd3RmL1NjaGVkdWxlUGFpci5oOgorICAgICAgICAqIHd0Zi9TY2hlZHVs
ZVBhaXJNYWMubW06CisKIDIwMTctMTEtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1hc3NpdmUgIlNlcnZlci1wcm9jZXNzLXRvLWNvbnRleHQtcHJvY2Vz
cyIgY29ubmVjdGlvbiBvdmVyaGF1bC4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFp
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpci5oCShyZXZpc2lv
biAyMjQ3NTcpCisrKyBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBhaXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
ICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFT
UyBOU1J1bkxvb3A7CiAjZW5kaWYKIApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTY2hlZHVsZVBh
aXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTY2hlZHVs
ZVBhaXI+IGNyZWF0ZShDRlJ1bkxvb3BSZWYgcnVuTG9vcCwgQ0ZTdHJpbmdSZWYgbW9kZSkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTY2hlZHVsZVBhaXIocnVuTG9vcCwgbW9kZSkpOyB9CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgc3RhdGljIFJlZjxTY2hlZHVsZVBhaXI+IGNyZWF0ZShOU1J1bkxvb3AqIHJ1
bkxvb3AsIENGU3RyaW5nUmVmIG1vZGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2NoZWR1bGVQ
YWlyKHJ1bkxvb3AsIG1vZGUpKTsgfQogICAgIE5TUnVuTG9vcCogbnNSdW5Mb29wKCkgY29uc3Qg
eyByZXR1cm4gbV9uc1J1bkxvb3AuZ2V0KCk7IH0KICNlbmRpZgpAQCAtNjIsNyArNjIsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgbV9tb2RlID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZUNvcHko
MCwgbW9kZSkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJMQ09O
TkVDVElPTikKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU2No
ZWR1bGVQYWlyKE5TUnVuTG9vcCosIENGU3RyaW5nUmVmKTsKICAgICBSZXRhaW5QdHI8TlNSdW5M
b29wKj4gbV9uc1J1bkxvb3A7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxl
UGFpck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBhaXJNYWMu
bW0JKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpck1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlNjaGVkdWxlUGFpci5oIgogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0K
IG5hbWVzcGFjZSBXVEYgewogCiBTY2hlZHVsZVBhaXI6OlNjaGVkdWxlUGFpcihOU1J1bkxvb3Aq
IHJ1bkxvb3AsIENGU3RyaW5nUmVmIG1vZGUpCkBAIC00Miw1ICs0MCwzIEBAIFNjaGVkdWxlUGFp
cjo6U2NoZWR1bGVQYWlyKE5TUnVuTG9vcCogcnUKIH0KIAogfSAvLyBuYW1lc3BhY2UKLQotI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ4MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw4NSBAQAorMjAxNy0xMS0xNCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92
ZSBDb2NvYSBDRlVSTENvbm5lY3Rpb24gbG9hZGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDRlVSTENvbm5lY3Rpb24gaXMgb25seSB1c2Vk
IG9uIHRoZSBBcHBsZVdpbiBwb3J0IG5vdy4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogU291cmNlc0lPUy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2YvUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHA6CisgICAgICAgICogbG9hZGVy
L2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW06CisgICAgICAgICogbG9hZGVyL21hYy9E
b2N1bWVudExvYWRlck1hYy5jcHA6CisgICAgICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRl
ck1hYy5tbToKKyAgICAgICAgKiBwYWdlL21hYy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFk
ZFNjaGVkdWxlUGFpcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpyZW1vdmVTY2hlZHVsZVBh
aXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V2ViQ29yZU5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQ6OldlYkNv
cmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VC
YXNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDRik6CisgICAgICAgIChXZWJDb3JlOjpjb3Jl
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9B
dXRoZW50aWNhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVK
YXJDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5Q29va2llc0ZvclVSTFdpdGhGaXJz
dFBhcnR5VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvb2tpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0ZW50U3RvcmFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcjo6c2V0Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcjo6cGxhdGZvcm1MYXp5SW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUVycm9yOjpkb1BsYXRmb3JtSXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlRXJyb3I6OmNmRXJyb3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6c2V0dXBSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6Omluc3RhbGxIb29rVG9SZW1vdmVDRk5ldHdvcmtNZXNzYWdlQmxv
Y2tpbmdNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OnNldHVwQ29ubmVjdGlvblNjaGVk
dWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWU6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNhblJlc3Bv
bmRUb1Byb3RlY3Rpb25TcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9D
cmVkZW50aWFsQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsOjpjZkNyZWRl
bnRpYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2Ev
UHJvdGVjdGlvblNwYWNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2U6OmNmU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Q6Om5zVVJMUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Q6OmNsZWFyT3JVcGRhdGVOU1VSTFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25z
ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VIYW5k
bGVJT1MubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVu
dGljYXRpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTo6YXV0aGVudGljYXRpb25DbGllbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6bWFjKToK
KyAgICAgICAgKC1bV2ViQ29yZUF1dGhlbnRpY2F0aW9uQ2xpZW50QXNDaGFsbGVuZ2VTZW5kZXIg
c2V0Q0ZDaGFsbGVuZ2U6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkNvcmVBdXRoZW50aWNh
dGlvbkNsaWVudEFzQ2hhbGxlbmdlU2VuZGVyIGNmQ2hhbGxlbmdlXSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpzeW5jaHJvbm91c1dpbGxTZW5kUmVxdWVzdEVuYWJsZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbTogUmVtb3ZlZC4KKwog
MjAxNy0xMS0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIENsZWFuIHVwIG9sZCBVUkwgcGFyc2VyIHJlbW5hbnRzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTQ0MSwxNiArNDQxLDEwIEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCiAKLSAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1
dGhlbnRpY2F0aW9uQ0YuY3BwCi0gICAgcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVKYXJDRk5l
dC5jcHAKLSAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHAKLSAg
ICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCiAgICAgcGxh
dGZvcm0vbmV0d29yay9jZi9ETlNDRk5ldC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL0Zv
cm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCi0gICAgcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5M
b29wQ0YuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwCi0g
ICAgcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwCiAgICAgcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAkocmV2aXNpb24gMjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtODcsOCArODcsNiBAQCBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lX
ZWJBcmNoaXZlTWFjLm1tCiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCiBs
b2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogCi1sb2FkZXIvY2YvUmVzb3Vy
Y2VMb2FkZXJDRk5ldC5jcHAKLQogbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAKIGxv
YWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KIGxvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJN
YWMubW0KQEAgLTMxNSwxNiArMzEzLDEwIEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b1RyYWNrUHJpdmEKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2su
Y3BwCiBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcAogCi1wbGF0Zm9y
bS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3BwCi1wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nv
b2tpZUphckNGTmV0LmNwcAotcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQu
Y3BwCi1wbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcAogcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0
YVN0cmVhbUNGTmV0LmNwcAotcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3Bw
CiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAogcGxh
dGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAotcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUVycm9yQ0YuY3BwCiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dENGTmV0LmNwcAogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3Bw
CiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKQEAg
LTM3OCwxMCArMzcwLDYgQEAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UAogCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2Nv
YS5jcHAKIAotcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAotcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmNwcAotCi0KICNpZiBFTkFCTEVfQVBQTEVfUEFZCiAKICAgICBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcApJbmRleDogU291cmNlL1dlYkNv
cmUvU291cmNlc0lPUy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlc0lP
Uy50eHQJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNJT1MudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDYgQEAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cgogCiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9OZXR3b3JrU3RhdGVO
b3RpZmllcklPUy5tbQogcGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0NvbnZlcnRlci5tbQot
cGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VIYW5kbGVJT1MubW0KIHBsYXRmb3JtL25ldHdv
cmsvaW9zL1Jlc291cmNlUmVxdWVzdElPUy5tbQogcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29y
ZVVSTFJlc3BvbnNlSU9TLm1tCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtNjU0LDcgKzY1NCw2IEBACiAJCTI2Qjk5OTkxMTgwM0IzQzkwMEQwMTEyMSAvKiBTdGFja0Fs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjZCOTk5OTAxODAzQjNDOTAwRDAxMTIxIC8qIFN0YWNrQWxsb2NhdG9yLmggKi87IH07CiAJCTI2
Qjk5OTkzMTgwM0I5RDkwMEQwMTEyMSAvKiBGdW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2Qjk5OTkyMTgwM0I5RDkwMEQwMTEyMSAv
KiBGdW5jdGlvbkNhbGwuaCAqLzsgfTsKIAkJMjZCOTk5OTcxODA0RDU0MjAwRDAxMTIxIC8qIFNl
bGVjdG9yQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2Qjk5OTk1MTgwNEQ1NDIwMEQwMTEyMSAvKiBTZWxlY3RvckNvbXBpbGVyLmggKi87
IH07Ci0JCTI2QzE1Q0Y3MTg1N0UxNUUwMEYxNUMwMyAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkMxNUNGNTE4NTdFMTVEMDBGMTVDMDMgLyogUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oICov
OyB9OwogCQkyNkU5NDREOTFBQzRCMkREMDA3Qjg1QjUgLyogQ29tYmluZWRVUkxGaWx0ZXJzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkU5NDRENTFB
QzRCMkREMDA3Qjg1QjUgLyogQ29tYmluZWRVUkxGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1
IC8qIFRlcm0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2RTk0NERDMUFDNEI0RUEwMDdCODVCNSAvKiBUZXJtLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjZFOThBMTAxMzBBOUZDQTAwOEVCN0IyIC8q
IFRleHRDb2RlY0FTQ0lJRmFzdFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2RTk4QTBGMTMwQTlGQ0EwMDhFQjdCMiAvKiBUZXh0Q29kZWNBU0NJ
SUZhc3RQYXRoLmggKi87IH07CkBAIC02NjgsOCArNjY3LDYgQEAKIAkJMjZGNzU2QjUxQjNCNjhG
MjAwMDVERDc5IC8qIEltbXV0YWJsZU5GQU5vZGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY3NTZCNDFCM0I2OEYyMDAwNURENzkgLyog
SW1tdXRhYmxlTkZBTm9kZUJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkyNkY5QTgzODE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRD
b25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2RjlBODM2MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRpb24u
Y3BwICovOyB9OwogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NkY5QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMjZGQUU0Q0MxODUy
RTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGQUU0Qzgx
ODUyRTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
Y3BwICovOyB9OwotCQkyNkZBRTRDRDE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjZGQUU0QzkxODUyRTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaCAqLzsgfTsKIAkJMjkxNEUzMDgxQ0FCNUE0NDAwNDk5
NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTE0RTMwNjFDQUI1QTQ0MDA0OTk2NkYgLyogQWNjZXNz
aWJpbGl0eUF0dGFjaG1lbnQuaCAqLzsgfTsKIAkJMjkxN0I1NjIxNDczNDk2QzAwNTJDOUQwIC8q
IExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTdCNTVGMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MjkxN0I1NjMxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTdCNTYwMTQ3
MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIxMzUsMTAgKzIxMzIsOCBA
QAogCQk3RUEzMEY2QTE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUEz
MEY2ODE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggKi87
IH07CiAJCTdFQTMwRjZBMTdFRkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVQVlJUQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0VBMzBGNjgxN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
LmggKi87IH07CiAJCTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9y
Q29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
REFBRkM4MTlBMkNCRDEwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3RUU2ODQ2MDEyRDI2
RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NEQxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhl
bnRpY2F0aW9uQ0YuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3RUU2ODQ2MTEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4
NDRFMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDY3MTJEMjZF
MzgwMEU3OTQxNSAvKiBGb3JtRGF0YVN0cmVhbUNGTmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1NDEyRDI2RTM4MDBFNzk0MTUgLyogRm9y
bURhdGFTdHJlYW1DRk5ldC5oICovOyB9OwotCQk3RUU2ODQ2OTEyRDI2RTM4MDBFNzk0MTUgLyog
TG9hZGVyUnVuTG9vcENGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RUU2ODQ1NjEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmggKi87
IH07CiAJCTdFRTY4NDZBMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUVycm9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1NzEyRDI2RTM4
MDBFNzk0MTUgLyogUmVzb3VyY2VFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDZEMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJj
ZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFRTY4NDVBMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RUU2ODQ2RjEyRDI2RTM4
MDBFNzk0MTUgLyogUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVDMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNv
dXJjZVJlcXVlc3RDRk5ldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC02MTIwLDggKzYxMTUsNiBAQAogCQkyNkI5OTk5MjE4MDNCOUQ5MDBEMDEx
MjEgLyogRnVuY3Rpb25DYWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZ1
bmN0aW9uQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkI5OTk5NDE4MDRE
NTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTZWxlY3RvckNvbXBpbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjZCOTk5OTUxODA0RDU0MjAwRDAxMTIxIC8qIFNlbGVjdG9yQ29tcGlsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VsZWN0b3JDb21waWxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyNkMxNUNGNDE4NTdFMTVEMDBGMTVDMDMgLyog
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMjZDMTVDRjUxODU3RTE1RDAwRjE1QzAzIC8qIFJlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NkQ0RTg0NTFCNDI1MzlEMDBFMDMzQTIgLyogREZBTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBERkFOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjZFOTQ0RDQxQUM0QjJERDAwN0I4NUI1IC8qIENvbWJpbmVkVVJMRmlsdGVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21iaW5lZFVSTEZpbHRlcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkU5NDRENTFBQzRCMkREMDA3Qjg1
QjUgLyogQ29tYmluZWRVUkxGaWx0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbWJpbmVkVVJMRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjE0MSw4ICs2MTM0LDYgQEAKIAkJMjZGNzU2QjQxQjNCNjhGMjAwMDVERDc5IC8qIEltbXV0YWJs
ZU5GQU5vZGVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltbXV0
YWJsZU5GQU5vZGVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RjlB
ODM2MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGOUE4MzcxOEEwNDZBQzAwQUVCODhBIC8q
IFZpZXdwb3J0Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWV3cG9ydENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MjZGQUU0QzgxODUyRTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTI2RkFFNEM5MTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjkxNEUzMDUxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRh
Y2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxNEUz
MDYxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXll
ckZsdXNoU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExheWVyRmx1c2hTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NzU3NCw3ICs3NTY1LDYgQEAKIAkJNTE0Qzc2NDUwQ0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRh
U3RyZWFtTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9y
bURhdGFTdHJlYW1NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjQ2
MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VFcnJvck1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDcwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFu
ZGxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3Vy
Y2VIYW5kbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNEM3NjQ5MENF
OTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjU4MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFs
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcmVkZW50aWFs
QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjU5MENFOTIzQTEw
MDdFRjNDRCAvKiBDcmVkZW50aWFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyZWRlbnRpYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NUEwQ0U5
MjNBMTAwN0VGM0NEIC8qIEZvcm1EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZvcm1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTky
NzksNyArOTI2OSw2IEBACiAJCTdDRkRDNTdCMUFDMUQ4MDUwMEUyNEE1NyAvKiBDb250ZW50RXh0
ZW5zaW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEV4
dGVuc2lvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdENEM5NkQ4MUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoSGVhZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdENEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZldGNoSGVhZGVycy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk3RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3Vy
Y2VIYW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBS
ZXNvdXJjZUhhbmRsZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NkY2
RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMgLyog
SlNPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTT0VTRWxlbWVudEluZGV4VWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
RTQ3NEUxQjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlckNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMxMywyNSArOTMwMiwxNSBA
QAogCQk3RUEzMEY2ODE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUEzMEY2ODE3RUZG
RTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
N0VFNjg0NEMxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DRi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdFRTY4NDREMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRo
ZW50aWNhdGlvbkNGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRp
Y2F0aW9uQ0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NEUxMkQyNkUz
ODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTdFRTY4NDRGMTJEMjZFMzgwMEU3OTQxNSAvKiBDb29raWVKYXJDRk5l
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29raWVKYXJDRk5l
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdFRTY4NDUwMTJEMjZFMzgwMEU3
OTQxNSAvKiBDb29raWVTdG9yYWdlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ29va2llU3RvcmFnZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJN0VFNjg0NTIxMkQyNkUzODAwRTc5NDE1IC8qIENyZWRlbnRpYWxTdG9yYWdlQ0ZO
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3JlZGVudGlhbFN0
b3JhZ2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDUzMTJE
MjZFMzgwMEU3OTQxNSAvKiBGb3JtRGF0YVN0cmVhbUNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1NDEyRDI2RTM4MDBFNzk0MTUgLyogRm9ybURhdGFT
dHJlYW1DRk5ldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YVN0
cmVhbUNGTmV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdFRTY4NDU1MTJEMjZF
MzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTG9hZGVyUnVuTG9vcENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJN0VFNjg0NTYxMkQyNkUzODAwRTc5NDE1IC8qIExvYWRlclJ1bkxvb3BDRi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkZXJSdW5Mb29wQ0YuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NTcxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291
cmNlRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VFcnJv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3RUU2ODQ1ODEyRDI2RTM4MDBFNzk0
MTUgLyogUmVzb3VyY2VFcnJvckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlc291cmNlRXJyb3JDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTdFRTY4NDU5MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1QTEyRDI2RTM4MDBFNzk0MTUg
LyogUmVzb3VyY2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1QjEy
RDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1QzEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3Vy
Y2VSZXF1ZXN0Q0ZOZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3Vy
Y2VSZXF1ZXN0Q0ZOZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NUQx
MkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlUmVzcG9u
c2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdFRTY4NDc0MTJEMjZF
NzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaEJvZHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTEg
LyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGZXRjaEJvZHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE2NTAxLDcgKzE2NDgwLDYgQEAKIAkJCQlBMUMxNTA3ODFFM0YyQjNF
MDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oICovLAogCQkJCUExQzE1MDc3MUUzRjJCM0Uw
MDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovLAogCQkJCUExMERCRjQ2MThGOTIzMTcw
MDBENzBDNiAvKiBQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8sCi0JCQkJN0U0MjhDRTQxM0UzNDA3
RjAwM0I2NjFDIC8qIFJlc291cmNlSGFuZGxlSU9TLm1tICovLAogCQkJCTdFN0RFMjAxMTk1Q0VG
Q0QwMDM1MzYzQiAvKiBSZXNvdXJjZVJlcXVlc3RJT1MubW0gKi8sCiAJCQkJNDRBMjBEQjgwRjg0
MTY2QzAwQjNFMUZFIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5oICovLAogCQkJCTQ0NEQ0RTIx
MEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8sCkBAIC0xODI0
Miw3ICsxODIyMCw2IEBACiAJCQkJMUE3RkE2NDcwRERBM0NCQTAwMjhGOEE1IC8qIE5ldHdvcmtT
dGF0ZU5vdGlmaWVyTWFjLmNwcCAqLywKIAkJCQk1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyog
UmVzb3VyY2VFcnJvck1hYy5tbSAqLywKIAkJCQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyog
UmVzb3VyY2VIYW5kbGVNYWMubW0gKi8sCi0JCQkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8q
IFJlc291cmNlUmVxdWVzdE1hYy5tbSAqLywKIAkJCQlFMTgwODExNDE2RkNGOUNCMDBCODBEMDcg
LyogU3luY2hyb25vdXNMb2FkZXJDbGllbnQubW0gKi8sCiAJCQkJMUZBRkJGMTYxNUE1RkE1MjAw
MDgzQTIwIC8qIFVUSVV0aWxpdGllcy5oICovLAogCQkJCTFGQUZCRjE3MTVBNUZBNTIwMDA4M0Ey
MCAvKiBVVElVdGlsaXRpZXMubW0gKi8sCkBAIC0xOTA3MiwxNCArMTkwNDksNiBAQAogCQkJcGF0
aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJN0VFNjg0NzMx
MkQyNkU1NTAwRTc5NDE1IC8qIGNmICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGls
ZHJlbiA9ICgKLQkJCQk3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJD
Rk5ldC5jcHAgKi8sCi0JCQkpOwotCQkJcGF0aCA9IGNmOwotCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKLQkJfTsKIAkJODMyMTUwNzkxRjI3RTk2QjAwOTVCMTM2IC8qIGJlYWNvbiAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMjg1NSwyNyArMjI4MjQs
MTQgQEAKIAkJQjJGMzRGRTcwRTgyRjgxNzAwRjYyN0NEIC8qIGNmICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUg
LyogQXV0aGVudGljYXRpb25DRi5jcHAgKi8sCi0JCQkJN0VFNjg0NEQxMkQyNkUzODAwRTc5NDE1
IC8qIEF1dGhlbnRpY2F0aW9uQ0YuaCAqLywKIAkJCQk3RUU2ODQ0RTEyRDI2RTM4MDBFNzk0MTUg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLywKIAkJCQk1RjJEQkJFODE3OEUzMzY5MDAx
NDE0ODYgLyogQ2VydGlmaWNhdGVJbmZvLmggKi8sCi0JCQkJN0VFNjg0NEYxMkQyNkUzODAwRTc5
NDE1IC8qIENvb2tpZUphckNGTmV0LmNwcCAqLywKLQkJCQk3RUU2ODQ1MDEyRDI2RTM4MDBFNzk0
MTUgLyogQ29va2llU3RvcmFnZUNGTmV0LmNwcCAqLywKLQkJCQk3RUU2ODQ1MjEyRDI2RTM4MDBF
Nzk0MTUgLyogQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAgKi8sCiAJCQkJQjJGMzRGRTgwRTgy
RjgyNzAwRjYyN0NEIC8qIEROU0NGTmV0LmNwcCAqLywKIAkJCQk3RUU2ODQ1MzEyRDI2RTM4MDBF
Nzk0MTUgLyogRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAgKi8sCiAJCQkJN0VFNjg0NTQxMkQyNkUz
ODAwRTc5NDE1IC8qIEZvcm1EYXRhU3RyZWFtQ0ZOZXQuaCAqLywKLQkJCQk3RUU2ODQ1NTEyRDI2
RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmNwcCAqLywKLQkJCQk3RUU2ODQ1NjEyRDI2
RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmggKi8sCiAJCQkJRTEzRUYzNDcxNjg1MEM0
NzAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCAqLywKIAkJCQkxQUY4
RTFDMTEyNTY3M0UwMDAyMzBGRjcgLyogUHJveHlTZXJ2ZXJDRk5ldC5jcHAgKi8sCiAJCQkJN0VF
Njg0NTcxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlRXJyb3IuaCAqLywKLQkJCQk3RUU2ODQ1
ODEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VFcnJvckNGLmNwcCAqLywKLQkJCQk3RUU2ODQ1
OTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgKi8sCi0JCQkJMjZG
QUU0QzgxODUyRTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGUuY3BwICovLAotCQkJCTI2RkFFNEM5MTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmggKi8sCi0JCQkJMjZDMTVDRjQxODU3RTE1RDAw
RjE1QzAzIC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWUuY3BwICovLAotCQkJCTI2QzE1Q0Y1MTg1N0UxNUQwMEYxNUMwMyAvKiBSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmggKi8sCiAJ
CQkJN0VFNjg0NUExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJ
CTdFRTY4NDVCMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgKi8s
CiAJCQkJN0VFNjg0NUMxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdENGTmV0Lmgg
Ki8sCkBAIC0yMzI1Nyw3ICsyMzIxMyw2IEBACiAJCQkJMUE4RjZCQjAwREI1NUNEQzAwMURCNzk0
IC8qIGFwcGNhY2hlICovLAogCQkJCTUxMkREOEU4MEQ5MUU2OTEwMDBGODlFRSAvKiBhcmNoaXZl
ICovLAogCQkJCUE4RDJCMjUyMTI4N0E1NjAwMEFGNEREQSAvKiBjYWNoZSAqLywKLQkJCQk3RUU2
ODQ3MzEyRDI2RTU1MDBFNzk0MTUgLyogY2YgKi8sCiAJCQkJN0U0REUxMEIxOThCMTA4MTAwNTFD
QjAyIC8qIGNvY29hICovLAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICov
LAogCQkJCUExNUUzMUYwMUUwQ0IwNzUwMDRCMzcxQyAvKiBpb3MgKi8sCkBAIC0yNjA5MSw3ICsy
NjA0Niw2IEBACiAJCQkJMDdDMDQ2QzgxRTQyNTE1NTAwNzIwMUU3IC8qIEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW1Db2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMDQ2QzgxRTQyNTE1
NTAwNzIwMUU3IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQzMTYwOEIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3RUU2ODQ2MDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGlj
YXRpb25DRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8q
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBE
NUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMTI0NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxNDAsNyArMjgwOTQsNiBAQAogCQkJCUUzQjJGMEVF
MUQ3RjRDQTkwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc1OUU5NDkxNEVGMUQ0OTAwMjZBMkREIC8qIExvYWRhYmxlVGV4dFRyYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzczMjBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdFRTY4NDY5MTJEMjZFMzgwMEU3OTQxNSAvKiBM
b2FkZXJSdW5Mb29wQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTY4MjEwMTYzODczMDIwMDNC
QkYzQyAvKiBMb2FkZXJTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEExMkUzNUQxMUZB
MzMyODAwMjU4MzZBIC8qIExvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2RTgxRUQ3
MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjg3NzYsOCArMjg3MjksNiBAQAogCQkJCTdFRTY4NDZBMTJEMjZFMzgwMEU3
OTQxNSAvKiBSZXNvdXJjZUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQzBENUE2
RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
NEM3Njc5MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMjZGQUU0Q0QxODUyRTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTI2QzE1Q0Y3MTg1N0UxNUUwMEYx
NUMwMyAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3QTBDRTkyM0ExMDA3RUYzQ0QgLyog
UmVzb3VyY2VIYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3NjdCMENFOTIz
QTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NTZEMzczRjBBREJBNURFMDBBNDU1NEQgLyogUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzAzMjQsNyArMzAyNzUsNiBAQAogCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZE
RiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0RBMjlBMzAxQ0JGNzRENDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMTYxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTI2RkFFNENDMTg1
MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTMxNkRDQjhBMUU3QTY5OTYwMDFCNUY4NyAvKiBSVENJY2VU
cmFuc3BvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1MTE1NkUxMkIxNzQ5QzAwQzk2NzU0
IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjg2OUYwRTg0
NEU5RDAwQTg1Q0Q1IC8qIFNjcm9sbGJhclRoZW1lTWFjLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2aXNpb24gMjI0NzU4KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDcgKzUzLDcgQEAKICNpbmNsdWRlIDx3dGYvUnVuTG9vcFRpbWVyLmg+CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CiAjZW5kaWYKIApAQCAt
MTU2LDcgKzE1Niw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRpdGxl
KGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mKTsKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRl
RW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlRW5jb2Rpbmc7IH0KIAotI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBQTEFURk9STShDT0NP
QSkKICAgICB2b2lkIHNjaGVkdWxlKFNjaGVkdWxlUGFpciYpOwogICAgIHZvaWQgdW5zY2hlZHVs
ZShTY2hlZHVsZVBhaXImKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5RnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xODgsNyArMTg4LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNs
aQogICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKndpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZywgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHJlc3BvbnNlOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTikg
JiYgVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGJv
b2wgc2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQgbG9u
ZyBsb25nKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDIyNDc1NykKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMDAsNyArMzAwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTlNEaWN0aW9uYXJ5ICpkYXRh
RGV0ZWN0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oV0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFVTRShDRlVSTENPTk5FQ1RJ
T04pCiAgICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIHVzZSB3aWxsQ2FjaGVSZXNwb25zZSAt
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNTc+LgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQg
Y2hhciogZGF0YSwgdW5zaWduZWQgbG9uZyBsb25nIGxlbmd0aCkgPSAwOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDIyNDc1
NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc2Miw3ICs3NjIsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWNlaXZlZENh
bmNlbGxhdGlvCiAgICAgY2FuY2VsKCk7CiB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVT
RShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0oQ09DT0EpCiAKIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGFpciYgcGFpcikKIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDcgKzEz
Nyw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IExvYWRUaW1pbmcmIGxvYWRUaW1pbmcoKSB7IHJl
dHVybiBtX2xvYWRUaW1pbmc7IH0KIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJM
Q09OTkVDVElPTikKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNjaGVkdWxlKFdURjo6
U2NoZWR1bGVQYWlyJik7CiAgICAgdm9pZCB1bnNjaGVkdWxlKFdURjo6U2NoZWR1bGVQYWlyJik7
CiAjZW5kaWYKQEAgLTE1NywxMiArMTU3LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4mJiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwog
Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOwogI2VuZGlmCi0j
aWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNlbmRSZXF1ZXN0SW50ZXJuYWwoUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VS
ZXF1ZXN0JiYpPiYmKTsKIApAQCAtMjAyLDcgKzE5OSw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0
aWVzKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAjZW5kaWYKLSNpZiBQTEFURk9STShXSU4p
ICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICAv
LyBGSVhNRTogV2luZG93cyBzaG91bGQgdXNlIHdpbGxDYWNoZVJlc3BvbnNlIC0gPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzI1Nz4uCiAgICAgYm9vbCBzaG91bGRD
YWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3Zl
cnJpZGU7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5oCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTIgKzc2LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZXRyaWV2ZURlcml2ZWREYXRhRnJvbUNhY2hlKGNvbnN0IFN0cmluZyYgdHlwZSwg
U2hhcmVkQnVmZmVyJikgb3ZlcnJpZGU7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShD
RlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNDYWNoZWRVUkxSZXNw
b25zZSAqd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3Bv
bnNlKikgb3ZlcnJpZGU7CiAjZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKENGVVJM
Q09OTkVDVElPTikKLSAgICBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Ci0jZW5k
aWYKIAogICAgIHZvaWQgcmVsZWFzZVJlc291cmNlcygpIG92ZXJyaWRlOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2YvUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1Jlc291cmNlTG9hZGVyQ0ZOZXQuY3BwCShyZXZp
c2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2YvUmVzb3VyY2VMb2FkZXJD
Rk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwxMiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAKLSNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQotCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBQTEFURk9STShXSU4pCisj
aWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogCiBib29sIFJlc291cmNl
TG9hZGVyOjpzaG91bGRDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkKIHsKQEAgLTQ4LDUgKzQ2LDMgQEAgYm9vbCBSZXNv
dXJjZUxvYWRlcjo6c2hvdWxkQ2FjaGVSZXNwb25zZQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5t
bQkocmV2aXNpb24gMjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJl
c291cmNlTG9hZGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDE4ICszNSw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0KLUNGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9u
c2UpCi17Ci0gICAgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVh
dGlvbihyZXF1ZXN0KCksIG1fcmVzb3VyY2UtPnNlc3Npb25JRCgpLCBjYWNoZWRSZXNwb25zZSk7
Ci0gICAgaWYgKCFtX3Jlc291cmNlLT5zaG91bGRDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVz
cG9uc2VHZXRXcmFwcGVkUmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UpKSkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZSho
YW5kbGUsIGNhY2hlZFJlc3BvbnNlKTsKLX0KLQotI2Vsc2UKLQogTlNDYWNoZWRVUkxSZXNwb25z
ZSogU3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKQogewogICAgIERpc2tDYWNoZU1v
bml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24ocmVxdWVzdCgpLCBtX3Jlc291
cmNlLT5zZXNzaW9uSUQoKSwgW3Jlc3BvbnNlIF9DRkNhY2hlZFVSTFJlc3BvbnNlXSk7CkBAIC01
NSw2ICs0Myw0IEBAIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIFN1YnJlc291cmNlTG9hZGVyOjoKICAg
ICByZXR1cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9u
c2UpOwogfQogCi0jZW5kaWYKLQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9E
b2N1bWVudExvYWRlck1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw4ICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFVU0UoQ0ZVUkxD
T05ORUNUSU9OKQotCiBzdGF0aWMgdm9pZCBzY2hlZHVsZUFsbChjb25zdCBSZXNvdXJjZUxvYWRl
ck1hcCYgbG9hZGVycywgU2NoZWR1bGVQYWlyJiBwYWlyKQogewogICAgIGZvciAoYXV0byYgbG9h
ZGVyIDogY29weVRvVmVjdG9yKGxvYWRlcnMudmFsdWVzKCkpKQpAQCAtNjUsNiArNjMsNCBAQCB2
b2lkIERvY3VtZW50TG9hZGVyOjp1bnNjaGVkdWxlKFNjaGVkdWxlCiAgICAgdW5zY2hlZHVsZUFs
bChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiB9CiAKLSNlbmRpZgotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jl
c291cmNlTG9hZGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvUmVzb3VyY2VMb2FkZXJNYWMubW0JKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMx
LDI0ICszMSw5IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVkZSA8cGFs
L3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNF
KENGVVJMQ09OTkVDVElPTikKLQotQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBSZXNvdXJjZUxvYWRl
cjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNl
UmVmIGNhY2hlZFJlc3BvbnNlKQotewotICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFj
a3MgPT0gRG9Ob3RTZW5kQ2FsbGJhY2tzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IFJldGFpblB0cjxOU0NhY2hlZFVSTFJlc3BvbnNlPiBuc0NhY2hlZFJlc3BvbnNlID0gYWRvcHRO
UyhbW05TQ2FjaGVkVVJMUmVzcG9uc2UgYWxsb2NdIF9pbml0V2l0aENGQ2FjaGVkVVJMUmVzcG9u
c2U6Y2FjaGVkUmVzcG9uc2VdKTsKLSAgICByZXR1cm4gW2ZyYW1lTG9hZGVyKCktPmNsaWVudCgp
LndpbGxDYWNoZVJlc3BvbnNlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgbnNDYWNo
ZWRSZXNwb25zZS5nZXQoKSkgX0NGQ2FjaGVkVVJMUmVzcG9uc2VdOwotfQotCi0jZWxzZQotCiBO
U0NhY2hlZFVSTFJlc3BvbnNlKiBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVz
b3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkKIHsKICAgICBpZiAo
bV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IERvTm90U2VuZENhbGxiYWNrcykKQEAgLTU2
LDYgKzQxLDQgQEAgTlNDYWNoZWRVUkxSZXNwb25zZSogUmVzb3VyY2VMb2FkZXI6OndpbAogICAg
IHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS53aWxsQ2FjaGVSZXNwb25zZShkb2N1bWVu
dExvYWRlcigpLCBpZGVudGlmaWVyKCksIHJlc3BvbnNlKTsKIH0KIAotI2VuZGlmCi0KIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQkocmV2aXNpb24gMjI0NzU3KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDYsMTcg
KzQ2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBQYWdlOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQogewogI2lmIFBMQVRGT1JNKElPUykKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAg
IGFkZFNjaGVkdWxlUGFpcihTY2hlZHVsZVBhaXI6OmNyZWF0ZShXZWJUaHJlYWRSdW5Mb29wKCks
IGtDRlJ1bkxvb3BDb21tb25Nb2RlcykpOwotI2Vsc2UKICAgICBhZGRTY2hlZHVsZVBhaXIoU2No
ZWR1bGVQYWlyOjpjcmVhdGUoV2ViVGhyZWFkTlNSdW5Mb29wKCksIGtDRlJ1bkxvb3BDb21tb25N
b2RlcykpOwotI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04pCiAjZWxzZQotI2lmIFVTRShD
RlVSTENPTk5FQ1RJT04pCiAgICAgYWRkU2NoZWR1bGVQYWlyKFNjaGVkdWxlUGFpcjo6Y3JlYXRl
KFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBnZXRDRlJ1bkxvb3BdLCBrQ0ZSdW5Mb29wQ29t
bW9uTW9kZXMpKTsKLSNlbHNlCi0gICAgYWRkU2NoZWR1bGVQYWlyKFNjaGVkdWxlUGFpcjo6Y3Jl
YXRlKFtOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpKTsK
LSNlbmRpZgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCkBAIC03NCwxNCAr
NjYsMTIgQEAgdm9pZCBQYWdlOjphZGRTY2hlZHVsZVBhaXIoUmVmPFNjaGVkdWxlUAogICAgICAg
ICBtX3NjaGVkdWxlZFJ1bkxvb3BQYWlycyA9IHN0ZDo6bWFrZV91bmlxdWU8U2NoZWR1bGVQYWly
SGFzaFNldD4oKTsKICAgICBtX3NjaGVkdWxlZFJ1bkxvb3BQYWlycy0+YWRkKHBhaXIucHRyKCkp
OwogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAm
bV9tYWluRnJhbWUuZ2V0KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VO
ZXh0KCkpIHsKICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZy
YW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICAgICAgZG9jdW1lbnRMb2Fk
ZXItPnNjaGVkdWxlKHBhaXIpOwogICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50
TG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSkKICAg
ICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5zY2hlZHVsZShwYWlyKTsKICAgICB9Ci0jZW5kaWYK
IAogICAgIC8vIEZJWE1FOiBtYWtlIFNoYXJlZFRpbWVyTWFjIHVzZSB0aGVzZSBTY2hlZHVsZVBh
aXJzLgogfQpAQCAtOTQsMTQgKzg0LDEyIEBAIHZvaWQgUGFnZTo6cmVtb3ZlU2NoZWR1bGVQYWly
KFJlZjxTY2hlZHUKIAogICAgIG1fc2NoZWR1bGVkUnVuTG9vcFBhaXJzLT5yZW1vdmUocGFpci5w
dHIoKSk7CiAKLSNpZiAhVVNFKENGVVJMQ09OTkVDVElPTikKICAgICBmb3IgKEZyYW1lKiBmcmFt
ZSA9ICZtX21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2
ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVy
ID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAgICAgICAgICBkb2N1bWVu
dExvYWRlci0+dW5zY2hlZHVsZShwYWlyKTsKICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBk
b2N1bWVudExvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3VtZW50TG9hZGVy
KCkpCiAgICAgICAgICAgICBkb2N1bWVudExvYWRlci0+dW5zY2hlZHVsZShwYWlyKTsKICAgICB9
Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQkocmV2aXNpb24gMjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTE2LDEwICsxMTYsNiBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94
L1ZpZGVvVG9vbGJveC5oPgogI2VuZGlmCiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotI2lu
Y2x1ZGUgPHBhbC9zcGkvY29jb2EvQ0ZOU1VSTENvbm5lY3Rpb25TUEkuaD4KLSNlbmRpZgotCiAj
aW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCAiTWVkaWFSZW1vdGVTb2Z0TGlu
ay5oIgogCkBAIC0zOTIsNTggKzM4OCw2IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2Jh
bFB1bGxEZWxlZ2EKIH0KICNlbmRpZgogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLWNsYXNz
IFdlYkNvcmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50IDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViQ29yZU5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQ+LCBwdWJsaWMg
QXV0aGVudGljYXRpb25DbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8V2ViQ29y
ZU5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQ+IGNyZWF0ZShOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkNvcmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KGNoYWxsZW5n
ZSkpOwotICAgIH0KLQotICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViQ29yZU5TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VDbGllbnQ+OjpyZWY7Ci0gICAgdXNpbmcgUmVmQ291bnRlZDxXZWJDb3Jl
TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudD46OmRlcmVmOwotCi1wcml2YXRlOgot
ICAgIFdlYkNvcmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KE5TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgKmNoYWxsZW5nZSkKLSAgICAgICAgOiBtX2NoYWxsZW5nZShjaGFs
bGVuZ2UpCi0gICAgewotICAgICAgICBBU1NFUlQobV9jaGFsbGVuZ2UpOwotICAgIH0KLQotICAg
IHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSBvdmVycmlkZSB7IHJlZigpOyB9Ci0gICAg
dm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9Ci0K
LSAgICB2b2lkIHJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpIG92ZXJyaWRlCi0gICAgewotICAgICAg
ICBbW21fY2hhbGxlbmdlIHNlbmRlcl0gdXNlQ3JlZGVudGlhbDpjcmVkZW50aWFsLm5zQ3JlZGVu
dGlhbCgpIGZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOm1fY2hhbGxlbmdlLmdldCgpXTsKLSAg
ICB9Ci0KLSAgICB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlh
bChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlCi0gICAgewotICAgICAg
ICBbW21fY2hhbGxlbmdlIHNlbmRlcl0gY29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOm1fY2hhbGxlbmdlLmdldCgpXTsKLSAgICB9Ci0KLSAgICB2b2lk
IHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3Zl
cnJpZGUKLSAgICB7Ci0gICAgICAgIFtbbV9jaGFsbGVuZ2Ugc2VuZGVyXSBjYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTptX2NoYWxsZW5nZS5nZXQoKV07Ci0gICAgfQotCi0gICAgdm9pZCBy
ZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgaWYgKFtbbV9jaGFsbGVuZ2Ug
c2VuZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHBlcmZvcm1EZWZhdWx0SGFuZGxp
bmdGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTopXSkKLSAgICAgICAgICAgIFtbbV9jaGFsbGVu
Z2Ugc2VuZGVyXSBwZXJmb3JtRGVmYXVsdEhhbmRsaW5nRm9yQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6bV9jaGFsbGVuZ2UuZ2V0KCldOwotICAgIH0KLQotICAgIHZvaWQgcmVjZWl2ZWRDaGFsbGVu
Z2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZQotICAg
IHsKLSAgICAgICAgaWYgKFtbbV9jaGFsbGVuZ2Ugc2VuZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlV2l0aENoYWxsZW5nZTop
XSkKLSAgICAgICAgICAgIFtbbV9jaGFsbGVuZ2Ugc2VuZGVyXSByZWplY3RQcm90ZWN0aW9uU3Bh
Y2VBbmRDb250aW51ZVdpdGhDaGFsbGVuZ2U6bV9jaGFsbGVuZ2UuZ2V0KCldOwotICAgIH0KLQot
ICAgIFJldGFpblB0cjxOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPiBtX2NoYWxsZW5nZTsK
LX07Ci0jZW5kaWYKLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAg
ICBpZiAoIWlzQXZhaWxhYmxlKCkpCkBAIC0xODY5LDE2ICsxODEzLDggQEAgYm9vbCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNob3VsZFdhaXRGb3JSZXNwb25z
ZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSog
bnNDaGFsbGVuZ2UpCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNo
b3VsZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSogY2hhbGxlbmdlKQogewotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04p
Ci0gICAgUmVmUHRyPFdlYkNvcmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50PiBj
bGllbnQgPSBXZWJDb3JlTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudDo6Y3JlYXRl
KG5zQ2hhbGxlbmdlKTsKLSAgICBSZXRhaW5QdHI8Q0ZVUkxBdXRoQ2hhbGxlbmdlUmVmPiBjZkNo
YWxsZW5nZSA9IGFkb3B0Q0YoW25zQ2hhbGxlbmdlIF9jcmVhdGVDRkF1dGhDaGFsbGVuZ2VdKTsK
LSAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UoY2ZDaGFsbGVuZ2UuZ2V0KCks
IGNsaWVudC5nZXQoKSk7Ci0jZWxzZQotICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZShuc0NoYWxsZW5nZSk7Ci0jZW5kaWYKLQogICAgIHJldHVybiBwbGF5ZXIoKS0+c2hvdWxk
V2FpdEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjaGFsbGVuZ2UpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJv
dGVjdGlvblNwYWNlQmFzZS5jcHAJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgogCi0jaWYg
VVNFKENGVVJMQ09OTkVDVElPTikgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmIFVTRShDRlVSTENP
Tk5FQ1RJT04pCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DRi5oIgogI2luY2x1ZGUgPENGTmV0
d29yay9DRlVSTFByb3RlY3Rpb25TcGFjZVByaXYuaD4KICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24g
MjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIGJvb2wg
Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90ZWN0aW9uU3Bh
Y2UmKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZVUkxDT05ORUNU
SU9OKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIE5TVVJMQ29ubmVj
dGlvbiAqY29ubmVjdGlvbigpIGNvbnN0OwogICAgIGlkIG1ha2VEZWxlZ2F0ZShib29sLCBXVEY6
Ok1lc3NhZ2VRdWV1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+Kik7CiAgICAgaWQgZGVsZWdhdGUo
KTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZik7CiAjZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShD
RlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik7CiAj
ZW5kaWYKIApAQCAtMjI1LDEwICsyMjUsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIENGU3RyaW5nUmVmIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCk7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKElPUykgJiYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBzdGF0aWMg
Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBjcmVhdGVTU0xQcm9wZXJ0aWVzRnJvbU5TVVJMUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSNlbmRpZgotCiAgICAgdHlwZWRlZiBSZWY8UmVz
b3VyY2VIYW5kbGU+ICgqQnVpbHRpbkNvbnN0cnVjdG9yKShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpOwogICAgIHN0YXRpYyB2b2lk
IHJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2ws
IEJ1aWx0aW5Db25zdHJ1Y3Rvcik7CiAKQEAgLTI2OSwxMSArMjY1LDExIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsIFdURjo6TWVzc2FnZVF1ZXVlPFdURjo6RnVuY3Rpb248dm9pZCgpPj4qLCBDRkRpY3Rp
b25hcnlSZWYgY2xpZW50UHJvcGVydGllcyk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykg
JiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgY3Jl
YXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9T
KSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCBj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCShyZXZpc2lvbiAyMjQ3
NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBS
ZXNvdXJjZVJlcXVlc3QgbV9jdXJyZW50UmVxdWVzdDsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZT4gbV9jb25uZWN0aW9uRGVsZWdhdGU7CiAjZW5kaWYK
LSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPE5TVVJMQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwog
ICAgIFJldGFpblB0cjxpZD4gbV9kZWxlZ2F0ZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3Bw
CShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0F1dGhlbnRpY2F0aW9uQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMSArNDQsNyBAQCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGljYXRpb25DCiB9CiAKIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShDRlVSTEF1dGhDaGFsbGVuZ2VS
ZWYgY2ZDaGFsbGVuZ2UsIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBhdXRoZW50aWNhdGlvbkNsaWVu
dCkKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICA6IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFz
ZShQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0UHJvdGVjdGlvblNwYWNlKGNm
Q2hhbGxlbmdlKSksIENyZWRlbnRpYWwoQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0UHJvcG9zZWRDcmVk
ZW50aWFsKGNmQ2hhbGxlbmdlKSksCi0jZWxzZQogICAgIDogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VCYXNlKGNvcmUoQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0UHJvdGVjdGlvblNwYWNlKGNmQ2hhbGxl
bmdlKSksIGNvcmUoQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0UHJvcG9zZWRDcmVkZW50aWFsKGNmQ2hh
bGxlbmdlKSksCi0jZW5kaWYKICAgICAgICAgQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0UHJldmlvdXNG
YWlsdXJlQ291bnQoY2ZDaGFsbGVuZ2UpLCAoQ0ZVUkxSZXNwb25zZVJlZilDRlVSTEF1dGhDaGFs
bGVuZ2VHZXRGYWlsdXJlUmVzcG9uc2UoY2ZDaGFsbGVuZ2UpLCBDRlVSTEF1dGhDaGFsbGVuZ2VH
ZXRFcnJvcihjZkNoYWxsZW5nZSkpCiAgICAgLCBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50KGF1dGhl
bnRpY2F0aW9uQ2xpZW50KQogICAgICwgbV9jZkNoYWxsZW5nZShjZkNoYWxsZW5nZSkKQEAgLTgw
LDIwICs3NiwxMiBAQCBDRlVSTEF1dGhDaGFsbGVuZ2VSZWYgY3JlYXRlQ0YoY29uc3QgQXV0CiB7
CiAgICAgLy8gRklYTUU6IFdoeSBub3QgY2FjaGUgQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmIGluIG1f
Y2ZDaGFsbGVuZ2U/IEZvdW5kYXRpb24gY291bnRlcnBhcnQgZG9lcyB0aGF0LgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmIHJlc3VsdCA9IENGVVJMQXV0
aENoYWxsZW5nZUNyZWF0ZSgwLCBjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmNmU3Bh
Y2UoKSwgY29yZUNoYWxsZW5nZS5wcm9wb3NlZENyZWRlbnRpYWwoKS5jZkNyZWRlbnRpYWwoKSwK
LSNlbHNlCiAgICAgUmV0YWluUHRyPENGVVJMQ3JlZGVudGlhbFJlZj4gY3JlZGVudGlhbCA9IGFk
b3B0Q0YoY3JlYXRlQ0YoY29yZUNoYWxsZW5nZS5wcm9wb3NlZENyZWRlbnRpYWwoKSkpOwogICAg
IFJldGFpblB0cjxDRlVSTFByb3RlY3Rpb25TcGFjZVJlZj4gcHJvdGVjdGlvblNwYWNlID0gYWRv
cHRDRihjcmVhdGVDRihjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKSk7Ci0gICAgQ0ZV
UkxBdXRoQ2hhbGxlbmdlUmVmIHJlc3VsdCA9IENGVVJMQXV0aENoYWxsZW5nZUNyZWF0ZSgwLCBw
cm90ZWN0aW9uU3BhY2UuZ2V0KCksIGNyZWRlbnRpYWwuZ2V0KCksCi0jZW5kaWYKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlQ2hhbGxlbmdlLnByZXZpb3VzRmFp
bHVyZUNvdW50KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29y
ZUNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS5jZlVSTFJlc3BvbnNlKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZUNoYWxsZW5nZS5lcnJvcigpKTsKKyAg
ICBDRlVSTEF1dGhDaGFsbGVuZ2VSZWYgcmVzdWx0ID0gQ0ZVUkxBdXRoQ2hhbGxlbmdlQ3JlYXRl
KDAsIHByb3RlY3Rpb25TcGFjZS5nZXQoKSwgY3JlZGVudGlhbC5nZXQoKSwgY29yZUNoYWxsZW5n
ZS5wcmV2aW91c0ZhaWx1cmVDb3VudCgpLCBjb3JlQ2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgp
LmNmVVJMUmVzcG9uc2UoKSwgY29yZUNoYWxsZW5nZS5lcnJvcigpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQogQ0ZVUkxDcmVkZW50aWFsUmVmIGNyZWF0
ZUNGKGNvbnN0IENyZWRlbnRpYWwmIGNvcmVDcmVkZW50aWFsKQogewogICAgIENGVVJMQ3JlZGVu
dGlhbFBlcnNpc3RlbmNlIHBlcnNpc3RlbmNlID0ga0NGVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNl
Tm9uZTsKQEAgLTI3NSw3ICsyNjMsNiBAQCBQcm90ZWN0aW9uU3BhY2UgY29yZShDRlVSTFByb3Rl
Y3Rpb25TcGFjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRlVSTFByb3RlY3Rpb25TcGFj
ZUdldFJlYWxtKGNmU3BhY2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1lKTsK
IH0KLSNlbmRpZgogCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvQXV0aGVudGljYXRpb25DRi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DRi5oCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuaAkod29y
a2luZyBjb3B5KQpAQCAtMzksMTggKzM5LDEwIEBAIGNsYXNzIENyZWRlbnRpYWw7CiBjbGFzcyBQ
cm90ZWN0aW9uU3BhY2U7CiAKIENGVVJMQXV0aENoYWxsZW5nZVJlZiBjcmVhdGVDRihjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwotI2lmIFBMQVRGT1JNKFdJTikKIENGVVJMQ3JlZGVu
dGlhbFJlZiBjcmVhdGVDRihjb25zdCBDcmVkZW50aWFsJik7CiBDRlVSTFByb3RlY3Rpb25TcGFj
ZVJlZiBjcmVhdGVDRihjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi1BdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjb3JlKENGVVJMQXV0aENoYWxs
ZW5nZVJlZik7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShXSU4pCiBDcmVkZW50aWFsIGNvcmUoQ0ZV
UkxDcmVkZW50aWFsUmVmKTsKIFByb3RlY3Rpb25TcGFjZSBjb3JlKENGVVJMUHJvdGVjdGlvblNw
YWNlUmVmKTsKLSNlbmRpZgogfQogCiAjZW5kaWYgLy8gVVNFKENGVVJMQ09OTkVDVElPTikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llSmFyQ0ZOZXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2ll
SmFyQ0ZOZXQuY3BwCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMjEg
KzM1LDE2IEBACiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENv
b2tpZXNQcml2Lmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
KyNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbmNsdWRlIDx3aW5kb3dz
Lmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVD
YXN0c0NGLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9S
TShXSU4pCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oV0lO
KQogZW51bSB7CiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMKIH07Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7
CiAKQEAgLTEzMCwyMiArMTI1LDEzIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gY29w
eUNvb2tpZXMKIAogICAgIEFTU0VSVCghc2VjdXJlIHx8IChzZWN1cmUgJiYgdXJsLnByb3RvY29s
SXMoImh0dHBzIikpKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBhZG9wdENG
KF9DRkhUVFBDb29raWVTdG9yYWdlQ29weUNvb2tpZXNGb3JVUkxXaXRoTWFpbkRvY3VtZW50VVJM
KHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpLCB1cmwuY3JlYXRlQ0ZVUkwoKS5nZXQoKSwg
Zmlyc3RQYXJ0eS5jcmVhdGVDRlVSTCgpLmdldCgpLCBzZWN1cmUpKTsKLSNlbHNlCi0gICAgLy8g
X0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5Q29va2llc0ZvclVSTFdpdGhNYWluRG9jdW1lbnRVUkwg
aXMgbm90IGF2YWlsYWJsZSBvbiBvdGhlciBwbGF0Zm9ybXMuCiAgICAgVU5VU0VEX1BBUkFNKGZp
cnN0UGFydHkpOwogICAgIHJldHVybiBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDb3B5Q29v
a2llc0ZvclVSTChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgdXJsLmNyZWF0ZUNGVVJM
KCkuZ2V0KCksIHNlY3VyZSkpOwotI2VuZGlmCiB9CiAKIHN0YXRpYyBDRkFycmF5UmVmIGNyZWF0
ZUNvb2tpZXMoQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRlckZpZWxkcywgQ0ZVUkxSZWYgdXJsKQogewot
I2lmIFBMQVRGT1JNKElPUykKLSAgICBDRkFycmF5UmVmIHBhcnNlZENvb2tpZXMgPSBfQ0ZIVFRQ
UGFyc2VkQ29va2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxkcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBoZWFkZXJGaWVsZHMsIHVybCk7Ci0jZWxzZQogICAgIENGQXJyYXlSZWYgcGFyc2VkQ29va2ll
cyA9IENGSFRUUENvb2tpZUNyZWF0ZVdpdGhSZXNwb25zZUhlYWRlckZpZWxkcyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBoZWFkZXJGaWVsZHMsIHVybCk7Ci0jZW5kaWYKICAgICBpZiAoIXBhcnNlZENv
b2tpZXMpCiAgICAgICAgIHBhcnNlZENvb2tpZXMgPSBDRkFycmF5Q3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIDAsIDAsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpOwogCkBAIC0yODgsNyArMjc0
LDYgQEAgdm9pZCBkZWxldGVBbGxDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYQogICAgIENGSFRU
UENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdl
dCgpKTsKIH0KIAotI2lmIFBMQVRGT1JNKFdJTikKIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3Ru
YW1lcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBob3N0bmFtZXMpCiB7CiB9CkBAIC0yOTYsNyArMjgxLDYgQEAgdm9pZCBkZWxldGVD
b29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldAogdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZp
ZWRTaW5jZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50KQogewogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9y
YWdlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAkocmV2aXNpb24gMjI0NzU3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiwyMiArMjYsMTcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJDb29raWVTdG9yYWdlLmgiCiAKKyNpbmNsdWRlICJMb2FkZXJSdW5Mb29wQ0YuaCIKICNp
bmNsdWRlICJOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIKKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZI
VFRQQ29va2llc1ByaXYuaD4KKyNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCi0jaWYgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgIkxvYWRl
clJ1bkxvb3BDRi5oIgotI2luY2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29raWVzUHJpdi5oPgot
I2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBQTEFURk9STShXSU4pCi0KIHN0
YXRpYyBIYXNoTWFwPENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIFdURjo6RnVuY3Rpb248dm9pZCAo
KT4+JiBjb29raWVDaGFuZ2VDYWxsYmFja01hcCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hNYXA8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgV1RGOjpGdW5jdGlvbjx2b2lkICgp
Pj4+IG1hcDsKQEAgLTEwMSw2ICs5Niw0IEBAIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoY29uc3QgTmUKICAgICBDRkhUVFBDb29raWVTdG9yYWdlVW5zY2hlZHVsZUZyb21SdW5Mb29w
KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHJ1bkxvb3AsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CiB9
CiAKLSNlbmRpZiAvLyBQTEFURk9STShXSU4pCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VD
Rk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAkocmV2aXNpb24gMjI0NzU3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTcgKzMxLDEwIEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DRi5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJQcm90ZWN0aW9uU3Bh
Y2UuaCIKKyNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShXSU4pCi0jaW5jbHVkZSA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShJT1MpCi0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ3JlZGVudGlhbFN0b3JhZ2UuaD4K
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBzdGF0aWMgaW5saW5lIENGVVJM
Q3JlZGVudGlhbFJlZiBjb3B5Q3JlZGVudGlhbEZyb21Qcm90ZWN0aW9uU3BhY2UoQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKQpAQCAtNTIsMTQgKzQ1LDkgQEAgc3RhdGlj
IGlubGluZSBDRlVSTENyZWRlbnRpYWxSZWYgY29weUNyZQogCiBDcmVkZW50aWFsIENyZWRlbnRp
YWxTdG9yYWdlOjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNl
JiBwcm90ZWN0aW9uU3BhY2UpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgYXV0byBjcmVk
ZW50aWFsQ0YgPSBhZG9wdENGKGNvcHlDcmVkZW50aWFsRnJvbVByb3RlY3Rpb25TcGFjZShwcm90
ZWN0aW9uU3BhY2UuY2ZTcGFjZSgpKSk7Ci0gICAgcmV0dXJuIENyZWRlbnRpYWwoY3JlZGVudGlh
bENGLmdldCgpKTsKLSNlbHNlCiAgICAgYXV0byBwcm90ZWN0aW9uU3BhY2VDRiA9IGFkb3B0Q0Yo
Y3JlYXRlQ0YocHJvdGVjdGlvblNwYWNlKSk7CiAgICAgYXV0byBjcmVkZW50aWFsQ0YgPSBhZG9w
dENGKGNvcHlDcmVkZW50aWFsRnJvbVByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2VDRi5n
ZXQoKSkpOwogICAgIHJldHVybiBjb3JlKGNyZWRlbnRpYWxDRi5nZXQoKSk7Ci0jZW5kaWYKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvckNGLmNwcAkocmV2aXNpb24gMjI0
NzU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9y
Q0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEsOCBAQAogI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGRXJyb3IuaD4KICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZOZXR3b3JrRXJyb3JzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi0jaWYg
UExBVEZPUk0oV0lOKQogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KLSNlbmRpZgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw3ICs0NSw2IEBAIFJlc291cmNlRXJyb3I6OlJlc291
cmNlRXJyb3IoQ0ZFcnJvclJlZiAKICAgICAgICAgc2V0VHlwZSgoQ0ZFcnJvckdldENvZGUobV9w
bGF0Zm9ybUVycm9yLmdldCgpKSA9PSBrQ0ZVUkxFcnJvclRpbWVkT3V0KSA/IFR5cGU6OlRpbWVv
dXQgOiBUeXBlOjpHZW5lcmFsKTsKIH0KIAotI2lmIFBMQVRGT1JNKFdJTikKIFJlc291cmNlRXJy
b3I6OlJlc291cmNlRXJyb3IoY29uc3QgU3RyaW5nJiBkb21haW4sIGludCBlcnJvckNvZGUsIGNv
bnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbiwg
Q0ZEYXRhUmVmIGNlcnRpZmljYXRlKQogICAgIDogUmVzb3VyY2VFcnJvckJhc2UoZG9tYWluLCBl
cnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uLCBUeXBlOjpHZW5lcmFs
KQogICAgICwgbV9kYXRhSXNVcFRvRGF0ZSh0cnVlKQpAQCAtNjgsNyArNjQsNiBAQCB2b2lkIFJl
c291cmNlRXJyb3I6OnNldENlcnRpZmljYXRlKENGRGF0CiB7CiAgICAgbV9jZXJ0aWZpY2F0ZSA9
IGNlcnRpZmljYXRlOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKFdJTikKIAogY29uc3QgQ0ZTdHJp
bmdSZWYgZmFpbGluZ1VSTFN0cmluZ0tleSA9IENGU1RSKCJOU0Vycm9yRmFpbGluZ1VSTFN0cmlu
Z0tleSIpOwogY29uc3QgQ0ZTdHJpbmdSZWYgZmFpbGluZ1VSTEtleSA9IENGU1RSKCJOU0Vycm9y
RmFpbGluZ1VSTEtleSIpOwpAQCAtMTExLDkgKzEwNiw3IEBAIHZvaWQgUmVzb3VyY2VFcnJvcjo6
cGxhdGZvcm1MYXp5SW5pdCgpCiAgICAgICAgIH0KICAgICAgICAgbV9sb2NhbGl6ZWREZXNjcmlw
dGlvbiA9IChDRlN0cmluZ1JlZikgQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUodXNlckluZm8uZ2V0KCks
IGtDRkVycm9yTG9jYWxpemVkRGVzY3JpcHRpb25LZXkpOwogICAgICAgICAKLSNpZiBQTEFURk9S
TShXSU4pCiAgICAgICAgIG1fY2VydGlmaWNhdGUgPSB3a0dldFNTTFBlZXJDZXJ0aWZpY2F0ZURh
dGEodXNlckluZm8uZ2V0KCkpOwotI2VuZGlmCiAgICAgfQogCiAgICAgbV9kYXRhSXNVcFRvRGF0
ZSA9IHRydWU7CkBAIC0xMjIsMTEgKzExNSw3IEBAIHZvaWQgUmVzb3VyY2VFcnJvcjo6cGxhdGZv
cm1MYXp5SW5pdCgpCiAKIHZvaWQgUmVzb3VyY2VFcnJvcjo6ZG9QbGF0Zm9ybUlzb2xhdGVkQ29w
eShjb25zdCBSZXNvdXJjZUVycm9yJiBvdGhlcikKIHsKLSNpZiBQTEFURk9STShXSU4pCiAgICAg
bV9jZXJ0aWZpY2F0ZSA9IG90aGVyLm1fY2VydGlmaWNhdGU7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShvdGhlcik7Ci0jZW5kaWYKIH0KIAogYm9vbCBSZXNvdXJjZUVycm9yOjpwbGF0Zm9ybUNv
bXBhcmUoY29uc3QgUmVzb3VyY2VFcnJvciYgYSwgY29uc3QgUmVzb3VyY2VFcnJvciYgYikKQEAg
LTE1NCwxMCArMTQzLDggQEAgQ0ZFcnJvclJlZiBSZXNvdXJjZUVycm9yOjpjZkVycm9yKCkgY29u
cwogICAgICAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKHVzZXJJbmZvLmdldCgpLCBm
YWlsaW5nVVJMS2V5LCB1cmwuZ2V0KCkpOwogICAgICAgICB9CiAKLSNpZiBQTEFURk9STShXSU4p
CiAgICAgICAgIGlmIChtX2NlcnRpZmljYXRlKQogICAgICAgICAgICAgd2tTZXRTU0xQZWVyQ2Vy
dGlmaWNhdGVEYXRhKHVzZXJJbmZvLmdldCgpLCBtX2NlcnRpZmljYXRlLmdldCgpKTsKLSNlbmRp
ZgogICAgICAgICAKICAgICAgICAgbV9wbGF0Zm9ybUVycm9yID0gYWRvcHRDRihDRkVycm9yQ3Jl
YXRlKDAsIG1fZG9tYWluLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG1fZXJyb3JDb2RlLCB1c2Vy
SW5mby5nZXQoKSkpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAkocmV2aXNpb24g
MjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTUgKzU2LDYgQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgiCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikK
LSNpbmNsdWRlICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKLSNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZV
UkxDb25uZWN0aW9uUHJpdi5oPgotI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFJlcXVlc3RQcml2
Lmg+Ci0jZW5kaWYKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgPFdlYktp
dFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxwcm9j
ZXNzLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDExICszMSw4IEBACiAjaW5jbHVkZSAiRm9ybURhdGFTdHJlYW1D
Rk5ldC5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKLSNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgotCi0jaWYg
UExBVEZPUk0oV0lOKQogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KLSNlbmRpZgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWUuY3BwCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3Bl
cmF0aW9uUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MywxNiArNzMsMTIgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogCiB2b2lkIFJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OnNldHVwUmVxdWVzdChD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmIHJlcXVlc3QpCiB7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAg
IENGVVJMUmVxdWVzdFNldFNob3VsZFN0YXJ0U3luY2hyb25vdXNseShyZXF1ZXN0LCAxKTsKLSNl
bmRpZgogICAgIENGVVJMUmVmIHJlcXVlc3RVUkwgPSBDRlVSTFJlcXVlc3RHZXRVUkwocmVxdWVz
dCk7CiAgICAgaWYgKCFyZXF1ZXN0VVJMKQogICAgICAgICByZXR1cm47CiAgICAgbV9vcmlnaW5h
bFNjaGVtZSA9IGFkb3B0Q0YoQ0ZVUkxDb3B5U2NoZW1lKHJlcXVlc3RVUkwpKTsKIH0KIAotI2lm
IFBMQVRGT1JNKFdJTikKIExSRVNVTFQgQ0FMTEJBQ0sgaG9va1RvUmVtb3ZlQ0ZOZXR3b3JrTWVz
c2FnZShpbnQgY29kZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIHsKICAgICBNU0cq
IG1zZyA9IHJlaW50ZXJwcmV0X2Nhc3Q8TVNHKj4obFBhcmFtKTsKQEAgLTEwMCw3ICs5Niw2IEBA
IHN0YXRpYyB2b2lkIGluc3RhbGxIb29rVG9SZW1vdmVDRk5ldHdvcmsKICAgICAgICAgaG9vayA9
IDo6U2V0V2luZG93c0hvb2tFeFcoV0hfR0VUTUVTU0FHRSwgaG9va1RvUmVtb3ZlQ0ZOZXR3b3Jr
TWVzc2FnZSwgMCwgdGhyZWFkSUQpOwogICAgIH0KIH0KLSNlbmRpZgogCiBzdGF0aWMgdm9pZCBl
bXB0eVBlcmZvcm0odm9pZCopCiB7CkBAIC0xMzIsOSArMTI3LDcgQEAgc3RhdGljIENGUnVuTG9v
cFJlZiBnZXRSdW5Mb29wKCkKIAogdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpzZXR1cENvbm5lY3Rpb25TY2hlZHVsaW5nKENGVVJM
Q29ubmVjdGlvblJlZiBjb25uZWN0aW9uKQogewotI2lmIFBMQVRGT1JNKFdJTikKICAgICBpbnN0
YWxsSG9va1RvUmVtb3ZlQ0ZOZXR3b3JrTWVzc2FnZUJsb2NraW5nTWFpblRocmVhZCgpOwotI2Vu
ZGlmCiAgICAgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3AgPSBnZXRSdW5Mb29wKCk7CiAgICAgQ0ZVUkxD
b25uZWN0aW9uU2NoZWR1bGVXaXRoUnVuTG9vcChjb25uZWN0aW9uLCBydW5Mb29wLCBrQ0ZSdW5M
b29wRGVmYXVsdE1vZGUpOwogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxlRG93bmxvYWRXaXRo
UnVuTG9vcChjb25uZWN0aW9uLCBydW5Mb29wLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwpAQCAt
MjAxLDIyICsxOTQsMTMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YQogCiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9IDMwNCkgewogICAgICAgICAgICAgYm9vbCBp
c01haW5SZXNvdXJjZUxvYWQgPSBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpID09
IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOwotI2lmICFQTEFURk9STShXSU4pCi0g
ICAgICAgICAgICBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KGNmUmVzcG9uc2UuZ2V0KCksIGlz
TWFpblJlc291cmNlTG9hZCk7Ci0jZW5kaWYKICAgICAgICAgfQogCi0jaWYgIVBMQVRGT1JNKElP
UykKICAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktleSho
YW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwg
Q0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBlIikpKQogICAgICAgICAgICAgQ0ZVUkxSZXNwb25zZVNl
dE1JTUVUeXBlKGNmUmVzcG9uc2UuZ2V0KCksIENGU1RSKCJ0ZXh0L2h0bWwiKSk7Ci0jZW5kaWYg
Ly8gIVBMQVRGT1JNKElPUykKIAogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVz
cG9uc2UoY2ZSZXNwb25zZS5nZXQoKSk7CiAgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291
cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7Ci0jaWYgIVBMQVRGT1JNKFdJ
TikKLSAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5l
Y3Rpb24uZ2V0KCksIHJlc291cmNlUmVzcG9uc2UuZGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0cmlj
cygpKTsKLSNlbmRpZgotCiAgICAgICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1v
dmUocmVzb3VyY2VSZXNwb25zZSkpOwogICAgIH07CiAKQEAgLTI5Nyw3ICsyODEsNiBAQCB2b2lk
IFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhCiAKIENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25R
dWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNw
b25zZSkKIHsKLSNpZiBQTEFURk9STShXSU4pCiAgICAgLy8gV29ya2Fyb3VuZCBmb3IgPHJkYXI6
Ly9wcm9ibGVtLzYzMDA5OTA+IENhY2hpbmcgZG9lcyBub3QgcmVzcGVjdCBWYXJ5IEhUVFAgaGVh
ZGVyLgogICAgIC8vIEZJWE1FOiBXZWJDb3JlIGNhY2hlIGhhcyBpc3N1ZXMgd2l0aCBWYXJ5LCB0
b28gKGJ1ZyA1ODc5NywgYnVnIDcxNTA5KS4KICAgICBDRlVSTFJlc3BvbnNlUmVmIHdyYXBwZWRS
ZXNwb25zZSA9IENGQ2FjaGVkVVJMUmVzcG9uc2VHZXRXcmFwcGVkUmVzcG9uc2UoY2FjaGVkUmVz
cG9uc2UpOwpAQCAtMzA3LDcgKzI5MCw2IEBAIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgUmVzb3Vy
Y2VIYW5kbGVDRlUKICAgICAgICAgaWYgKHZhcnlWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKICAgICBhdXRvIHdvcmsg
PSBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZWRSZXNwb25zZSA9IFJldGFp
blB0cjxDRkNhY2hlZFVSTFJlc3BvbnNlUmVmPihjYWNoZWRSZXNwb25zZSldICgpIHsKICAgICAg
ICAgYXV0byYgaGFuZGxlID0gcHJvdGVjdGVkVGhpcy0+bV9oYW5kbGU7CkBAIC0zODUsMTMgKzM2
Nyw2IEBAIEJvb2xlYW4gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWwKICAgICAgICAg
TE9HKE5ldHdvcmssICJDRk5ldCAtIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWU6OmNhblJlc3BvbmRUb1Byb3RlY3Rpb25TcGFjZShoYW5kbGU9
JXApICglcykiLCBoYW5kbGUsIGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKICAgICAgICAgUHJvdGVjdGlvblNwYWNlIGNvcmVQcm90ZWN0aW9u
U3BhY2UgPSBQcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlLmdldCgpKTsKLSNpZiBQTEFU
Rk9STShJT1MpCi0gICAgICAgIGlmIChjb3JlUHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9u
U2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duKSB7
Ci0gICAgICAgICAgICBtX2Jvb2xSZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgICAgIGRpc3BhdGNo
X3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogICAgICAgICBoYW5kbGUtPmNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoY29yZVByb3RlY3Rpb25TcGFjZSk7CiAgICAg
fTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3Jl
ZGVudGlhbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvQ3JlZGVudGlhbENvY29hLm1tCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiQ3JlZGVudGlhbENvY29hLmgiCiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotQGludGVy
ZmFjZSBOU1VSTENyZWRlbnRpYWwgKFdlYkRldGFpbHMpCi0tIChpZClfaW5pdFdpdGhDRlVSTENy
ZWRlbnRpYWw6KENGVVJMQ3JlZGVudGlhbFJlZiljcmVkZW50aWFsOwotLSAoQ0ZVUkxDcmVkZW50
aWFsUmVmKSBfQ0ZVUkxDcmVkZW50aWFsOwotQGVuZAotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIE5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlIHRvTlNVUkxDcmVkZW50
aWFsUGVyc2lzdGVuY2UoQ3JlZGVudGlhbFBlcnNpc3RlbmNlIHBlcnNpc3RlbmNlKQpAQCAtODQs
MjYgKzc3LDEyIEBAIENyZWRlbnRpYWw6OkNyZWRlbnRpYWwoY29uc3QgQ3JlZGVudGlhbCYKICAg
ICB9CiB9CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotQ3JlZGVudGlhbDo6Q3JlZGVudGlh
bChDRlVSTENyZWRlbnRpYWxSZWYgY3JlZGVudGlhbCkKLSAgICA6IENyZWRlbnRpYWwoYWRvcHRO
UyhbW05TVVJMQ3JlZGVudGlhbCBhbGxvY10gX2luaXRXaXRoQ0ZVUkxDcmVkZW50aWFsOmNyZWRl
bnRpYWxdKS5nZXQoKSkKLXsKLX0KLSNlbmRpZgotCiBDcmVkZW50aWFsOjpDcmVkZW50aWFsKE5T
VVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkKICAgICA6IENyZWRlbnRpYWxCYXNlKGNyZWRlbnRp
YWwudXNlciwgY3JlZGVudGlhbC5wYXNzd29yZCwgdG9DcmVkZW50aWFsUGVyc2lzdGVuY2UoY3Jl
ZGVudGlhbC5wZXJzaXN0ZW5jZSkpCiAgICAgLCBtX25zQ3JlZGVudGlhbChjcmVkZW50aWFsKQog
ewogfQogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLUNGVVJMQ3JlZGVudGlhbFJlZiBDcmVk
ZW50aWFsOjpjZkNyZWRlbnRpYWwoKSBjb25zdAotewotICAgIHJldHVybiBbbnNDcmVkZW50aWFs
KCkgX0NGVVJMQ3JlZGVudGlhbF07Ci19Ci0jZW5kaWYKLQogTlNVUkxDcmVkZW50aWFsICpDcmVk
ZW50aWFsOjpuc0NyZWRlbnRpYWwoKSBjb25zdAogewogICAgIGlmIChtX25zQ3JlZGVudGlhbCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNw
YWNlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5tbQkocmV2aXNpb24gMjI0NzU3KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjYsMjIgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiUHJvdGVjdGlvblNwYWNlQ29jb2EuaCIKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJ
T04pCi1AaW50ZXJmYWNlIE5TVVJMUHJvdGVjdGlvblNwYWNlIChXZWJEZXRhaWxzKQotLSAoQ0ZV
UkxQcm90ZWN0aW9uU3BhY2VSZWYpIF9DRlVSTFByb3RlY3Rpb25TcGFjZTsKLS0gKGlkKV9pbml0
V2l0aENGVVJMUHJvdGVjdGlvblNwYWNlOihDRlVSTFByb3RlY3Rpb25TcGFjZVJlZiljZlByb3RT
cGFjZTsKLUBlbmQKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoQ0ZV
UkxDT05ORUNUSU9OKQotUHJvdGVjdGlvblNwYWNlOjpQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VSZWYgc3BhY2UpCi0gICAgOiBQcm90ZWN0aW9uU3BhY2UoYWRvcHROUyhbW05T
VVJMUHJvdGVjdGlvblNwYWNlIGFsbG9jXSBfaW5pdFdpdGhDRlVSTFByb3RlY3Rpb25TcGFjZTpz
cGFjZV0pLmdldCgpKQotewotfQotI2VuZGlmCi0KIHN0YXRpYyBQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIHR5cGUoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQogewogICAgIGlmIChbc3Bh
Y2UgaXNQcm94eV0pIHsKQEAgLTEwNSwxMyArOTEsNiBAQCBQcm90ZWN0aW9uU3BhY2U6OlByb3Rl
Y3Rpb25TcGFjZShOU1VSTFByCiAgICAgbV9uc1NwYWNlID0gc3BhY2U7CiB9CiAKLSNpZiBVU0Uo
Q0ZVUkxDT05ORUNUSU9OKQotQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgUHJvdGVjdGlvblNwYWNl
OjpjZlNwYWNlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gW25zU3BhY2UoKSBfQ0ZVUkxQcm90ZWN0
aW9uU3BhY2VdOwotfQotI2VuZGlmCi0KIE5TVVJMUHJvdGVjdGlvblNwYWNlICpQcm90ZWN0aW9u
U3BhY2U6Om5zU3BhY2UoKSBjb25zdAogewogICAgIGlmIChtX25zU3BhY2UpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVz
b3VyY2VSZXF1ZXN0Q29jb2EubW0JKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDM3ICs0Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE5TVVJMUmVxdWVz
dCAqUmVzb3VyY2VSZXF1ZXN0Ojpuc1VSTFJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xpY3kgYm9k
eVBvbGljeSkgY29uc3QKIHsKICAgICB1cGRhdGVQbGF0Zm9ybVJlcXVlc3QoYm9keVBvbGljeSk7
Ci0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBpZiAoIW1fbnNSZXF1ZXN0KQotICAgICAg
ICBjb25zdF9jYXN0PFJlc291cmNlUmVxdWVzdCo+KHRoaXMpLT51cGRhdGVOU1VSTFJlcXVlc3Qo
KTsKLSNlbmRpZgogICAgIHJldHVybiBbW21fbnNSZXF1ZXN0LmdldCgpIHJldGFpbl0gYXV0b3Jl
bGVhc2VdOwogfQogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLQotdm9pZCBSZXNvdXJjZVJl
cXVlc3Q6OmNsZWFyT3JVcGRhdGVOU1VSTFJlcXVlc3QoKQotewotICAgIC8vIFRoZXJlIGlzIGNs
aWVudCBjb2RlIHRoYXQgZXh0ZW5kcyBOU1VSTFJlcXVlc3QgYW5kIGV4cGVjdHMgdG8gZ2V0IGJh
Y2ssIGluIHRoZSBkZWxlZ2F0ZQotICAgIC8vIGNhbGxiYWNrcywgYW4gb2JqZWN0IG9mIHRoZSBz
YW1lIHR5cGUgdGhhdCB0aGV5IHBhc3NlZCBpbnRvIFdlYktpdC4gVG8ga2VlcCB0aGVuIHJ1bm5p
bmcsIHdlCi0gICAgLy8gY3JlYXRlIGFuIG9iamVjdCBvZiB0aGUgc2FtZSB0eXBlIGFuZCByZXR1
cm4gdGhhdC4gU2VlIDxyZGFyOi8vOTg0MzU4Mj4uCi0gICAgLy8gQWxzbywgZGV2ZWxvcGVycyBy
ZWFsbHkgcmVhbGx5IHdhbnQgYW4gTlNNdXRhYmxlVVJMUmVxdWVzdCBzbyB0cnkgdG8gY3JlYXRl
IGFuCi0gICAgLy8gTlNNdXRhYmxlVVJMUmVxdWVzdCBpbnN0ZWFkIG9mIE5TVVJMUmVxdWVzdC4K
LSAgICBzdGF0aWMgQ2xhc3MgbnNVUkxSZXF1ZXN0Q2xhc3MgPSBbTlNVUkxSZXF1ZXN0IGNsYXNz
XTsKLSAgICBzdGF0aWMgQ2xhc3MgbnNNdXRhYmxlVVJMUmVxdWVzdENsYXNzID0gW05TTXV0YWJs
ZVVSTFJlcXVlc3QgY2xhc3NdOwotICAgIENsYXNzIHJlcXVlc3RDbGFzcyA9IFttX25zUmVxdWVz
dC5nZXQoKSBjbGFzc107Ci0gICAgCi0gICAgaWYgKCFtX2NmUmVxdWVzdCkKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIGlmIChyZXF1ZXN0Q2xhc3MgJiYgcmVxdWVzdENsYXNzICE9IG5zVVJM
UmVxdWVzdENsYXNzICYmIHJlcXVlc3RDbGFzcyAhPSBuc011dGFibGVVUkxSZXF1ZXN0Q2xhc3Mp
Ci0gICAgICAgIG1fbnNSZXF1ZXN0ID0gYWRvcHROUyhbW3JlcXVlc3RDbGFzcyBhbGxvY10gX2lu
aXRXaXRoQ0ZVUkxSZXF1ZXN0Om1fY2ZSZXF1ZXN0LmdldCgpXSk7Ci0gICAgZWxzZQotICAgICAg
ICBtX25zUmVxdWVzdCA9IG51bGxwdHI7Ci19Ci0KLSNlbHNlCi0KIENGVVJMUmVxdWVzdFJlZiBS
ZXNvdXJjZVJlcXVlc3Q6OmNmVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeSBib2R5UG9s
aWN5KSBjb25zdAogewogICAgIHJldHVybiBbbnNVUkxSZXF1ZXN0KGJvZHlQb2xpY3kpIF9DRlVS
TFJlcXVlc3RdOwpAQCAtMjYyLDggKzIzNCw2IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0OjpzZXRT
dG9yYWdlU2Vzc2lvbigKICAgICBtX25zUmVxdWVzdCA9IGFkb3B0TlMoY29weVJlcXVlc3RXaXRo
U3RvcmFnZVNlc3Npb24oc3RvcmFnZVNlc3Npb24sIG1fbnNSZXF1ZXN0LmdldCgpKSk7CiB9CiAK
LSNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCiBOU1VSTFJlcXVlc3QgKmNvcHlSZXF1
ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Np
b24sIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCkKIHsKICAgICBpZiAoIXN0b3JhZ2VTZXNzaW9uIHx8
ICFyZXF1ZXN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9S
ZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0JKHJldmlzaW9uIDIy
NDc1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VS
ZXNwb25zZUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxMyArNzUsOCBAQCB2b2lkIFJl
c291cmNlUmVzcG9uc2U6OmRpc2FibGVMYXp5SW5pdGlhCiAKIENlcnRpZmljYXRlSW5mbyBSZXNv
dXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNvbnN0CiB7Ci0jaWYgVVNF
KENGVVJMQ09OTkVDVElPTikKLSAgICBBU1NFUlQobV9jZlJlc3BvbnNlIHx8IHNvdXJjZSgpID09
IFNvdXJjZTo6U2VydmljZVdvcmtlcik7Ci0gICAgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNl
ID0gbV9jZlJlc3BvbnNlLmdldCgpOwotI2Vsc2UKICAgICBBU1NFUlQobV9uc1Jlc3BvbnNlIHx8
IHNvdXJjZSgpID09IFNvdXJjZTo6U2VydmljZVdvcmtlcik7CiAgICAgQ0ZVUkxSZXNwb25zZVJl
ZiBjZlJlc3BvbnNlID0gW21fbnNSZXNwb25zZSBfQ0ZVUkxSZXNwb25zZV07Ci0jZW5kaWYKIAog
ICAgIGlmICghY2ZSZXNwb25zZSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExNCwzNSArMTA5
LDYgQEAgQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmbwogI2VuZGlmCiB9
CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCi1OU1VSTFJlc3BvbnNlICpSZXNvdXJjZVJl
c3BvbnNlOjpuc1VSTFJlc3BvbnNlKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fbnNSZXNwb25zZSAm
JiAhbV9jZlJlc3BvbnNlICYmICFtX2lzTnVsbCkgewotICAgICAgICBpbml0TlNVUkxSZXNwb25z
ZSgpOwotICAgICAgICBtX2NmUmVzcG9uc2UgPSBbbV9uc1Jlc3BvbnNlLmdldCgpIF9DRlVSTFJl
c3BvbnNlXTsKLSAgICAgICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsKLSAgICB9Ci0KLSAg
ICBpZiAoIW1fY2ZSZXNwb25zZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIGlmICghbV9u
c1Jlc3BvbnNlKQotICAgICAgICBtX25zUmVzcG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVzcG9u
c2VXaXRoQ0ZVUkxSZXNwb25zZTptX2NmUmVzcG9uc2UuZ2V0KCldOwotCi0gICAgcmV0dXJuIG1f
bnNSZXNwb25zZS5nZXQoKTsKLX0KLQotUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25z
ZShOU1VSTFJlc3BvbnNlKiBuc1Jlc3BvbnNlKQotICAgIDogbV9pbml0TGV2ZWwoVW5pbml0aWFs
aXplZCkKLSAgICAsIG1fY2ZSZXNwb25zZShbbnNSZXNwb25zZSBfQ0ZVUkxSZXNwb25zZV0pCi0g
ICAgLCBtX25zUmVzcG9uc2UobnNSZXNwb25zZSkKLXsKLSAgICBtX2lzTnVsbCA9ICFuc1Jlc3Bv
bnNlOwotfQotCi0jZWxzZQotCiBzdGF0aWMgTlNTdHJpbmcqIGNvbnN0IGNvbW1vbkhlYWRlckZp
ZWxkc1tdID0gewogICAgIEAiQWdlIiwgQCJDYWNoZS1Db250cm9sIiwgQCJDb250ZW50LVR5cGUi
LCBAIkRhdGUiLCBAIkV0YWciLCBAIkV4cGlyZXMiLCBAIkxhc3QtTW9kaWZpZWQiLCBAIlByYWdt
YSIKIH07CkBAIC0yNDIsOCArMjA4LDYgQEAgYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9y
bUNvbXBhcmUoYwogICAgIHJldHVybiBhLm5zVVJMUmVzcG9uc2UoKSA9PSBiLm5zVVJMUmVzcG9u
c2UoKTsKIH0KIAotI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04pCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VIYW5kbGVJT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VIYW5kbGVJ
T1MubW0JKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1Jlc291cmNlSGFuZGxlSU9TLm1tCShub25leGlzdGVudCkKQEAgLTEsNjUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgiCi0KLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCi0jaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPENGTmV0d29yay9DRlNvY2tldFN0cmVhbVBy
aXYuaD4KLSNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxSZXF1ZXN0UHJpdmF0ZS5oPgotI2Vsc2UK
LSNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxSZXF1ZXN0Lmg+Ci1AaW50ZXJmYWNlIE5TVVJMUmVx
dWVzdCAoRGV0YWlscykKLSsgKEJPT0wpYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Q6
KE5TU3RyaW5nICopaG9zdDsKLSsgKE5TQXJyYXkqKWFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3Q6KE5TU3RyaW5nICopaG9zdDsKLUBlbmQKLSNlbmRpZgotCi1leHRlcm4gIkMi
IGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTdHJlYW1TU0xUcnVzdGVkTGVhZkNlcnRpZmljYXRlczsK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DRk11dGFibGVEaWN0aW9uYXJ5UmVmIFJlc291cmNl
SGFuZGxlOjpjcmVhdGVTU0xQcm9wZXJ0aWVzRnJvbU5TVVJMUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgTlNTdHJpbmcgKmhvc3QgPSByZXF1ZXN0LnVybCgp
Lmhvc3QoKTsKLSAgICBOU0FycmF5ICpjZXJ0aWZpY2F0ZUNoYWluID0gW05TVVJMUmVxdWVzdCBh
bGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0Omhvc3RdOwotICAgIEJPT0wgYWxs
b3dzQW55Q2VydGlmaWNhdGUgPSBbTlNVUkxSZXF1ZXN0IGFsbG93c0FueUhUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0Omhvc3RdOwotICAgIGlmICghY2VydGlmaWNhdGVDaGFpbiAmJiAhYWxsb3dzQW55
Q2VydGlmaWNhdGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZiBzc2xQcm9wZXJ0aWVzID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKLSAgICBpZiAoY2VydGlmaWNhdGVDaGFpbikK
LSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoc3NsUHJvcGVydGllcywgX2tDRlN0cmVhbVNT
TFRydXN0ZWRMZWFmQ2VydGlmaWNhdGVzLCByZWludGVycHJldF9jYXN0PENGVHlwZVJlZj4oY2Vy
dGlmaWNhdGVDaGFpbikpOwotCi0gICAgaWYgKGFsbG93c0FueUNlcnRpZmljYXRlKQotICAgICAg
ICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShzc2xQcm9wZXJ0aWVzLCBrQ0ZTdHJlYW1TU0xWYWxpZGF0
ZXNDZXJ0aWZpY2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2UpOwotICAgIHJldHVybiBzc2xQcm9w
ZXJ0aWVzOwotfQotCi19Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvQXV0aGVudGljYXRpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVudGljYXRpb25NYWMubW0JKHJldmlzaW9u
IDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0F1dGhlbnRp
Y2F0aW9uTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwyNSArMjUsMTcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25NYWMuaCIKIAotI2ltcG9ydCAiQXV0
aGVudGljYXRpb25DRi5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNp
bXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2xpZW50LmgiCiAjaW1wb3J0ICJDcmVkZW50aWFsLmgiCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbXBv
cnQgPEZvdW5kYXRpb24vTlNVUkxQcm90ZWN0aW9uU3BhY2UuaD4KIAotI2lmIFVTRShDRlVSTENP
Tk5FQ1RJT04pCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL0NGTlNVUkxDb25uZWN0aW9uU1BJLmg+
Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViQ29y
ZUF1dGhlbnRpY2F0aW9uQ2xpZW50QXNDaGFsbGVuZ2VTZW5kZXIgOiBOU09iamVjdCA8TlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcj4KIHsKICAgICBBdXRoZW50aWNhdGlvbkNsaWVu
dCogbV9jbGllbnQ7Ci0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBDRlVSTEF1dGhDaGFs
bGVuZ2VSZWYgbV9jZkNoYWxsZW5nZTsKLSNlbmRpZgogfQogLSAoaWQpaW5pdFdpdGhBdXRoZW50
aWNhdGlvbkNsaWVudDooQXV0aGVudGljYXRpb25DbGllbnQqKWNsaWVudDsKIC0gKEF1dGhlbnRp
Y2F0aW9uQ2xpZW50KiljbGllbnQ7CkBAIC0xMDEsNDcgKzkzLDEwIEBAIC0gKHZvaWQpY2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE4KICAgICAgICAgbV9jbGllbnQtPnJlY2VpdmVkQ2Fu
Y2VsbGF0aW9uKGNvcmUoY2hhbGxlbmdlKSk7CiB9CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9O
KQotLSAodm9pZClzZXRDRkNoYWxsZW5nZTooQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmKWNoYWxsZW5n
ZQotewotICAgIG1fY2ZDaGFsbGVuZ2UgPSBjaGFsbGVuZ2U7Ci19Ci0KLS0gKENGVVJMQXV0aENo
YWxsZW5nZVJlZiljZkNoYWxsZW5nZQotewotICAgIHJldHVybiBtX2NmQ2hhbGxlbmdlOwotfQot
I2VuZGlmCi0KIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKENGVVJMQ09O
TkVDVElPTikKLQotQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY29yZShOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICptYWNDaGFsbGVuZ2UpCi17Ci0gICAgV2ViQ29yZUF1dGhlbnRpY2F0aW9u
Q2xpZW50QXNDaGFsbGVuZ2VTZW5kZXIgKmNoYWxsZW5nZVNlbmRlciA9IChXZWJDb3JlQXV0aGVu
dGljYXRpb25DbGllbnRBc0NoYWxsZW5nZVNlbmRlciopIFttYWNDaGFsbGVuZ2Ugc2VuZGVyXTsK
LSAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoW2NoYWxsZW5nZVNlbmRlciBjZkNo
YWxsZW5nZV0sIFtjaGFsbGVuZ2VTZW5kZXIgY2xpZW50XSk7Ci19Ci0KLU5TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgKm1hYyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY29yZUNo
YWxsZW5nZSkKLXsKLSAgICBBdXRoZW50aWNhdGlvbkNsaWVudCogYXV0aENsaWVudCA9IGNvcmVD
aGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKTsKLSAgICBSZXRhaW5QdHI8V2ViQ29yZUF1
dGhlbnRpY2F0aW9uQ2xpZW50QXNDaGFsbGVuZ2VTZW5kZXI+IGNoYWxsZW5nZVNlbmRlciA9IGFk
b3B0TlMoW1tXZWJDb3JlQXV0aGVudGljYXRpb25DbGllbnRBc0NoYWxsZW5nZVNlbmRlciBhbGxv
Y10gaW5pdFdpdGhBdXRoZW50aWNhdGlvbkNsaWVudDphdXRoQ2xpZW50XSk7Ci0gICAgUmV0YWlu
UHRyPENGVVJMQXV0aENoYWxsZW5nZVJlZj4gYXV0aENoYWxsZW5nZSA9IGNvcmVDaGFsbGVuZ2Uu
Y2ZVUkxBdXRoQ2hhbGxlbmdlUmVmKCk7Ci0gICAgaWYgKCFhdXRoQ2hhbGxlbmdlKQotICAgICAg
ICBhdXRoQ2hhbGxlbmdlID0gYWRvcHRDRihjcmVhdGVDRihjb3JlQ2hhbGxlbmdlKSk7Ci0gICAg
W2NoYWxsZW5nZVNlbmRlci5nZXQoKSBzZXRDRkNoYWxsZW5nZTphdXRoQ2hhbGxlbmdlLmdldCgp
XTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIFtbTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSBfY3JlYXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VGb3JDRkF1dGhDaGFsbGVuZ2U6
YXV0aENoYWxsZW5nZS5nZXQoKSBzZW5kZXI6Y2hhbGxlbmdlU2VuZGVyLmdldCgpXSBhdXRvcmVs
ZWFzZV07Ci0jZWxzZQotICAgIHJldHVybiBbW05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
X2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRm9yQ0ZBdXRoQ2hhbGxlbmdlOmF1dGhDaGFsbGVuZ2Uu
Z2V0KCkgc2VuZGVyOmNoYWxsZW5nZVNlbmRlci5nZXQoKV0gYXV0b3JlbGVhc2VdOwotI2VuZGlm
Ci19Ci0KLSNlbHNlCi0KIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDcmVkZW50aWFs
JiBwcm9wb3NlZENyZWRlbnRpYWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgcHJldmlvdXNGYWlsdXJlQ291bnQsCkBAIC0xODMsNyAr
MTM4LDcgQEAgQXV0aGVudGljYXRpb25DbGllbnQqIEF1dGhlbnRpY2F0aW9uQ2hhbAogICAgIGlm
IChbbV9zZW5kZXIuZ2V0KCkgaXNNZW1iZXJPZkNsYXNzOltXZWJDb3JlQXV0aGVudGljYXRpb25D
bGllbnRBc0NoYWxsZW5nZVNlbmRlciBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3N0YXRpY19j
YXN0PFdlYkNvcmVBdXRoZW50aWNhdGlvbkNsaWVudEFzQ2hhbGxlbmdlU2VuZGVyKj4obV9zZW5k
ZXIuZ2V0KCkpIGNsaWVudF07CiAgICAgCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKIGJvb2wgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OnBsYXRmb3JtQ29tcGFyZShj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYSwgY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGIpCkBAIC0yMDIsMTIgKzE1Nyw3IEBAIE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgKm1hYyhjb25zdCAKICAgICBpZiAoY29yZUNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKCkpCiAgICAgICAgIHJldHVybiBjb3JlQ2hhbGxlbmdlLm5zVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoKTsKICAgICAgICAgCi0gICAgcmV0dXJuIFtbW05TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgYWxsb2NdIGluaXRXaXRoUHJvdGVjdGlvblNwYWNlOmNvcmVDaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkubnNTcGFjZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcG9zZWRDcmVkZW50aWFsOmNvcmVDaGFs
bGVuZ2UucHJvcG9zZWRDcmVkZW50aWFsKCkubnNDcmVkZW50aWFsKCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNGYWlsdXJlQ291
bnQ6Y29yZUNoYWxsZW5nZS5wcmV2aW91c0ZhaWx1cmVDb3VudCgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZVJlc3BvbnNl
OmNvcmVDaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkubnNVUkxSZXNwb25zZSgpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVycm9yOmNvcmVDaGFsbGVuZ2UuZXJyb3IoKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRlcjpjb3JlQ2hh
bGxlbmdlLnNlbmRlcigpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtbW05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgYWxsb2NdIGluaXRXaXRoUHJvdGVjdGlvblNwYWNlOmNvcmVDaGFs
bGVuZ2UucHJvdGVjdGlvblNwYWNlKCkubnNTcGFjZSgpIHByb3Bvc2VkQ3JlZGVudGlhbDpjb3Jl
Q2hhbGxlbmdlLnByb3Bvc2VkQ3JlZGVudGlhbCgpLm5zQ3JlZGVudGlhbCgpIHByZXZpb3VzRmFp
bHVyZUNvdW50OmNvcmVDaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJlQ291bnQoKSBmYWlsdXJlUmVz
cG9uc2U6Y29yZUNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS5uc1VSTFJlc3BvbnNlKCkgZXJy
b3I6Y29yZUNoYWxsZW5nZS5lcnJvcigpIHNlbmRlcjpjb3JlQ2hhbGxlbmdlLnNlbmRlcigpXSBh
dXRvcmVsZWFzZV07CiB9CiAKIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNvcmUoTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqbWFjQ2hhbGxlbmdlKQpAQCAtMjE1LDYgKzE2NSw0IEBAIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNvcmUoTlNVUkxBdXRoZW4KICAgICByZXR1cm4gQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UobWFjQ2hhbGxlbmdlKTsKIH0KIAotI2VuZGlmIC8vIFVTRShDRlVS
TENPTk5FQ1RJT04pCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUsMTYgKzU1LDYg
QEAKICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQotI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYuaD4KLSNlbmRpZgot
dHlwZWRlZiBzdHJ1Y3QgX0NGVVJMQ29ubmVjdGlvbiogQ0ZVUkxDb25uZWN0aW9uUmVmOwotZXh0
ZXJuICJDIiB7Ci1DRkRpY3Rpb25hcnlSZWYgX0NGVVJMQ29ubmVjdGlvbkNvcHlUaW1pbmdEYXRh
KENGVVJMQ29ubmVjdGlvblJlZik7Ci19Ci0jZW5kaWYgLy8gVVNFKENGVVJMQ09OTkVDVElPTikK
LQogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
IgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgpAQCAtNzgsOCArNjgsNiBAQCAtKGlkKV9p
bml0V2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAKLSNpZiAhVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICAKIHN0YXRpYyB2b2lkIGFwcGx5
QmFzaWNBdXRob3JpemF0aW9uSGVhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
Q3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBTdHJpbmcgYXV0aGVudGljYXRpb25IZWFk
ZXIgPSAiQmFzaWMgIiArIGJhc2U2NEVuY29kZShTdHJpbmcoY3JlZGVudGlhbC51c2VyKCkgKyAi
OiIgKyBjcmVkZW50aWFsLnBhc3N3b3JkKCkpLnV0ZjgoKSk7CkBAIC0xMTMsMTIgKzEwMSw3IEBA
IFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogI2lmIFBMQVRGT1JNKElPUykKIHN0
YXRpYyBib29sIHN5bmNocm9ub3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiB7Ci0jaWYgUExB
VEZPUk0oSU9TKQogICAgIHN0YXRpYyBib29sIGRpc2FibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIldlYktpdERpc2FibGVTeW5jaHJvbm91
c1dpbGxTZW5kUmVxdWVzdFByZWZlcmVuY2VLZXkiXSB8fCBJT1NBcHBsaWNhdGlvbjo6aXNJQm9v
a3MoKTsKLSNlbHNlCi0gICAgc3RhdGljIGJvb2wgZGlzYWJsZWQgPSBbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiV2ViS2l0RGlzYWJsZVN5bmNocm9u
b3VzV2lsbFNlbmRSZXF1ZXN0UHJlZmVyZW5jZUtleSJdOwotI2VuZGlmCi0KICAgICByZXR1cm4g
IWRpc2FibGVkOwogfQogI2VuZGlmCkBAIC0zMjAsOCArMzAzLDYgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMbwogICAgICAgICBbZC0+bV9jb25uZWN0aW9uIHNldERl
ZmVyc0NhbGxiYWNrczpkZWZlcnNdOwogfQogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0K
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNjaGVkdWxlKFNjaGVkdWxlUGFpciYgcGFpcikKIHsKICAg
ICBOU1J1bkxvb3AgKnJ1bkxvb3AgPSBwYWlyLm5zUnVuTG9vcCgpOwpAQCAtMzM2LDggKzMxNyw2
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnVuc2NoZWR1bGUoU2NoZWR1bGUKICAgICAgICAgW2Qt
Pm1fY29ubmVjdGlvbi5nZXQoKSB1bnNjaGVkdWxlRnJvbVJ1bkxvb3A6cnVuTG9vcCBmb3JNb2Rl
OihOU1N0cmluZyAqKXBhaXIubW9kZSgpXTsKIH0KIAotI2VuZGlmCi0KIGlkIFJlc291cmNlSGFu
ZGxlOjptYWtlRGVsZWdhdGUoYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgTWVzc2Fn
ZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiBxdWV1ZSkKIHsKICAgICBBU1NFUlQoIWQtPm1fZGVs
ZWdhdGUpOwpAQCAtNjg5LDIyICs2NjgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51
ZVdpbGxDYWNoZVJlCiAgICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRpbnVlV2lsbENhY2hlUmVzcG9u
c2U6cmVzcG9uc2VdOwogfQogCi0jZW5kaWYgLy8gIVVTRShDRlVSTENPTk5FQ1RJT04pCi0KLSNp
ZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCi12b2lkIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0
aW9uVGltaW5nRGF0YShDRlVSTENvbm5lY3Rpb25SZWYgY29ubmVjdGlvbiwgTmV0d29ya0xvYWRN
ZXRyaWNzJiB0aW1pbmcpCi17Ci0gICAgY29weVRpbWluZ0RhdGEoKF9fYnJpZGdlIE5TRGljdGlv
bmFyeSopYWRvcHRDRihfQ0ZVUkxDb25uZWN0aW9uQ29weVRpbWluZ0RhdGEoY29ubmVjdGlvbikp
LmdldCgpLCB0aW1pbmcpOwotfQotCi0jZWxzZQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpnZXRD
b25uZWN0aW9uVGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIE5ldHdvcmtM
b2FkTWV0cmljcyYgdGltaW5nKQogewogICAgIGNvcHlUaW1pbmdEYXRhKFtjb25uZWN0aW9uIF90
aW1pbmdEYXRhXSwgdGltaW5nKTsKIH0KIAotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVx
dWVzdE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0JKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQkobm9uZXhp
c3RlbnQpCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDggQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
IlJlc291cmNlUmVxdWVzdC5oIgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi0jaW1wb3J0IDxGb3Vu
ZGF0aW9uL0ZvdW5kYXRpb24uaD4KLSNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0KLVJl
c291cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0KQot
ICAgIDogUmVzb3VyY2VSZXF1ZXN0QmFzZSgpCi0gICAgLCBtX2NmUmVxdWVzdChbbnNSZXF1ZXN0
IF9DRlVSTFJlcXVlc3RdKQotICAgICwgbV9uc1JlcXVlc3QobnNSZXF1ZXN0KQotewotfQotCi12
b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlTlNVUkxSZXF1ZXN0KCkKLXsKLSAgICBpZiAobV9j
ZlJlcXVlc3QpCi0gICAgICAgIG1fbnNSZXF1ZXN0ID0gYWRvcHROUyhbW05TVVJMUmVxdWVzdCBh
bGxvY10gX2luaXRXaXRoQ0ZVUkxSZXF1ZXN0Om1fY2ZSZXF1ZXN0LmdldCgpXSk7Ci19Ci0KLSNl
bmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdExlZ2FjeS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMTEtMTQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgQ29j
b2EgQ0ZVUkxDb25uZWN0aW9uIGxvYWRpbmcgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5Njg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVs
ZUxvYWQpOgorCiAyMDE3LTExLTA2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2luXSBBZGQgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucyBsaWJyYXJ5
LgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMjI0NzU3KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTAogICAgIGJvb2wgaGFkUmVxdWVzdHMgPSBob3N0
LT5oYXNSZXF1ZXN0cygpOwogICAgIGhvc3QtPnNjaGVkdWxlKHJlc291cmNlTG9hZGVyLCBwcmlv
cml0eSk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJMQ09OTkVDVElPTikKKyNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpyZXNvdXJjZVByaW9y
aXRpZXNFbmFibGVkKCkgJiYgIWlzU3VzcGVuZGluZ1BlbmRpbmdSZXF1ZXN0cygpKSB7CiAgICAg
ICAgIC8vIFNlcnZlIGFsbCByZXF1ZXN0cyBhdCBvbmNlIHRvIGtlZXAgdGhlIHBpcGVsaW5lIGZ1
bGwgYXQgdGhlIG5ldHdvcmsgbGF5ZXIuCiAgICAgICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgY29k
ZSBkbyBhbnl0aGluZyB1c2VmdWwsIGdpdmVuIHRoYXQgd2UgYWxzbyBzZXQgbWF4UmVxdWVzdHNJ
bkZsaWdodFBlckhvc3QgdG8gZWZmZWN0aXZlbHkgdW5saW1pdGVkIG9uIHRoZXNlIHBsYXRmb3Jt
cz8KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDgyMikKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTExLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENvY29hIENGVVJMQ29ubmVjdGlvbiBsb2FkaW5n
IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
OTY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TWlzYy9XZWJEb3dubG9hZC5tbToKKyAgICAgICAgKC1bV2ViRG93bmxvYWQgX2luaXRXaXRoTG9h
ZGluZ0NGVVJMQ29ubmVjdGlvbjpyZXF1ZXN0OnJlc3BvbnNlOmRlbGVnYXRlOnByb3h5Ol0pOiBE
ZWxldGVkLgorICAgICAgICAqIE1pc2MvV2ViRG93bmxvYWRJbnRlcm5hbC5oOgorICAgICAgICAq
IFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBzY2hlZHVsZUluUnVuTG9vcDpm
b3JNb2RlOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHVuc2NoZWR1bGVGcm9tUnVuTG9vcDpmb3JN
b2RlOl0pOgorCiAyMDE3LTExLTE0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgZGlzcGxheTpjb250ZW50cyBieSBkZWZhdWx0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25sb2FkLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0JKHJldmlzaW9uIDIyNDc1
NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJEb3du
bG9hZC5oPgogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DRi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9BdXRoZW50aWNhdGlvbk1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRpYWxTdG9yYWdlLmg+CkBAIC00MCwxMSArMzksNiBA
QAogCiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNU
SU9OKQotI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTmV0d29yay5oPgotI2ltcG9ydCA8Q0ZOZXR3b3Jr
L0NGVVJMQ29ubmVjdGlvbi5oPgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBAY2xhc3MgTlNVUkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eTsKQEAgLTYxLDEwICs1NSw2IEBA
IC0gKGlkKV9pbml0V2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXIKICAgICAgICAgICAgICAg
ZGVsZWdhdGU6KGlkKWRlbGVnYXRlCiAgICAgICAgICAgICAgZGlyZWN0b3J5OihOU1N0cmluZyAq
KWRpcmVjdG9yeTsKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0tIChpZClfaW5pdFdpdGhM
b2FkaW5nQ0ZVUkxDb25uZWN0aW9uOihDRlVSTENvbm5lY3Rpb25SZWYpY29ubmVjdGlvbiByZXF1
ZXN0OihDRlVSTFJlcXVlc3RSZWYpcmVxdWVzdCByZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZily
ZXNwb25zZSBkZWxlZ2F0ZTooaWQpZGVsZWdhdGUgcHJveHk6KE5TVVJMQ29ubmVjdGlvbkRlbGVn
YXRlUHJveHkgKilwcm94eTsKLSNlbmRpZgotCiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViRG93bmxv
YWRJbnRlcm5hbCA6IE5TT2JqZWN0IDxOU1VSTERvd25sb2FkRGVsZWdhdGU+CkBAIC0yMjcsMTQg
KzIxNyw2IEBAIC0gKGlkKV9pbml0V2l0aExvYWRpbmdDb25uZWN0aW9uOihOU1VSTEMKICAgICBy
ZXR1cm4gW3N1cGVyIF9pbml0V2l0aExvYWRpbmdDb25uZWN0aW9uOmNvbm5lY3Rpb24gcmVxdWVz
dDpyZXF1ZXN0IHJlc3BvbnNlOnJlc3BvbnNlIGRlbGVnYXRlOl93ZWJJbnRlcm5hbCBwcm94eTpw
cm94eV07CiB9CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotLSAoaWQpX2luaXRXaXRoTG9h
ZGluZ0NGVVJMQ29ubmVjdGlvbjooQ0ZVUkxDb25uZWN0aW9uUmVmKWNvbm5lY3Rpb24gcmVxdWVz
dDooQ0ZVUkxSZXF1ZXN0UmVmKXJlcXVlc3QgcmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVz
cG9uc2UgZGVsZWdhdGU6KGlkKWRlbGVnYXRlIHByb3h5OihOU1VSTENvbm5lY3Rpb25EZWxlZ2F0
ZVByb3h5ICopcHJveHkKLXsKLSAgICBbc2VsZiBfc2V0UmVhbERlbGVnYXRlOmRlbGVnYXRlXTsK
LSAgICByZXR1cm4gW3N1cGVyIF9pbml0V2l0aExvYWRpbmdDRlVSTENvbm5lY3Rpb246Y29ubmVj
dGlvbiByZXF1ZXN0OnJlcXVlc3QgcmVzcG9uc2U6cmVzcG9uc2UgZGVsZWdhdGU6X3dlYkludGVy
bmFsIHByb3h5OnByb3h5XTsKLX0KLSNlbmRpZgotCiAtIChpZClfaW5pdFdpdGhSZXF1ZXN0OihO
U1VSTFJlcXVlc3QgKilyZXF1ZXN0CiAgICAgICAgICAgICAgIGRlbGVnYXRlOihpZClkZWxlZ2F0
ZQogICAgICAgICAgICAgIGRpcmVjdG9yeTooTlNTdHJpbmcgKilkaXJlY3RvcnkKSW5kZXg6IFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWRJbnRlcm5hbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWRJbnRlcm5hbC5o
CShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRv
d25sb2FkSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTggKzI3LDEwIEBACiAqLwog
IAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYkRvd25sb2FkLmg+Ci0KLSNpZiBVU0UoQ0ZVUkxD
T05ORUNUSU9OKQotI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvbi5oPgotI2VuZGlm
CiAgCiBAaW50ZXJmYWNlIFdlYkRvd25sb2FkIChXZWJEb3dubG9hZENyZWF0aW9uKQogKyhpZClf
ZG93bmxvYWRXaXRoTG9hZGluZ0Nvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gcmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZXNwb25zZTooTlNVUkxSZXNwb25z
ZSAqKXIgZGVsZWdhdGU6KGlkKWRlbGVnYXRlIHByb3h5OihpZClwcm94eTsKIAogKyhpZClfZG93
bmxvYWRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBkZWxlZ2F0ZTooaWQpZGVs
ZWdhdGUgZGlyZWN0b3J5OihOU1N0cmluZyAqKWRpcmVjdG9yeTsKIAotI2lmIFVTRShDRlVSTENP
Tk5FQ1RJT04pCi0rIChpZClfZG93bmxvYWRXaXRoTG9hZGluZ0NGVVJMQ29ubmVjdGlvbjooQ0ZV
UkxDb25uZWN0aW9uUmVmKWNvbm5lY3Rpb24gcmVxdWVzdDooQ0ZVUkxSZXF1ZXN0UmVmKXJlcXVl
c3QgcmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2UgZGVsZWdhdGU6KGlkKWRlbGVn
YXRlIHByb3h5OihpZClwcm94eTsKLSNlbmRpZgotCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDYgQEAKICNpbXBvcnQgIldlYk5TVVJMUmVxdWVzdEV4dHJhcy5oIgogI2ltcG9ydCAi
V2ViVmlldy5oIgogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJDb3Jl
L0F1dGhlbnRpY2F0aW9uQ0YuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25NYWMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Jl
ZGVudGlhbC5oPgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDIy
NDc1NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw2IEBACiAjaW1wb3J0
ICJXZWJVSURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgiCiAj
aW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRJbnRlcm5hbC5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9BdXRoZW50aWNhdGlvbkNGLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9u
TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgpAQCAtMzIwLDEzICszMTksNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlCiAKICAgICBSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlID0gbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKTsKIAotI2lmIFVTRShDRlVSTENPTk5F
Q1RJT04pCi0gICAgQVNTRVJUKFtXZWJEb3dubG9hZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF9kb3dubG9hZFdpdGhMb2FkaW5nQ0ZVUkxDb25uZWN0aW9uOnJlcXVlc3Q6cmVzcG9uc2U6
ZGVsZWdhdGU6cHJveHk6KV0pOwotICAgIGF1dG8gY29ubmVjdGlvbiA9IGhhbmRsZS0+cmVsZWFz
ZUNvbm5lY3Rpb25Gb3JEb3dubG9hZCgpOwotICAgIFtXZWJEb3dubG9hZCBfZG93bmxvYWRXaXRo
TG9hZGluZ0NGVVJMQ29ubmVjdGlvbjpjb25uZWN0aW9uLmdldCgpIHJlcXVlc3Q6cmVxdWVzdC5j
ZlVSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpIHJlc3BvbnNlOnJlc3BvbnNlLmNmVVJMUmVzcG9u
c2UoKSBkZWxlZ2F0ZTpbd2ViVmlldyBkb3dubG9hZERlbGVnYXRlXSBwcm94eTpuaWxdOwotI2Vs
c2UKICAgICBbV2ViRG93bmxvYWQgX2Rvd25sb2FkV2l0aExvYWRpbmdDb25uZWN0aW9uOmhhbmRs
ZS0+Y29ubmVjdGlvbigpIHJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoVXBkYXRlSFRUUEJv
ZHkpIHJlc3BvbnNlOnJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBkZWxlZ2F0ZTpbd2ViVmlldyBk
b3dubG9hZERlbGVnYXRlXSBwcm94eTpuaWxdOwotI2VuZGlmCiB9CiAKIGJvb2wgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkK
QEAgLTc0NTMsMjQgKzc0NTMsMTQgQEAgLSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVt
OihpZCA8TgogCiAtICh2b2lkKXNjaGVkdWxlSW5SdW5Mb29wOihOU1J1bkxvb3AgKilydW5Mb29w
IGZvck1vZGU6KE5TU3RyaW5nICopbW9kZQogewotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0g
ICAgQ0ZSdW5Mb29wUmVmIHNjaGVkdWxlUGFpclJ1bkxvb3AgPSBbcnVuTG9vcCBnZXRDRlJ1bkxv
b3BdOwotI2Vsc2UKLSAgICBOU1J1bkxvb3AgKnNjaGVkdWxlUGFpclJ1bkxvb3AgPSBydW5Mb29w
OwotI2VuZGlmCiAgICAgaWYgKHJ1bkxvb3AgJiYgbW9kZSkKLSAgICAgICAgY29yZShzZWxmKS0+
YWRkU2NoZWR1bGVQYWlyKFNjaGVkdWxlUGFpcjo6Y3JlYXRlKHNjaGVkdWxlUGFpclJ1bkxvb3As
IChDRlN0cmluZ1JlZiltb2RlKSk7CisgICAgICAgIGNvcmUoc2VsZiktPmFkZFNjaGVkdWxlUGFp
cihTY2hlZHVsZVBhaXI6OmNyZWF0ZShydW5Mb29wLCAoQ0ZTdHJpbmdSZWYpbW9kZSkpOwogfQog
CiAtICh2b2lkKXVuc2NoZWR1bGVGcm9tUnVuTG9vcDooTlNSdW5Mb29wICopcnVuTG9vcCBmb3JN
b2RlOihOU1N0cmluZyAqKW1vZGUKIHsKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIENG
UnVuTG9vcFJlZiBzY2hlZHVsZVBhaXJSdW5Mb29wID0gW3J1bkxvb3AgZ2V0Q0ZSdW5Mb29wXTsK
LSNlbHNlCi0gICAgTlNSdW5Mb29wICpzY2hlZHVsZVBhaXJSdW5Mb29wID0gcnVuTG9vcDsKLSNl
bmRpZgogICAgIGlmIChydW5Mb29wICYmIG1vZGUpCi0gICAgICAgIGNvcmUoc2VsZiktPnJlbW92
ZVNjaGVkdWxlUGFpcihTY2hlZHVsZVBhaXI6OmNyZWF0ZShzY2hlZHVsZVBhaXJSdW5Mb29wLCAo
Q0ZTdHJpbmdSZWYpbW9kZSkpOworICAgICAgICBjb3JlKHNlbGYpLT5yZW1vdmVTY2hlZHVsZVBh
aXIoU2NoZWR1bGVQYWlyOjpjcmVhdGUocnVuTG9vcCwgKENGU3RyaW5nUmVmKW1vZGUpKTsKIH0K
IAogc3RhdGljIEJPT0wgZmluZFN0cmluZyhOU1ZpZXcgPFdlYkRvY3VtZW50U2VhcmNoaW5nPiAq
c2VhcmNoVmlldywgTlNTdHJpbmcgKnN0cmluZywgV2ViRmluZE9wdGlvbnMgb3B0aW9ucykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326916</attachid>
            <date>2017-11-14 13:29:23 -0800</date>
            <delta_ts>2017-11-14 14:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179688-20171114132922.patch</filename>
            <type>text/plain</type>
            <size>115797</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTExLTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENvY29hIENGVVJMQ29u
bmVjdGlvbiBsb2FkaW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd3RmL1NjaGVkdWxlUGFpci5oOgorICAgICAgICAqIHd0Zi9TY2hlZHVs
ZVBhaXJNYWMubW06CisKIDIwMTctMTEtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1hc3NpdmUgIlNlcnZlci1wcm9jZXNzLXRvLWNvbnRleHQtcHJvY2Vz
cyIgY29ubmVjdGlvbiBvdmVyaGF1bC4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFp
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpci5oCShyZXZpc2lv
biAyMjQ4MzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBhaXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
ICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFT
UyBOU1J1bkxvb3A7CiAjZW5kaWYKIApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTY2hlZHVsZVBh
aXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTY2hlZHVs
ZVBhaXI+IGNyZWF0ZShDRlJ1bkxvb3BSZWYgcnVuTG9vcCwgQ0ZTdHJpbmdSZWYgbW9kZSkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTY2hlZHVsZVBhaXIocnVuTG9vcCwgbW9kZSkpOyB9CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgc3RhdGljIFJlZjxTY2hlZHVsZVBhaXI+IGNyZWF0ZShOU1J1bkxvb3AqIHJ1
bkxvb3AsIENGU3RyaW5nUmVmIG1vZGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2NoZWR1bGVQ
YWlyKHJ1bkxvb3AsIG1vZGUpKTsgfQogICAgIE5TUnVuTG9vcCogbnNSdW5Mb29wKCkgY29uc3Qg
eyByZXR1cm4gbV9uc1J1bkxvb3AuZ2V0KCk7IH0KICNlbmRpZgpAQCAtNjIsNyArNjIsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgbV9tb2RlID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZUNvcHko
MCwgbW9kZSkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJMQ09O
TkVDVElPTikKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU2No
ZWR1bGVQYWlyKE5TUnVuTG9vcCosIENGU3RyaW5nUmVmKTsKICAgICBSZXRhaW5QdHI8TlNSdW5M
b29wKj4gbV9uc1J1bkxvb3A7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxl
UGFpck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBhaXJNYWMu
bW0JKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpck1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlNjaGVkdWxlUGFpci5oIgogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0K
IG5hbWVzcGFjZSBXVEYgewogCiBTY2hlZHVsZVBhaXI6OlNjaGVkdWxlUGFpcihOU1J1bkxvb3Aq
IHJ1bkxvb3AsIENGU3RyaW5nUmVmIG1vZGUpCkBAIC00Miw1ICs0MCwzIEBAIFNjaGVkdWxlUGFp
cjo6U2NoZWR1bGVQYWlyKE5TUnVuTG9vcCogcnUKIH0KIAogfSAvLyBuYW1lc3BhY2UKLQotI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw4NSBAQAorMjAxNy0xMS0xNCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92
ZSBDb2NvYSBDRlVSTENvbm5lY3Rpb24gbG9hZGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDRlVSTENvbm5lY3Rpb24gaXMgb25seSB1c2Vk
IG9uIHRoZSBBcHBsZVdpbiBwb3J0IG5vdy4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogU291cmNlc0lPUy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2YvUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHA6CisgICAgICAgICogbG9hZGVy
L2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW06CisgICAgICAgICogbG9hZGVyL21hYy9E
b2N1bWVudExvYWRlck1hYy5jcHA6CisgICAgICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRl
ck1hYy5tbToKKyAgICAgICAgKiBwYWdlL21hYy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFk
ZFNjaGVkdWxlUGFpcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpyZW1vdmVTY2hlZHVsZVBh
aXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V2ViQ29yZU5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQ6OldlYkNv
cmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VC
YXNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDRik6CisgICAgICAgIChXZWJDb3JlOjpjb3Jl
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9B
dXRoZW50aWNhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVK
YXJDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5Q29va2llc0ZvclVSTFdpdGhGaXJz
dFBhcnR5VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvb2tpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0ZW50U3RvcmFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcjo6c2V0Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcjo6cGxhdGZvcm1MYXp5SW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUVycm9yOjpkb1BsYXRmb3JtSXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlRXJyb3I6OmNmRXJyb3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6c2V0dXBSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6Omluc3RhbGxIb29rVG9SZW1vdmVDRk5ldHdvcmtNZXNzYWdlQmxv
Y2tpbmdNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OnNldHVwQ29ubmVjdGlvblNjaGVk
dWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWU6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNhblJlc3Bv
bmRUb1Byb3RlY3Rpb25TcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9D
cmVkZW50aWFsQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsOjpjZkNyZWRl
bnRpYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2Ev
UHJvdGVjdGlvblNwYWNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2U6OmNmU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Q6Om5zVVJMUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Q6OmNsZWFyT3JVcGRhdGVOU1VSTFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25z
ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VIYW5k
bGVJT1MubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVu
dGljYXRpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTo6YXV0aGVudGljYXRpb25DbGllbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6bWFjKToK
KyAgICAgICAgKC1bV2ViQ29yZUF1dGhlbnRpY2F0aW9uQ2xpZW50QXNDaGFsbGVuZ2VTZW5kZXIg
c2V0Q0ZDaGFsbGVuZ2U6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkNvcmVBdXRoZW50aWNh
dGlvbkNsaWVudEFzQ2hhbGxlbmdlU2VuZGVyIGNmQ2hhbGxlbmdlXSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpzeW5jaHJvbm91c1dpbGxTZW5kUmVxdWVzdEVuYWJsZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbTogUmVtb3ZlZC4KKwog
MjAxNy0xMS0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViU1dDbGllbnRDb25uZWN0aW9uIHNob3VsZCBkbyBJUEMgdG8gU3RvcmFnZVByb2Nlc3MgaWYg
aXRzIFdlYlNXT3JpZ2luVGFibGUgaXMgbm90IHlldCBpbml0aWFsaXplZApJbmRleDogU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00NDEsMjEgKzQ0MSwxMiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQogCi0gICAgcGxhdGZvcm0vbmV0d29yay9jZi9B
dXRoZW50aWNhdGlvbkNGLmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llSmFyQ0ZO
ZXQuY3BwCi0gICAgcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCi0g
ICAgcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAogICAgIHBs
YXRmb3JtL25ldHdvcmsvY2YvRE5TQ0ZOZXQuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9G
b3JtRGF0YVN0cmVhbUNGTmV0LmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVu
TG9vcENGLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q0ZOZXQuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAot
ICAgIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvckNGLmNwcAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCi0gICAgcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCi0gICAgcGxhdGZvcm0vbmV0d29yay9jZi9T
eW5jaHJvbm91c0xvYWRlckNsaWVudENGTmV0LmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvY2Yv
U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAogCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVDb2NvYS5tbQogICAgIHBsYXRmb3JtL25l
dHdvcmsvY29jb2EvQ29va2llU3RvcmFnZU9ic2VydmVyLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQJKHdvcmtpbmcgY29weSkKQEAgLTg3LDggKzg3LDYgQEAgbG9hZGVyL2FyY2hpdmUvY2Yv
TGVnYWN5V2ViQXJjaGl2ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2Nv
YS5tbQogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0KIAotbG9hZGVyL2Nm
L1Jlc291cmNlTG9hZGVyQ0ZOZXQuY3BwCi0KIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMu
Y3BwCiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tCiBsb2FkZXIvbWFjL1Jlc291cmNl
TG9hZGVyTWFjLm1tCkBAIC0zMTUsMjAgKzMxMywxMiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQXVkaW9UcmFja1ByaXZhCiBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrLmNwcAogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5jcHAKIAot
cGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAotcGxhdGZvcm0vbmV0d29y
ay9jZi9Db29raWVKYXJDRk5ldC5jcHAKLXBsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFn
ZUNGTmV0LmNwcAotcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNw
cAogcGxhdGZvcm0vbmV0d29yay9jZi9ETlNDRk5ldC5jcHAKIHBsYXRmb3JtL25ldHdvcmsvY2Yv
Rm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKLXBsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9v
cENGLmNwcAogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5j
cHAKIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKLXBsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VFcnJvckNGLmNwcAogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAKLXBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNG
TmV0LmNwcAogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQu
Y3BwCi1wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q0ZOZXQuY3Bw
CiAKIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvQ29va2llQ29jb2EubW0KIHBsYXRmb3JtL25ldHdv
cmsvY29jb2EvQ29va2llU3RvcmFnZU9ic2VydmVyLm1tCkBAIC0zNzgsMTAgKzM2OCw2IEBAIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVAKIAogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCiAKLXBsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKLXBsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAK
LQotCiAjaWYgRU5BQkxFX0FQUExFX1BBWQogCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eUNvbnRhY3RGaWVsZC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNJT1MudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNJT1MudHh0CShyZXZpc2lvbiAyMjQ4
MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzSU9TLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTE0LDEyICsxMTQsOCBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVy
CiAKIHBsYXRmb3JtL25ldHdvcmsvaW9zL05ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tCiBwbGF0
Zm9ybS9uZXR3b3JrL2lvcy9QcmV2aWV3Q29udmVydGVyLm1tCi1wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9SZXNvdXJjZUhhbmRsZUlPUy5tbQotcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VSZXF1
ZXN0SU9TLm1tCiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0K
IAotcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCi0KIHBsYXRmb3Jt
L3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbQogcGxhdGZvcm0vdGV4dC9pb3MvVGV4dEVu
Y29kaW5nUmVnaXN0cnlJT1MubW0KIApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC02NTQsNyArNjU0LDYgQEAKIAkJMjZCOTk5OTExODAzQjNDOTAwRDAxMTIxIC8qIFN0YWNr
QWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNkI5OTk5MDE4MDNCM0M5MDBEMDExMjEgLyogU3RhY2tBbGxvY2F0b3IuaCAqLzsgfTsKIAkJ
MjZCOTk5OTMxODAzQjlEOTAwRDAxMTIxIC8qIEZ1bmN0aW9uQ2FsbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZCOTk5OTIxODAzQjlEOTAwRDAxMTIx
IC8qIEZ1bmN0aW9uQ2FsbC5oICovOyB9OwogCQkyNkI5OTk5NzE4MDRENTQyMDBEMDExMjEgLyog
U2VsZWN0b3JDb21waWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjZCOTk5OTUxODA0RDU0MjAwRDAxMTIxIC8qIFNlbGVjdG9yQ29tcGlsZXIuaCAq
LzsgfTsKLQkJMjZDMTVDRjcxODU3RTE1RTAwRjE1QzAzIC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QzE1Q0Y1MTg1N0UxNUQwMEYxNUMwMyAvKiBS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgg
Ki87IH07CiAJCTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RTk0NEQ1
MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNkU5NDRERDFBQzRCNEVBMDA3Qjg1
QjUgLyogVGVybS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjZFOTQ0REMxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNkU5OEExMDEzMEE5RkNBMDA4RUI3QjIg
LyogVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjZFOThBMEYxMzBBOUZDQTAwOEVCN0IyIC8qIFRleHRDb2RlY0FT
Q0lJRmFzdFBhdGguaCAqLzsgfTsKQEAgLTY2OCw4ICs2NjcsNiBAQAogCQkyNkY3NTZCNTFCM0I2
OEYyMDAwNURENzkgLyogSW1tdXRhYmxlTkZBTm9kZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2Rjc1NkI0MUIzQjY4RjIwMDA1REQ3OSAv
KiBJbW11dGFibGVORkFOb2RlQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9y
dENvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjZGOUE4MzYxOEEwNDZBQzAwQUVCODhBIC8qIFZpZXdwb3J0Q29uZmlndXJhdGlv
bi5jcHAgKi87IH07CiAJCTI2RjlBODM5MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2RjlBODM3MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyNkZBRTRDQzE4
NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkZBRTRD
ODE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5jcHAgKi87IH07Ci0JCTI2RkFFNENEMTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNkZBRTRDOTE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0
OTk2NkYgLyogQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nl
c3NpYmlsaXR5QXR0YWNobWVudC5oICovOyB9OwogCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAg
LyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hl
ZHVsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkyOTE3QjU2MzE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAx
NDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjEzNywxMCArMjEzNCw4
IEBACiAJCTdFQTMwRjZBMTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
QTMwRjY4MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCAq
LzsgfTsKIAkJN0VBMzBGNkExN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVBWUlRDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3RUEzMEY2ODE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEMuaCAqLzsgfTsKIAkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0
b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTdFRTY4NDYwMTJE
MjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ0RDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0
aGVudGljYXRpb25DRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VF
Njg0NEUxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VFNjg0NjcxMkQy
NkUzODAwRTc5NDE1IC8qIEZvcm1EYXRhU3RyZWFtQ0ZOZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDU0MTJEMjZFMzgwMEU3OTQxNSAvKiBG
b3JtRGF0YVN0cmVhbUNGTmV0LmggKi87IH07Ci0JCTdFRTY4NDY5MTJEMjZFMzgwMEU3OTQxNSAv
KiBMb2FkZXJSdW5Mb29wQ0YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdFRTY4NDU2MTJEMjZFMzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29wQ0YuaCAq
LzsgfTsKIAkJN0VFNjg0NkExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlRXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDU3MTJEMjZF
MzgwMEU3OTQxNSAvKiBSZXNvdXJjZUVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VFNjg0NkQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291
cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0VFNjg0NUExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDZGMTJEMjZF
MzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NUMxMkQyNkUzODAwRTc5NDE1IC8qIFJl
c291cmNlUmVxdWVzdENGTmV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTYxMjYsOCArNjEyMSw2IEBACiAJCTI2Qjk5OTkyMTgwM0I5RDkwMEQw
MTEyMSAvKiBGdW5jdGlvbkNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RnVuY3Rpb25DYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2Qjk5OTk0MTgw
NEQ1NDIwMEQwMTEyMSAvKiBTZWxlY3RvckNvbXBpbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNlbGVjdG9yQ29tcGlsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNkI5OTk5NTE4MDRENTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3RvckNvbXBpbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI2QzE1Q0Y0MTg1N0UxNUQwMEYxNUMwMyAv
KiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkyNkMxNUNGNTE4NTdFMTVEMDBGMTVDMDMgLyogUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI2RDRFODQ1MUI0MjUzOUQwMEUwMzNBMiAvKiBERkFOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERGQU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyNkU5NDRENDFBQzRCMkREMDA3Qjg1QjUgLyogQ29tYmluZWRVUkxGaWx0ZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbWJpbmVkVVJMRmlsdGVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RTk0NEQ1MUFDNEIyREQwMDdC
ODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29tYmluZWRVUkxGaWx0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MTQ3LDggKzYxNDAsNiBAQAogCQkyNkY3NTZCNDFCM0I2OEYyMDAwNURENzkgLyogSW1tdXRh
YmxlTkZBTm9kZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1t
dXRhYmxlTkZBTm9kZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZG
OUE4MzYxOEEwNDZBQzAwQUVCODhBIC8qIFZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3cG9ydENvbmZpZ3VyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY5QTgzNzE4QTA0NkFDMDBBRUI4OEEg
LyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZXdwb3J0Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyNkZBRTRDODE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMjZGQUU0QzkxODUyRTNBNTAwNEM4QzQ2IC8qIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyOTE0RTMwNTFDQUI1QTQ0MDA0OTk2NkYgLyogQWNjZXNzaWJpbGl0eUF0
dGFjaG1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNz
aWJpbGl0eUF0dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTE0
RTMwNjFDQUI1QTQ0MDA0OTk2NkYgLyogQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxN0I1NUUxNDczNDk2QzAwNTJDOUQwIC8qIExh
eWVyRmx1c2hTY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MjAxLDcgKzcxOTIsNiBAQAogCQk0M0Y2RkQ5NTEzQkNEMEIxMDAyMjQwNTIgLyogU1ZHQW5p
bWF0ZWRJbnRlZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkSW50ZWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MTUy
OTJDMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTQ0MkFCQ0Q1MTdEOTI2MkYwMEQzMDcxNSAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVudENG
TmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN5bmNocm9ub3Vz
TG9hZGVyQ2xpZW50Q0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDM5
MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xvb2tTb2Z0TGluay5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzOTE3RkUxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNr
TG9va1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNrTG9v
a1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0M0YwNDI2MEU3NUM4
RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzU4Miw3ICs3NTcyLDYgQEAKIAkJNTE0Qzc2NDUw
Q0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9ybURhdGFTdHJlYW1NYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjQ2MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVy
cm9yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3Vy
Y2VFcnJvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDcwQ0U5
MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTUxNEM3NjQ5MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJj
ZVJlcXVlc3RNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjU4MENF
OTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcmVkZW50aWFsQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NUEwQ0U5MjNBMTAwN0VGM0NEIC8qIEZvcm1EYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1EYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkyOTAsNyArOTI3OSw2IEBACiAJCTdDRkRDNTdCMUFD
MUQ4MDUwMEUyNEE1NyAvKiBDb250ZW50RXh0ZW5zaW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEV4dGVuc2lvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdENEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVy
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoSGVhZGVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdENEM5NkQ5MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0ZldGNoSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3RTQyOENF
NDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3VyY2VIYW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZUhhbmRsZUlPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxl
bWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U09FU0VsZW1lbnRJbmRleFVpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTRWxlbWVudEluZGV4VWludC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQ3NEUxQjEyNDk0REM5MDAyMzUzNjQgLyogU1FM
aXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtOTMxMyw3ICs5MzAxLDYgQEAKIAkJN0U2NkUyMzIxNkQ2RUI2QzAwRjdFN0ZGIC8q
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTdERTFGQzE5
NUNFRjI2MDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291
cmNlUmVxdWVzdElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFJlc291cmNlUmVxdWVzdElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U4
RkFEQzMxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTdWJyZXNvdXJjZUxvYWRlckNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAx
QTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5k
b3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC05MzI0LDI1ICs5MzExLDE0IEBACiAJCTdFQTMwRjY4MTZERkZFNzUwMDI1N0QwQiAv
KiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFQTMwRjY4MTdFRkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
RURBQUZDODE5QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUgLyogQXV0
aGVudGljYXRpb25DRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dXRoZW50aWNhdGlvbkNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VFNjg0
NEQxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DRi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RUU2ODQ0RTEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VFNjg0NEYxMkQyNkUz
ODAwRTc5NDE1IC8qIENvb2tpZUphckNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvb2tpZUphckNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJN0VFNjg0NTAxMkQyNkUzODAwRTc5NDE1IC8qIENvb2tpZVN0b3JhZ2VDRk5ldC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29raWVTdG9yYWdlQ0ZOZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3RUU2ODQ1MjEyRDI2RTM4MDBFNzk0
MTUgLyogQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NTMxMkQyNkUzODAwRTc5NDE1IC8qIEZvcm1EYXRhU3RyZWFt
Q0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybURhdGFT
dHJlYW1DRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDU0MTJE
MjZFMzgwMEU3OTQxNSAvKiBGb3JtRGF0YVN0cmVhbUNGTmV0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZvcm1EYXRhU3RyZWFtQ0ZOZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJN0VFNjg0NTUxMkQyNkUzODAwRTc5NDE1IC8qIExvYWRlclJ1bkxvb3BDRi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkZXJSdW5Mb29wQ0Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3RUU2ODQ1NjEyRDI2RTM4MDBFNzk0
MTUgLyogTG9hZGVyUnVuTG9vcENGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvYWRlclJ1bkxvb3BDRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1
NzEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXNvdXJjZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTdFRTY4NDU4MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUVycm9yQ0YuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VFcnJvckNGLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VFNjg0NTkxMkQyNkUzODAwRTc5NDE1IC8qIFJl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFRTY4NDVBMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdFRTY4NDVCMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVl
c3RDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDVD
MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RDRk5ldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3RUU2ODQ1RDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNw
b25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdFRTY4NDVFMTJEMjZFMzgwMEU3OTQx
NSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZO
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VMb2Fk
ZXJDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdGNEM5NkQ4MUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0ZldGNoQm9keS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU2luay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1
MCAvKiBKU0ZldGNoQm9keS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Zl
dGNoQm9keS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MjAsOCArMTY0OTYs
NiBAQAogCQkJCUExQzE1MDc4MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLmgg
Ki8sCiAJCQkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIubW0g
Ki8sCiAJCQkJQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIFByZXZpZXdMb2FkZXJDbGllbnQu
aCAqLywKLQkJCQk3RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3VyY2VIYW5kbGVJT1Mu
bW0gKi8sCi0JCQkJN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdElP
Uy5tbSAqLywKIAkJCQk0NEEyMERCODBGODQxNjZDMDBCM0UxRkUgLyogV2ViQ29yZVVSTFJlc3Bv
bnNlSU9TLmggKi8sCiAJCQkJNDQ0RDRFMjEwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxS
ZXNwb25zZUlPUy5tbSAqLywKIAkJCSk7CkBAIC0xODI2Nyw3ICsxODI0MSw2IEBACiAJCQkJMUE3
RkE2NDcwRERBM0NCQTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcCAqLywK
IAkJCQk1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSAqLywK
IAkJCQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMubW0gKi8s
Ci0JCQkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSAq
LywKIAkJCQlFMTgwODExNDE2RkNGOUNCMDBCODBEMDcgLyogU3luY2hyb25vdXNMb2FkZXJDbGll
bnQubW0gKi8sCiAJCQkJMUZBRkJGMTYxNUE1RkE1MjAwMDgzQTIwIC8qIFVUSVV0aWxpdGllcy5o
ICovLAogCQkJCTFGQUZCRjE3MTVBNUZBNTIwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMubW0gKi8s
CkBAIC0xOTA5OCwxNCArMTkwNzEsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJN0VFNjg0NzMxMkQyNkU1NTAwRTc5NDE1IC8qIGNmICov
ID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk3RUU2ODQ3NDEy
RDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi8sCi0JCQkpOwotCQkJ
cGF0aCA9IGNmOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJODMyMTUwNzkx
RjI3RTk2QjAwOTVCMTM2IC8qIGJlYWNvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0yMjg4NywzNSArMjI4NTIsMjAgQEAKIAkJQjJGMzRGRTcwRTgyRjgx
NzAwRjYyN0NEIC8qIGNmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKLQkJCQk3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAg
Ki8sCi0JCQkJN0VFNjg0NEQxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuaCAq
LywKIAkJCQk3RUU2ODQ0RTEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCAqLywKIAkJCQk1RjJEQkJFODE3OEUzMzY5MDAxNDE0ODYgLyogQ2VydGlmaWNhdGVJbmZv
LmggKi8sCi0JCQkJN0VFNjg0NEYxMkQyNkUzODAwRTc5NDE1IC8qIENvb2tpZUphckNGTmV0LmNw
cCAqLywKLQkJCQk3RUU2ODQ1MDEyRDI2RTM4MDBFNzk0MTUgLyogQ29va2llU3RvcmFnZUNGTmV0
LmNwcCAqLywKLQkJCQk3RUU2ODQ1MjEyRDI2RTM4MDBFNzk0MTUgLyogQ3JlZGVudGlhbFN0b3Jh
Z2VDRk5ldC5jcHAgKi8sCiAJCQkJQjJGMzRGRTgwRTgyRjgyNzAwRjYyN0NEIC8qIEROU0NGTmV0
LmNwcCAqLywKIAkJCQk3RUU2ODQ1MzEyRDI2RTM4MDBFNzk0MTUgLyogRm9ybURhdGFTdHJlYW1D
Rk5ldC5jcHAgKi8sCiAJCQkJN0VFNjg0NTQxMkQyNkUzODAwRTc5NDE1IC8qIEZvcm1EYXRhU3Ry
ZWFtQ0ZOZXQuaCAqLywKLQkJCQk3RUU2ODQ1NTEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVu
TG9vcENGLmNwcCAqLywKLQkJCQk3RUU2ODQ1NjEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVu
TG9vcENGLmggKi8sCiAJCQkJRTEzRUYzNDcxNjg1MEM0NzAwMzRDODNGIC8qIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbkNGTmV0LmNwcCAqLywKIAkJCQkxQUY4RTFDMTEyNTY3M0UwMDAyMzBGRjcgLyog
UHJveHlTZXJ2ZXJDRk5ldC5jcHAgKi8sCiAJCQkJN0VFNjg0NTcxMkQyNkUzODAwRTc5NDE1IC8q
IFJlc291cmNlRXJyb3IuaCAqLywKLQkJCQk3RUU2ODQ1ODEyRDI2RTM4MDBFNzk0MTUgLyogUmVz
b3VyY2VFcnJvckNGLmNwcCAqLywKLQkJCQk3RUU2ODQ1OTEyRDI2RTM4MDBFNzk0MTUgLyogUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAgKi8sCi0JCQkJMjZGQUU0QzgxODUyRTNBNTAwNEM4QzQ2IC8q
IFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwICovLAotCQkJCTI2RkFF
NEM5MTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlLmggKi8sCi0JCQkJMjZDMTVDRjQxODU3RTE1RDAwRjE1QzAzIC8qIFJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwICovLAotCQkJCTI2
QzE1Q0Y1MTg1N0UxNUQwMEYxNUMwMyAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmggKi8sCiAJCQkJN0VFNjg0NUExMkQyNkUzODAwRTc5
NDE1IC8qIFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJCTdFRTY4NDVCMTJEMjZFMzgwMEU3OTQx
NSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgKi8sCiAJCQkJN0VFNjg0NUMxMkQyNkUzODAw
RTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdENGTmV0LmggKi8sCiAJCQkJN0VFNjg0NUQxMkQyNkUz
ODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCAqLywKLQkJCQk3RUU2ODQ1RTEyRDI2RTM4
MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLywKIAkJCQk1MUFCQUUxQzEw
M0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oICovLAogCQkJCTUxQUJB
RTFEMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwICov
LAotCQkJCTQ0MkFCQ0Q1MTdEOTI2MkYwMEQzMDcxNSAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVu
dENGTmV0LmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY2Y7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMjMyODksNyArMjMyMzksNiBAQAogCQkJCTFBOEY2QkIwMERCNTVDREMwMDFE
Qjc5NCAvKiBhcHBjYWNoZSAqLywKIAkJCQk1MTJERDhFODBEOTFFNjkxMDAwRjg5RUUgLyogYXJj
aGl2ZSAqLywKIAkJCQlBOEQyQjI1MjEyODdBNTYwMDBBRjREREEgLyogY2FjaGUgKi8sCi0JCQkJ
N0VFNjg0NzMxMkQyNkU1NTAwRTc5NDE1IC8qIGNmICovLAogCQkJCTdFNERFMTBCMTk4QjEwODEw
MDUxQ0IwMiAvKiBjb2NvYSAqLywKIAkJCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyogaWNv
biAqLywKIAkJCQlBMTVFMzFGMDFFMENCMDc1MDA0QjM3MUMgLyogaW9zICovLApAQCAtMjYxMjMs
NyArMjYwNzIsNiBAQAogCQkJCTA3QzA0NkM4MUU0MjUxNTUwMDcyMDFFNyAvKiBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QzA0NkM4MUU0
MjUxNTUwMDcyMDFFNyAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0VFNjg0NjAxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhl
bnRpY2F0aW9uQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Rjcx
M0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAwQjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI4MTcyLDcgKzI4MTIwLDYgQEAKIAkJCQlFM0Iy
RjBFRTFEN0Y0Q0E5MDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3NTlFOTQ5MTRFRjFENDkwMDI2QTJERCAvKiBMb2FkYWJsZVRleHRUcmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3MzIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5T
VVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKLQkJCQk3RUU2ODQ2OTEyRDI2RTM4MDBFNzk0MTUg
LyogTG9hZGVyUnVuTG9vcENGLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUU2ODIxMDE2Mzg3MzAy
MDAzQkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMTJFMzVE
MTFGQTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNkU4
MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKQEAgLTI4ODA5LDggKzI4NzU2LDYgQEAKIAkJCQk3RUU2ODQ2QTEyRDI2RTM4
MDBFNzk0MTUgLyogUmVzb3VyY2VFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RjcxM0Mw
RDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTRDNzY3OTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTI2RkFFNENEMTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyNkMxNUNGNzE4NTdFMTVF
MDBGMTVDMDMgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVy
YXRpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0EwQ0U5MjNBMTAwN0VGM0NE
IC8qIFJlc291cmNlSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3QjBD
RTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2RDM3M0YwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMwMzYyLDcgKzMwMzA3LDYgQEAKIAkJCQlBQTEyREY0OTE3NDNERjgzMDA0
REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQkyNkZBRTRD
QzE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTZEQ0I4QTFFN0E2OTk2MDAxQjVGODcgLyogUlRD
SWNlVHJhbnNwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTExNTZFMTJCMTc0OUMwMEM5
Njc1NCAvKiBTY3JvbGxBbmltYXRvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRUY4NjlG
MEU4NDRFOUQwMEE4NUNENSAvKiBTY3JvbGxiYXJUaGVtZU1hYy5tbSBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgJKHJldmlzaW9uIDIyNDgz
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSA8d3RmL1J1bkxvb3BUaW1lci5oPgogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8d3RmL1NjaGVkdWxlUGFpci5oPgogI2VuZGlmCiAK
QEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRU
aXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJik7CiAgICAgY29uc3QgU3RyaW5nJiBvdmVy
cmlkZUVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZUVuY29kaW5nOyB9CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCBzY2hlZHVsZShTY2hlZHVsZVBhaXImKTsKICAgICB2b2lkIHVuc2No
ZWR1bGUoU2NoZWR1bGVQYWlyJik7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjI0ODM1KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTg4LDcgKzE4OCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2Fk
ZXJDbGkKICAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcsIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlKSBj
b25zdCBmaW5hbCB7IHJldHVybiByZXNwb25zZTsgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShX
SU4pICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAg
ICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVk
IGxvbmcgbG9uZykgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjQ4MzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzAwLDcgKzMwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE5TRGljdGlvbmFyeSAq
ZGF0YURldGVjdGlvbkNvbnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKFdJTikgJiYgVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogICAgIC8vIEZJWE1FOiBXaW5kb3dzIHNob3VsZCB1c2Ugd2lsbENhY2hlUmVzcG9u
c2UgLSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MjU3Pi4KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBsZW5ndGgpID0gMDsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAy
MjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NjIsNyArNzYyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6cmVjZWl2
ZWRDYW5jZWxsYXRpbwogICAgIGNhbmNlbCgpOwogfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYm
ICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFJlc291
cmNlTG9hZGVyOjpzY2hlZHVsZShTY2hlZHVsZVBhaXImIHBhaXIpCiB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw3
ICsxMzcsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBMb2FkVGltaW5nJiBsb2FkVGltaW5nKCkg
eyByZXR1cm4gbV9sb2FkVGltaW5nOyB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShD
RlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzY2hlZHVsZShX
VEY6OlNjaGVkdWxlUGFpciYpOwogICAgIHZvaWQgdW5zY2hlZHVsZShXVEY6OlNjaGVkdWxlUGFp
ciYpOwogI2VuZGlmCkBAIC0xNTcsMTIgKzE1Nyw5IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQsIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+JiYsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBl
KTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlkZTsKICNlbmRp
ZgotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIENGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYgd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291
cmNlUmVxdWVzdCYmKT4mJik7CiAKQEAgLTIwMiw3ICsxOTksNyBAQCBwcml2YXRlOgogI2lmIFBM
QVRGT1JNKElPUykKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb25uZWN0aW9uUHJv
cGVydGllcyhSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAg
ICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIHVzZSB3aWxsQ2FjaGVSZXNwb25zZSAtIDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNTc+LgogICAgIGJvb2wgc2hv
dWxkQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYp
IG92ZXJyaWRlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuaAkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlkUmV0cmlldmVEZXJpdmVkRGF0YUZyb21DYWNoZShjb25zdCBTdHJpbmcmIHR5
cGUsIFNoYXJlZEJ1ZmZlciYpIG92ZXJyaWRlOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFV
U0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE5TQ2FjaGVkVVJM
UmVzcG9uc2UgKndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxS
ZXNwb25zZSopIG92ZXJyaWRlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShD
RlVSTENPTk5FQ1RJT04pCi0gICAgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwot
I2VuZGlmCiAKICAgICB2b2lkIHJlbGVhc2VSZXNvdXJjZXMoKSBvdmVycmlkZTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1Jlc291cmNlTG9hZGVyQ0ZOZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jZi9SZXNvdXJjZUxvYWRlckNGTmV0LmNwcAko
cmV2aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1Jlc291cmNlTG9h
ZGVyQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNCArMjYsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgogCi0jaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKLQogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oV0lO
KQorI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENGVVJMQ09OTkVDVElPTikKIAogYm9vbCBSZXNv
dXJjZUxvYWRlcjo6c2hvdWxkQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCiB7CkBAIC00OCw1ICs0NiwzIEBAIGJvb2wg
UmVzb3VyY2VMb2FkZXI6OnNob3VsZENhY2hlUmVzcG9uc2UKICNlbmRpZgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29j
b2EubW0JKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9T
dWJyZXNvdXJjZUxvYWRlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxOCArMzUsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCi1D
RkNhY2hlZFVSTFJlc3BvbnNlUmVmIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJl
c3BvbnNlKQotewotICAgIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3Jl
Q3JlYXRpb24ocmVxdWVzdCgpLCBtX3Jlc291cmNlLT5zZXNzaW9uSUQoKSwgY2FjaGVkUmVzcG9u
c2UpOwotICAgIGlmICghbV9yZXNvdXJjZS0+c2hvdWxkQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVS
TFJlc3BvbnNlR2V0V3JhcHBlZFJlc3BvbnNlKGNhY2hlZFJlc3BvbnNlKSkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9u
c2UoaGFuZGxlLCBjYWNoZWRSZXNwb25zZSk7Ci19Ci0KLSNlbHNlCi0KIE5TQ2FjaGVkVVJMUmVz
cG9uc2UqIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkKIHsKICAgICBEaXNrQ2Fj
aGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9y
ZXNvdXJjZS0+c2Vzc2lvbklEKCksIFtyZXNwb25zZSBfQ0ZDYWNoZWRVUkxSZXNwb25zZV0pOwpA
QCAtNTUsNiArNDMsNCBAQCBOU0NhY2hlZFVSTFJlc3BvbnNlKiBTdWJyZXNvdXJjZUxvYWRlcjo6
CiAgICAgcmV0dXJuIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShoYW5kbGUsIHJl
c3BvbnNlKTsKIH0KIAotI2VuZGlmCi0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzMsOCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAhVVNFKENG
VVJMQ09OTkVDVElPTikKLQogc3RhdGljIHZvaWQgc2NoZWR1bGVBbGwoY29uc3QgUmVzb3VyY2VM
b2FkZXJNYXAmIGxvYWRlcnMsIFNjaGVkdWxlUGFpciYgcGFpcikKIHsKICAgICBmb3IgKGF1dG8m
IGxvYWRlciA6IGNvcHlUb1ZlY3Rvcihsb2FkZXJzLnZhbHVlcygpKSkKQEAgLTY1LDYgKzYzLDQg
QEAgdm9pZCBEb2N1bWVudExvYWRlcjo6dW5zY2hlZHVsZShTY2hlZHVsZQogICAgIHVuc2NoZWR1
bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogfQogCi0jZW5kaWYK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL21h
Yy9SZXNvdXJjZUxvYWRlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSwyNCArMzEsOSBAQAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lm
IFVTRShDRlVSTENPTk5FQ1RJT04pCi0KLUNGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgUmVzb3VyY2VM
b2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZiBjYWNoZWRSZXNwb25zZSkKLXsKLSAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2Fs
bGJhY2tzID09IERvTm90U2VuZENhbGxiYWNrcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBSZXRhaW5QdHI8TlNDYWNoZWRVUkxSZXNwb25zZT4gbnNDYWNoZWRSZXNwb25zZSA9IGFk
b3B0TlMoW1tOU0NhY2hlZFVSTFJlc3BvbnNlIGFsbG9jXSBfaW5pdFdpdGhDRkNhY2hlZFVSTFJl
c3BvbnNlOmNhY2hlZFJlc3BvbnNlXSk7Ci0gICAgcmV0dXJuIFtmcmFtZUxvYWRlcigpLT5jbGll
bnQoKS53aWxsQ2FjaGVSZXNwb25zZShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIG5z
Q2FjaGVkUmVzcG9uc2UuZ2V0KCkpIF9DRkNhY2hlZFVSTFJlc3BvbnNlXTsKLX0KLQotI2Vsc2UK
LQogTlNDYWNoZWRVUkxSZXNwb25zZSogUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpCiB7CiAgICAg
aWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBEb05vdFNlbmRDYWxsYmFja3MpCkBA
IC01Niw2ICs0MSw0IEBAIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIFJlc291cmNlTG9hZGVyOjp3aWwK
ICAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkud2lsbENhY2hlUmVzcG9uc2UoZG9j
dW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByZXNwb25zZSk7CiB9CiAKLSNlbmRpZgotCiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0JKHJldmlzaW9uIDIyNDgzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDE3ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgUGFnZTo6cGxhdGZvcm1Jbml0
aWFsaXplKCkKIHsKICNpZiBQTEFURk9STShJT1MpCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikK
LSAgICBhZGRTY2hlZHVsZVBhaXIoU2NoZWR1bGVQYWlyOjpjcmVhdGUoV2ViVGhyZWFkUnVuTG9v
cCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpKTsKLSNlbHNlCiAgICAgYWRkU2NoZWR1bGVQYWly
KFNjaGVkdWxlUGFpcjo6Y3JlYXRlKFdlYlRocmVhZE5TUnVuTG9vcCgpLCBrQ0ZSdW5Mb29wQ29t
bW9uTW9kZXMpKTsKLSNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogI2Vsc2UKLSNpZiBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGFkZFNjaGVkdWxlUGFpcihTY2hlZHVsZVBhaXI6OmNy
ZWF0ZShbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZ2V0Q0ZSdW5Mb29wXSwga0NGUnVuTG9v
cENvbW1vbk1vZGVzKSk7Ci0jZWxzZQotICAgIGFkZFNjaGVkdWxlUGFpcihTY2hlZHVsZVBhaXI6
OmNyZWF0ZShbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSwga0NGUnVuTG9vcENvbW1vbk1vZGVz
KSk7Ci0jZW5kaWYKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQpAQCAtNzQs
MTQgKzY2LDEyIEBAIHZvaWQgUGFnZTo6YWRkU2NoZWR1bGVQYWlyKFJlZjxTY2hlZHVsZVAKICAg
ICAgICAgbV9zY2hlZHVsZWRSdW5Mb29wUGFpcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxl
UGFpckhhc2hTZXQ+KCk7CiAgICAgbV9zY2hlZHVsZWRSdW5Mb29wUGFpcnMtPmFkZChwYWlyLnB0
cigpKTsKIAotI2lmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGZvciAoRnJhbWUqIGZyYW1l
ID0gJm1fbWFpbkZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIg
PSBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkKICAgICAgICAgICAgIGRvY3VtZW50
TG9hZGVyLT5zY2hlZHVsZShwYWlyKTsKICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1
bWVudExvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkp
CiAgICAgICAgICAgICBkb2N1bWVudExvYWRlci0+c2NoZWR1bGUocGFpcik7CiAgICAgfQotI2Vu
ZGlmCiAKICAgICAvLyBGSVhNRTogbWFrZSBTaGFyZWRUaW1lck1hYyB1c2UgdGhlc2UgU2NoZWR1
bGVQYWlycy4KIH0KQEAgLTk0LDE0ICs4NCwxMiBAQCB2b2lkIFBhZ2U6OnJlbW92ZVNjaGVkdWxl
UGFpcihSZWY8U2NoZWR1CiAKICAgICBtX3NjaGVkdWxlZFJ1bkxvb3BQYWlycy0+cmVtb3ZlKHBh
aXIucHRyKCkpOwogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgZm9yIChGcmFtZSog
ZnJhbWUgPSAmbV9tYWluRnJhbWUuZ2V0KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCku
dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciA9IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICAgICAgZG9j
dW1lbnRMb2FkZXItPnVuc2NoZWR1bGUocGFpcik7CiAgICAgICAgIGlmIChEb2N1bWVudExvYWRl
ciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCkucHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcigpKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnVuc2NoZWR1bGUocGFpcik7CiAg
ICAgfQotI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0JKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTExNiwxMCArMTE2LDYgQEAKICNpbXBvcnQgPFZpZGVvVG9v
bGJveC9WaWRlb1Rvb2xib3guaD4KICNlbmRpZgogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikK
LSNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0NGTlNVUkxDb25uZWN0aW9uU1BJLmg+Ci0jZW5kaWYK
LQogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgIk1lZGlhUmVtb3RlU29m
dExpbmsuaCIKIApAQCAtMzkyLDU4ICszODgsNiBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBn
bG9iYWxQdWxsRGVsZWdhCiB9CiAjZW5kaWYKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi1j
bGFzcyBXZWJDb3JlTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkNvcmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50PiwgcHVi
bGljIEF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPFdl
YkNvcmVOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50PiBjcmVhdGUoTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqY2hhbGxlbmdlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJDb3JlTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudChjaGFs
bGVuZ2UpKTsKLSAgICB9Ci0KLSAgICB1c2luZyBSZWZDb3VudGVkPFdlYkNvcmVOU1VSTEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2Vi
Q29yZU5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQ+OjpkZXJlZjsKLQotcHJpdmF0
ZToKLSAgICBXZWJDb3JlTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudChOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UpCi0gICAgICAgIDogbV9jaGFsbGVuZ2Uo
Y2hhbGxlbmdlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2hhbGxlbmdlKTsKLSAgICB9Ci0K
LSAgICB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQot
ICAgIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsg
fQotCi0gICAgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKSBvdmVycmlkZQotICAgIHsKLSAg
ICAgICAgW1ttX2NoYWxsZW5nZSBzZW5kZXJdIHVzZUNyZWRlbnRpYWw6Y3JlZGVudGlhbC5uc0Ny
ZWRlbnRpYWwoKSBmb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTptX2NoYWxsZW5nZS5nZXQoKV07
Ci0gICAgfQotCi0gICAgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRl
bnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZQotICAgIHsKLSAg
ICAgICAgW1ttX2NoYWxsZW5nZSBzZW5kZXJdIGNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTptX2NoYWxsZW5nZS5nZXQoKV07Ci0gICAgfQotCi0gICAg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
IG92ZXJyaWRlCi0gICAgewotICAgICAgICBbW21fY2hhbGxlbmdlIHNlbmRlcl0gY2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2U6bV9jaGFsbGVuZ2UuZ2V0KCldOwotICAgIH0KLQotICAgIHZv
aWQgcmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmIChbW21fY2hhbGxl
bmdlIHNlbmRlcl0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtRGVmYXVsdEhh
bmRsaW5nRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KV0pCi0gICAgICAgICAgICBbW21fY2hh
bGxlbmdlIHNlbmRlcl0gcGVyZm9ybURlZmF1bHRIYW5kbGluZ0ZvckF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOm1fY2hhbGxlbmdlLmdldCgpXTsKLSAgICB9Ci0KLSAgICB2b2lkIHJlY2VpdmVkQ2hh
bGxlbmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIGlmIChbW21fY2hhbGxlbmdlIHNlbmRlcl0gcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZVdpdGhDaGFsbGVu
Z2U6KV0pCi0gICAgICAgICAgICBbW21fY2hhbGxlbmdlIHNlbmRlcl0gcmVqZWN0UHJvdGVjdGlv
blNwYWNlQW5kQ29udGludWVXaXRoQ2hhbGxlbmdlOm1fY2hhbGxlbmdlLmdldCgpXTsKLSAgICB9
Ci0KLSAgICBSZXRhaW5QdHI8TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gbV9jaGFsbGVu
Z2U7Ci19OwotI2VuZGlmCi0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7
CiAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKQpAQCAtMTg2OSwxNiArMTgxMyw4IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaG91bGRXYWl0Rm9yUmVz
cG9uc2VUb0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UqIG5zQ2hhbGxlbmdlKQorYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKE5TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UqIGNoYWxsZW5nZSkKIHsKLSNpZiBVU0UoQ0ZVUkxDT05ORUNU
SU9OKQotICAgIFJlZlB0cjxXZWJDb3JlTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVu
dD4gY2xpZW50ID0gV2ViQ29yZU5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQ6OmNy
ZWF0ZShuc0NoYWxsZW5nZSk7Ci0gICAgUmV0YWluUHRyPENGVVJMQXV0aENoYWxsZW5nZVJlZj4g
Y2ZDaGFsbGVuZ2UgPSBhZG9wdENGKFtuc0NoYWxsZW5nZSBfY3JlYXRlQ0ZBdXRoQ2hhbGxlbmdl
XSk7Ci0gICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlKGNmQ2hhbGxlbmdlLmdl
dCgpLCBjbGllbnQuZ2V0KCkpOwotI2Vsc2UKLSAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBj
aGFsbGVuZ2UobnNDaGFsbGVuZ2UpOwotI2VuZGlmCi0KICAgICByZXR1cm4gcGxheWVyKCktPnNo
b3VsZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hhbGxlbmdlKTsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3Bh
Y2VCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Byb3RlY3Rpb25TcGFjZUJhc2UuY3BwCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2UuaCIKIAot
I2lmIFVTRShDRlVSTENPTk5FQ1RJT04pICYmICFQTEFURk9STShDT0NPQSkKKyNpZiBVU0UoQ0ZV
UkxDT05ORUNUSU9OKQogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKICNpbmNsdWRlIDxD
Rk5ldHdvcmsvQ0ZVUkxQcm90ZWN0aW9uU3BhY2VQcml2Lmg+CiAjZW5kaWYKQEAgLTExOCw3ICsx
MTgsNiBAQCBib29sIFByb3RlY3Rpb25TcGFjZUJhc2U6OmlzUGFzc3dvcmRCYXNlCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLQogYm9vbCBQcm90ZWN0aW9uU3BhY2VCYXNlOjpjb21wYXJlKGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYgYSwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBiKQogewogICAgIGlm
IChhLmhvc3QoKSAhPSBiLmhvc3QoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikKKyNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCBOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24o
KSBjb25zdDsKICAgICBpZCBtYWtlRGVsZWdhdGUoYm9vbCwgV1RGOjpNZXNzYWdlUXVldWU8V1RG
OjpGdW5jdGlvbjx2b2lkKCk+PiopOwogICAgIGlkIGRlbGVnYXRlKCk7CkBAIC0yMDUsNyArMjA1
LDcgQEAgcHVibGljOgogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYp
OwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQor
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVXaWxs
Q2FjaGVSZXNwb25zZShOU0NhY2hlZFVSTFJlc3BvbnNlICopOwogI2VuZGlmCiAKQEAgLTIyNSwx
MCArMjI1LDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDRlN0cmluZ1Jl
ZiBzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZSgpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJ
T1MpICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgc3RhdGljIENGTXV0YWJsZURpY3Rpb25h
cnlSZWYgY3JlYXRlU1NMUHJvcGVydGllc0Zyb21OU1VSTFJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0Jik7Ci0jZW5kaWYKLQogICAgIHR5cGVkZWYgUmVmPFJlc291cmNlSGFuZGxlPiAoKkJ1
aWx0aW5Db25zdHJ1Y3RvcikoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCogY2xpZW50KTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5D
b25zdHJ1Y3Rvcihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29uc3RydWN0
b3IpOwogCkBAIC0yNjksMTEgKzI2NSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlQ0ZV
UkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxk
Q29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBXVEY6Ok1lc3Nh
Z2VRdWV1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+KiwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQ0ZVUkxDT05O
RUNUSU9OKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlv
bihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxp
bmdCZWhhdmlvcik7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykgJiYgIVVTRShDRlVSTENP
Tk5FQ1RJT04pCisjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0
aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1
bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKTsKICNlbmRp
ZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1f
Y3VycmVudFJlcXVlc3Q7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGU+IG1fY29ubmVjdGlvbkRlbGVnYXRlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09D
T0EpICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJl
dGFpblB0cjxOU1VSTENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZXRhaW5QdHI8aWQ+
IG1fZGVsZWdhdGU7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvQXV0aGVudGljYXRpb25DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAkocmV2aXNpb24gMjI0ODM1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNG
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTEgKzQ0LDcgQEAgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6OkF1dGhlbnRpY2F0aW9uQwogfQogCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmIGNmQ2hhbGxlbmdlLCBB
dXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQpCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgOiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UoUHJvdGVjdGlvblNwYWNl
KENGVVJMQXV0aENoYWxsZW5nZUdldFByb3RlY3Rpb25TcGFjZShjZkNoYWxsZW5nZSkpLCBDcmVk
ZW50aWFsKENGVVJMQXV0aENoYWxsZW5nZUdldFByb3Bvc2VkQ3JlZGVudGlhbChjZkNoYWxsZW5n
ZSkpLAotI2Vsc2UKICAgICA6IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZShjb3JlKENGVVJM
QXV0aENoYWxsZW5nZUdldFByb3RlY3Rpb25TcGFjZShjZkNoYWxsZW5nZSkpLCBjb3JlKENGVVJM
QXV0aENoYWxsZW5nZUdldFByb3Bvc2VkQ3JlZGVudGlhbChjZkNoYWxsZW5nZSkpLAotI2VuZGlm
CiAgICAgICAgIENGVVJMQXV0aENoYWxsZW5nZUdldFByZXZpb3VzRmFpbHVyZUNvdW50KGNmQ2hh
bGxlbmdlKSwgKENGVVJMUmVzcG9uc2VSZWYpQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0RmFpbHVyZVJl
c3BvbnNlKGNmQ2hhbGxlbmdlKSwgQ0ZVUkxBdXRoQ2hhbGxlbmdlR2V0RXJyb3IoY2ZDaGFsbGVu
Z2UpKQogICAgICwgbV9hdXRoZW50aWNhdGlvbkNsaWVudChhdXRoZW50aWNhdGlvbkNsaWVudCkK
ICAgICAsIG1fY2ZDaGFsbGVuZ2UoY2ZDaGFsbGVuZ2UpCkBAIC04MCwyMCArNzYsMTIgQEAgQ0ZV
UkxBdXRoQ2hhbGxlbmdlUmVmIGNyZWF0ZUNGKGNvbnN0IEF1dAogewogICAgIC8vIEZJWE1FOiBX
aHkgbm90IGNhY2hlIENGVVJMQXV0aENoYWxsZW5nZVJlZiBpbiBtX2NmQ2hhbGxlbmdlPyBGb3Vu
ZGF0aW9uIGNvdW50ZXJwYXJ0IGRvZXMgdGhhdC4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IENGVVJMQXV0aENoYWxsZW5nZVJlZiByZXN1bHQgPSBDRlVSTEF1dGhDaGFsbGVuZ2VDcmVhdGUo
MCwgY29yZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5jZlNwYWNlKCksIGNvcmVDaGFsbGVu
Z2UucHJvcG9zZWRDcmVkZW50aWFsKCkuY2ZDcmVkZW50aWFsKCksCi0jZWxzZQogICAgIFJldGFp
blB0cjxDRlVSTENyZWRlbnRpYWxSZWY+IGNyZWRlbnRpYWwgPSBhZG9wdENGKGNyZWF0ZUNGKGNv
cmVDaGFsbGVuZ2UucHJvcG9zZWRDcmVkZW50aWFsKCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZVUkxQ
cm90ZWN0aW9uU3BhY2VSZWY+IHByb3RlY3Rpb25TcGFjZSA9IGFkb3B0Q0YoY3JlYXRlQ0YoY29y
ZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSkpOwotICAgIENGVVJMQXV0aENoYWxsZW5nZVJl
ZiByZXN1bHQgPSBDRlVSTEF1dGhDaGFsbGVuZ2VDcmVhdGUoMCwgcHJvdGVjdGlvblNwYWNlLmdl
dCgpLCBjcmVkZW50aWFsLmdldCgpLAotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29yZUNoYWxsZW5nZS5wcmV2aW91c0ZhaWx1cmVDb3VudCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmVDaGFsbGVuZ2UuZmFpbHVy
ZVJlc3BvbnNlKCkuY2ZVUkxSZXNwb25zZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvcmVDaGFsbGVuZ2UuZXJyb3IoKSk7CisgICAgQ0ZVUkxBdXRoQ2hhbGxl
bmdlUmVmIHJlc3VsdCA9IENGVVJMQXV0aENoYWxsZW5nZUNyZWF0ZSgwLCBwcm90ZWN0aW9uU3Bh
Y2UuZ2V0KCksIGNyZWRlbnRpYWwuZ2V0KCksIGNvcmVDaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJl
Q291bnQoKSwgY29yZUNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS5jZlVSTFJlc3BvbnNlKCks
IGNvcmVDaGFsbGVuZ2UuZXJyb3IoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmICFQ
TEFURk9STShDT0NPQSkKIENGVVJMQ3JlZGVudGlhbFJlZiBjcmVhdGVDRihjb25zdCBDcmVkZW50
aWFsJiBjb3JlQ3JlZGVudGlhbCkKIHsKICAgICBDRlVSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZSBw
ZXJzaXN0ZW5jZSA9IGtDRlVSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7CkBAIC0yNzUsNyAr
MjYzLDYgQEAgUHJvdGVjdGlvblNwYWNlIGNvcmUoQ0ZVUkxQcm90ZWN0aW9uU3BhYwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0ZVUkxQcm90ZWN0aW9uU3BhY2VHZXRSZWFsbShjZlNwYWNl
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtZSk7CiB9Ci0jZW5kaWYKIAogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9u
Q0YuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1
dGhlbnRpY2F0aW9uQ0YuaAkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5
LDE4ICszOSwxMCBAQCBjbGFzcyBDcmVkZW50aWFsOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwog
CiBDRlVSTEF1dGhDaGFsbGVuZ2VSZWYgY3JlYXRlQ0YoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKLSNpZiBQTEFURk9STShXSU4pCiBDRlVSTENyZWRlbnRpYWxSZWYgY3JlYXRlQ0Yo
Y29uc3QgQ3JlZGVudGlhbCYpOwogQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgY3JlYXRlQ0YoY29u
c3QgUHJvdGVjdGlvblNwYWNlJik7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgY29yZShDRlVSTEF1dGhDaGFsbGVuZ2VSZWYpOwotI2VuZGlm
Ci0jaWYgUExBVEZPUk0oV0lOKQogQ3JlZGVudGlhbCBjb3JlKENGVVJMQ3JlZGVudGlhbFJlZik7
CiBQcm90ZWN0aW9uU3BhY2UgY29yZShDRlVSTFByb3RlY3Rpb25TcGFjZVJlZik7Ci0jZW5kaWYK
IH0KIAogI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcAkocmV2
aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29r
aWVKYXJDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDIxICszNSwxNiBAQAogI2luY2x1
ZGUgIlVSTC5oIgogI2luY2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29raWVzUHJpdi5oPgogI2lu
Y2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHBhbC9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CisjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0
Zi9Tb2Z0TGlua2luZy5oPgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUg
PFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNpbmNsdWRl
IDx3aW5kb3dzLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKFdJTikKIGVudW0gewogICAgIENG
SFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnRE
b21haW4gPSAzCiB9OwotI2VuZGlmCiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC0xMzAsMjIgKzEy
NSwxMyBAQCBzdGF0aWMgUmV0YWluUHRyPENGQXJyYXlSZWY+IGNvcHlDb29raWVzCiAKICAgICBB
U1NFUlQoIXNlY3VyZSB8fCAoc2VjdXJlICYmIHVybC5wcm90b2NvbElzKCJodHRwcyIpKSk7CiAK
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gYWRvcHRDRihfQ0ZIVFRQQ29va2llU3Rv
cmFnZUNvcHlDb29raWVzRm9yVVJMV2l0aE1haW5Eb2N1bWVudFVSTChzZXNzaW9uLmNvb2tpZVN0
b3JhZ2UoKS5nZXQoKSwgdXJsLmNyZWF0ZUNGVVJMKCkuZ2V0KCksIGZpcnN0UGFydHkuY3JlYXRl
Q0ZVUkwoKS5nZXQoKSwgc2VjdXJlKSk7Ci0jZWxzZQotICAgIC8vIF9DRkhUVFBDb29raWVTdG9y
YWdlQ29weUNvb2tpZXNGb3JVUkxXaXRoTWFpbkRvY3VtZW50VVJMIGlzIG5vdCBhdmFpbGFibGUg
b24gb3RoZXIgcGxhdGZvcm1zLgogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBy
ZXR1cm4gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ29weUNvb2tpZXNGb3JVUkwoc2Vzc2lv
bi5jb29raWVTdG9yYWdlKCkuZ2V0KCksIHVybC5jcmVhdGVDRlVSTCgpLmdldCgpLCBzZWN1cmUp
KTsKLSNlbmRpZgogfQogCiBzdGF0aWMgQ0ZBcnJheVJlZiBjcmVhdGVDb29raWVzKENGRGljdGlv
bmFyeVJlZiBoZWFkZXJGaWVsZHMsIENGVVJMUmVmIHVybCkKIHsKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgQ0ZBcnJheVJlZiBwYXJzZWRDb29raWVzID0gX0NGSFRUUFBhcnNlZENvb2tpZXNXaXRo
UmVzcG9uc2VIZWFkZXJGaWVsZHMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaGVhZGVyRmllbGRzLCB1
cmwpOwotI2Vsc2UKICAgICBDRkFycmF5UmVmIHBhcnNlZENvb2tpZXMgPSBDRkhUVFBDb29raWVD
cmVhdGVXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaGVhZGVy
RmllbGRzLCB1cmwpOwotI2VuZGlmCiAgICAgaWYgKCFwYXJzZWRDb29raWVzKQogICAgICAgICBw
YXJzZWRDb29raWVzID0gQ0ZBcnJheUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAwLCAm
a0NGVHlwZUFycmF5Q2FsbEJhY2tzKTsKIApAQCAtMjg4LDcgKzI3NCw2IEBAIHZvaWQgZGVsZXRl
QWxsQ29va2llcyhjb25zdCBOZXR3b3JrU3RvcmEKICAgICBDRkhUVFBDb29raWVTdG9yYWdlRGVs
ZXRlQWxsQ29va2llcyhzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7CiB9CiAKLSNpZiBQ
TEFURk9STShXSU4pCiB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zdG5hbWVz
KQogewogfQpAQCAtMjk2LDcgKzI4MSw2IEBAIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
cyhjb25zdCBOZXQKIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCkKIHsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3Jh
Z2VDRk5ldC5jcHAJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MjIgKzI2LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29va2llU3RvcmFn
ZS5oIgogCisjaW5jbHVkZSAiTG9hZGVyUnVuTG9vcENGLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgiCisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENvb2tpZXNQcml2Lmg+
CisjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAotI2lmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJMb2FkZXJSdW5Mb29wQ0YuaCIKLSNp
bmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KLSNpbmNsdWRlIDxXZWJLaXRT
eXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jZW5kaWYKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oV0lOKQotCiBzdGF0aWMgSGFzaE1hcDxDRkhU
VFBDb29raWVTdG9yYWdlUmVmLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiYgY29va2llQ2hhbmdl
Q2FsbGJhY2tNYXAoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4+PiBtYXA7CkBAIC0xMDEs
NiArOTYsNCBAQCB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKGNvbnN0IE5lCiAgICAg
Q0ZIVFRQQ29va2llU3RvcmFnZVVuc2NoZWR1bGVGcm9tUnVuTG9vcChjb29raWVTdG9yYWdlLmdl
dCgpLCBydW5Mb29wLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwogfQogCi0jZW5kaWYgLy8gUExB
VEZPUk0oV0lOKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3Jh
Z2VDRk5ldC5jcHAJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDE3ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKICNpbmNsdWRl
ICJDcmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiUHJvdGVjdGlvblNwYWNlLmgiCisjaW5jbHVkZSA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
Ci0jaWYgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKQotI2luY2x1
ZGUgPENGTmV0d29yay9DRlVSTENyZWRlbnRpYWxTdG9yYWdlLmg+Ci0jZW5kaWYKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogc3RhdGljIGlubGluZSBDRlVSTENyZWRlbnRpYWxSZWYgY29w
eUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlvblNwYWNlKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHBy
b3RlY3Rpb25TcGFjZSkKQEAgLTUyLDE0ICs0NSw5IEBAIHN0YXRpYyBpbmxpbmUgQ0ZVUkxDcmVk
ZW50aWFsUmVmIGNvcHlDcmUKIAogQ3JlZGVudGlhbCBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0RnJv
bVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNl
KQogewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGF1dG8gY3JlZGVudGlhbENGID0gYWRvcHRD
Rihjb3B5Q3JlZGVudGlhbEZyb21Qcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlLmNmU3Bh
Y2UoKSkpOwotICAgIHJldHVybiBDcmVkZW50aWFsKGNyZWRlbnRpYWxDRi5nZXQoKSk7Ci0jZWxz
ZQogICAgIGF1dG8gcHJvdGVjdGlvblNwYWNlQ0YgPSBhZG9wdENGKGNyZWF0ZUNGKHByb3RlY3Rp
b25TcGFjZSkpOwogICAgIGF1dG8gY3JlZGVudGlhbENGID0gYWRvcHRDRihjb3B5Q3JlZGVudGlh
bEZyb21Qcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlQ0YuZ2V0KCkpKTsKICAgICByZXR1
cm4gY29yZShjcmVkZW50aWFsQ0YuZ2V0KCkpOwotI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VFcnJvckNGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlRXJyb3JDRi5jcHAJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvckNGLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTEgKzMxLDggQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxDb3Jl
Rm91bmRhdGlvbi9DRkVycm9yLmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29ya0Vycm9y
cy5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotI2lmIFBMQVRGT1JNKFdJTikKICNp
bmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0j
ZW5kaWYKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDgsNyArNDUsNiBAQCBSZXNvdXJjZUVycm9yOjpSZXNvdXJjZUVycm9yKENGRXJyb3JS
ZWYgCiAgICAgICAgIHNldFR5cGUoKENGRXJyb3JHZXRDb2RlKG1fcGxhdGZvcm1FcnJvci5nZXQo
KSkgPT0ga0NGVVJMRXJyb3JUaW1lZE91dCkgPyBUeXBlOjpUaW1lb3V0IDogVHlwZTo6R2VuZXJh
bCk7CiB9CiAKLSNpZiBQTEFURk9STShXSU4pCiBSZXNvdXJjZUVycm9yOjpSZXNvdXJjZUVycm9y
KGNvbnN0IFN0cmluZyYgZG9tYWluLCBpbnQgZXJyb3JDb2RlLCBjb25zdCBVUkwmIGZhaWxpbmdV
UkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24sIENGRGF0YVJlZiBjZXJ0aWZp
Y2F0ZSkKICAgICA6IFJlc291cmNlRXJyb3JCYXNlKGRvbWFpbiwgZXJyb3JDb2RlLCBmYWlsaW5n
VVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbiwgVHlwZTo6R2VuZXJhbCkKICAgICAsIG1fZGF0YUlz
VXBUb0RhdGUodHJ1ZSkKQEAgLTY4LDcgKzY0LDYgQEAgdm9pZCBSZXNvdXJjZUVycm9yOjpzZXRD
ZXJ0aWZpY2F0ZShDRkRhdAogewogICAgIG1fY2VydGlmaWNhdGUgPSBjZXJ0aWZpY2F0ZTsKIH0K
LSNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKIGNvbnN0IENGU3RyaW5nUmVmIGZhaWxpbmdVUkxT
dHJpbmdLZXkgPSBDRlNUUigiTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXkiKTsKIGNvbnN0IENG
U3RyaW5nUmVmIGZhaWxpbmdVUkxLZXkgPSBDRlNUUigiTlNFcnJvckZhaWxpbmdVUkxLZXkiKTsK
QEAgLTExMSw5ICsxMDYsNyBAQCB2b2lkIFJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQo
KQogICAgICAgICB9CiAgICAgICAgIG1fbG9jYWxpemVkRGVzY3JpcHRpb24gPSAoQ0ZTdHJpbmdS
ZWYpIENGRGljdGlvbmFyeUdldFZhbHVlKHVzZXJJbmZvLmdldCgpLCBrQ0ZFcnJvckxvY2FsaXpl
ZERlc2NyaXB0aW9uS2V5KTsKICAgICAgICAgCi0jaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBt
X2NlcnRpZmljYXRlID0gd2tHZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKHVzZXJJbmZvLmdldCgp
KTsKLSNlbmRpZgogICAgIH0KIAogICAgIG1fZGF0YUlzVXBUb0RhdGUgPSB0cnVlOwpAQCAtMTIy
LDExICsxMTUsNyBAQCB2b2lkIFJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQoKQogCiB2
b2lkIFJlc291cmNlRXJyb3I6OmRvUGxhdGZvcm1Jc29sYXRlZENvcHkoY29uc3QgUmVzb3VyY2VF
cnJvciYgb3RoZXIpCiB7Ci0jaWYgUExBVEZPUk0oV0lOKQogICAgIG1fY2VydGlmaWNhdGUgPSBv
dGhlci5tX2NlcnRpZmljYXRlOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ob3RoZXIpOwotI2Vu
ZGlmCiB9CiAKIGJvb2wgUmVzb3VyY2VFcnJvcjo6cGxhdGZvcm1Db21wYXJlKGNvbnN0IFJlc291
cmNlRXJyb3ImIGEsIGNvbnN0IFJlc291cmNlRXJyb3ImIGIpCkBAIC0xNTQsMTAgKzE0Myw4IEBA
IENGRXJyb3JSZWYgUmVzb3VyY2VFcnJvcjo6Y2ZFcnJvcigpIGNvbnMKICAgICAgICAgICAgICAg
ICBDRkRpY3Rpb25hcnlTZXRWYWx1ZSh1c2VySW5mby5nZXQoKSwgZmFpbGluZ1VSTEtleSwgdXJs
LmdldCgpKTsKICAgICAgICAgfQogCi0jaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBpZiAobV9j
ZXJ0aWZpY2F0ZSkKICAgICAgICAgICAgIHdrU2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSh1c2Vy
SW5mby5nZXQoKSwgbV9jZXJ0aWZpY2F0ZS5nZXQoKSk7Ci0jZW5kaWYKICAgICAgICAgCiAgICAg
ICAgIG1fcGxhdGZvcm1FcnJvciA9IGFkb3B0Q0YoQ0ZFcnJvckNyZWF0ZSgwLCBtX2RvbWFpbi5j
cmVhdGVDRlN0cmluZygpLmdldCgpLCBtX2Vycm9yQ29kZSwgdXNlckluZm8uZ2V0KCkpKTsKICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDE1ICs1Niw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVy
YXRpb25RdWV1ZS5oIgotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0jaW5jbHVkZSAiV2ViQ29y
ZVVSTFJlc3BvbnNlLmgiCi0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYu
aD4KLSNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxSZXF1ZXN0UHJpdi5oPgotI2VuZGlmCi0jZW5k
aWYKLQogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uv
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8cHJvY2Vzcy5oPgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCShyZXZp
c2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSwxMSArMzEsOCBAQAogI2luY2x1ZGUgIkZvcm1EYXRhU3RyZWFtQ0ZOZXQuaCIKICNpbmNsdWRl
ICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCi0jaW5j
bHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KLQotI2lmIFBMQVRGT1JNKFdJTikKICNp
bmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0j
ZW5kaWYKKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAkocmV2
aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzMsMTYgKzczLDEyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2EKIAogdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpzZXR1cFJlcXVlc3QoQ0ZNdXRhYmxlVVJMUmVxdWVz
dFJlZiByZXF1ZXN0KQogewotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDRlVSTFJlcXVlc3RTZXRT
aG91bGRTdGFydFN5bmNocm9ub3VzbHkocmVxdWVzdCwgMSk7Ci0jZW5kaWYKICAgICBDRlVSTFJl
ZiByZXF1ZXN0VVJMID0gQ0ZVUkxSZXF1ZXN0R2V0VVJMKHJlcXVlc3QpOwogICAgIGlmICghcmVx
dWVzdFVSTCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fb3JpZ2luYWxTY2hlbWUgPSBhZG9wdENG
KENGVVJMQ29weVNjaGVtZShyZXF1ZXN0VVJMKSk7CiB9CiAKLSNpZiBQTEFURk9STShXSU4pCiBM
UkVTVUxUIENBTExCQUNLIGhvb2tUb1JlbW92ZUNGTmV0d29ya01lc3NhZ2UoaW50IGNvZGUsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7CiAgICAgTVNHKiBtc2cgPSByZWludGVycHJl
dF9jYXN0PE1TRyo+KGxQYXJhbSk7CkBAIC0xMDAsNyArOTYsNiBAQCBzdGF0aWMgdm9pZCBpbnN0
YWxsSG9va1RvUmVtb3ZlQ0ZOZXR3b3JrCiAgICAgICAgIGhvb2sgPSA6OlNldFdpbmRvd3NIb29r
RXhXKFdIX0dFVE1FU1NBR0UsIGhvb2tUb1JlbW92ZUNGTmV0d29ya01lc3NhZ2UsIDAsIHRocmVh
ZElEKTsKICAgICB9CiB9Ci0jZW5kaWYKIAogc3RhdGljIHZvaWQgZW1wdHlQZXJmb3JtKHZvaWQq
KQogewpAQCAtMTMyLDkgKzEyNyw3IEBAIHN0YXRpYyBDRlJ1bkxvb3BSZWYgZ2V0UnVuTG9vcCgp
CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZTo6c2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhDRlVSTENvbm5lY3Rpb25SZWYgY29u
bmVjdGlvbikKIHsKLSNpZiBQTEFURk9STShXSU4pCiAgICAgaW5zdGFsbEhvb2tUb1JlbW92ZUNG
TmV0d29ya01lc3NhZ2VCbG9ja2luZ01haW5UaHJlYWQoKTsKLSNlbmRpZgogICAgIENGUnVuTG9v
cFJlZiBydW5Mb29wID0gZ2V0UnVuTG9vcCgpOwogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxl
V2l0aFJ1bkxvb3AoY29ubmVjdGlvbiwgcnVuTG9vcCwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsK
ICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZURvd25sb2FkV2l0aFJ1bkxvb3AoY29ubmVjdGlv
biwgcnVuTG9vcCwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKQEAgLTIwMSwyMiArMTk0LDEzIEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2EKIAogICAgICAgICBpZiAo
c3RhdHVzQ29kZSAhPSAzMDQpIHsKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2Fk
ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6
OlJlcXVlc3Rlcjo6TWFpbjsKLSNpZiAhUExBVEZPUk0oV0lOKQotICAgICAgICAgICAgYWRqdXN0
TUlNRVR5cGVJZk5lY2Vzc2FyeShjZlJlc3BvbnNlLmdldCgpLCBpc01haW5SZXNvdXJjZUxvYWQp
OwotI2VuZGlmCiAgICAgICAgIH0KIAotI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIGlmIChf
Q0ZVUkxSZXF1ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkoaGFuZGxlLT5maXJzdFJlcXVl
c3QoKS5jZlVSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxN
SU1FVHlwZSIpKSkKICAgICAgICAgICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShjZlJlc3Bv
bnNlLmdldCgpLCBDRlNUUigidGV4dC9odG1sIikpOwotI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKGNmUmVzcG9uc2Uu
Z2V0KCkpOwogICAgICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2U6Ok5ldHdvcmspOwotI2lmICFQTEFURk9STShXSU4pCi0gICAgICAgIFJlc291
cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLmdldCgpLCByZXNv
dXJjZVJlc3BvbnNlLmRlcHJlY2F0ZWROZXR3b3JrTG9hZE1ldHJpY3MoKSk7Ci0jZW5kaWYKLQog
ICAgICAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9u
c2UpKTsKICAgICB9OwogCkBAIC0yOTcsNyArMjgxLDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYQogCiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIFJlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OndpbGxDYWNoZVJl
c3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCiB7Ci0jaWYgUExB
VEZPUk0oV0lOKQogICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS82MzAwOTkw
PiBDYWNoaW5nIGRvZXMgbm90IHJlc3BlY3QgVmFyeSBIVFRQIGhlYWRlci4KICAgICAvLyBGSVhN
RTogV2ViQ29yZSBjYWNoZSBoYXMgaXNzdWVzIHdpdGggVmFyeSwgdG9vIChidWcgNTg3OTcsIGJ1
ZyA3MTUwOSkuCiAgICAgQ0ZVUkxSZXNwb25zZVJlZiB3cmFwcGVkUmVzcG9uc2UgPSBDRkNhY2hl
ZFVSTFJlc3BvbnNlR2V0V3JhcHBlZFJlc3BvbnNlKGNhY2hlZFJlc3BvbnNlKTsKQEAgLTMwNyw3
ICsyOTAsNiBAQCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIFJlc291cmNlSGFuZGxlQ0ZVCiAgICAg
ICAgIGlmICh2YXJ5VmFsdWUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0j
ZW5kaWYgLy8gUExBVEZPUk0oV0lOKQogCiAgICAgYXV0byB3b3JrID0gW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY2FjaGVkUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZj4oY2FjaGVkUmVzcG9uc2UpXSAoKSB7CiAgICAgICAgIGF1dG8mIGhhbmRsZSA9
IHByb3RlY3RlZFRoaXMtPm1faGFuZGxlOwpAQCAtMzg1LDEzICszNjcsNiBAQCBCb29sZWFuIFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsCiAgICAgICAgIExPRyhOZXR3b3JrLCAiQ0ZO
ZXQgLSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1
ZXVlOjpjYW5SZXNwb25kVG9Qcm90ZWN0aW9uU3BhY2UoaGFuZGxlPSVwKSAoJXMpIiwgaGFuZGxl
LCBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
CiAgICAgICAgIFByb3RlY3Rpb25TcGFjZSBjb3JlUHJvdGVjdGlvblNwYWNlID0gUHJvdGVjdGlv
blNwYWNlKHByb3RlY3Rpb25TcGFjZS5nZXQoKSk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAg
ICBpZiAoY29yZVByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bikgewotICAgICAgICAgICAgbV9i
b29sUmVzdWx0ID0gZmFsc2U7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFs
KG1fc2VtYXBob3JlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKICAgICAgICAgaGFuZGxlLT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKGNvcmVQcm90ZWN0aW9uU3BhY2UpOwogICAgIH07CiAgICAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlc3BvbnNlQ0ZOZXQuY3BwCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDEzICs0Myw5IEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb25zdCBjb21tb25I
ZWFkZXJGaWUKIENGVVJMUmVzcG9uc2VSZWYgUmVzb3VyY2VSZXNwb25zZTo6Y2ZVUkxSZXNwb25z
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxsKSB7Ci0jaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgICAgIG5zVVJMUmVzcG9uc2UoKTsKLSNlbHNlCiAgICAgICAg
IFJldGFpblB0cjxDRlVSTFJlZj4gdXJsID0gbV91cmwuY3JlYXRlQ0ZVUkwoKTsKICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgY3JlYXRlcyBhIHZlcnkgaW5jb21wbGV0ZSBDRlVSTFJlc3BvbnNlLCB3
aGljaCBkb2VzIG5vdCBldmVuIGhhdmUgYSBzdGF0dXMgY29kZS4KICAgICAgICAgbV9jZlJlc3Bv
bnNlID0gYWRvcHRDRihDRlVSTFJlc3BvbnNlQ3JlYXRlKDAsIHVybC5nZXQoKSwgbV9taW1lVHlw
ZS5zdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBtX2V4cGVjdGVkQ29udGVudExlbmd0
aCwgbV90ZXh0RW5jb2RpbmdOYW1lLnN0cmluZygpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtD
RlVSTENhY2hlU3RvcmFnZUFsbG93ZWQpKTsKLSNlbmRpZgogICAgIH0KIAogICAgIHJldHVybiBt
X2NmUmVzcG9uc2UuZ2V0KCk7CkBAIC0xMTIsMTIgKzEwOCwxMCBAQCB2b2lkIFJlc291cmNlUmVz
cG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoCiAgICAgbV9pbml0TGV2ZWwgPSBpbml0TGV2ZWw7CiB9
CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25z
ZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdAogewogICAgIHJldHVybiB7IH07CiB9
Ci0jZW5kaWYKIAogU3RyaW5nIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtU3VnZ2VzdGVkRmls
ZW5hbWUoKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9DcmVkZW50aWFsQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EubW0JKHJldmlzaW9uIDIyNDgzNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJDcmVkZW50aWFsQ29jb2EuaCIKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04p
Ci1AaW50ZXJmYWNlIE5TVVJMQ3JlZGVudGlhbCAoV2ViRGV0YWlscykKLS0gKGlkKV9pbml0V2l0
aENGVVJMQ3JlZGVudGlhbDooQ0ZVUkxDcmVkZW50aWFsUmVmKWNyZWRlbnRpYWw7Ci0tIChDRlVS
TENyZWRlbnRpYWxSZWYpIF9DRlVSTENyZWRlbnRpYWw7Ci1AZW5kCi0jZW5kaWYKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdGF0aWMgTlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2UgdG9OU1VS
TENyZWRlbnRpYWxQZXJzaXN0ZW5jZShDcmVkZW50aWFsUGVyc2lzdGVuY2UgcGVyc2lzdGVuY2Up
CkBAIC04NCwyNiArNzcsMTIgQEAgQ3JlZGVudGlhbDo6Q3JlZGVudGlhbChjb25zdCBDcmVkZW50
aWFsJgogICAgIH0KIH0KIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi1DcmVkZW50aWFsOjpD
cmVkZW50aWFsKENGVVJMQ3JlZGVudGlhbFJlZiBjcmVkZW50aWFsKQotICAgIDogQ3JlZGVudGlh
bChhZG9wdE5TKFtbTlNVUkxDcmVkZW50aWFsIGFsbG9jXSBfaW5pdFdpdGhDRlVSTENyZWRlbnRp
YWw6Y3JlZGVudGlhbF0pLmdldCgpKQotewotfQotI2VuZGlmCi0KIENyZWRlbnRpYWw6OkNyZWRl
bnRpYWwoTlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKQogICAgIDogQ3JlZGVudGlhbEJhc2Uo
Y3JlZGVudGlhbC51c2VyLCBjcmVkZW50aWFsLnBhc3N3b3JkLCB0b0NyZWRlbnRpYWxQZXJzaXN0
ZW5jZShjcmVkZW50aWFsLnBlcnNpc3RlbmNlKSkKICAgICAsIG1fbnNDcmVkZW50aWFsKGNyZWRl
bnRpYWwpCiB7CiB9CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotQ0ZVUkxDcmVkZW50aWFs
UmVmIENyZWRlbnRpYWw6OmNmQ3JlZGVudGlhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFtuc0Ny
ZWRlbnRpYWwoKSBfQ0ZVUkxDcmVkZW50aWFsXTsKLX0KLSNlbmRpZgotCiBOU1VSTENyZWRlbnRp
YWwgKkNyZWRlbnRpYWw6Om5zQ3JlZGVudGlhbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbnNDcmVk
ZW50aWFsKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90
ZWN0aW9uU3BhY2VDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tCShyZXZpc2lvbiAyMjQ4MzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFj
ZUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyMiArMjYsOCBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJQcm90ZWN0aW9uU3BhY2VDb2NvYS5oIgogCi0jaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKLUBpbnRlcmZhY2UgTlNVUkxQcm90ZWN0aW9uU3BhY2UgKFdlYkRldGFpbHMp
Ci0tIChDRlVSTFByb3RlY3Rpb25TcGFjZVJlZikgX0NGVVJMUHJvdGVjdGlvblNwYWNlOwotLSAo
aWQpX2luaXRXaXRoQ0ZVUkxQcm90ZWN0aW9uU3BhY2U6KENGVVJMUHJvdGVjdGlvblNwYWNlUmVm
KWNmUHJvdFNwYWNlOwotQGVuZAotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lm
IFVTRShDRlVSTENPTk5FQ1RJT04pCi1Qcm90ZWN0aW9uU3BhY2U6OlByb3RlY3Rpb25TcGFjZShD
RlVSTFByb3RlY3Rpb25TcGFjZVJlZiBzcGFjZSkKLSAgICA6IFByb3RlY3Rpb25TcGFjZShhZG9w
dE5TKFtbTlNVUkxQcm90ZWN0aW9uU3BhY2UgYWxsb2NdIF9pbml0V2l0aENGVVJMUHJvdGVjdGlv
blNwYWNlOnNwYWNlXSkuZ2V0KCkpCi17Ci19Ci0jZW5kaWYKLQogc3RhdGljIFByb3RlY3Rpb25T
cGFjZVNlcnZlclR5cGUgdHlwZShOU1VSTFByb3RlY3Rpb25TcGFjZSAqc3BhY2UpCiB7CiAgICAg
aWYgKFtzcGFjZSBpc1Byb3h5XSkgewpAQCAtMTA1LDEzICs5MSw2IEBAIFByb3RlY3Rpb25TcGFj
ZTo6UHJvdGVjdGlvblNwYWNlKE5TVVJMUHIKICAgICBtX25zU3BhY2UgPSBzcGFjZTsKIH0KIAot
I2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi1DRlVSTFByb3RlY3Rpb25TcGFjZVJlZiBQcm90ZWN0
aW9uU3BhY2U6OmNmU3BhY2UoKSBjb25zdAotewotICAgIHJldHVybiBbbnNTcGFjZSgpIF9DRlVS
TFByb3RlY3Rpb25TcGFjZV07Ci19Ci0jZW5kaWYKLQogTlNVUkxQcm90ZWN0aW9uU3BhY2UgKlBy
b3RlY3Rpb25TcGFjZTo6bnNTcGFjZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbnNTcGFjZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNDIsMzcgKzQyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogTlNV
UkxSZXF1ZXN0ICpSZXNvdXJjZVJlcXVlc3Q6Om5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBv
bGljeSBib2R5UG9saWN5KSBjb25zdAogewogICAgIHVwZGF0ZVBsYXRmb3JtUmVxdWVzdChib2R5
UG9saWN5KTsKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIGlmICghbV9uc1JlcXVlc3Qp
Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Kj4odGhpcyktPnVwZGF0ZU5TVVJM
UmVxdWVzdCgpOwotI2VuZGlmCiAgICAgcmV0dXJuIFtbbV9uc1JlcXVlc3QuZ2V0KCkgcmV0YWlu
XSBhdXRvcmVsZWFzZV07CiB9CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCi12b2lkIFJl
c291cmNlUmVxdWVzdDo6Y2xlYXJPclVwZGF0ZU5TVVJMUmVxdWVzdCgpCi17Ci0gICAgLy8gVGhl
cmUgaXMgY2xpZW50IGNvZGUgdGhhdCBleHRlbmRzIE5TVVJMUmVxdWVzdCBhbmQgZXhwZWN0cyB0
byBnZXQgYmFjaywgaW4gdGhlIGRlbGVnYXRlCi0gICAgLy8gY2FsbGJhY2tzLCBhbiBvYmplY3Qg
b2YgdGhlIHNhbWUgdHlwZSB0aGF0IHRoZXkgcGFzc2VkIGludG8gV2ViS2l0LiBUbyBrZWVwIHRo
ZW4gcnVubmluZywgd2UKLSAgICAvLyBjcmVhdGUgYW4gb2JqZWN0IG9mIHRoZSBzYW1lIHR5cGUg
YW5kIHJldHVybiB0aGF0LiBTZWUgPHJkYXI6Ly85ODQzNTgyPi4KLSAgICAvLyBBbHNvLCBkZXZl
bG9wZXJzIHJlYWxseSByZWFsbHkgd2FudCBhbiBOU011dGFibGVVUkxSZXF1ZXN0IHNvIHRyeSB0
byBjcmVhdGUgYW4KLSAgICAvLyBOU011dGFibGVVUkxSZXF1ZXN0IGluc3RlYWQgb2YgTlNVUkxS
ZXF1ZXN0LgotICAgIHN0YXRpYyBDbGFzcyBuc1VSTFJlcXVlc3RDbGFzcyA9IFtOU1VSTFJlcXVl
c3QgY2xhc3NdOwotICAgIHN0YXRpYyBDbGFzcyBuc011dGFibGVVUkxSZXF1ZXN0Q2xhc3MgPSBb
TlNNdXRhYmxlVVJMUmVxdWVzdCBjbGFzc107Ci0gICAgQ2xhc3MgcmVxdWVzdENsYXNzID0gW21f
bnNSZXF1ZXN0LmdldCgpIGNsYXNzXTsKLSAgICAKLSAgICBpZiAoIW1fY2ZSZXF1ZXN0KQotICAg
ICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKHJlcXVlc3RDbGFzcyAmJiByZXF1ZXN0Q2xhc3Mg
IT0gbnNVUkxSZXF1ZXN0Q2xhc3MgJiYgcmVxdWVzdENsYXNzICE9IG5zTXV0YWJsZVVSTFJlcXVl
c3RDbGFzcykKLSAgICAgICAgbV9uc1JlcXVlc3QgPSBhZG9wdE5TKFtbcmVxdWVzdENsYXNzIGFs
bG9jXSBfaW5pdFdpdGhDRlVSTFJlcXVlc3Q6bV9jZlJlcXVlc3QuZ2V0KCldKTsKLSAgICBlbHNl
Ci0gICAgICAgIG1fbnNSZXF1ZXN0ID0gbnVsbHB0cjsKLX0KLQotI2Vsc2UKLQogQ0ZVUkxSZXF1
ZXN0UmVmIFJlc291cmNlUmVxdWVzdDo6Y2ZVUkxSZXF1ZXN0KEhUVFBCb2R5VXBkYXRlUG9saWN5
IGJvZHlQb2xpY3kpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFtuc1VSTFJlcXVlc3QoYm9keVBvbGlj
eSkgX0NGVVJMUmVxdWVzdF07CkBAIC0yNjIsOCArMjM0LDYgQEAgdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OnNldFN0b3JhZ2VTZXNzaW9uKAogICAgIG1fbnNSZXF1ZXN0ID0gYWRvcHROUyhjb3B5UmVx
dWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihzdG9yYWdlU2Vzc2lvbiwgbV9uc1JlcXVlc3QuZ2V0KCkp
KTsKIH0KIAotI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04pCi0KIE5TVVJMUmVxdWVzdCAq
Y29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBzdG9y
YWdlU2Vzc2lvbiwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQogewogICAgIGlmICghc3RvcmFnZVNl
c3Npb24gfHwgIXJlcXVlc3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQkocmV2
aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9S
ZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDEzICs3NSw4IEBA
IHZvaWQgUmVzb3VyY2VSZXNwb25zZTo6ZGlzYWJsZUxhenlJbml0aWEKIAogQ2VydGlmaWNhdGVJ
bmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKIHsK
LSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIEFTU0VSVChtX2NmUmVzcG9uc2UgfHwgc291
cmNlKCkgPT0gU291cmNlOjpTZXJ2aWNlV29ya2VyKTsKLSAgICBDRlVSTFJlc3BvbnNlUmVmIGNm
UmVzcG9uc2UgPSBtX2NmUmVzcG9uc2UuZ2V0KCk7Ci0jZWxzZQogICAgIEFTU0VSVChtX25zUmVz
cG9uc2UgfHwgc291cmNlKCkgPT0gU291cmNlOjpTZXJ2aWNlV29ya2VyKTsKICAgICBDRlVSTFJl
c3BvbnNlUmVmIGNmUmVzcG9uc2UgPSBbbV9uc1Jlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXTsKLSNl
bmRpZgogCiAgICAgaWYgKCFjZlJlc3BvbnNlKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTE0
LDM1ICsxMDksNiBAQCBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvCiAj
ZW5kaWYKIH0KIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0KLU5TVVJMUmVzcG9uc2UgKlJl
c291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UoKSBjb25zdAotewotICAgIGlmICghbV9uc1Jl
c3BvbnNlICYmICFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxsKSB7Ci0gICAgICAgIGluaXROU1VS
TFJlc3BvbnNlKCk7Ci0gICAgICAgIG1fY2ZSZXNwb25zZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkg
X0NGVVJMUmVzcG9uc2VdOwotICAgICAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOwotICAg
IH0KLQotICAgIGlmICghbV9jZlJlc3BvbnNlKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAg
aWYgKCFtX25zUmVzcG9uc2UpCi0gICAgICAgIG1fbnNSZXNwb25zZSA9IFtOU1VSTFJlc3BvbnNl
IF9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOm1fY2ZSZXNwb25zZS5nZXQoKV07Ci0KLSAgICBy
ZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOwotfQotCi1SZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJj
ZVJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIG5zUmVzcG9uc2UpCi0gICAgOiBtX2luaXRMZXZlbChV
bmluaXRpYWxpemVkKQotICAgICwgbV9jZlJlc3BvbnNlKFtuc1Jlc3BvbnNlIF9DRlVSTFJlc3Bv
bnNlXSkKLSAgICAsIG1fbnNSZXNwb25zZShuc1Jlc3BvbnNlKQotewotICAgIG1faXNOdWxsID0g
IW5zUmVzcG9uc2U7Ci19Ci0KLSNlbHNlCi0KIHN0YXRpYyBOU1N0cmluZyogY29uc3QgY29tbW9u
SGVhZGVyRmllbGRzW10gPSB7CiAgICAgQCJBZ2UiLCBAIkNhY2hlLUNvbnRyb2wiLCBAIkNvbnRl
bnQtVHlwZSIsIEAiRGF0ZSIsIEAiRXRhZyIsIEAiRXhwaXJlcyIsIEAiTGFzdC1Nb2RpZmllZCIs
IEAiUHJhZ21hIgogfTsKQEAgLTI0Miw4ICsyMDgsNiBAQCBib29sIFJlc291cmNlUmVzcG9uc2U6
OnBsYXRmb3JtQ29tcGFyZShjCiAgICAgcmV0dXJuIGEubnNVUkxSZXNwb25zZSgpID09IGIubnNV
UkxSZXNwb25zZSgpOwogfQogCi0jZW5kaWYgLy8gVVNFKENGVVJMQ09OTkVDVElPTikKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9SZXNvdXJjZUhhbmRsZUlPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9SZXNvdXJj
ZUhhbmRsZUlPUy5tbQkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9pb3MvUmVzb3VyY2VIYW5kbGVJT1MubW0JKG5vbmV4aXN0ZW50KQpAQCAtMSw2
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
IlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKLQotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0K
LSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGU29ja2V0
U3RyZWFtUHJpdi5oPgotI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFJlcXVlc3RQcml2YXRlLmg+
Ci0jZWxzZQotI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFJlcXVlc3QuaD4KLUBpbnRlcmZhY2Ug
TlNVUkxSZXF1ZXN0IChEZXRhaWxzKQotKyAoQk9PTClhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdDooTlNTdHJpbmcgKilob3N0OwotKyAoTlNBcnJheSopYWxsb3dzU3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdDooTlNTdHJpbmcgKilob3N0OwotQGVuZAotI2VuZGlmCi0KLWV4
dGVybiAiQyIgY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlN0cmVhbVNTTFRydXN0ZWRMZWFmQ2VydGlm
aWNhdGVzOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNGTXV0YWJsZURpY3Rpb25hcnlSZWYg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZVNTTFByb3BlcnRpZXNGcm9tTlNVUkxSZXF1ZXN0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBOU1N0cmluZyAqaG9zdCA9IHJlcXVl
c3QudXJsKCkuaG9zdCgpOwotICAgIE5TQXJyYXkgKmNlcnRpZmljYXRlQ2hhaW4gPSBbTlNVUkxS
ZXF1ZXN0IGFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Q6aG9zdF07Ci0gICAg
Qk9PTCBhbGxvd3NBbnlDZXJ0aWZpY2F0ZSA9IFtOU1VSTFJlcXVlc3QgYWxsb3dzQW55SFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3Q6aG9zdF07Ci0gICAgaWYgKCFjZXJ0aWZpY2F0ZUNoYWluICYmICFh
bGxvd3NBbnlDZXJ0aWZpY2F0ZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDRk11
dGFibGVEaWN0aW9uYXJ5UmVmIHNzbFByb3BlcnRpZXMgPSBDRkRpY3Rpb25hcnlDcmVhdGVNdXRh
YmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNr
cywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpOwotICAgIGlmIChjZXJ0aWZpY2F0
ZUNoYWluKQotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShzc2xQcm9wZXJ0aWVzLCBfa0NG
U3RyZWFtU1NMVHJ1c3RlZExlYWZDZXJ0aWZpY2F0ZXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZUeXBl
UmVmPihjZXJ0aWZpY2F0ZUNoYWluKSk7Ci0KLSAgICBpZiAoYWxsb3dzQW55Q2VydGlmaWNhdGUp
Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKHNzbFByb3BlcnRpZXMsIGtDRlN0cmVhbVNT
TFZhbGlkYXRlc0NlcnRpZmljYXRlQ2hhaW4sIGtDRkJvb2xlYW5GYWxzZSk7Ci0gICAgcmV0dXJu
IHNzbFByb3BlcnRpZXM7Ci19Ci0KLX0KLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2lvcy9SZXNvdXJjZVJlcXVlc3RJT1MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUmVzb3VyY2VSZXF1ZXN0SU9TLm1t
CShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9SZXNvdXJjZVJlcXVlc3RJT1MubW0JKG5vbmV4aXN0ZW50KQpAQCAtMSw1NCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIlJlc291cmNlUmVxdWVzdC5oIgotCi0jaWYgUExBVEZPUk0oSU9T
KQotCi0jaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCi1SZXNvdXJjZVJlcXVlc3Q6OlJl
c291cmNlUmVxdWVzdChOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCkKLSAgICA6IFJlc291cmNlUmVx
dWVzdEJhc2UoKQotICAgICwgbV9jZlJlcXVlc3QoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSkK
LSAgICAsIG1fbnNSZXF1ZXN0KG5zUmVxdWVzdCkKLXsKLX0KLQotdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OnVwZGF0ZU5TVVJMUmVxdWVzdCgpCi17Ci0gICAgaWYgKG1fY2ZSZXF1ZXN0KQotICAgICAg
ICBtX25zUmVxdWVzdCA9IGFkb3B0TlMoW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBfaW5p
dFdpdGhDRlVSTFJlcXVlc3Q6bV9jZlJlcXVlc3QuZ2V0KCldKTsKLX0KLQotI2VuZGlmIC8vIFVT
RShDRlVSTENPTk5FQ1RJT04pCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L0F1dGhlbnRpY2F0aW9uTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL0F1dGhlbnRpY2F0aW9uTWFjLm1tCShyZXZpc2lvbiAyMjQ4MzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjUsMjUgKzI1LDE3IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uTWFjLmgiCiAKLSNpbXBvcnQgIkF1dGhlbnRpY2F0aW9u
Q0YuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0ICJBdXRo
ZW50aWNhdGlvbkNsaWVudC5oIgogI2ltcG9ydCAiQ3JlZGVudGlhbC5oIgogI2ltcG9ydCA8Rm91
bmRhdGlvbi9OU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW1wb3J0IDxGb3VuZGF0
aW9uL05TVVJMUHJvdGVjdGlvblNwYWNlLmg+CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQot
I2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9DRk5TVVJMQ29ubmVjdGlvblNQSS5oPgotI2VuZGlmCi0K
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50ZXJmYWNlIFdlYkNvcmVBdXRoZW50aWNh
dGlvbkNsaWVudEFzQ2hhbGxlbmdlU2VuZGVyIDogTlNPYmplY3QgPE5TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VTZW5kZXI+CiB7CiAgICAgQXV0aGVudGljYXRpb25DbGllbnQqIG1fY2xpZW50
OwotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmIG1f
Y2ZDaGFsbGVuZ2U7Ci0jZW5kaWYKIH0KIC0gKGlkKWluaXRXaXRoQXV0aGVudGljYXRpb25DbGll
bnQ6KEF1dGhlbnRpY2F0aW9uQ2xpZW50KiljbGllbnQ7CiAtIChBdXRoZW50aWNhdGlvbkNsaWVu
dCopY2xpZW50OwpAQCAtMTAxLDQ3ICs5MywxMCBAQCAtICh2b2lkKWNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOihOCiAgICAgICAgIG1fY2xpZW50LT5yZWNlaXZlZENhbmNlbGxhdGlvbihj
b3JlKGNoYWxsZW5nZSkpOwogfQogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLS0gKHZvaWQp
c2V0Q0ZDaGFsbGVuZ2U6KENGVVJMQXV0aENoYWxsZW5nZVJlZiljaGFsbGVuZ2UKLXsKLSAgICBt
X2NmQ2hhbGxlbmdlID0gY2hhbGxlbmdlOwotfQotCi0tIChDRlVSTEF1dGhDaGFsbGVuZ2VSZWYp
Y2ZDaGFsbGVuZ2UKLXsKLSAgICByZXR1cm4gbV9jZkNoYWxsZW5nZTsKLX0KLSNlbmRpZgotCiBA
ZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0K
LUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNvcmUoTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSAqbWFjQ2hhbGxlbmdlKQotewotICAgIFdlYkNvcmVBdXRoZW50aWNhdGlvbkNsaWVudEFzQ2hh
bGxlbmdlU2VuZGVyICpjaGFsbGVuZ2VTZW5kZXIgPSAoV2ViQ29yZUF1dGhlbnRpY2F0aW9uQ2xp
ZW50QXNDaGFsbGVuZ2VTZW5kZXIqKSBbbWFjQ2hhbGxlbmdlIHNlbmRlcl07Ci0gICAgcmV0dXJu
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFtjaGFsbGVuZ2VTZW5kZXIgY2ZDaGFsbGVuZ2VdLCBb
Y2hhbGxlbmdlU2VuZGVyIGNsaWVudF0pOwotfQotCi1OU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICptYWMoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNvcmVDaGFsbGVuZ2UpCi17
Ci0gICAgQXV0aGVudGljYXRpb25DbGllbnQqIGF1dGhDbGllbnQgPSBjb3JlQ2hhbGxlbmdlLmF1
dGhlbnRpY2F0aW9uQ2xpZW50KCk7Ci0gICAgUmV0YWluUHRyPFdlYkNvcmVBdXRoZW50aWNhdGlv
bkNsaWVudEFzQ2hhbGxlbmdlU2VuZGVyPiBjaGFsbGVuZ2VTZW5kZXIgPSBhZG9wdE5TKFtbV2Vi
Q29yZUF1dGhlbnRpY2F0aW9uQ2xpZW50QXNDaGFsbGVuZ2VTZW5kZXIgYWxsb2NdIGluaXRXaXRo
QXV0aGVudGljYXRpb25DbGllbnQ6YXV0aENsaWVudF0pOwotICAgIFJldGFpblB0cjxDRlVSTEF1
dGhDaGFsbGVuZ2VSZWY+IGF1dGhDaGFsbGVuZ2UgPSBjb3JlQ2hhbGxlbmdlLmNmVVJMQXV0aENo
YWxsZW5nZVJlZigpOwotICAgIGlmICghYXV0aENoYWxsZW5nZSkKLSAgICAgICAgYXV0aENoYWxs
ZW5nZSA9IGFkb3B0Q0YoY3JlYXRlQ0YoY29yZUNoYWxsZW5nZSkpOwotICAgIFtjaGFsbGVuZ2VT
ZW5kZXIuZ2V0KCkgc2V0Q0ZDaGFsbGVuZ2U6YXV0aENoYWxsZW5nZS5nZXQoKV07Ci0jaWYgUExB
VEZPUk0oSU9TKQotICAgIHJldHVybiBbW05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgX2Ny
ZWF0ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRm9yQ0ZBdXRoQ2hhbGxlbmdlOmF1dGhDaGFsbGVu
Z2UuZ2V0KCkgc2VuZGVyOmNoYWxsZW5nZVNlbmRlci5nZXQoKV0gYXV0b3JlbGVhc2VdOwotI2Vs
c2UKLSAgICByZXR1cm4gW1tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIF9hdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUZvckNGQXV0aENoYWxsZW5nZTphdXRoQ2hhbGxlbmdlLmdldCgpIHNlbmRl
cjpjaGFsbGVuZ2VTZW5kZXIuZ2V0KCldIGF1dG9yZWxlYXNlXTsKLSNlbmRpZgotfQotCi0jZWxz
ZQotCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29u
c3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ3JlZGVudGlhbCYgcHJvcG9zZWRD
cmVkZW50aWFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIHByZXZpb3VzRmFpbHVyZUNvdW50LApAQCAtMTgzLDcgKzEzOCw3IEBAIEF1
dGhlbnRpY2F0aW9uQ2xpZW50KiBBdXRoZW50aWNhdGlvbkNoYWwKICAgICBpZiAoW21fc2VuZGVy
LmdldCgpIGlzTWVtYmVyT2ZDbGFzczpbV2ViQ29yZUF1dGhlbnRpY2F0aW9uQ2xpZW50QXNDaGFs
bGVuZ2VTZW5kZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFtzdGF0aWNfY2FzdDxXZWJDb3Jl
QXV0aGVudGljYXRpb25DbGllbnRBc0NoYWxsZW5nZVNlbmRlcio+KG1fc2VuZGVyLmdldCgpKSBj
bGllbnRdOwogICAgIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBi
b29sIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwbGF0Zm9ybUNvbXBhcmUoY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGEsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBiKQpA
QCAtMjAyLDEyICsxNTcsNyBAQCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICptYWMoY29u
c3QgCiAgICAgaWYgKGNvcmVDaGFsbGVuZ2UubnNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgp
KQogICAgICAgICByZXR1cm4gY29yZUNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKCk7CiAgICAgICAgIAotICAgIHJldHVybiBbW1tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlIGFsbG9jXSBpbml0V2l0aFByb3RlY3Rpb25TcGFjZTpjb3JlQ2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLm5zU3BhY2UoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByb3Bvc2VkQ3JlZGVudGlhbDpjb3JlQ2hhbGxlbmdlLnByb3Bv
c2VkQ3JlZGVudGlhbCgpLm5zQ3JlZGVudGlhbCgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzRmFpbHVyZUNvdW50OmNvcmVDaGFs
bGVuZ2UucHJldmlvdXNGYWlsdXJlQ291bnQoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVSZXNwb25zZTpjb3JlQ2hhbGxl
bmdlLmZhaWx1cmVSZXNwb25zZSgpLm5zVVJMUmVzcG9uc2UoKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjpj
b3JlQ2hhbGxlbmdlLmVycm9yKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kZXI6Y29yZUNoYWxsZW5nZS5zZW5k
ZXIoKV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIGFsbG9jXSBpbml0V2l0aFByb3RlY3Rpb25TcGFjZTpjb3JlQ2hhbGxlbmdlLnByb3Rl
Y3Rpb25TcGFjZSgpLm5zU3BhY2UoKSBwcm9wb3NlZENyZWRlbnRpYWw6Y29yZUNoYWxsZW5nZS5w
cm9wb3NlZENyZWRlbnRpYWwoKS5uc0NyZWRlbnRpYWwoKSBwcmV2aW91c0ZhaWx1cmVDb3VudDpj
b3JlQ2hhbGxlbmdlLnByZXZpb3VzRmFpbHVyZUNvdW50KCkgZmFpbHVyZVJlc3BvbnNlOmNvcmVD
aGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkubnNVUkxSZXNwb25zZSgpIGVycm9yOmNvcmVDaGFs
bGVuZ2UuZXJyb3IoKSBzZW5kZXI6Y29yZUNoYWxsZW5nZS5zZW5kZXIoKV0gYXV0b3JlbGVhc2Vd
OwogfQogCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjb3JlKE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKm1hY0NoYWxsZW5nZSkKQEAgLTIxNSw2ICsxNjUsNCBAQCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSBjb3JlKE5TVVJMQXV0aGVuCiAgICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKG1hY0NoYWxsZW5nZSk7CiB9CiAKLSNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9O
KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCShyZXZpc2lvbiAyMjQ4MzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZO
ZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCi0jaWYg
IVVTRShDRlVSTENPTk5FQ1RJT04pCi0KICNpbXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAiQ29v
a2llU3RvcmFnZS5oIgogI2ltcG9ydCAiVVJMLmgiCkBAIC00Myw4ICs0MSw2IEBAIEBpbnRlcmZh
Y2UgTlNVUkwgKCkKIC0gKENGVVJMUmVmKV9jZnVybDsKIEBlbmQKIAotI2VuZGlmCi0KIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE5TQXJyYXkgKmh0dHBDb29raWVzKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKQEAgLTY2LDggKzYyLDYgQEAgc3RhdGljIHZvaWQg
ZGVsZXRlSFRUUENvb2tpZShDRkhUVFBDb29raQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxl
dGVDb29raWUoY29va2llU3RvcmFnZSwgW2Nvb2tpZSBfR2V0SW50ZXJuYWxDRkhUVFBDb29raWVd
KTsKIH0KIAotI2lmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCiBzdGF0aWMgTlNBcnJheSAqaHR0
cENvb2tpZXNGb3JVUkwoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlLCBOU1VS
TCAqZmlyc3RQYXJ0eSwgTlNVUkwgKnVybCkKIHsKICAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpCkBA
IC0zNDgsOCArMzQyLDYgQEAgdm9pZCBkZWxldGVBbGxDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9y
YQogICAgIGRlbGV0ZUFsbEhUVFBDb29raWVzKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgp
KTsKIH0KIAotI2VuZGlmIC8vICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCiB2b2lkIGRlbGV0ZUNv
b2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zdG5hbWVzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Ny
ZWRlbnRpYWxTdG9yYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL0NyZWRlbnRpYWxTdG9yYWdlTWFjLm1tCShyZXZpc2lvbiAyMjQ4MzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9DcmVkZW50aWFsU3RvcmFn
ZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCiAKLSNpZiAhVVNFKENGVVJMQ09O
TkVDVElPTikKLQogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFjLmgiCiAjaW5jbHVkZSAiQ3Jl
ZGVudGlhbC5oIgogI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgpAQCAtNDEsNSArMzksMyBA
QCBDcmVkZW50aWFsIENyZWRlbnRpYWxTdG9yYWdlOjpnZXRGcm9tUGVyCiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvRm9ybURhdGFTdHJlYW1NYWMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Gb3JtRGF0
YVN0cmVhbU1hYy5oCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9Gb3JtRGF0YVN0cmVhbU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4
ICsyOCw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApA
QCAtNDcsNSArNDUsMyBAQCBGb3JtRGF0YSogaHR0cEJvZHlGcm9tU3RyZWFtKE5TSW5wdXRTdHJl
CiBDRlN0cmluZ1JlZiBmb3JtRGF0YVN0cmVhbUxlbmd0aFByb3BlcnR5TmFtZSgpOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhVVNFKENGVVJMQ09OTkVDVElPTikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Zvcm1EYXRhU3RyZWFtTWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Zv
cm1EYXRhU3RyZWFtTWFjLm1tCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9Gb3JtRGF0YVN0cmVhbU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjksOCArMjksNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJGb3JtRGF0YVN0
cmVhbU1hYy5oIgogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0KICNpbXBvcnQgIkZvcm1E
YXRhU3RyZWFtQ0ZOZXQuaCIKICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAK
QEAgLTUyLDUgKzUwLDMgQEAgRm9ybURhdGEqIGh0dHBCb2R5RnJvbVN0cmVhbShOU0lucHV0U3Ry
ZQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhVVNFKENGVVJMQ09O
TkVDVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlRXJyb3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbQkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTcgKzMxLDYgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAotI2lmIFBMQVRGT1JN
KElPUykgJiYgVVNFKENGVVJMQ09OTkVDVElPTikgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
LSNpbXBvcnQgPENGTmV0d29yay9DRlNvY2tldFN0cmVhbVByaXYuaD4KLSNlbmRpZgotCi0jaWYg
VVNFKENGVVJMQ09OTkVDVElPTikKLWV4dGVybiAiQyIgewotY29uc3QgQ0ZTdHJpbmdSZWYgX2tD
RlN0cmVhbVByb3BlcnR5U1NMQ2xpZW50Q2VydGlmaWNhdGVzOwotY29uc3QgQ0ZTdHJpbmdSZWYg
X2tDRlN0cmVhbVByb3BlcnR5U1NMQ2xpZW50Q2VydGlmaWNhdGVTdGF0ZTsKLX0KLSNlbmRpZgot
CiBAaW50ZXJmYWNlIE5TRXJyb3IgKFdlYkV4dHJhcykKIC0gKE5TU3RyaW5nICopX3dlYl9sb2Nh
bGl6ZWREZXNjcmlwdGlvbjsKIEBlbmQKQEAgLTk4LDg1ICs4Nyw2IEBAIC0gKHZvaWQpZW5jb2Rl
V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKIAogQGVuZAogCi0KLSNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQotc3RhdGljIE5TRXJyb3IgKk5TRXJyb3JGcm9tQ0ZFcnJvcihDRkVycm9yUmVmIGNm
RXJyb3IsIE5TVVJMICp1cmwpCi17Ci0gICAgQ0ZJbmRleCBlcnJDb2RlID0gQ0ZFcnJvckdldENv
ZGUoY2ZFcnJvcik7Ci0gICAgaWYgKENGRXF1YWwoQ0ZFcnJvckdldERvbWFpbihjZkVycm9yKSwg
a0NGRXJyb3JEb21haW5DRk5ldHdvcmspICYmIGVyckNvZGUgPD0ga0NGVVJMRXJyb3JVbmtub3du
ICYmIGVyckNvZGUgPiAtNDAwMCkgewotICAgICAgICAvLyBUaGlzIGlzIGFuIFVSTCBlcnJvciBh
bmQgbmVlZHMgdG8gYmUgdHJhbnNsYXRlZCB0byB0aGUgTlNVUkxFcnJvckRvbWFpbgotICAgICAg
ICBpZCBrZXlzWzEwXSwgdmFsdWVzWzEwXTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJ
bmZvID0gQ0ZFcnJvckNvcHlVc2VySW5mbyhjZkVycm9yKTsKLSAgICAgICAgTlNFcnJvciAqcmVz
dWx0OwotICAgICAgICBOU0ludGVnZXIgY291bnQgPSAwOwotCi0gICAgICAgIGlmICh1cmwpIHsK
LSAgICAgICAgICAgIGtleXNbY291bnRdID0gTlNVUkxFcnJvckZhaWxpbmdVUkxFcnJvcktleTsK
LSAgICAgICAgICAgIHZhbHVlc1tjb3VudF0gPSB1cmw7Ci0gICAgICAgICAgICBjb3VudCsrOwot
Ci0gICAgICAgICAgICBrZXlzW2NvdW50XSA9IE5TVVJMRXJyb3JGYWlsaW5nVVJMU3RyaW5nRXJy
b3JLZXk7Ci0gICAgICAgICAgICB2YWx1ZXNbY291bnRdID0gW3VybCBhYnNvbHV0ZVN0cmluZ107
Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFsdWVzW2NvdW50
XSA9IChpZClDRkRpY3Rpb25hcnlHZXRWYWx1ZSh1c2VySW5mbywga0NGRXJyb3JMb2NhbGl6ZWRE
ZXNjcmlwdGlvbktleSk7Ci0gICAgICAgIGlmICh2YWx1ZXNbY291bnRdKSB7Ci0gICAgICAgICAg
ICBrZXlzW2NvdW50XSA9IE5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXk7Ci0gICAgICAgICAgICBj
b3VudCsrOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFsdWVzW2NvdW50XSA9IChpZClDRkRpY3Rp
b25hcnlHZXRWYWx1ZSh1c2VySW5mbywga0NGRXJyb3JMb2NhbGl6ZWRGYWlsdXJlUmVhc29uS2V5
KTsKLSAgICAgICAgaWYgKHZhbHVlc1tjb3VudF0pIHsKLSAgICAgICAgICAgIGtleXNbY291bnRd
ID0gTlNMb2NhbGl6ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk7Ci0gICAgICAgICAgICBjb3VudCsr
OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFsdWVzW2NvdW50XSA9IChpZClDRkRpY3Rpb25hcnlH
ZXRWYWx1ZSh1c2VySW5mbywga0NGRXJyb3JMb2NhbGl6ZWRSZWNvdmVyeVN1Z2dlc3Rpb25LZXkp
OwotICAgICAgICBpZiAodmFsdWVzW2NvdW50XSkgewotICAgICAgICAgICAga2V5c1tjb3VudF0g
PSBOU0xvY2FsaXplZFJlY292ZXJ5U3VnZ2VzdGlvbkVycm9yS2V5OwotICAgICAgICAgICAgY291
bnQrKzsKLSAgICAgICAgfQotCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgIGlmICh1c2VySW5mbyAmJiAodmFsdWVzW2NvdW50XSA9IChpZClDRkRpY3Rpb25hcnlH
ZXRWYWx1ZSh1c2VySW5mbywga0NGU3RyZWFtUHJvcGVydHlTU0xQZWVyQ2VydGlmaWNhdGVzKSkg
IT0gbmlsKSB7Ci0gICAgICAgICAgICAvLyBOZWVkIHRvIHRyYW5zbGF0ZSB0aGUgY2VydAotICAg
ICAgICAgICAga2V5c1tjb3VudF0gPSBAIk5TRXJyb3JQZWVyQ2VydGlmaWNhdGVDaGFpbktleSI7
Ci0gICAgICAgICAgICBjb3VudCsrOwotCi0gICAgICAgICAgICB2YWx1ZXNbY291bnRdID0gKGlk
KUNGRGljdGlvbmFyeUdldFZhbHVlKHVzZXJJbmZvLCBfa0NGU3RyZWFtUHJvcGVydHlTU0xDbGll
bnRDZXJ0aWZpY2F0ZXMpOwotICAgICAgICAgICAgaWYgKHZhbHVlc1tjb3VudF0pIHsKLSAgICAg
ICAgICAgICAgICBrZXlzW2NvdW50XSA9IEAiTlNFcnJvckNsaWVudENlcnRpZmljYXRlQ2hhaW5L
ZXkiOwotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIHZhbHVlc1tjb3VudF0gPSAoaWQpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUodXNlckluZm8sIF9r
Q0ZTdHJlYW1Qcm9wZXJ0eVNTTENsaWVudENlcnRpZmljYXRlU3RhdGUpOwotICAgICAgICAgICAg
aWYgKHZhbHVlc1tjb3VudF0pIHsKLSAgICAgICAgICAgICAgICBrZXlzW2NvdW50XSA9IEAiTlNF
cnJvckNsaWVudENlcnRpZmljYXRlU3RhdGVLZXkiOwotICAgICAgICAgICAgICAgIGNvdW50Kys7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LQotICAgICAgICBpZiAodXNlckluZm8gJiYgKHZhbHVlc1tjb3VudF0gPSAoaWQpQ0ZEaWN0aW9u
YXJ5R2V0VmFsdWUodXNlckluZm8sIGtDRlN0cmVhbVByb3BlcnR5U1NMUGVlclRydXN0KSkgIT0g
bmlsKSB7Ci0gICAgICAgICAgICBrZXlzW2NvdW50XSA9IE5TVVJMRXJyb3JGYWlsaW5nVVJMUGVl
clRydXN0RXJyb3JLZXk7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9Ci0KLSAgICAg
ICAga2V5c1tjb3VudF0gPSBOU1VuZGVybHlpbmdFcnJvcktleTsKLSAgICAgICAgdmFsdWVzW2Nv
dW50XSA9IChpZCljZkVycm9yOwotICAgICAgICBjb3VudCsrOwotCi0gICAgICAgIHJlc3VsdCA9
IFtXZWJDdXN0b21OU1VSTEVycm9yIGVycm9yV2l0aERvbWFpbjpOU1VSTEVycm9yRG9tYWluIGNv
ZGU6KGVyckNvZGUgPT0ga0NGVVJMRXJyb3JVbmtub3duID8gKENGSW5kZXgpTlNVUkxFcnJvclVu
a25vd24gOiBlcnJDb2RlKSB1c2VySW5mbzpbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2Jq
ZWN0czp2YWx1ZXMgZm9yS2V5czprZXlzIGNvdW50OmNvdW50XV07Ci0gICAgICAgIGlmICh1c2Vy
SW5mbykKLSAgICAgICAgICAgIENGUmVsZWFzZSh1c2VySW5mbyk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotICAgIHJldHVybiAoTlNFcnJvciAqKWNmRXJyb3I7Ci19Ci0jZW5kaWYg
Ly8gVVNFKENGVVJMQ09OTkVDVElPTikKLQogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTk3LDUzICsxMDcsNiBAQCBzdGF0aWMgUmV0YWluUHRyPE5T
RXJyb3I+IGNyZWF0ZU5TRXJyb3JGCiAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9j
XSBpbml0V2l0aERvbWFpbjpyZXNvdXJjZUVycm9yLmRvbWFpbigpIGNvZGU6cmVzb3VyY2VFcnJv
ci5lcnJvckNvZGUoKSB1c2VySW5mbzp1c2VySW5mby5nZXQoKV0pOwogfQogCi0jaWYgVVNFKENG
VVJMQ09OTkVDVElPTikKLQotUmVzb3VyY2VFcnJvcjo6UmVzb3VyY2VFcnJvcihOU0Vycm9yICpl
cnJvcikKLSAgICA6IFJlc291cmNlRXJyb3JCYXNlKFR5cGU6Ok51bGwpCi0gICAgLCBtX2RhdGFJ
c1VwVG9EYXRlKGZhbHNlKQotICAgICwgbV9wbGF0Zm9ybUVycm9yKHJlaW50ZXJwcmV0X2Nhc3Q8
Q0ZFcnJvclJlZj4oZXJyb3IpKQotewotICAgIGlmIChlcnJvcikKLSAgICAgICAgc2V0VHlwZSgo
W2Vycm9yIGNvZGVdID09IE5TVVJMRXJyb3JUaW1lZE91dCkgPyBUeXBlOjpUaW1lb3V0IDogVHlw
ZTo6R2VuZXJhbCk7Ci19Ci0KLU5TRXJyb3IgKlJlc291cmNlRXJyb3I6Om5zRXJyb3IoKSBjb25z
dAotewotICAgIGlmIChpc051bGwoKSkgewotICAgICAgICBBU1NFUlQoIW1fcGxhdGZvcm1FcnJv
cik7Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQotCi0gICAgaWYgKG1fcGxhdGZvcm1OU0Vy
cm9yKQotICAgICAgICByZXR1cm4gbV9wbGF0Zm9ybU5TRXJyb3IuZ2V0KCk7Ci0KLSAgICBpZiAo
bV9wbGF0Zm9ybUVycm9yKSB7Ci0gICAgICAgIENGRXJyb3JSZWYgZXJyb3IgPSBtX3BsYXRmb3Jt
RXJyb3IuZ2V0KCk7Ci0gICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHVzZXJJbmZv
ID0gYWRvcHRDRihDRkVycm9yQ29weVVzZXJJbmZvKGVycm9yKSk7Ci0jaWYgUExBVEZPUk0oSU9T
KQotICAgICAgICBtX3BsYXRmb3JtTlNFcnJvciA9IE5TRXJyb3JGcm9tQ0ZFcnJvcihlcnJvciwg
KE5TVVJMICopWyhOU0RpY3Rpb25hcnkgKil1c2VySW5mby5nZXQoKSBvYmplY3RGb3JLZXk6KGlk
KSBrQ0ZVUkxFcnJvckZhaWxpbmdVUkxFcnJvcktleV0pOwotICAgICAgICAvLyBJZiBOU0Vycm9y
RnJvbUNGRXJyb3IgY3JlYXRlZCBhIG5ldyBOU0Vycm9yIGZvciB1cywgcmV0dXJuIHRoYXQuCi0g
ICAgICAgIGlmIChtX3BsYXRmb3JtTlNFcnJvci5nZXQoKSAhPSAoTlNFcnJvciAqKWVycm9yKQot
ICAgICAgICAgICAgcmV0dXJuIG1fcGxhdGZvcm1OU0Vycm9yLmdldCgpOwotCi0gICAgICAgIC8v
IE90aGVyd2lzZSBmYWxsIHRocm91Z2ggdG8gY3JlYXRlIGEgbmV3IE5TRXJyb3IgZnJvbSB0aGUg
Q0ZFcnJvci4KLSNlbmRpZgotICAgICAgICBtX3BsYXRmb3JtTlNFcnJvciA9IGFkb3B0TlMoW1tO
U0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjooTlNTdHJpbmcgKilDRkVycm9yR2V0RG9tYWlu
KGVycm9yKSBjb2RlOkNGRXJyb3JHZXRDb2RlKGVycm9yKSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5
ICopdXNlckluZm8uZ2V0KCldKTsKLSAgICAgICAgcmV0dXJuIG1fcGxhdGZvcm1OU0Vycm9yLmdl
dCgpOwotICAgIH0KLQotICAgIG1fcGxhdGZvcm1OU0Vycm9yID0gY3JlYXRlTlNFcnJvckZyb21S
ZXNvdXJjZUVycm9yQmFzZSgqdGhpcyk7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1OU0Vycm9yLmdl
dCgpOwotfQotCi1SZXNvdXJjZUVycm9yOjpvcGVyYXRvciBOU0Vycm9yICooKSBjb25zdAotewot
ICAgIHJldHVybiBuc0Vycm9yKCk7Ci19Ci0KLSNlbHNlCi0KIFJlc291cmNlRXJyb3I6OlJlc291
cmNlRXJyb3IoTlNFcnJvciAqbnNFcnJvcikKICAgICA6IFJlc291cmNlRXJyb3JCYXNlKFR5cGU6
Ok51bGwpCiAgICAgLCBtX2RhdGFJc1VwVG9EYXRlKGZhbHNlKQpAQCAtMzE2LDYgKzE3OSw0IEBA
IFJlc291cmNlRXJyb3I6Om9wZXJhdG9yIENGRXJyb3JSZWYoKSBjb24KICAgICByZXR1cm4gY2ZF
cnJvcigpOwogfQogCi0jZW5kaWYgLy8gVVNFKENGVVJMQ09OTkVDVElPTikKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDIyNDgzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNiArNTUsNiBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFz
ZTY0Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxDRk5ldHdvcmsv
Q0ZVUkxDb25uZWN0aW9uUHJpdi5oPgotI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25u
ZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7Ci1leHRlcm4gIkMiIHsKLUNGRGljdGlvbmFyeVJl
ZiBfQ0ZVUkxDb25uZWN0aW9uQ29weVRpbWluZ0RhdGEoQ0ZVUkxDb25uZWN0aW9uUmVmKTsKLX0K
LSNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCiAjaWYgUExBVEZPUk0oSU9TKQogI2lt
cG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFk
UnVuLmgiCkBAIC03OCw4ICs2OCw2IEBAIC0oaWQpX2luaXRXaXRoUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmUKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotI2lmICFVU0UoQ0ZVUkxDT05O
RUNUSU9OKQotICAgIAogc3RhdGljIHZvaWQgYXBwbHlCYXNpY0F1dGhvcml6YXRpb25IZWFkZXIo
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQog
ewogICAgIFN0cmluZyBhdXRoZW50aWNhdGlvbkhlYWRlciA9ICJCYXNpYyAiICsgYmFzZTY0RW5j
b2RlKFN0cmluZyhjcmVkZW50aWFsLnVzZXIoKSArICI6IiArIGNyZWRlbnRpYWwucGFzc3dvcmQo
KSkudXRmOCgpKTsKQEAgLTExMywxMiArMTAxLDcgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJj
ZUhhbmRsZSgpCiAjaWYgUExBVEZPUk0oSU9TKQogc3RhdGljIGJvb2wgc3luY2hyb25vdXNXaWxs
U2VuZFJlcXVlc3RFbmFibGVkKCkKIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgc3RhdGljIGJv
b2wgZGlzYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29s
Rm9yS2V5OkAiV2ViS2l0RGlzYWJsZVN5bmNocm9ub3VzV2lsbFNlbmRSZXF1ZXN0UHJlZmVyZW5j
ZUtleSJdIHx8IElPU0FwcGxpY2F0aW9uOjppc0lCb29rcygpOwotI2Vsc2UKLSAgICBzdGF0aWMg
Ym9vbCBkaXNhYmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJv
b2xGb3JLZXk6QCJXZWJLaXREaXNhYmxlU3luY2hyb25vdXNXaWxsU2VuZFJlcXVlc3RQcmVmZXJl
bmNlS2V5Il07Ci0jZW5kaWYKLQogICAgIHJldHVybiAhZGlzYWJsZWQ7CiB9CiAjZW5kaWYKQEAg
LTMyMCw4ICszMDMsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xv
CiAgICAgICAgIFtkLT5tX2Nvbm5lY3Rpb24gc2V0RGVmZXJzQ2FsbGJhY2tzOmRlZmVyc107CiB9
CiAKLSNpZiAhVVNFKENGVVJMQ09OTkVDVElPTikKLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2No
ZWR1bGUoU2NoZWR1bGVQYWlyJiBwYWlyKQogewogICAgIE5TUnVuTG9vcCAqcnVuTG9vcCA9IHBh
aXIubnNSdW5Mb29wKCk7CkBAIC0zMzYsOCArMzE3LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
dW5zY2hlZHVsZShTY2hlZHVsZQogICAgICAgICBbZC0+bV9jb25uZWN0aW9uLmdldCgpIHVuc2No
ZWR1bGVGcm9tUnVuTG9vcDpydW5Mb29wIGZvck1vZGU6KE5TU3RyaW5nICopcGFpci5tb2RlKCld
OwogfQogCi0jZW5kaWYKLQogaWQgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShib29sIHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9pZCgpPj4q
IHF1ZXVlKQogewogICAgIEFTU0VSVCghZC0+bV9kZWxlZ2F0ZSk7CkBAIC02ODksMjIgKzY2OCw5
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbENhY2hlUmUKICAgICBbKGlkKWRl
bGVnYXRlKCkgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZTpyZXNwb25zZV07CiB9CiAKLSNlbmRp
ZiAvLyAhVVNFKENGVVJMQ09OTkVDVElPTikKLQotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0K
LXZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKENGVVJMQ29ubmVj
dGlvblJlZiBjb25uZWN0aW9uLCBOZXR3b3JrTG9hZE1ldHJpY3MmIHRpbWluZykKLXsKLSAgICBj
b3B5VGltaW5nRGF0YSgoX19icmlkZ2UgTlNEaWN0aW9uYXJ5KilhZG9wdENGKF9DRlVSTENvbm5l
Y3Rpb25Db3B5VGltaW5nRGF0YShjb25uZWN0aW9uKSkuZ2V0KCksIHRpbWluZyk7Ci19Ci0KLSNl
bHNlCi0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKE5TVVJM
Q29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTmV0d29ya0xvYWRNZXRyaWNzJiB0aW1pbmcpCiB7CiAg
ICAgY29weVRpbWluZ0RhdGEoW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdLCB0aW1pbmcpOwogfQog
Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5t
bQkocmV2aXNpb24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCShub25leGlzdGVudCkKQEAgLTEsNTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0KLSNp
ZiBQTEFURk9STShNQUMpCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2lt
cG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLQotUmVzb3VyY2VSZXF1ZXN0OjpSZXNvdXJjZVJl
cXVlc3QoTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3QpCi0gICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNl
KCkKLSAgICAsIG1fY2ZSZXF1ZXN0KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0pCi0gICAgLCBt
X25zUmVxdWVzdChuc1JlcXVlc3QpCi17Ci19Ci0KLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRh
dGVOU1VSTFJlcXVlc3QoKQotewotICAgIGlmIChtX2NmUmVxdWVzdCkKLSAgICAgICAgbV9uc1Jl
cXVlc3QgPSBhZG9wdE5TKFtbTlNVUkxSZXF1ZXN0IGFsbG9jXSBfaW5pdFdpdGhDRlVSTFJlcXVl
c3Q6bV9jZlJlcXVlc3QuZ2V0KCldKTsKLX0KLQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5tbQkocmV2aXNp
b24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvU3luY2hy
b25vdXNMb2FkZXJDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTeW5jaHJvbm91c0xvYWRlckNsaWVudC5oIgog
Ci0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0KICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNCArMzYsMTAgQEAgdm9p
ZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZQogICAgIFtjaGFsbGVuZ2Uuc2Vu
ZGVyKCkgY29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OmNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCldOwogfQogCi0jaWYgIVVT
RShDRlVSTENPTk5FQ1RJT04pCiBSZXNvdXJjZUVycm9yIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50
OjpwbGF0Zm9ybUJhZFJlc3BvbnNlRXJyb3IoKQogewogICAgIFJldGFpblB0cjxOU0Vycm9yPiBl
cnJvciA9IGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpOU1VSTEVycm9y
RG9tYWluIGNvZGU6TlNVUkxFcnJvckJhZFNlcnZlclJlc3BvbnNlIHVzZXJJbmZvOm5pbF0pOwog
ICAgIHJldHVybiBlcnJvci5nZXQoKTsKIH0KLSNlbmRpZgogCiB9Ci0KLSNlbmRpZiAvLyAhVVNF
KENGVVJMQ09OTkVDVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMjQ4MzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUs
NiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQotCiAjaW5j
bHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNp
bmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CkBAIC01Nyw1ICs1NSwzIEBAIEBpbnRlcmZhY2Ug
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXQKIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291cmNl
SGFuZGxlV2l0aENyZWRlbnRpYWxTdG9yYWdlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIDogV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlCiAKIEBlbmQKLQotI2Vu
ZGlmIC8vICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNp
b24gMjI0ODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw4ICsyNiw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oIgogCi0jaWYgIVVTRShDRlVS
TENPTk5FQ1RJT04pCi0KICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1w
b3J0ICJBdXRoZW50aWNhdGlvbk1hYy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtMzU4LDYg
KzM1NiwzIEBAIC0gKEJPT0wpY29ubmVjdGlvblNob3VsZFVzZUNyZWRlbnRpYWxTdG8KIH0KIAog
QGVuZAotCi0jZW5kaWYgLy8gIVVTRShDRlVSTENPTk5FQ1RJT04pCi0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVz
cG9uc2UubW0JKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzI3LDcg
KzMyNyw2IEBAIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3AKIH0KICNl
bmRpZgogCi0jaWYgIVVTRShDRlVSTENPTk5FQ1RJT04pCiBOU1VSTFJlc3BvbnNlICpzeW50aGVz
aXplUmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5KE5TVVJMUmVxdWVzdCAqY3VycmVudFJlcXVl
c3QsIE5TVVJMUmVxdWVzdCAqbmV3UmVxdWVzdCwgTlNVUkxSZXNwb25zZSAqcmVkaXJlY3RSZXNw
b25zZSkKIHsKICAgICBpZiAocmVkaXJlY3RSZXNwb25zZSkKQEAgLTM0MSw2ICszNDAsNSBAQCBO
U1VSTFJlc3BvbnNlICpzeW50aGVzaXplUmVkaXJlY3RSZXNwb25zCiAgICAgTlNEaWN0aW9uYXJ5
ICpzeW50aGVzaXplZFJlc3BvbnNlSGVhZGVyRmllbGRzID0gQHsgQCJMb2NhdGlvbiI6IFtbbmV3
UmVxdWVzdCBVUkxdIGFic29sdXRlU3RyaW5nXSwgQCJDYWNoZS1Db250cm9sIjogQCJuby1zdG9y
ZSIgfTsKICAgICByZXR1cm4gW1tbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OltjdXJyZW50UmVxdWVzdCBVUkxdIHN0YXR1c0NvZGU6MzAyIEhUVFBWZXJzaW9uOihOU1N0cmlu
ZyAqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50aGVzaXplZFJlc3BvbnNlSGVh
ZGVyRmllbGRzXSBhdXRvcmVsZWFzZV07CiB9Ci0jZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyNDgzOCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMTEtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgQ29jb2EgQ0ZVUkxDb25uZWN0aW9u
IGxvYWRpbmcgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc5Njg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKwogMjAxNy0xMS0x
NCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBXaGl0ZWxp
c3Qgc29tZSBJT0tJdCBwcm9wZXJ0aWVzIHRvIGF2b2lkIHNhbmRib3ggdmlvbGF0aW9ucyBvbiBZ
b3VUdWJlCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmgJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw5ICsx
NTEsNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOU1VSTERvd25sb2FkPiBtX25zVVJMRG93
bmxvYWQ7CiAgICAgUmV0YWluUHRyPFdLRG93bmxvYWRBc0RlbGVnYXRlPiBtX2RlbGVnYXRlOwog
I2VuZGlmCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBSZXRhaW5QdHI8Q0ZVUkxEb3du
bG9hZFJlZj4gbV9kb3dubG9hZDsKLSNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZUNsaWVudD4gbV9kb3dubG9hZENsaWVudDsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU+IG1fcmVzb3VyY2VIYW5kbGU7CiAjZW5kaWYgLy8gVVNFKE5F
VFdPUktfU0VTU0lPTikKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ4MzUp
CisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDE3LTExLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENvY29hIENGVVJMQ29ubmVjdGlvbiBsb2FkaW5n
IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
OTY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKToKKwogMjAxNy0xMS0wNiAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQWRkIFdl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgbGlicmFyeS4KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAJKHJldmlzaW9uIDIyNDgzNSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVs
ZUwKICAgICBib29sIGhhZFJlcXVlc3RzID0gaG9zdC0+aGFzUmVxdWVzdHMoKTsKICAgICBob3N0
LT5zY2hlZHVsZShyZXNvdXJjZUxvYWRlciwgcHJpb3JpdHkpOwogCi0jaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04pCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYg
KFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpICYmICFpc1N1c3Bl
bmRpbmdQZW5kaW5nUmVxdWVzdHMoKSkgewogICAgICAgICAvLyBTZXJ2ZSBhbGwgcmVxdWVzdHMg
YXQgb25jZSB0byBrZWVwIHRoZSBwaXBlbGluZSBmdWxsIGF0IHRoZSBuZXR3b3JrIGxheWVyLgog
ICAgICAgICAvLyBGSVhNRTogRG9lcyB0aGlzIGNvZGUgZG8gYW55dGhpbmcgdXNlZnVsLCBnaXZl
biB0aGF0IHdlIGFsc28gc2V0IG1heFJlcXVlc3RzSW5GbGlnaHRQZXJIb3N0IHRvIGVmZmVjdGl2
ZWx5IHVubGltaXRlZCBvbiB0aGVzZSBwbGF0Zm9ybXM/CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0xMS0xNCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92
ZSBDb2NvYSBDRlVSTENvbm5lY3Rpb24gbG9hZGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViRG93bmxvYWQubW06CisgICAg
ICAgICgtW1dlYkRvd25sb2FkIF9pbml0V2l0aExvYWRpbmdDRlVSTENvbm5lY3Rpb246cmVxdWVz
dDpyZXNwb25zZTpkZWxlZ2F0ZTpwcm94eTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBNaXNjL1dl
YkRvd25sb2FkSW50ZXJuYWwuaDoKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcubW06CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgc2NoZWR1bGVJblJ1bkxvb3A6Zm9yTW9kZTpdKToKKyAgICAgICAgKC1bV2Vi
VmlldyB1bnNjaGVkdWxlRnJvbVJ1bkxvb3A6Zm9yTW9kZTpdKToKKwogMjAxNy0xMS0xNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgTW9kZXJuIEVN
RSB0ZXN0cyBpbiBEdW1wUmVuZGVyVHJlZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
TWlzYy9XZWJEb3dubG9hZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkRvd25sb2FkLm1tCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkRvd25sb2FkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw2IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViRG93bmxvYWQuaD4KIAogI2ltcG9ydCA8
Rm91bmRhdGlvbi9OU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL0F1dGhlbnRpY2F0aW9uQ0YuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25N
YWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9D
cmVkZW50aWFsU3RvcmFnZS5oPgpAQCAtNDAsMTEgKzM5LDYgQEAKIAogI2ltcG9ydCAiV2ViVHlw
ZXNJbnRlcm5hbC5oIgogCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSNpbXBvcnQgPENGTmV0
d29yay9DRk5ldHdvcmsuaD4KLSNpbXBvcnQgPENGTmV0d29yay9DRlVSTENvbm5lY3Rpb24uaD4K
LSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGNsYXNzIE5TVVJMQ29ubmVj
dGlvbkRlbGVnYXRlUHJveHk7CkBAIC02MSwxMCArNTUsNiBAQCAtIChpZClfaW5pdFdpdGhSZXF1
ZXN0OihOU1VSTFJlcXVlc3QgKilyCiAgICAgICAgICAgICAgIGRlbGVnYXRlOihpZClkZWxlZ2F0
ZQogICAgICAgICAgICAgIGRpcmVjdG9yeTooTlNTdHJpbmcgKilkaXJlY3Rvcnk7CiAKLSNpZiBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQotLSAoaWQpX2luaXRXaXRoTG9hZGluZ0NGVVJMQ29ubmVjdGlv
bjooQ0ZVUkxDb25uZWN0aW9uUmVmKWNvbm5lY3Rpb24gcmVxdWVzdDooQ0ZVUkxSZXF1ZXN0UmVm
KXJlcXVlc3QgcmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2UgZGVsZWdhdGU6KGlk
KWRlbGVnYXRlIHByb3h5OihOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZVByb3h5ICopcHJveHk7Ci0j
ZW5kaWYKLQogQGVuZAogCiBAaW50ZXJmYWNlIFdlYkRvd25sb2FkSW50ZXJuYWwgOiBOU09iamVj
dCA8TlNVUkxEb3dubG9hZERlbGVnYXRlPgpAQCAtMjI3LDE0ICsyMTcsNiBAQCAtIChpZClfaW5p
dFdpdGhMb2FkaW5nQ29ubmVjdGlvbjooTlNVUkxDCiAgICAgcmV0dXJuIFtzdXBlciBfaW5pdFdp
dGhMb2FkaW5nQ29ubmVjdGlvbjpjb25uZWN0aW9uIHJlcXVlc3Q6cmVxdWVzdCByZXNwb25zZTpy
ZXNwb25zZSBkZWxlZ2F0ZTpfd2ViSW50ZXJuYWwgcHJveHk6cHJveHldOwogfQogCi0jaWYgVVNF
KENGVVJMQ09OTkVDVElPTikKLS0gKGlkKV9pbml0V2l0aExvYWRpbmdDRlVSTENvbm5lY3Rpb246
KENGVVJMQ29ubmVjdGlvblJlZiljb25uZWN0aW9uIHJlcXVlc3Q6KENGVVJMUmVxdWVzdFJlZily
ZXF1ZXN0IHJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJlc3BvbnNlIGRlbGVnYXRlOihpZClk
ZWxlZ2F0ZSBwcm94eTooTlNVUkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eSAqKXByb3h5Ci17Ci0g
ICAgW3NlbGYgX3NldFJlYWxEZWxlZ2F0ZTpkZWxlZ2F0ZV07Ci0gICAgcmV0dXJuIFtzdXBlciBf
aW5pdFdpdGhMb2FkaW5nQ0ZVUkxDb25uZWN0aW9uOmNvbm5lY3Rpb24gcmVxdWVzdDpyZXF1ZXN0
IHJlc3BvbnNlOnJlc3BvbnNlIGRlbGVnYXRlOl93ZWJJbnRlcm5hbCBwcm94eTpwcm94eV07Ci19
Ci0jZW5kaWYKLQogLSAoaWQpX2luaXRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVz
dAogICAgICAgICAgICAgICBkZWxlZ2F0ZTooaWQpZGVsZWdhdGUKICAgICAgICAgICAgICBkaXJl
Y3Rvcnk6KE5TU3RyaW5nICopZGlyZWN0b3J5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkRvd25sb2FkSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkRvd25sb2FkSW50ZXJuYWwuaAkocmV2aXNpb24gMjI0ODM1KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9hZEludGVybmFsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDE4ICsyNywxMCBAQAogKi8KICAKICNpbXBvcnQgPFdlYktpdExl
Z2FjeS9XZWJEb3dubG9hZC5oPgotCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSNpbXBvcnQg
PENGTmV0d29yay9DRlVSTENvbm5lY3Rpb24uaD4KLSNlbmRpZgogIAogQGludGVyZmFjZSBXZWJE
b3dubG9hZCAoV2ViRG93bmxvYWRDcmVhdGlvbikKICsoaWQpX2Rvd25sb2FkV2l0aExvYWRpbmdD
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHJlcXVlc3Q6KE5TVVJMUmVx
dWVzdCAqKXJlcXVlc3QgcmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyIGRlbGVnYXRlOihpZClk
ZWxlZ2F0ZSBwcm94eTooaWQpcHJveHk7CiAKICsoaWQpX2Rvd25sb2FkV2l0aFJlcXVlc3Q6KE5T
VVJMUmVxdWVzdCAqKXJlcXVlc3QgZGVsZWdhdGU6KGlkKWRlbGVnYXRlIGRpcmVjdG9yeTooTlNT
dHJpbmcgKilkaXJlY3Rvcnk7CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotKyAoaWQpX2Rv
d25sb2FkV2l0aExvYWRpbmdDRlVSTENvbm5lY3Rpb246KENGVVJMQ29ubmVjdGlvblJlZiljb25u
ZWN0aW9uIHJlcXVlc3Q6KENGVVJMUmVxdWVzdFJlZilyZXF1ZXN0IHJlc3BvbnNlOihDRlVSTFJl
c3BvbnNlUmVmKXJlc3BvbnNlIGRlbGVnYXRlOihpZClkZWxlZ2F0ZSBwcm94eTooaWQpcHJveHk7
Ci0jZW5kaWYKLQogQGVuZApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2aXNpb24g
MjI0ODM1KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW1wb3J0
ICJXZWJOU1VSTFJlcXVlc3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYlZpZXcuaCIKICNpbXBvcnQg
IldlYlZpZXdJbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNGLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0JpdG1hcEltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29y
a2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNiBAQAogI2ltcG9ydCAiV2ViVUlEZWxlZ2F0ZVByaXZh
dGUuaCIKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSlNDb250ZXh0SW50ZXJuYWwuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25D
Ri5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbk1hYy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQml0bWFwSW1h
Z2UuaD4KQEAgLTMyMCwxMyArMzE5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29u
dmVydE1haW5SZQogCiAgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IG1haW5SZXNvdXJjZUxv
YWRlci0+aGFuZGxlKCk7CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIEFTU0VSVChb
V2ViRG93bmxvYWQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZG93bmxvYWRXaXRoTG9h
ZGluZ0NGVVJMQ29ubmVjdGlvbjpyZXF1ZXN0OnJlc3BvbnNlOmRlbGVnYXRlOnByb3h5OildKTsK
LSAgICBhdXRvIGNvbm5lY3Rpb24gPSBoYW5kbGUtPnJlbGVhc2VDb25uZWN0aW9uRm9yRG93bmxv
YWQoKTsKLSAgICBbV2ViRG93bmxvYWQgX2Rvd25sb2FkV2l0aExvYWRpbmdDRlVSTENvbm5lY3Rp
b246Y29ubmVjdGlvbi5nZXQoKSByZXF1ZXN0OnJlcXVlc3QuY2ZVUkxSZXF1ZXN0KFVwZGF0ZUhU
VFBCb2R5KSByZXNwb25zZTpyZXNwb25zZS5jZlVSTFJlc3BvbnNlKCkgZGVsZWdhdGU6W3dlYlZp
ZXcgZG93bmxvYWREZWxlZ2F0ZV0gcHJveHk6bmlsXTsKLSNlbHNlCiAgICAgW1dlYkRvd25sb2Fk
IF9kb3dubG9hZFdpdGhMb2FkaW5nQ29ubmVjdGlvbjpoYW5kbGUtPmNvbm5lY3Rpb24oKSByZXF1
ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KSByZXNwb25zZTpyZXNwb25z
ZS5uc1VSTFJlc3BvbnNlKCkgZGVsZWdhdGU6W3dlYlZpZXcgZG93bmxvYWREZWxlZ2F0ZV0gcHJv
eHk6bmlsXTsKLSNlbmRpZgogfQogCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBpbnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xODY3LDcgKzE4NjcsNyBAQCArICh2b2lkKV9jbGVhck5ldHdvcmtMb2FkZXJTZXNzaW9u
CiArICh2b2lkKV9zZXRDdXJyZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVBY2NlcHRQb2xp
Y3k6KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKIHsKICAgICBSZXRhaW5QdHI8Q0ZI
VFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpOwotICAgIEFTU0VSVChj
b29raWVTdG9yYWdlKTsgLy8gV2lsbCBmYWlsIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBVU0UoQ0ZV
UkxDT05ORUNUSU9OKSBhbmQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3Rp
bmdTZXNzaW9uKCkgd2FzIG5vdCBjYWxsZWQgYmVmb3JlaGFuZC4KKyAgICBBU1NFUlQoY29va2ll
U3RvcmFnZSk7IC8vIFdpbGwgZmFpbCB3aGVuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNo
VG9OZXdUZXN0aW5nU2Vzc2lvbigpIHdhcyBub3QgY2FsbGVkIGJlZm9yZWhhbmQuCiAgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlLmdldCgp
LCBwb2xpY3kpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCShyZXZpc2lvbiAyMjQ4MzUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTc0NTcsMjQgKzc0NTcsMTQgQEAg
LSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOihpZCA8TgogCiAtICh2b2lkKXNjaGVk
dWxlSW5SdW5Mb29wOihOU1J1bkxvb3AgKilydW5Mb29wIGZvck1vZGU6KE5TU3RyaW5nICopbW9k
ZQogewotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgQ0ZSdW5Mb29wUmVmIHNjaGVkdWxl
UGFpclJ1bkxvb3AgPSBbcnVuTG9vcCBnZXRDRlJ1bkxvb3BdOwotI2Vsc2UKLSAgICBOU1J1bkxv
b3AgKnNjaGVkdWxlUGFpclJ1bkxvb3AgPSBydW5Mb29wOwotI2VuZGlmCiAgICAgaWYgKHJ1bkxv
b3AgJiYgbW9kZSkKLSAgICAgICAgY29yZShzZWxmKS0+YWRkU2NoZWR1bGVQYWlyKFNjaGVkdWxl
UGFpcjo6Y3JlYXRlKHNjaGVkdWxlUGFpclJ1bkxvb3AsIChDRlN0cmluZ1JlZiltb2RlKSk7Cisg
ICAgICAgIGNvcmUoc2VsZiktPmFkZFNjaGVkdWxlUGFpcihTY2hlZHVsZVBhaXI6OmNyZWF0ZShy
dW5Mb29wLCAoQ0ZTdHJpbmdSZWYpbW9kZSkpOwogfQogCiAtICh2b2lkKXVuc2NoZWR1bGVGcm9t
UnVuTG9vcDooTlNSdW5Mb29wICopcnVuTG9vcCBmb3JNb2RlOihOU1N0cmluZyAqKW1vZGUKIHsK
LSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIENGUnVuTG9vcFJlZiBzY2hlZHVsZVBhaXJS
dW5Mb29wID0gW3J1bkxvb3AgZ2V0Q0ZSdW5Mb29wXTsKLSNlbHNlCi0gICAgTlNSdW5Mb29wICpz
Y2hlZHVsZVBhaXJSdW5Mb29wID0gcnVuTG9vcDsKLSNlbmRpZgogICAgIGlmIChydW5Mb29wICYm
IG1vZGUpCi0gICAgICAgIGNvcmUoc2VsZiktPnJlbW92ZVNjaGVkdWxlUGFpcihTY2hlZHVsZVBh
aXI6OmNyZWF0ZShzY2hlZHVsZVBhaXJSdW5Mb29wLCAoQ0ZTdHJpbmdSZWYpbW9kZSkpOworICAg
ICAgICBjb3JlKHNlbGYpLT5yZW1vdmVTY2hlZHVsZVBhaXIoU2NoZWR1bGVQYWlyOjpjcmVhdGUo
cnVuTG9vcCwgKENGU3RyaW5nUmVmKW1vZGUpKTsKIH0KIAogc3RhdGljIEJPT0wgZmluZFN0cmlu
ZyhOU1ZpZXcgPFdlYkRvY3VtZW50U2VhcmNoaW5nPiAqc2VhcmNoVmlldywgTlNTdHJpbmcgKnN0
cmluZywgV2ViRmluZE9wdGlvbnMgb3B0aW9ucykK
</data>
<flag name="review"
          id="346177"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>