<?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>176561</bug_id>
          
          <creation_ts>2017-09-07 13:39:26 -0700</creation_ts>
          <short_desc>[PAL] Unify PlatformUserPreferredLanguages.h with Language.h</short_desc>
          <delta_ts>2017-09-27 12:39:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346521</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 13:39:26 -0700</bug_when>
    <thetext>[PAL] Unify PlatformUserPreferredLanguages.h with Language.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346528</commentid>
    <comment_count>1</comment_count>
      <attachid>320171</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 13:49:48 -0700</bug_when>
    <thetext>Created attachment 320171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346536</commentid>
    <comment_count>2</comment_count>
      <attachid>320175</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 14:01:42 -0700</bug_when>
    <thetext>Created attachment 320175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346547</commentid>
    <comment_count>3</comment_count>
      <attachid>320180</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 14:20:57 -0700</bug_when>
    <thetext>Created attachment 320180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346550</commentid>
    <comment_count>4</comment_count>
      <attachid>320182</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 14:32:00 -0700</bug_when>
    <thetext>Created attachment 320182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346553</commentid>
    <comment_count>5</comment_count>
      <attachid>320184</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 14:38:58 -0700</bug_when>
    <thetext>Created attachment 320184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346557</commentid>
    <comment_count>6</comment_count>
      <attachid>320184</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-09-07 14:44:32 -0700</bug_when>
    <thetext>Comment on attachment 320184
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=320184&amp;action=review

This change looks good, but I think you need to update some GTK-specific files:

platform/text/enchant/TextCheckerEnchant.cpp:25:22: fatal error: Language.h: No such file or directory

r=me, but no cq+ because there are some missing include corrections.

&gt; Source/WTF/wtf/CMakeLists.txt:233
&gt; +    Language.cpp

Ha! You caught this. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346558</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-09-07 14:45:15 -0700</bug_when>
    <thetext>WPE:

In file included from /home/ews/igalia-wpe-ews/WebKit/Source/WebKit/UIProcess/soup/WebProcessPoolSoup.cpp:35:0:
DerivedSources/ForwardingHeaders/WebCore/Language.h:1:39: fatal error: WebCore/platform/Language.h: No such file or directory
 #include &quot;WebCore/platform/Language.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346559</commentid>
    <comment_count>8</comment_count>
      <attachid>320185</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 14:45:42 -0700</bug_when>
    <thetext>Created attachment 320185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346588</commentid>
    <comment_count>9</comment_count>
      <attachid>320190</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 15:25:18 -0700</bug_when>
    <thetext>Created attachment 320190
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346595</commentid>
    <comment_count>10</comment_count>
      <attachid>320191</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-07 15:36:44 -0700</bug_when>
    <thetext>Created attachment 320191
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346625</commentid>
    <comment_count>11</comment_count>
      <attachid>320191</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-07 16:11:25 -0700</bug_when>
    <thetext>Comment on attachment 320191
Patch for committing

Clearing flags on attachment: 320191

Committed r221768: &lt;http://trac.webkit.org/changeset/221768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346626</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-07 16:11:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353571</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:39:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693692&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320171</attachid>
            <date>2017-09-07 13:49:48 -0700</date>
            <delta_ts>2017-09-07 14:01:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176561-20170907134947.patch</filename>
            <type>text/plain</type>
            <size>94967</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi5lNjY2NDRjYTIxOGY2OWFi
OTRmYWFhMTRkOTcxNGZiYTE2YzljOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpk
ZWZhdWx0TG9jYWxlKToKKwogMjAxNy0wOS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgIm1hbGxvYyIgYW5kICJmcmVlIiBm
cm9tIEpTQy9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggZmE4YjFhZGIzOTZkNDk3ZDE4NzBmYmY1OGI4YmU2ZGMzMGVjZGVi
YS4uMmU4YTkwYjNlODA1YmI2ZTBjODJjOTI0YTJjYTdmMzBhZjI1ZmYyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSB3YXMgdGhlIG9ubHkqIHVzZXIg
b2YgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLiBKYXZhU2NyaXB0Q29yZQorICAgICAg
ICBuZWVkZWQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSwg
YnV0IGl0IGNvdWxkbid0IGdldCBpdCBiZWNhdXNlIG9mIHRoZQorICAgICAgICBsYXllcmluZyB2
aW9sYXRpb24sIHNvIGluc3RlYWQgaXQgZXJyb25lb3VzbHkgY2FsbGVkIGludG8gUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzCisgICAgICAgIGluc3RlYWQuIFRoaXMgcGF0Y2ggbWVyZ2Vz
IHRoZXNlIHR3byBmaWxlcyBpbnRvIFdURiBzbyBKU0MgZ2V0cyB0aGUgcmlnaHQgZnVuY3Rpb24g
YW5kIHRoZSBQQUwKKyAgICAgICAgZWZmb3J0IGhhcyBvbmUgbGVzcyBmaWxlIHRvIG1vdmUgZnJv
bSBXZWJDb3JlL3BsYXRmb3JtIGludG8gUEFMLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0xhbmd1YWdlLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcC4KKyAgICAgICAgKFdURjo6YWRk
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaC4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1HVEsuY21h
a2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdQRS5jbWFrZToKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTWFjLm1tLgorICAgICAgICAoV1RGOjpodHRwU3R5bGVMYW5ndWFnZUNvZGUpOgor
ICAgICAgICAoV1RGOjpsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdU
Rjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAuCisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdp
bi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNXaW4uY3BwLgorCiAyMDE3LTA5LTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcXVpcmUgTG9nZ2luZ0hlbHBlciBvdmVycmlkZXMg
dG8gcHJvdmlkZSBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjZmJlMTI0OWFkMGU5YjA2ZmIz
YzU3NTVmMjZmZTY2YjIwZDcxMS4uMGMzMDY0NDIzZjQ0Yjg4OGQ3NzNkYTcxZmY4NTdiNzdkNmRl
MTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudC5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAqIGh0bWwv
dHJhY2svVHJhY2tCYXNlLmNwcDoKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuY3BwOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3Bw
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRv
ci5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvY2Yv
SHlwaGVuYXRpb25DRi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFj
Lm1tOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKwogMjAx
Ny0wOS0wNyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtBUk1dIEJ1aWxkaW5nIEZFTGlnaHRuaW5nTkVPTi5jcHAgZmFpbHMgZHVlIHRvIG1p
c3Npbmcge1BvaW50LFNwb3R9TGlnaHRTb3VyY2UgZGVjbGFyYXRpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1
M2I1ODgyNWM1NDJiMjZhZWQ0ZjFjZDNhZWVlMWE0NTg3NmZiZTMuLjBjZWQ4MTI2NTkxMGQyY2Q2
NTBjMWQxZGZmMGJlYmMxMGU1ZWQ1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTct
MDktMDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbUEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1
YWdlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQgY29uc3QpOgorCiAyMDE3LTA5LTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFdL
VUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBhZ2VEaWRT
Y3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5k
ZXggOWYxNzRkNjQwNWM5ZjNhMDg2YjI2MzU2YmRjZWViYmNmMDQ4NDA4NS4uMjVkMjFmMmVlNWNl
M2M3NjcyMzE2YWFmNmY3YTAzNWQ2YTIxZjk4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTQ4LDggKzQ4LDggQEAKICNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VudW1zeXMuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpAQCAtNTc2LDE2ICs1NzYsMTQgQEAgU3RyaW5nIGRlZmF1bHRMb2NhbGUoRXhlY1N0
YXRlJiBzdGF0ZSkKICAgICAKICAgICAvLyBXZWJDb3JlJ3MgZ2xvYmFsIG9iamVjdHMgd2lsbCBo
YXZlIHRoZWlyIG93biBpZGVhcyBvZiBob3cgdG8gZGV0ZXJtaW5lIHRoZSBsYW5ndWFnZS4gSXQg
bWF5CiAgICAgLy8gYmUgZGV0ZXJtaW5lZCBieSBXZWJDb3JlLXNwZWNpZmljIGxvZ2ljIGxpa2Ug
c29tZSBXSyBzZXR0aW5ncy4gVXN1YWxseSB0aGlzIHdpbGwgcmV0dXJuIHRoZQotICAgIC8vIHNh
bWUgdGhpbmcgYXMgcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKClbMF0uCisgICAgLy8g
c2FtZSB0aGluZyBhcyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKClbMF0uCiAgICAgaWYgKGF1dG8g
ZGVmYXVsdExhbmd1YWdlID0gc3RhdGUuanNDYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKCktPmRlZmF1bHRMYW5ndWFnZSkgewogICAgICAgICBTdHJpbmcg
bG9jYWxlID0gZGVmYXVsdExhbmd1YWdlKCk7CiAgICAgICAgIGlmICghbG9jYWxlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybiBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhsb2NhbGUpOwog
ICAgIH0KLSAgICAKLSAgICAvLyBJZiBXZWJDb3JlIGlzbid0IGFyb3VuZCB0byB0ZWxsIHVzIGhv
dyB0byBnZXQgdGhlIGxhbmd1YWdlIHRoZW4gZmFsbCBiYWNrIHRvIG91ciBvd24gd2F5IG9mCi0g
ICAgLy8gZG9pbmcgaXQsIHdoaWNoIG1vc3RseSBmb2xsb3dzIHdoYXQgV2ViQ29yZSB3b3VsZCBo
YXZlIGRvbmUuCi0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAgICAgaWYgKCFsYW5ndWFnZXMuaXNFbXB0eSgpICYmICFs
YW5ndWFnZXNbMF0uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplTGFuZ3Vh
Z2VUYWcobGFuZ3VhZ2VzWzBdKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGIwYTE5MDhiYWRkOTAyNzg3Y2NiNDVlMTE3YWVlMTI4MWIyNjdiZjUu
LjEyOWI5ODUzOTY2OGZlZmM2MDIwNGI3NmE4MzVlNjQ3NmY4ODZlMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMyLDkgKzEzMiwxMCBAQAogCQlBRDg5
QjZCNzFFNjQxNTA4MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODlCNkI1MUU2NDE1MDgw
MDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovOyB9OwogCQlBRDg5QjZCQTFF
NjQxNTBGMDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCOTFFNjQxNTBGMDA5
MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gKi87IH07CiAJCUFERjJDRTY3
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovOyB9OworCQlDMkJDRkM0MDFGNjFEMTMw
MDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCAq
LzsgfTsKKwkJQzJCQ0ZDNDIxRjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCQ0ZDNDExRjYxRDYx
NjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICovOyB9OwogCQlDRDU0OTdBQzE1ODU3RDAzMDBC
NUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
OyB9OwogCQlEQ0VFMjIwMTFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMUZE
MUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tICovOyB9OwotCQlEQ0VF
MjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENFRTIx
RkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5t
bSAqLzsgfTsKIAkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE1NTU2RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICov
OyB9OwogCQlFMzExRkIxNzFGMEE1NjhCMDAzQzA4REUgLyogVGhyZWFkR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxMUZCMTUxRjBBNTY4
QjAwM0MwOERFIC8qIFRocmVhZEdyb3VwLmNwcCAqLzsgfTsKIAkJRTM4QzQxMjUxRUI0RTA0QzAw
NDI5NTdEIC8qIENQVVRpbWVDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzOEM0MTI0MUVCNEUwNEMwMDQyOTU3RCAvKiBDUFVUaW1lQ29jb2Eu
bW0gKi87IH07CkBAIC01NDcsNiArNTQ4LDkgQEAKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURC
IC8qIE1lbW9yeUZvb3RwcmludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZW1vcnlGb290cHJpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUx
RTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludENvY29hLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1
cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzNFMUY2MUQxMzAwMEM5
MjIyQyAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzNGMUY2
MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkM0MTFG
NjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMYW5ndWFnZUNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzhGNTk3Q0EyQTU3NDE3RkJBQjkyRkQ2IC8qIFJhbmRvbURldmljZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5kb21EZXZpY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTcsOCArNTYxLDYgQEAKIAkJRENF
RTIxRkExQ0VBNzUzODAwMEMyMzk2IC8qIENGQnVuZGxlU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IENGQnVuZGxlU1BJLmg7IHBhdGggPSBjZi9DRkJ1bmRsZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjFGQzFDRUE3NTUxMDAwQzIzOTYgLyog
QmxvY2tPYmpDRXhjZXB0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja09iakNFeGNlcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRUUy
MUZEMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tPYmpDRXhjZXB0aW9ucy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRENFRTIxRkUxQ0VBNzU1MTAwMEMyMzk2IC8qIFBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRENFRTIxRkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDQxQ0VCOTg2OTAwMEMyMzk2IC8qIEJhY2t3YXJkc0dy
YXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2t3YXJkc0dyYXBoLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFNUEwOUZCMUJBMzY5OTIwMDNENDQyNCAv
KiBDb21tb25DcnlwdG9TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29t
bW9uQ3J5cHRvU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTU1NkYzMThB
MENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQwLDYgKzY0Miw3IEBACiAJCTJDREVEMEYwMTgx
MTVDM0YwMDREQkE3MCAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQzJCQ0ZDNDExRjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICov
LAogCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovLAogCQkJ
CTFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHNDRi5oICovLAogCQkJKTsKQEAg
LTg0Niw2ICs4NDksOCBAQAogCQkJCTUxODJDMjJDMUYyQkM3RTYwMDU5QkE3QyAvKiBJbnN0YW5j
ZUNvdW50ZWQuaCAqLywKIAkJCQk3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JB
ZGFwdG9ycy5oICovLAogCQkJCTdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJh
bmdlLmggKi8sCisJCQkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCAq
LywKKwkJCQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLywKIAkJCQk1
MzlFQjA2MjFENTUyODQyMDBDODJFRjcgLyogTEVCRGVjb2Rlci5oICovLAogCQkJCUE3MERBMDgz
MTc5OUYwNEQwMDUyOUE5QiAvKiBMaXN0RHVtcC5oICovLAogCQkJCUE4QTQ3MkMxMTUxQTgyNUEw
MDQxMjNGRiAvKiBMaXN0SGFzaFNldC5oICovLApAQCAtOTEyLDggKzkxNyw2IEBACiAJCQkJMEY4
MjRBNjUxQjc0NDNBMDAwMkUzNDVEIC8qIFBhcmtpbmdMb3QuaCAqLywKIAkJCQlBODc2REJENzE1
MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0uaCAqLywKIAkJCQlFMzIwMEFCNDFFOUE1MzZEMDAz
QjU5RDIgLyogUGxhdGZvcm1SZWdpc3RlcnMuaCAqLywKLQkJCQlEQ0VFMjFGRTFDRUE3NTUxMDAw
QzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggKi8sCi0JCQkJRENFRTIx
RkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5t
bSAqLywKIAkJCQkwRkY4NjA5NDFCQ0NCRDc0MDA0NTEyN0YgLyogUG9pbnRlckNvbXBhcmlzb24u
aCAqLywKIAkJCQkwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwICov
LAogCQkJCTBGOUQzMzVFMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5oICovLApAQCAt
MTM0NCw3ICsxMzQ3LDYgQEAKIAkJCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUExNTFBODI1QjAwNDEy
M0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGMEY1MjZCMUY0MjFGRjgwMDRBNDUyQyAvKiBTdHJpbmdN
YWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIw
MDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTM2NCw2ICsxMzY2LDgg
QEAKIAkJCQkwRjMwQkE5MDFFNzg3MDhFMDAyQ0E4NDcgLyogR2xvYmFsVmVyc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8q
IEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkJDRkM0MDFGNjFEMTMwMDBDOTIy
MkMgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQ0ZDNDIxRjYxRDYxNjAw
QzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMTY0NkExQjZG
RkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MEYzMkYxREZD
QkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUzNTM0RjJBMUVDMEUxMEUwMDE0MUIyRiAvKiBNYWNoRXhjZXB0aW9ucy5kZWZzIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzg1LDcgKzEzODksNiBAQAogCQkJCTUxRjE3NTJCMUYzRDQ4NjAwMEM3NDk1
MCAvKiBQZXJzaXN0ZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTJDMUYz
RDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYxNzUyRDFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudEVuY29kZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJRENFRTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJB
NzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjEx
RjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0I3
MjVFQzk4NzQ0NkFEOTNGMUE0NDAgLyogUmFuZG9tRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMTQxMiw2ICsxNDE1LDcgQEAKIAkJCQlBNUJBMTVGQzE4MjQzNUE2MDBBODJFNjkgLyogU3Ry
aW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUY1MTgyNDM0ODAwMEE4MkU2
OSAvKiBTdHJpbmdJbXBsTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RjMxODI0MzNB
OTAwQTgyRTY5IC8qIFN0cmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBGMEY1MjZCMUY0
MjFGRjgwMDRBNDUyQyAvKiBTdHJpbmdNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZE
REJGQTcxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjE5OTNFMTlENzk1OEQwMEMyMzkwQiAvKiBTdHJpbmdWaWV3LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzOTM0QkQ1MThBMUYxNjkwMEQwRDZBMSAvKiBTdHJpbmdWaWV3Q0Yu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEyZThjMTAwM2Mx
NTUzYzhlYjJjMzk1MTk1YzFjNDc4MWJmNmY1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMywgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgor
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCisjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKwor
c3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4OworCit0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJN
YXA7CitzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVyTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8T2JzZXJ2ZXJNYXA+IG1hcDsKKyAgICByZXR1cm4gbWFwLmdldCgpOworfQor
Cit2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VD
aGFuZ2VPYnNlcnZlckZ1bmN0aW9uIGN1c3RvbU9ic2VydmVyKQoreworICAgIG9ic2VydmVyTWFw
KCkuc2V0KGNvbnRleHQsIGN1c3RvbU9ic2VydmVyKTsKK30KKwordm9pZCByZW1vdmVMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKG9ic2VydmVyTWFw
KCkuY29udGFpbnMoY29udGV4dCkpOworICAgIG9ic2VydmVyTWFwKCkucmVtb3ZlKGNvbnRleHQp
OworfQorCit2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKK3sKKyAgICBPYnNlcnZlck1hcDo6aXRl
cmF0b3IgZW5kID0gb2JzZXJ2ZXJNYXAoKS5lbmQoKTsKKyAgICBmb3IgKE9ic2VydmVyTWFwOjpp
dGVyYXRvciBpdGVyID0gb2JzZXJ2ZXJNYXAoKS5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVy
KQorICAgICAgICBpdGVyLT52YWx1ZShpdGVyLT5rZXkpOworfQorCitTdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBs
YW5ndWFnZXNbMF07CisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKworc3RhdGljIFZl
Y3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZTsKKyAgICByZXR1cm4gb3Zl
cnJpZGU7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlk
ZSgpCit7CisgICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Cit9CisKK3Zv
aWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
dmVycmlkZSkKK3sKKyAgICBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpID0gb3ZlcnJpZGU7
CisgICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKK30KKworc3RhdGljIFZlY3RvcjxTdHJpbmc+IGlz
b2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKK3sKKyAgICBWZWN0b3I8
U3RyaW5nPiBjb3B5OworICAgIGNvcHkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdzLnNp
emUoKSk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHN0cmluZ3MpCisgICAgICAgIGNvcHku
dW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsKKyAgICByZXR1cm4gY29w
eTsKK30KKworVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAg
eworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworICAgICAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJpZGUpOworICAgIH0KKwor
ICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKK30KKworc3RhdGlj
IFN0cmluZyBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZUNvZGUpCit7CisgICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlQ29kZSA9IGxhbmd1YWdlQ29k
ZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOworICAgIAorICAgIGlmIChsb3dlcmNhc2VMYW5n
dWFnZUNvZGUubGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VMYW5ndWFnZUNvZGVbMl0gPT0gJ18n
KQorICAgICAgICBsb3dlcmNhc2VMYW5ndWFnZUNvZGUucmVwbGFjZSgyLCAxLCAiLSIpOworCisg
ICAgcmV0dXJuIGxvd2VyY2FzZUxhbmd1YWdlQ29kZTsKK30KKworc2l6ZV90IGluZGV4T2ZCZXN0
TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNoKQoreworICAgIFN0cmlu
ZyBsb3dlcmNhc2VMYW5ndWFnZSA9IGxhbmd1YWdlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7
CisgICAgU3RyaW5nIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoOworICAgIFN0cmluZyBsYW5n
dWFnZU1hdGNoQnV0Tm90TG9jYWxlOworICAgIHNpemVfdCBsYW5ndWFnZVdpdGhvdXRMb2NhbGVN
YXRjaEluZGV4ID0gMDsKKyAgICBzaXplX3QgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNo
SW5kZXggPSAwOworICAgIGJvb2wgY2FuTWF0Y2hMYW5ndWFnZU9ubHkgPSAobG93ZXJjYXNlTGFu
Z3VhZ2UubGVuZ3RoKCkgPT0gMiB8fCAobG93ZXJjYXNlTGFuZ3VhZ2UubGVuZ3RoKCkgPj0gMyAm
JiBsb3dlcmNhc2VMYW5ndWFnZVsyXSA9PSAnLScpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGFuZ3VhZ2VMaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIFN0cmluZyBjYW5vbmlj
YWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCA9IGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihsYW5n
dWFnZUxpc3RbaV0pOworCisgICAgICAgIGlmIChsb3dlcmNhc2VMYW5ndWFnZSA9PSBjYW5vbmlj
YWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCkgeworICAgICAgICAgICAgZXhhY3RNYXRjaCA9IHRydWU7
CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjYW5NYXRj
aExhbmd1YWdlT25seSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA+
PSAyKSB7CisgICAgICAgICAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VbMF0gPT0gY2Fub25pY2Fs
aXplZExhbmd1YWdlRnJvbUxpc3RbMF0gJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMV0gPT0gY2Fub25p
Y2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMV0pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWxhbmd1
YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZy
b21MaXN0Lmxlbmd0aCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRo
b3V0TG9jYWxlTWF0Y2ggPSBsYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIGxh
bmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSBpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBpZiAoIWxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUubGVuZ3RoKCkgJiYg
Y2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMykgeworICAgICAgICAg
ICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlID0gbGFuZ3VhZ2VMaXN0W2ldOwor
ICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9
IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgZXhhY3RNYXRjaCA9IGZhbHNlOworCisgICAgLy8gSWYgd2UgaGF2ZSBib3RoIGEgbGFu
Z3VhZ2Utb25seSBtYXRjaCBhbmQgYSBsYW5ndWdlLWJ1dC1ub3QtbG9jYWxlIG1hdGNoLCByZXR1
cm4gdGhlCisgICAgLy8gbGFuZ3VnZS1vbmx5IG1hdGNoIGFzIGlzIGNvbnNpZGVyZWQgYSAiYmV0
dGVyIiBtYXRjaC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBsaXN0CisgICAgLy8gcHJvdmlkZWQgaGFz
IGJvdGggImVuLUdCIiBhbmQgImVuIiBhbmQgdGhlIHVzZXIgcHJlZmVycyAiZW4tVVMiIHdlIHdp
bGwgcmV0dXJuICJlbiIuCisgICAgaWYgKGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0
aCgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleDsKKwor
ICAgIGlmIChsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgpKQorICAgICAgICByZXR1
cm4gbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXg7CisKKyAgICByZXR1cm4gbGFu
Z3VhZ2VMaXN0LnNpemUoKTsKK30KKworU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2Nh
bGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQoreworI2lmIFVTRShDRikgJiYgIVBMQVRGT1JN
KFdJTikKKyAgICBpZiAoIWxvY2FsZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gYWRv
cHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUoYWRvcHRDRihDRkxv
Y2FsZUNvcHlDdXJyZW50KCkpLmdldCgpLCBrQ0ZMb2NhbGVJZGVudGlmaWVyLCBsb2NhbGVOYW1l
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKS5nZXQoKTsKKyNlbmRpZgorICAgIHJldHVybiBsb2Nh
bGVOYW1lOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDViOTE4OTlkNGNkZWZlMGJh
ZjAwYmNkMDIxM2ZiYmQ3YzhjNDJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
TGFuZ3VhZ2UuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDEwLCAyMDEzLCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK1dURl9FWFBPUlQgU3RyaW5n
IGRlZmF1bHRMYW5ndWFnZSgpOyAvLyBUaHJlYWQtc2FmZS4KK1dURl9FWFBPUlQgVmVjdG9yPFN0
cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBC
Q1AgNDcgbGFuZ3VhZ2UgdGFncy4KK1dURl9FWFBPUlQgVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CitXVEZfRVhQT1JUIHZvaWQgb3ZlcnJpZGVVc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CitXVEZfRVhQT1JUIHNpemVf
dCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCk7
CitXVEZfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpOworLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVuIHRoZSB1c2Vy
J3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KK3ZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2Uo
KTsKKworLy8gVGhlIG9ic2VydmVyIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW4gc3lzdGVt
IGxhbmd1YWdlIGNoYW5nZXMuCit0eXBlZGVmIHZvaWQgKCpMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24pKHZvaWQqIGNvbnRleHQpOworV1RGX0VYUE9SVCB2b2lkIGFkZExhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9u
KTsKK1dURl9FWFBPUlQgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNv
bnRleHQpOworCitXVEZfRVhQT1JUIFN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxl
KGNvbnN0IFN0cmluZyYpOworfQorCit1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKK3VzaW5n
IFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKK3VzaW5nIFdURjo6dXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlOwordXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXM7Cit1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKK3VzaW5n
IFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcgV1RGOjphZGRMYW5n
dWFnZUNoYW5nZU9ic2VydmVyOwordXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyOwordXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOworCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IGNkYTVjMjk3MjNkMzdhZGQ1YjA4Y2JiZTg2MWUzNDZiOTc5
MWNmNTcuLmRhMDM4YTAxZmMzMGMzZTQ4MzhmZDM3NmJjNTRhMWU1NGMzYmU3ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMiw4ICsxMiw4IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VS
Q0VTCiAgICAgbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCiAKICAgICB1bml4
L0NQVVRpbWVVbml4LmNwcAorICAgIHVuaXgvTGFuZ3VhZ2VVbml4LmNwcAogCi0gICAgUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAKICAgICBVbmlTdGRFeHRyYXMuY3BwCiAK
ICAgICB0ZXh0L3VuaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVuaXguY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UKaW5kZXggNDRiMjIwMGJiYjZmNGYyYTE2YTk5NDdh
NDQwNzI3YWFmMTcxZDUzZi4uM2U3N2NjNGE0ODI5ZGJiNzY1MzY0Y2EwMWE0MGI5ZjhiNjQ4ODBh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZQpAQCAtMSw1ICsxLDQgQEAKIGxp
c3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
VW5peC5jcHAKIAogICAgIGdlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3BwCiAgICAgZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtOCwxMSArNywxMyBAQCBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogaWYgKFdJTjMyKQogICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgICAg
IHdpbi9DUFVUaW1lV2luLmNwcAorICAgICAgICB3aW4vTGFuZ3VhZ2VXaW4uY3BwCiAgICAgICAg
IHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAgICAgKQogZWxz
ZSAoKQogICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgICAgIHVuaXgvQ1BVVGltZVVu
aXguY3BwCisgICAgICAgIHVuaXgvTGFuZ3VhZ2VVbml4LmNwcAogICAgICAgICB0ZXh0L3VuaXgv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVuaXguY3BwCiAgICAgKQogZW5kaWYgKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYjRiMWRhZjMzOTQ1NzllMmU4MzQzYTEyZTAwMTI0
M2ViNGQyOTg5YS4uZjA3MWQyZjBlYmIwOTQxYWE3ODMyZjU5YTQxNjgwOWMyNWRhMmM0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTEwLDE1ICsxMCwxNSBAQCBsaXN0KEFQUEVORCBX
VEZfTElCUkFSSUVTCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIEF1dG9kcmFpbmVkUG9v
bE1hYy5tbQogICAgIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0KLSAgICBQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNNYWMubW0KICAgICBSdW5Mb29wVGltZXJDRi5jcHAKICAgICBTY2hlZHVs
ZVBhaXJDRi5jcHAKICAgICBTY2hlZHVsZVBhaXJNYWMubW0KIAotICAgIHRleHQvbWFjL1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KLQorICAgIGNmL0xhbmd1YWdlQ0YuY3BwCiAg
ICAgY2YvUnVuTG9vcENGLmNwcAogCisgICAgdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbQorCiAgICAgY29jb2EvQ1BVVGltZUNvY29hLm1tCiAgICAgY29jb2EvTWVt
b3J5Rm9vdHByaW50Q29jb2EuY3BwCiAgICAgY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29j
b2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcy5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNTgwZmM3NjA5ZmZkYzNhYjNiNDZk
YTBkZWM4N2E5MDM0ZmU3N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNfaAotI2RlZmluZSBQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNfaAotCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZv
aWQgKCopKCkpOwotCi0vLyBUaGlzIGlzIHRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRF
IFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDaGFuZ2VkQ2FsbGJhY2s7Ci11c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlczsKLQotI2VuZGlmIC8vIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c01hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01h
Yy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FlNzFhZWZjMzZhZTg5NWE4YWZi
ZTc2YTY0YzUzYzYzMDk2ZTQ0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNSwgMjAwNiwgMjAxMCwgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbXBvcnQgIkJsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaCIKLSNpbXBvcnQgPG11dGV4PgotI2ltcG9ydCA8dW5pY29kZS91bG9jLmg+Ci0jaW1w
b3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2ltcG9ydCA8d3RmL0xvY2suaD4KLSNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8
d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdGF0aWMgdm9pZCAoKmNhbGxiYWNrKSgpOwotCi12b2lk
IHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgq
cGFzc2VkQ2FsbGJhY2spKCkpCi17Ci0gICAgY2FsbGJhY2sgPSBwYXNzZWRDYWxsYmFjazsKLX0K
LQotc3RhdGljIFN0YXRpY0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7Ci0KLXN0YXRpYyBW
ZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKLSAgICByZXR1cm4gbGFuZ3VhZ2Vz
OwotfQotCi19Ci0KLUBpbnRlcmZhY2UgV1RGTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlciA6IE5TT2Jq
ZWN0Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXVEZMYW5ndWFnZUNoYW5nZU9ic2VydmVyCi0K
LSsgKHZvaWQpbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KLXsKLSAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKLQotICAgIHsK
LSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soV1RGOjpwcmVmZXJyZWRM
YW5ndWFnZXNNdXRleCk7Ci0gICAgICAgIFdURjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIo
KTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFdURjo6Y2FsbGJhY2spCi0gICAgICAgIFdURjo6Y2Fs
bGJhY2soKTsKLX0KLQotQGVuZAotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIFN0cmluZyBo
dHRwU3R5bGVMYW5ndWFnZUNvZGUoTlNTdHJpbmcgKmxhbmd1YWdlKQotewotICAgIFNJbnQzMiBs
YW5ndWFnZUNvZGU7Ci0gICAgU0ludDMyIHJlZ2lvbkNvZGU7Ci0gICAgU0ludDMyIHNjcmlwdENv
ZGU7Ci0gICAgQ0ZTdHJpbmdFbmNvZGluZyBzdHJpbmdFbmNvZGluZzsKLQotICAgIC8vIEZJWE1F
OiBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIHZlcnkgd3Jvbmc6Ci0gICAgLy8gMS4gVGhlcmUgaXMg
bm8gcmVhc29uIHdoeSBDRkJ1bmRsZSBsb2NhbGl6YXRpb24gbmFtZXMgd291bGQgYmUgYXQgYWxs
IHJlbGF0ZWQgdG8gbGFuZ3VhZ2UgbmFtZXMgYXMgdXNlZCBvbiB0aGUgV2ViLgotICAgIC8vIDIu
IFNjcmlwdCBNYW5hZ2VyIGNvZGVzIGNhbm5vdCByZXByZXNlbnQgYWxsIGxhbmd1YWdlcyB0aGF0
IGFyZSBub3cgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgc28gdGhlIGNvbnZlcnNpb24gaXMg
bG9zc3kuCi0gICAgLy8gMy4gVGhpcyBzaG91bGQgcHJvYmFibHkgbWF0Y2ggd2hhdCBpcyBzZW50
IGJ5IHRoZSBuZXR3b3JrIGxheWVyIGFzIEFjY2VwdC1MYW5ndWFnZSwgYnV0IGN1cnJlbnRseSwg
dGhhdCdzIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuCi0gICAgQ0ZCdW5kbGVHZXRMb2NhbGl6YXRp
b25JbmZvRm9yTG9jYWxpemF0aW9uKChDRlN0cmluZ1JlZilsYW5ndWFnZSwgJmxhbmd1YWdlQ29k
ZSwgJnJlZ2lvbkNvZGUsICZzY3JpcHRDb2RlLCAmc3RyaW5nRW5jb2RpbmcpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlID0gYWRvcHRDRihDRkJ1bmRs
ZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRpb25JbmZvKGxhbmd1YWdlQ29kZSwgcmVnaW9u
Q29kZSwgc2NyaXB0Q29kZSwgc3RyaW5nRW5jb2RpbmcpKTsKLSAgICBpZiAocHJlZmVycmVkTGFu
Z3VhZ2VDb2RlKQotICAgICAgICBsYW5ndWFnZSA9IChOU1N0cmluZyAqKXByZWZlcnJlZExhbmd1
YWdlQ29kZS5nZXQoKTsKLQotICAgIC8vIFR1cm4gYSAnXycgaW50byBhICctJyBpZiBpdCBhcHBl
YXJzIGFmdGVyIGEgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZQotICAgIGlmIChbbGFuZ3VhZ2UgbGVu
Z3RoXSA+PSAzICYmIFtsYW5ndWFnZSBjaGFyYWN0ZXJBdEluZGV4OjJdID09ICdfJykgewotICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU3RyaW5nPiBtdXRhYmxlTGFuZ3VhZ2VDb2RlID0gYWRv
cHROUyhbbGFuZ3VhZ2UgbXV0YWJsZUNvcHldKTsKLSAgICAgICAgW211dGFibGVMYW5ndWFnZUNv
ZGUuZ2V0KCkgcmVwbGFjZUNoYXJhY3RlcnNJblJhbmdlOk5TTWFrZVJhbmdlKDIsIDEpIHdpdGhT
dHJpbmc6QCItIl07Ci0gICAgICAgIHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwot
ICAgIH0KLQotICAgIHJldHVybiBsYW5ndWFnZTsKLX0KLQotVmVjdG9yPFN0cmluZz4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRv
a2VuLCBeewotICAgICAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gYWRkT2JzZXJ2ZXI6W1dURkxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIgc2VsZl0gc2Vs
ZWN0b3I6QHNlbGVjdG9yKGxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2U6KSBuYW1lOkAiQXBw
bGVMYW5ndWFnZVByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07Ci0g
ICAgfSk7Ci0jZW5kaWYKLQotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLQotICAg
IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4
KTsKLSAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJl
ZExhbmd1YWdlcygpOwotCi0gICAgaWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENG
TG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKLSAgICAgICAgQ0ZJbmRleCBsYW5ndWFn
ZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIGlmICgh
bGFuZ3VhZ2VDb3VudCkKLSAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5k
KCJlbiIpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoKE5TU3RyaW5nICopQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLSAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNo
ZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
LQotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c1VuaXguY3BwIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
VW5peC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODcyZDg5YTUxYjJiNmQ0
ODQ3ODg2ZjcwNzcxY2UzNzY2MmYzODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbmNsdWRl
IDxsb2NhbGUuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHNldFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7IH0KLQotLy8gVXNp
bmcgcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSBoZXJlIGlzIG5vdCBhbiBvcHRpb24sIGJl
Y2F1c2UKLS8vIGl0IGRvZXNuJ3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgbG9jYWxlIGluIHJ1bnRp
bWUsIHNvIGl0IHJldHVybnMKLS8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KLXN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCi17Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9j
YWxlKExDX0NUWVBFLCBudWxscHRyKSk7Ci0gICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQotICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJlbi1VUyIpOwotCi0gICAgU3RyaW5nIG5vcm1hbGl6ZWREZWZhdWx0ID0g
bG9jYWxlRGVmYXVsdDsKLSAgICBub3JtYWxpemVkRGVmYXVsdC5yZXBsYWNlKCdfJywgJy0nKTsK
LSAgICBub3JtYWxpemVkRGVmYXVsdC50cnVuY2F0ZShub3JtYWxpemVkRGVmYXVsdC5maW5kKCcu
JykpOwotICAgIHJldHVybiBub3JtYWxpemVkRGVmYXVsdDsKLX0KLQotVmVjdG9yPFN0cmluZz4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICByZXR1cm4geyBwbGF0Zm9y
bUxhbmd1YWdlKCkgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzlhZDIzYzU0MzljZTIzMzIwODA1YjI5ZDk4MzIxMjQxNjc2
M2M2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgotCi0jaW5jbHVkZSA8bXV0ZXg+Ci0jaW5jbHVk
ZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4OwotCi12b2lkIHNldFBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7
IH0KLQotc3RhdGljIFN0cmluZyBsb2NhbGVJbmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBT
dHJpbmcmIGZhbGxiYWNrKQotewotICAgIExBTkdJRCBsYW5nSUQgPSBHZXRVc2VyRGVmYXVsdFVJ
TGFuZ3VhZ2UoKTsKLSAgICBpbnQgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwg
bG9jYWxlVHlwZSwgMCwgMCk7Ci0gICAgaWYgKCFsb2NhbGVDaGFycykKLSAgICAgICAgcmV0dXJu
IGZhbGxiYWNrOwotICAgIFVDaGFyKiBsb2NhbGVOYW1lQnVmOwotICAgIFN0cmluZyBsb2NhbGVO
YW1lID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkKGxvY2FsZUNoYXJzLCBsb2NhbGVOYW1l
QnVmKTsKLSAgICBsb2NhbGVDaGFycyA9IEdldExvY2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBl
LCBsb2NhbGVOYW1lQnVmLCBsb2NhbGVDaGFycyk7Ci0gICAgaWYgKCFsb2NhbGVDaGFycykKLSAg
ICAgICAgcmV0dXJuIGZhbGxiYWNrOwotICAgIGlmIChsb2NhbGVOYW1lLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbGxiYWNrOwotCi0gICAgbG9jYWxlTmFtZS50cnVuY2F0ZShsb2NhbGVO
YW1lLmxlbmd0aCgpIC0gMSk7Ci0gICAgcmV0dXJuIGxvY2FsZU5hbWU7Ci19Ci0KLXN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCi17Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xv
Y2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4KTsKLQotICAgIHN0YXRpYyBTdHJpbmcgY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Ci0gICAgaWYgKCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc29sYXRl
ZENvcHkoKTsKLQotICAgIFN0cmluZyBsYW5ndWFnZU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9T
SVNPNjM5TEFOR05BTUUsICJlbiIpOwotICAgIFN0cmluZyBjb3VudHJ5TmFtZSA9IGxvY2FsZUlu
Zm8oTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIFN0cmluZygpKTsKLQotICAgIGlmIChjb3VudHJ5
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3Vh
Z2VOYW1lOwotICAgIGVsc2UKLSAgICAgICAgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UgPSBsYW5n
dWFnZU5hbWUgKyAnLScgKyBjb3VudHJ5TmFtZTsKLQotICAgIHJldHVybiBjb21wdXRlZERlZmF1
bHRMYW5ndWFnZTsKLX0KLQotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCkKLXsKLSAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IDRmMTViNmRkYTlm
NGNmZjk0NjI3M2EyNmRlYTk4NTRhNTI2ZjZlMWEuLjRiNDEwZTVmYjcyZGU1OTAyNTZlNDI5YjZj
MWJlZTI3M2M4NGU2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0xLDUgKzEsNCBA
QAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNVbml4LmNwcAogICAgIFVuaVN0ZEV4dHJhcy5jcHAKIAogICAgIGdlbmVyaWMvTWFpblRo
cmVhZEdlbmVyaWMuY3BwCkBAIC0xNiw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VT
CiAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAogCiAg
ICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICB1bml4L0xhbmd1YWdlVW5peC5jcHAKICkKIAog
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAz
NmJjZWM0YjY2MzNiMjVjMzlmMTRkNzhlMWE1NWVjZDQzZDQ4ZDIyLi41Y2ZlYzA3N2M0ZTUzMWFl
YmE2YTFkZDYzMzZkYmQ5MjhhYjhmOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAt
MywxMSArMywxMCBAQCBsaXN0KEFQUEVORCBXVEZfSEVBREVSUwogKQogCiBsaXN0KEFQUEVORCBX
VEZfU09VUkNFUwotICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKLQog
ICAgIHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAKICAgICB3
aW4vQ1BVVGltZVdpbi5jcHAKKyAgICB3aW4vTGFuZ3VhZ2VXaW4uY3BwCiAgICAgd2luL01haW5U
aHJlYWRXaW4uY3BwCiAgICAgd2luL01lbW9yeUZvb3RwcmludFdpbi5jcHAKICAgICB3aW4vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2Yv
TGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMmVjMGQwOGUwNWQxN2E4NDc0NzUxMWQ1NmY5MWFhYWQzNDlkMGM0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTAsMCArMSwxMTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTEsIDIw
MTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8
dW5pY29kZS91bG9jLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3
dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMg
U3RhdGljTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNNdXRleDsKKworc3RhdGljIFZlY3RvcjxTdHJp
bmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKK3N0
YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQor
eworICAgIFNJbnQzMiBsYW5ndWFnZUNvZGU7CisgICAgU0ludDMyIHJlZ2lvbkNvZGU7CisgICAg
U0ludDMyIHNjcmlwdENvZGU7CisgICAgQ0ZTdHJpbmdFbmNvZGluZyBzdHJpbmdFbmNvZGluZzsK
KworICAgIC8vIEZJWE1FOiBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIHZlcnkgd3Jvbmc6CisgICAg
Ly8gMS4gVGhlcmUgaXMgbm8gcmVhc29uIHdoeSBDRkJ1bmRsZSBsb2NhbGl6YXRpb24gbmFtZXMg
d291bGQgYmUgYXQgYWxsIHJlbGF0ZWQgdG8gbGFuZ3VhZ2UgbmFtZXMgYXMgdXNlZCBvbiB0aGUg
V2ViLgorICAgIC8vIDIuIFNjcmlwdCBNYW5hZ2VyIGNvZGVzIGNhbm5vdCByZXByZXNlbnQgYWxs
IGxhbmd1YWdlcyB0aGF0IGFyZSBub3cgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgc28gdGhl
IGNvbnZlcnNpb24gaXMgbG9zc3kuCisgICAgLy8gMy4gVGhpcyBzaG91bGQgcHJvYmFibHkgbWF0
Y2ggd2hhdCBpcyBzZW50IGJ5IHRoZSBuZXR3b3JrIGxheWVyIGFzIEFjY2VwdC1MYW5ndWFnZSwg
YnV0IGN1cnJlbnRseSwgdGhhdCdzIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuCisgICAgQ0ZCdW5k
bGVHZXRMb2NhbGl6YXRpb25JbmZvRm9yTG9jYWxpemF0aW9uKGxhbmd1YWdlLCAmbGFuZ3VhZ2VD
b2RlLCAmcmVnaW9uQ29kZSwgJnNjcmlwdENvZGUsICZzdHJpbmdFbmNvZGluZyk7CisgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNvZGUgPSBhZG9wdENGKENGQnVu
ZGxlQ29weUxvY2FsaXphdGlvbkZvckxvY2FsaXphdGlvbkluZm8obGFuZ3VhZ2VDb2RlLCByZWdp
b25Db2RlLCBzY3JpcHRDb2RlLCBzdHJpbmdFbmNvZGluZykpOworICAgIGlmIChwcmVmZXJyZWRM
YW5ndWFnZUNvZGUpCisgICAgICAgIGxhbmd1YWdlID0gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlLmdl
dCgpOworCisgICAgLy8gVHVybiBhICdfJyBpbnRvIGEgJy0nIGlmIGl0IGFwcGVhcnMgYWZ0ZXIg
YSAyLWxldHRlciBsYW5ndWFnZSBjb2RlCisgICAgaWYgKENGU3RyaW5nR2V0TGVuZ3RoKGxhbmd1
YWdlKSA+PSAzICYmIENGU3RyaW5nR2V0Q2hhcmFjdGVyQXRJbmRleChsYW5ndWFnZSwgMikgPT0g
J18nKSB7CisgICAgICAgIGF1dG8gbXV0YWJsZUxhbmd1YWdlQ29kZSA9IGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBsYW5ndWFnZSkpOwor
ICAgICAgICBDRlN0cmluZ1JlcGxhY2UobXV0YWJsZUxhbmd1YWdlQ29kZS5nZXQoKSwgQ0ZSYW5n
ZU1ha2UoMiwgMSksIENGU1RSKCItIikpOworICAgICAgICByZXR1cm4gbXV0YWJsZUxhbmd1YWdl
Q29kZS5nZXQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK3N0YXRpYyB2
b2lkIGxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYs
IHZvaWQqLCBDRk5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYp
Cit7CisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwcmVm
ZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIHByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFy
KCk7CisgICAgfQorICAgIAorICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisKK1ZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisjaWYgUExBVEZPUk0o
TUFDKQorICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNo
X29uY2UoJm9uY2VUb2tlbiwgXiB7CisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCBudWxscHRy
LCAmbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZSwgQ0ZTVFIoIkFwcGxlTGFuZ3VhZ2VQcmVm
ZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb24iKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNw
ZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisgICAgfSk7CisjZW5kaWYKKworICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICBW
ZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdl
cygpOworCisgICAgaWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAg
ICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29w
eVByZWZlcnJlZExhbmd1YWdlcygpKTsKKyAgICAgICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0g
Q0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7CisgICAgICAgIGlmICghbGFuZ3VhZ2VD
b3VudCkKKyAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIpOwor
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1
YWdlQ291bnQ7IGkrKykKKyAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFw
cGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OworICAg
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclBy
ZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOworCisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMpCisgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5
LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7CisKKyAgICByZXR1cm4g
dXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7CisKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4o
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTAxNmZiMmFlMzcwYjMxODEzNTliOGFlZjM5M2YzZTU3ZjUyZjM1Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2Uu
aCIKKworI2luY2x1ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFVzaW5n
IHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkgaGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNh
dXNlCisvLyBpdCBkb2Vzbid0IHN1cHBvcnQgY2hhbmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1l
LCBzbyBpdCByZXR1cm5zCisvLyBhbHdheXMgdGhlIHNhbWUgdmFsdWUuCitzdGF0aWMgU3RyaW5n
IHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2Fs
ZShMQ19DVFlQRSwgbnVsbHB0cikpOworICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8
fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgiZW4tVVMiKTsKKworICAgIFN0cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxv
Y2FsZURlZmF1bHQ7CisgICAgbm9ybWFsaXplZERlZmF1bHQucmVwbGFjZSgnXycsICctJyk7Cisg
ICAgbm9ybWFsaXplZERlZmF1bHQudHJ1bmNhdGUobm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicp
KTsKKyAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1bHQ7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1M
YW5ndWFnZSgpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFn
ZVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwMTA5ODU1MDAzZGEwYzJlYjMyNzk5NjE3OWIxNjNkMjk4
MzgyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5j
cHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiwgMjAx
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9j
ayBwbGF0Zm9ybUxhbmd1YWdlTXV0ZXg7CisKK3N0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZ
UEUgbG9jYWxlVHlwZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKK3sKKyAgICBMQU5HSUQgbGFu
Z0lEID0gR2V0VXNlckRlZmF1bHRVSUxhbmd1YWdlKCk7CisgICAgaW50IGxvY2FsZUNoYXJzID0g
R2V0TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOworICAgIGlmICghbG9jYWxl
Q2hhcnMpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBVQ2hhciogbG9jYWxlTmFtZUJ1
ZjsKKyAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChs
b2NhbGVDaGFycywgbG9jYWxlTmFtZUJ1Zik7CisgICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJ
bmZvKGxhbmdJRCwgbG9jYWxlVHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOworICAg
IGlmICghbG9jYWxlQ2hhcnMpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBpZiAobG9j
YWxlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKworICAgIGxvY2Fs
ZU5hbWUudHJ1bmNhdGUobG9jYWxlTmFtZS5sZW5ndGgoKSAtIDEpOworICAgIHJldHVybiBsb2Nh
bGVOYW1lOworfQorCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIHN0
ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisK
KyAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOworICAgIGlmICghY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY29tcHV0ZWRE
ZWZhdWx0TGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCk7CisKKyAgICBTdHJpbmcgbGFuZ3VhZ2VOYW1l
ID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKKyAgICBTdHJpbmcg
Y291bnRyeU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJpbmco
KSk7CisKKyAgICBpZiAoY291bnRyeU5hbWUuaXNFbXB0eSgpKQorICAgICAgICBjb21wdXRlZERl
ZmF1bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZTsKKyAgICBlbHNlCisgICAgICAgIGNvbXB1dGVk
RGVmYXVsdExhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7CisKKyAg
ICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1M
YW5ndWFnZSgpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhhYzBjMDM4NTc1ZDNh
Zjg5MWViZDVjZWY2ZmExMDk0YTY2MjJkYjcuLjMyMjA3YjAzYmYwMGVhYTAxZTc0NDk4ZjRkYTgx
MGZjNGRkMjg4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM2OTcsNyArMzY5Nyw2IEBACiAJCTg1NEZFNzM3MEEyMjk3QkUw
MDU4RDdBRCAvKiBUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1NEZFNzJEMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmF2ZXJzYWwuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTRGRTczODBB
MjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdh
bGtlci5jcHAgKi87IH07CiAJCTg1NEZFNzM5MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcy
RjBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTg1RUM5QUZCMEE3MUEyQzYwMEVFRUFFRCAvKiBM
YW5ndWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJC
IC8qIExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICovOyB9
OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUQxOEMx
NTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4QzFERDAyMDA1QzU0QUYg
LyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2
aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTM4ODksOCArMzg4OCw2IEBACiAJCTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxp
bmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjLmggKi87IH07CiAJCTkzOTFBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkxQTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwICovOyB9OwogCQk5MzkxQTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTFBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCUE2RDVBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLmNwcCAqLzsgfTsKLQkJQTZENUE5OUQxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5MjE0NjkxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJ
dGVyYXRvckJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzky
MjYyRjEwMzIxMDg0MDA2RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyMjYyRTEwMzIxMDg0MDA2
RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCTkzOTJGMTQyMEFEMTg1
RjQwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291
bnRlci5oICovOyB9OwpAQCAtNDYwNCw2ICs0NjAxLDggQEAKIAkJQTYxNDhBNzkxMkU0MUUzQjAw
NDRBNzg0IC8qIEpTSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MTQ4QTc3MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxL
ZXlnZW5FbGVtZW50LmggKi87IH07CiAJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKIAkJQTZE
MTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQTZENUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGUuY3BwICovOyB9OworCQlBNkQ1QTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTZENUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyogVGV4
dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTVFNjUy
MTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTAxMzRCQkJFQzAwRDhF
NzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgKi87IH07CiAJCUE3MTVFNjUzMTM0QkJC
RUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQ
cm9ncmVzc1NoYWRvd0VsZW1lbnQuaCAqLzsgfTsKQEAgLTY2NzksNyArNjY3OCw2IEBACiAJCUUx
ODI1NjhGMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1NjhEMEVGMkIwMkQw
MDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmNwcCAqLzsgfTsKIAkJRTE4MjU2OTAwRUYy
QjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1NjhFMEVGMkIwMkQwMDkzMzI0MiAvKiBK
U1dvcmtlckdsb2JhbFNjb3BlLmggKi87IH07CiAJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtl
ckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLzsgfTsKLQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2
IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxODc3MkYwMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi87IH07CiAJ
CUUxOERGMzM1MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4REYzMzQxOEFB
RjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTE4REYzMzgxOEFBRjE0RDAwNzcz
RTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4REYzMzYxOEFBRjE0RDAwNzczRTU5IC8qIFNl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovOyB9OwogCQlFMTk3MjcxNjE4MjA1NDlFMDA1
OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUu
aCAqLzsgfTsKQEAgLTExNTE2LDggKzExNTE0LDggQEAKIAkJN0NCQTVCQTYxRjBCNEJERTAwMzRE
NzQ1IC8qIEpTRE9NQ29udmVydFdlYkdMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NQ29u
dmVydFdlYkdMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCQkJDQzQxRjU2
MDU2NzAwNUVGQUFDIC8qIERPTU1hdHJpeDJESW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gRE9NTWF0cml4MkRJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NC
QkJDQzYxRjU2MDU2ODAwNUVGQUFDIC8qIERPTU1hdHJpeDJESW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01NYXRyaXgyREluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJN0NCQkJDQzgxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NTWF0cml4MkRJbml0LmNwcDsgcGF0aCA9IEpT
RE9NTWF0cml4MkRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NCQkJD
QzkxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEpTRE9NTWF0cml4MkRJbml0Lmg7IHBhdGggPSBKU0RPTU1hdHJpeDJESW5pdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JCQkNDODFGNTYxN0MwMDA1RUZBQUMgLyogSlNET01N
YXRyaXgyREluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JCQkNDOTFGNTYxN0MwMDA1RUZBQUMg
LyogSlNET01NYXRyaXgyREluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDMkRERjgxRUM5NDE1QTAwMjdCNzc0
IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9u
UGVybWlzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERGQTFFQzk0
MTVBMDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm90aWZpY2F0
aW9uUGVybWlzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzJEREZF
MUVDOTVBNDQwMDI3Qjc3NCAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTg4LDcgKzExOTg2LDYgQEAKIAkJ
ODVDNTZDQUQwQUE4OUZFMDAwRDk1NzU1IC8qIENTU1Vua25vd25SdWxlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQ1NTVW5rbm93blJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NURGMkY2OTBBQTNDNzQzMDBBRDY0QzUgLyogSFRNTENvbGxlY3Rpb24uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1REYyRjkyMEFBM0M5QjYwMEFENjRDNSAvKiBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUVDOUFGOTBBNzFBMkM2MDBF
RUVBRUQgLyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExh
bmd1YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MUMyRUEzMTNGQjRGREQw
MDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJG
MTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lz
QWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0Fj
dGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIxNiw4ICsxMjIxMyw2
IEBACiAJCTkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxQTk5QTE2MjlENkZGMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRJdGVyYXRvckJlaGF2aW9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTIyNjJFMTAzMjEwODQwMDZFN0Q1RCAv
KiBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQ291bnRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTMwNDEsNiArMTMwMzYsOCBAQAogCQlBNjE0OEE3RjEyRTQxRUQx
MDA0NEE3ODQgLyogSFRNTEtleWdlbkVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxLZXlnZW5FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTZE
MTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcx
MyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0Vs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NDI5LDcgKzE1NDI2LDYg
QEAKIAkJRTE4MjU2OEQwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJHbG9iYWxTY29w
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxODI1NjhFMEVGMkIwMkQwMDkz
MzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV29ya2VyR2xvYmFsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJHbG9iYWxT
Y29wZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxODc3MkYwMTI2
RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
OERGMzM0MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMThERjMzNjE4QUFGMTREMDA3NzNFNTkgLyog
U2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjIsOCArMTY5MTgsNiBAQAogCQkJCTBG
QzRFNDBDMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
SU9TLm1tICovLAogCQkJCTBGQzRFNDA5MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVl
SU9TLmNwcCAqLywKIAkJCQkwRkM0RTQwQTE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJl
ZUlPUy5oICovLAotCQkJCTFCOTRFNDA5MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLywKLQkJCQkxQjk0RTQwQTE4N0Y4MkUxMDA0NTg4
MkMgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjQ0OTcsOCArMjQ0
OTEsNiBAQAogCQkJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZp
dHkuaCAqLywKIAkJCQkxQUUwMEQ1NzE4MkRBQzhEMDAwODdERDcgLyogS2V5ZWRDb2RpbmcuaCAq
LywKIAkJCQlFMTVGRjdENDE4Qzk1NTM4MDBGRTRDODcgLyogS2V5cHJlc3NDb21tYW5kLmggKi8s
Ci0JCQkJRTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLywKLQkJCQk4
NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCAqLywKIAkJCQlBM0Q0MkE4NDFG
MzNCQTM2MDBBNjRCNjIgLyogTGF5b3V0VW5pdC5jcHAgKi8sCiAJCQkJMTQxREMwNDcxNjQ4MzQ4
RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNERjE2MDA3RTQ1
MzMgLyogTGVuZ3RoLmNwcCAqLywKQEAgLTI3NzE3LDEyICsyNzcwOSw5IEBACiAJCQkJODQ3MzBE
ODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODQ3MzBEODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NDczMEQ4OTEyNDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1MTdBNTM1QjFGNTg4QTRDMDBEQ0RDMEEgLyogRmV0Y2hCb2R5Q29uc3Vt
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjlDOTk3MUY1OUI5NjMwMDlENzQwMyAvKiBGZXRj
aEJvZHlTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDEyOURCMUYzRDE0MzgwMEQxNUU0
NyAvKiBGZXRjaEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkU2RkU4MUJCRDEyREYw
MDBBNjAyMyAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MTdBNTM1QTFGNTg4OUVGMDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTUxN0E1MzU4MUY1ODg5RTgwMERDREMwQSAvKiBGZXRjaExvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFBRDc1M0ExQ0VGNkJEMTAwQTMxNDg2IC8qIEZldGNoT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFMTkxNEQxRjJBOUFGQjAwMjcyRjc4IC8qIEZldGNoUmVm
ZXJyZXJQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTVBMUYyQTlCMzQwMDI3MkY3
OCAvKiBGZXRjaFJlcXVlc3RDYWNoZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTAxMiw3ICsyOTAw
MSw2IEBACiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtleXByZXNzQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJs
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFBRDRBODMwMDIwQjQyMCAv
KiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFQzlBRkIwQTcxQTJDNjAw
RUVFQUVEIC8qIExhbmd1YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTE3QjU2MjE0NzM0OTZD
MDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjkx
N0I1NjMxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0OTE2RkY3MTk1REY2QTAwMDVBQjM0OSAvKiBMYXllckZsdXNoVGhy
b3R0bGVTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg4OCw3ICsyOTg3Niw2IEBACiAJCQkJ
MkQ5M0FFRTMxOURGNTY0MTAwMkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxRjE3NTVEMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29y
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RjFGM0VCQzgzMDBDNzQ5NTAgLyogU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUQxRjU4OTlG
RTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFGMTc1NjExRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NjMxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VX
b3JrZXJKb2IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTY0MUYzRUJDODMwMEM3NDk1MCAv
KiBTZXJ2aWNlV29ya2VySm9iQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzMDg4LDcgKzMz
MDc1LDYgQEAKIAkJCQlCQzVFQkExMDBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ1MENFQkYwMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFi
bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0NTZGQTI2MTFBRDRBODMwMDIwQjQy
MCAvKiBMYWJlbHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTg3NzJGMTEyNkUy
NjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1NjEx
NDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVy
UG9vbC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKaW5kZXggNzA3NTZmZmFkN2Iz
MjY3YzU3OTA4ZmU4NDU1Y2NhMWI2NzRjMDUwMS4uMmViYzIyNmI3NTliZGFkM2I1NDM4NDZhYmJk
NTQwYWU4OGM0NmUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTVkdBRWxl
bWVudC5oIgpAQCAtNDAsNiArMzksNyBAQAogI2luY2x1ZGUgIlNWR1RpdGxlRWxlbWVudC5oIgog
I2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCisjaW5j
bHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggZGNjZDI4MzM4
ZTNlODBmZDNhNDhmMzg1NTJhM2VmMmEwMzM1N2E5NS4uNmFlNTg3MWM2ZmJiMmRhOThmYzVlYTI1
ZmQ4YzFjZjRlOGU5MWQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3dD
dXN0b20uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJK
U05vZGUuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVqZWN0ZWRQcm9taXNlVHJhY2tlci5oIgpAQCAt
NTEsNiArNTAsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KICNpbmNsdWRlIDxy
dW50aW1lL01pY3JvdGFzay5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXgg
OWU4NTRhMzhjNTNlNTA4OWEzMzIzMDAwOTM4ZmJjM2UxYTNmMDBkMC4uMzRhNTFhNTcwODczOThm
MzkxYWU2NzdjY2I3YzhlY2EwOWM2ZmI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtMzMsMTIgKzMzLDEy
IEBACiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUg
IkpTRHluYW1pY0Rvd25jYXN0LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5oIgot
I2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYjkxYTVmYTIwYjQ3YjkwZTllNjU0YWE0MWVjMjMx
ZDdhOTkzMTkzYS4uZGUyZjNiYTZlYzZjN2YzZjE2YzM5NGQ0OTRkZTBjMTMwY2Y0NmE2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDYgQEAKICNpbmNsdWRlICJKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5j
bHVkZSAiTGF5b3V0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3ku
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0yMDYsNiArMjA1LDcgQEAKICNpbmNsdWRlIDxp
bnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8cGFsL0xvZ2dlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5o
PgogI2luY2x1ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAppbmRleCBjMDhjZjMzNzBjMmEzMWFkMzAzM2I5ZjYxOGZhOTVkMDAy
MzA2Y2MxLi4zOGIxMjU0OTE1ZmFkY2IyOWU0ZDUzZTRkMmIyYjYyOTdkOTRhYzZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWRUYXJnZXRPYnNlcnZlci5o
IgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCkBAIC01OSw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
U2VhcmNoSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHls
ZVJlc29sdmVyLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01h
dGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGRmMzJmZTRkYjRhOTFjNjk0YjQ1ZmNjNzg1ZWE1Zjc2
MjAwNWZjZWUuLjllMGE5YTJmZTg3ZmE2M2FkMzUyODU2MzgwZThmM2E2ZjQ0NzU2MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNiBAQAog
I2luY2x1ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgogI2luY2x1ZGUgIkpTSFRNTE1lZGlhRWxlbWVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNp
bmNsdWRlICJNYWluRnJhbWUuaCIKQEAgLTk0LDYgKzkzLDcgQEAKICNpbmNsdWRlIDxydW50aW1l
L1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA1NDNmNjFmOWU4NzM1MGQ1Nzg2ZGRkNjZl
NDc3NGU3NTM1NGJlNjE2Li42NGYyYzFhZTQ4MmU3ZWJjMDIwYzliZmFjZjlhNzFiYTY1MmI3ZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5o
IgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzLmgiCkBAIC02MCw2
ICs1OSw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xp
c3QuaCIKICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFj
a0Jhc2UuY3BwCmluZGV4IDdlYTRlMDU2YjNjYmY0MmU0YjJjNzFkNTBiMzQ4YjY4MjdhODA4ZGMu
Ljg2ODE5ZjU3YjJiOTJmNzVmYjE2ZDU0N2UwNTBmZWFhOTYwNWZlZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgi
CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggN2Q1YWIxZTE1MTg5NTllNDVjNDRl
NjhhMjlkMjQzMDYzNzkwNDIzNi4uYmFlMGIzYmFhY2U1OTgwNzU3YWFiNmRkNGY3OTBhYTBkYzNl
OTIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMu
Y3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogI2lu
Y2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhU2VsZWN0aW9uT3B0aW9uLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDQsNiArNDMsNyBAQAogI2luY2x1ZGUgPGhlYXAvSGVh
cElubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ2VsbElubGluZXMuaD4KICNpbmNsdWRl
IDxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGYwYjhmN2YyN2QwZGE5Njli
YjZkMTQzMGMwNGY4NzBlNTY3YTNmNmMuLjIzZDdlMGJmNGU3ZGE2YTAyMGFhNWU5N2QxYWYxNmMy
NWIxZjQzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUYuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjZW5kaWYKICNpbmNsdWRl
ICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0jaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCkBAIC00Niw4
ICs0NSw4IEBACiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXRUeXBlcy5oIgogI2luY2x1ZGUgIlZU
VEN1ZS5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBiMjM5YzhhZmU0OTAwODM5OTBjM2I0MDVi
YTc0N2I5ZDkxNTFlYjA3Li5jYjE2Mzk4NmM4MzZiNTVkMDhlNWQzODhhZGE4OTliMDMxYTkzZTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC02Niw3ICs2Niw2IEBACiAjaW5jbHVk
ZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAj
aW5jbHVkZSAiTG9jYXRpb24uaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJN
ZWRpYVF1ZXJ5TGlzdC5oIgpAQCAtMTEwLDYgKzEwOSw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9y
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCmluZGV4IGI2
ZDU1OGY3NWIxZjgwZWZhMjBhZTExNWQ0YzMxZDljNjNlMjE1ZTQuLjQxZDA4NzZjZDVlZWYxZWIw
NWU1NGUzODU3MGE4ZjNlM2M5ZjAyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKQEAg
LTMxLDEyICszMSwxMiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCmluZGV4IDk3ZmY5NTNhNmYzYmRmZDA5NmVhZWQ2ZGM1
YmZmODkyYzRjNzJlOTUuLjIyMmE4ZWY0YzY4ZjFiMjYyYWZkZjgxMjJkOGFjOTRjZDhiODIzZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgogCi0jaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRlIDxtdXRleD4KKyNpbmNs
dWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlYzRiMzQ5MjQ2YWM3ZTllNzYwMDZhZTdiMDQ4MzA0OTYyZmE4MDA5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLSNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCi0jaW5jbHVkZSA8Q29y
ZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleDsKLQot
c3RhdGljIHZvaWQgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5nZUNhbGxiYWNrSWZOZWNlc3Nhcnko
KQotewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwotICAgIHN0ZDo6Y2FsbF9vbmNl
KAotICAgICAgICBvbmNlLAotICAgICAgICBbXSB7Ci0gICAgICAgICAgICBzZXRQbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sobGFuZ3VhZ2VEaWRDaGFuZ2UpOwot
ICAgICAgICB9KTsKLX0KLQotdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNoYW5nZU9i
c2VydmVyRnVuY3Rpb24+IE9ic2VydmVyTWFwOwotc3RhdGljIE9ic2VydmVyTWFwJiBvYnNlcnZl
ck1hcCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9ic2VydmVyTWFwPiBtYXA7Ci0g
ICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVy
KHZvaWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbiBjdXN0b21PYnNl
cnZlcikKLXsKLSAgICByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2FsbGJhY2tJZk5lY2Vzc2Fy
eSgpOwotICAgIG9ic2VydmVyTWFwKCkuc2V0KGNvbnRleHQsIGN1c3RvbU9ic2VydmVyKTsKLX0K
LQotdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCi17Ci0g
ICAgQVNTRVJUKG9ic2VydmVyTWFwKCkuY29udGFpbnMoY29udGV4dCkpOwotICAgIG9ic2VydmVy
TWFwKCkucmVtb3ZlKGNvbnRleHQpOwotfQotCi12b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKLXsK
LSAgICBPYnNlcnZlck1hcDo6aXRlcmF0b3IgZW5kID0gb2JzZXJ2ZXJNYXAoKS5lbmQoKTsKLSAg
ICBmb3IgKE9ic2VydmVyTWFwOjppdGVyYXRvciBpdGVyID0gb2JzZXJ2ZXJNYXAoKS5iZWdpbigp
OyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAgICAgICBpdGVyLT52YWx1ZShpdGVyLT5rZXkpOwot
fQotCi1TdHJpbmcgZGVmYXVsdExhbmd1YWdlKCkKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5n
dWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKGxhbmd1YWdlcy5zaXpl
KCkpCi0gICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07Ci0KLSAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKLX0KLQotc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVy
cmlkZSgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdmVy
cmlkZTsKLSAgICByZXR1cm4gb3ZlcnJpZGU7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpCi17Ci0gICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdl
c092ZXJyaWRlKCk7Ci19Ci0KLXZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKLXsKLSAgICBwcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpID0gb3ZlcnJpZGU7Ci0gICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKLX0KLQotc3Rh
dGljIFZlY3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3Ry
aW5ncykKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiBjb3B5OwotICAgIGNvcHkucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShzdHJpbmdzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHN0
cmluZ3MpCi0gICAgICAgIGNvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29w
eSgpKTsKLSAgICByZXR1cm4gY29weTsKLX0KLQotVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlcygpCi17Ci0gICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9j
az4gbG9jayh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgICAgICBWZWN0b3I8U3Ry
aW5nPiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgICAgICBp
ZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHko
b3ZlcnJpZGUpOwotICAgIH0KLSAgICAKLSAgICByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2Fs
bGJhY2tJZk5lY2Vzc2FyeSgpOwotICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoKTsKLX0KLQotc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZUNvZGUpCi17Ci0gICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1
YWdlQ29kZSA9IGxhbmd1YWdlQ29kZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgIAot
ICAgIGlmIChsb3dlcmNhc2VMYW5ndWFnZUNvZGUubGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VM
YW5ndWFnZUNvZGVbMl0gPT0gJ18nKQotICAgICAgICBsb3dlcmNhc2VMYW5ndWFnZUNvZGUucmVw
bGFjZSgyLCAxLCAiLSIpOwotCi0gICAgcmV0dXJuIGxvd2VyY2FzZUxhbmd1YWdlQ29kZTsKLX0K
LQotc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcm
IGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFj
dE1hdGNoKQotewotICAgIFN0cmluZyBsb3dlcmNhc2VMYW5ndWFnZSA9IGxhbmd1YWdlLmNvbnZl
cnRUb0FTQ0lJTG93ZXJjYXNlKCk7Ci0gICAgU3RyaW5nIGxhbmd1YWdlV2l0aG91dExvY2FsZU1h
dGNoOwotICAgIFN0cmluZyBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlOwotICAgIHNpemVfdCBs
YW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4ID0gMDsKLSAgICBzaXplX3QgbGFuZ3VhZ2VN
YXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXggPSAwOwotICAgIGJvb2wgY2FuTWF0Y2hMYW5ndWFn
ZU9ubHkgPSAobG93ZXJjYXNlTGFuZ3VhZ2UubGVuZ3RoKCkgPT0gMiB8fCAobG93ZXJjYXNlTGFu
Z3VhZ2UubGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VMYW5ndWFnZVsyXSA9PSAnLScpKTsKLQot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGFuZ3VhZ2VMaXN0LnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgIFN0cmluZyBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCA9IGNhbm9uaWNhbExh
bmd1YWdlSWRlbnRpZmllcihsYW5ndWFnZUxpc3RbaV0pOwotCi0gICAgICAgIGlmIChsb3dlcmNh
c2VMYW5ndWFnZSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCkgewotICAgICAgICAg
ICAgZXhhY3RNYXRjaCA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChjYW5NYXRjaExhbmd1YWdlT25seSAmJiBjYW5vbmljYWxpemVkTGFuZ3Vh
Z2VGcm9tTGlzdC5sZW5ndGgoKSA+PSAyKSB7Ci0gICAgICAgICAgICBpZiAobG93ZXJjYXNlTGFu
Z3VhZ2VbMF0gPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMF0gJiYgbG93ZXJjYXNl
TGFuZ3VhZ2VbMV0gPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMV0pIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIWxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0aCgpICYmIGNh
bm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxlbmd0aCgpID09IDIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2ggPSBsYW5ndWFnZUxpc3RbaV07Ci0g
ICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSBpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWxhbmd1YWdlTWF0Y2hCdXRO
b3RMb2NhbGUubGVuZ3RoKCkgJiYgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3Ro
KCkgPj0gMykgewotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxl
ID0gbGFuZ3VhZ2VMaXN0W2ldOwotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0
Tm90TG9jYWxlTWF0Y2hJbmRleCA9IGk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZXhhY3RNYXRjaCA9IGZhbHNlOwotCi0gICAgLy8g
SWYgd2UgaGF2ZSBib3RoIGEgbGFuZ3VhZ2Utb25seSBtYXRjaCBhbmQgYSBsYW5ndWdlLWJ1dC1u
b3QtbG9jYWxlIG1hdGNoLCByZXR1cm4gdGhlCi0gICAgLy8gbGFuZ3VnZS1vbmx5IG1hdGNoIGFz
IGlzIGNvbnNpZGVyZWQgYSAiYmV0dGVyIiBtYXRjaC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBsaXN0
Ci0gICAgLy8gcHJvdmlkZWQgaGFzIGJvdGggImVuLUdCIiBhbmQgImVuIiBhbmQgdGhlIHVzZXIg
cHJlZmVycyAiZW4tVVMiIHdlIHdpbGwgcmV0dXJuICJlbiIuCi0gICAgaWYgKGxhbmd1YWdlV2l0
aG91dExvY2FsZU1hdGNoLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VXaXRob3V0
TG9jYWxlTWF0Y2hJbmRleDsKLQotICAgIGlmIChsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxl
bmd0aCgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5k
ZXg7Ci0KLSAgICByZXR1cm4gbGFuZ3VhZ2VMaXN0LnNpemUoKTsKLX0KLQotU3RyaW5nIGRpc3Bs
YXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQotewotI2lm
IFVTRShDRikgJiYgIVBMQVRGT1JNKFdJTikKLSAgICBpZiAoIWxvY2FsZU5hbWUuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3Bl
cnR5VmFsdWUoYWRvcHRDRihDRkxvY2FsZUNvcHlDdXJyZW50KCkpLmdldCgpLCBrQ0ZMb2NhbGVJ
ZGVudGlmaWVyLCBsb2NhbGVOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKS5nZXQoKTsKLSNl
bmRpZgotICAgIHJldHVybiBsb2NhbGVOYW1lOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFu
Z3VhZ2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q3ZTY2N2EyNzExMjQ5ODk1
MTM2MjczYzllYWMzY2I0MDhmMTc2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwg
MjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgTGFuZ3VhZ2VfaAotI2RlZmluZSBMYW5ndWFnZV9oCi0KLSNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1XRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7IC8vIFRocmVhZC1zYWZl
LgotV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygp
OyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KLVZlY3RvcjxT
dHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotV0VCQ09SRV9FWFBPUlQg
dm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKLXNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5n
JiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhh
Y3RNYXRjaCk7Ci0KLS8vIFRoZSBvYnNlcnZlciBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVu
IHN5c3RlbSBsYW5ndWFnZSBjaGFuZ2VzLgotdHlwZWRlZiB2b2lkICgqTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlckZ1bmN0aW9uKSh2b2lkKiBjb250ZXh0KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgYWRk
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyRnVuY3Rpb24pOwotV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9i
c2VydmVyKHZvaWQqIGNvbnRleHQpOwotCi1TdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxv
Y2FsZShjb25zdCBTdHJpbmcmKTsKLQotLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMg
Y29kZSB3aGVuIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KLVdFQkNP
UkVfRVhQT1JUIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKLX0KLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHZW5lcmljRmFtaWxp
ZXMuY3BwCmluZGV4IDgxZDEyMDA5YTNmNTE5YzA3ZTkxY2NmMGJiYmU2ZjA4MGU4NjA2M2UuLjIz
ZmRmMGE0YTcxY2E0M2ZjYTdkNjRmOWZlYWNjZjY0MjJkMTY4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHZW5lcmljRmFtaWxpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHZW5lcmljRmFtaWxpZXMuY3Bw
CkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250
R2VuZXJpY0ZhbWlsaWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91
cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXggMDQyZTUzMDE3YmFiZTZlZmE1
NjkwMjUxY2YwNmNjZTBlM2M3NDRkOC4uYTIzZDgwOWQzYTVkZGZhZjM3MTE2MmRmMWZjYjYwNDIy
YjczZGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQy5tbQpAQCAtMjgsMTEgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
LSNpbXBvcnQgIkxhbmd1YWdlLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldC5oPgog
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxlY3Rpb25Hcm91cC5oPgogI2ltcG9ydCA8
QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Cisj
aW1wb3J0IDx3dGYvTGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2lt
cG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggNjRhZTk3MmRmY2Y5MjkwODYwMGQ5YWM4
YTdmYjdjNzUwNDYxMzZjOC4uNWRjMDM1ZGZmNWNkNTU0OWYyMTU3NWE2OTVjY2Q0Y2M1ZmNhNmZh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5j
cHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogCiAjaW5jbHVk
ZSAiSFRUUEhlYWRlck5hbWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlIDx3
dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9QbGF0Zm9ybUxvY2FsZS5oCmluZGV4IDkxMTk4ZjI3MTU3NWM3YmZmZTEyZjM2ZmViMDI1
NGEzM2I0MGYwZTYuLmE5MWZlODNjYjc5NmY0ZThjOTI1NzFhYjViOWZiNTE2MTg3MDExYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmgKQEAgLTI3
LDcgKzI3LDcgQEAKICNkZWZpbmUgUGxhdGZvcm1Mb2NhbGVfaAogCiAjaW5jbHVkZSAiRGF0ZUNv
bXBvbmVudHMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFn
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0
aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNG
LmNwcAppbmRleCBiNGIwZTUxZjRhZmQ2Y2EzYmNjOGEwZjg3NTJkNTM0Y2Q4Yjk2YTYzLi4xYzcw
YzQxM2Q4Y2MyMjUwMDRiMTdkN2IyYTY2OWE3MzcwNTdmMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTI2LDcgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgogCi0jaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RpbnlMUlVDYWNoZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgLy8gQ0YgaHlwaGVuYXRpb24gZnVuY3Rpb25zIHVzZSBsb2NhbGUgKHJlZ2lvbmFs
IGZvcm1hdHMpIGxhbmd1YWdlLCB3aGljaCBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1hdGNoIHByaW1h
cnkgVUkgbGFuZ3VhZ2UsCiAgICAgICAgIC8vIHNvIHdlIGNhbid0IHVzZSBkZWZhdWx0IGxvY2Fs
ZSBoZXJlLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODk3NjY0Pi4KLSAgICAgICAgUmV0YWluUHRy
PENGTG9jYWxlUmVmPiBsb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIFdlYkNvcmU6OmRlZmF1bHRMYW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCkpKTsKKyAgICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUgPSBhZG9wdENGKENG
TG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFnZSgpLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICAgICAgcmV0dXJuIENGU3RyaW5nSXNIeXBoZW5hdGlv
bkF2YWlsYWJsZUZvckxvY2FsZShsb2NhbGUuZ2V0KCkpID8gbG9jYWxlIDogbnVsbHB0cjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2Fs
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQpp
bmRleCBkMTU1OTA1NWU2MGUyMDg3NmNlZGY4YmMyNmNiZDBmYTc3OGMzYzg5Li4wYWYxNzlmYTIz
MzE2MzY1YjdjMDhjMDcyOTRmODNiOTRhZDMzYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGVNYWMuaCIKIAorI2ltcG9ydCAiTG9jYWxpemVk
U3RyaW5ncy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0RhdGVGb3JtYXR0ZXIuaD4KICNpbXBv
cnQgPEZvdW5kYXRpb24vTlNMb2NhbGUuaD4KLSNpbmNsdWRlICJMYW5ndWFnZS5oIgotI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KLSNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvRGF0ZU1hdGguaD4KKyNpbXBvcnQg
PHd0Zi9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgUExBVEZP
Uk0oSU9TKQogI2ltcG9ydCAiTG9jYWxpemVkRGF0ZUNhY2hlLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmNwcAppbmRleCBlNDRjMzM0ZjE2NTE5YjliYTcwYjJmMGYwZjQ5ZGNjMDM1YzkxOTBlLi44MzRj
MGUzZDk4ZThiMmRlNWQ5ODBhZmFmZTc2MzVmMjQzN2UxZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAKQEAgLTI0LDEwICsyNCwxMCBAQAogCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1
ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0
cmluZ0xpc3QuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA5Mzg5M2JkNTczOWMwZGQyMTY3NTkwMTQy
NmNkZmYwYjMxZWY4OGVhLi40YmYxZDBlODEyMTY4ZWQ5NWY1YTg5ZjYzNTViMzMxMjg0MTkxZTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCA1NmY5OTE1NjgzYTUzMGQ2M2E5NThmZDZlOTE5NzcyMDY1NDgwNjI4Li4yMTNmMWQyMjUwZWM2
OThhOGI1OGIzZjMwOTIyZGFjNzgyNWJjZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC04OCw3ICs4OCw2IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
IkludGVybmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJN
YWluRnJhbWUuaCIKICNpbmNsdWRlICJNYWxsb2NTdGF0aXN0aWNzLmgiCkBAIC0xNTQsNiArMTUz
LDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Cisj
aW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVmZmVyLmg+CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJl
c2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICB9CiAKICAgICBXZWJDb3JlOjpj
bGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKCk7Ci0gICAgV2ViQ29yZTo6
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkpOworICAgIG92
ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJD
b3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKICAgICBXZWJD
b3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcihmYWxzZSk7CiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQpAQCAtMTc0Miw3ICsxNzQyLDcgQEAgVmVjdG9yPFN0cmluZz4gSW50
ZXJuYWxzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIAogdm9pZCBJbnRlcm5hbHM6
OnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdl
cykKIHsKLSAgICBXZWJDb3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3Vh
Z2VzKTsKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0K
IAogVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjp1c2VyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJp
c3RpY3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IDBhNGVmOGJjYzlkYTZhYTI5MDA0OTg2Zjg0MjRlNDczMDRiNzI1MmUuLjQyYzNiNDA3NzYyYWFj
MWU3MDhkNzlkNDcwNGY4MmEwYThkYWU4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTQ5NSw3ICs0OTUsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3Vs
ZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogdm9pZCBXZWJQcm9jZXNz
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFu
Z3VhZ2VzKSBjb25zdAogewogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhsYW5n
dWFnZXMpOwotICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6
ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFi
bGVkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320175</attachid>
            <date>2017-09-07 14:01:42 -0700</date>
            <delta_ts>2017-09-07 14:20:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176561-20170907140141.patch</filename>
            <type>text/plain</type>
            <size>95481</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi5lNjY2NDRjYTIxOGY2OWFi
OTRmYWFhMTRkOTcxNGZiYTE2YzljOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpk
ZWZhdWx0TG9jYWxlKToKKwogMjAxNy0wOS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgIm1hbGxvYyIgYW5kICJmcmVlIiBm
cm9tIEpTQy9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggZmE4YjFhZGIzOTZkNDk3ZDE4NzBmYmY1OGI4YmU2ZGMzMGVjZGVi
YS4uMmU4YTkwYjNlODA1YmI2ZTBjODJjOTI0YTJjYTdmMzBhZjI1ZmYyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSB3YXMgdGhlIG9ubHkqIHVzZXIg
b2YgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLiBKYXZhU2NyaXB0Q29yZQorICAgICAg
ICBuZWVkZWQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSwg
YnV0IGl0IGNvdWxkbid0IGdldCBpdCBiZWNhdXNlIG9mIHRoZQorICAgICAgICBsYXllcmluZyB2
aW9sYXRpb24sIHNvIGluc3RlYWQgaXQgZXJyb25lb3VzbHkgY2FsbGVkIGludG8gUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzCisgICAgICAgIGluc3RlYWQuIFRoaXMgcGF0Y2ggbWVyZ2Vz
IHRoZXNlIHR3byBmaWxlcyBpbnRvIFdURiBzbyBKU0MgZ2V0cyB0aGUgcmlnaHQgZnVuY3Rpb24g
YW5kIHRoZSBQQUwKKyAgICAgICAgZWZmb3J0IGhhcyBvbmUgbGVzcyBmaWxlIHRvIG1vdmUgZnJv
bSBXZWJDb3JlL3BsYXRmb3JtIGludG8gUEFMLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0xhbmd1YWdlLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcC4KKyAgICAgICAgKFdURjo6YWRk
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaC4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1HVEsuY21h
a2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdQRS5jbWFrZToKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTWFjLm1tLgorICAgICAgICAoV1RGOjpodHRwU3R5bGVMYW5ndWFnZUNvZGUpOgor
ICAgICAgICAoV1RGOjpsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdU
Rjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAuCisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdp
bi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNXaW4uY3BwLgorCiAyMDE3LTA5LTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcXVpcmUgTG9nZ2luZ0hlbHBlciBvdmVycmlkZXMg
dG8gcHJvdmlkZSBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjZmJlMTI0OWFkMGU5YjA2ZmIz
YzU3NTVmMjZmZTY2YjIwZDcxMS4uMGMzMDY0NDIzZjQ0Yjg4OGQ3NzNkYTcxZmY4NTdiNzdkNmRl
MTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudC5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAqIGh0bWwv
dHJhY2svVHJhY2tCYXNlLmNwcDoKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuY3BwOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3Bw
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRv
ci5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvY2Yv
SHlwaGVuYXRpb25DRi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFj
Lm1tOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKwogMjAx
Ny0wOS0wNyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtBUk1dIEJ1aWxkaW5nIEZFTGlnaHRuaW5nTkVPTi5jcHAgZmFpbHMgZHVlIHRvIG1p
c3Npbmcge1BvaW50LFNwb3R9TGlnaHRTb3VyY2UgZGVjbGFyYXRpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1
M2I1ODgyNWM1NDJiMjZhZWQ0ZjFjZDNhZWVlMWE0NTg3NmZiZTMuLjBjZWQ4MTI2NTkxMGQyY2Q2
NTBjMWQxZGZmMGJlYmMxMGU1ZWQ1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTct
MDktMDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbUEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1
YWdlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQgY29uc3QpOgorCiAyMDE3LTA5LTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFdL
VUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBhZ2VEaWRT
Y3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5k
ZXggOWYxNzRkNjQwNWM5ZjNhMDg2YjI2MzU2YmRjZWViYmNmMDQ4NDA4NS4uMjVkMjFmMmVlNWNl
M2M3NjcyMzE2YWFmNmY3YTAzNWQ2YTIxZjk4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTQ4LDggKzQ4LDggQEAKICNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VudW1zeXMuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpAQCAtNTc2LDE2ICs1NzYsMTQgQEAgU3RyaW5nIGRlZmF1bHRMb2NhbGUoRXhlY1N0
YXRlJiBzdGF0ZSkKICAgICAKICAgICAvLyBXZWJDb3JlJ3MgZ2xvYmFsIG9iamVjdHMgd2lsbCBo
YXZlIHRoZWlyIG93biBpZGVhcyBvZiBob3cgdG8gZGV0ZXJtaW5lIHRoZSBsYW5ndWFnZS4gSXQg
bWF5CiAgICAgLy8gYmUgZGV0ZXJtaW5lZCBieSBXZWJDb3JlLXNwZWNpZmljIGxvZ2ljIGxpa2Ug
c29tZSBXSyBzZXR0aW5ncy4gVXN1YWxseSB0aGlzIHdpbGwgcmV0dXJuIHRoZQotICAgIC8vIHNh
bWUgdGhpbmcgYXMgcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKClbMF0uCisgICAgLy8g
c2FtZSB0aGluZyBhcyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKClbMF0uCiAgICAgaWYgKGF1dG8g
ZGVmYXVsdExhbmd1YWdlID0gc3RhdGUuanNDYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKCktPmRlZmF1bHRMYW5ndWFnZSkgewogICAgICAgICBTdHJpbmcg
bG9jYWxlID0gZGVmYXVsdExhbmd1YWdlKCk7CiAgICAgICAgIGlmICghbG9jYWxlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybiBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhsb2NhbGUpOwog
ICAgIH0KLSAgICAKLSAgICAvLyBJZiBXZWJDb3JlIGlzbid0IGFyb3VuZCB0byB0ZWxsIHVzIGhv
dyB0byBnZXQgdGhlIGxhbmd1YWdlIHRoZW4gZmFsbCBiYWNrIHRvIG91ciBvd24gd2F5IG9mCi0g
ICAgLy8gZG9pbmcgaXQsIHdoaWNoIG1vc3RseSBmb2xsb3dzIHdoYXQgV2ViQ29yZSB3b3VsZCBo
YXZlIGRvbmUuCi0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAgICAgaWYgKCFsYW5ndWFnZXMuaXNFbXB0eSgpICYmICFs
YW5ndWFnZXNbMF0uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplTGFuZ3Vh
Z2VUYWcobGFuZ3VhZ2VzWzBdKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGIwYTE5MDhiYWRkOTAyNzg3Y2NiNDVlMTE3YWVlMTI4MWIyNjdiZjUu
LjEyOWI5ODUzOTY2OGZlZmM2MDIwNGI3NmE4MzVlNjQ3NmY4ODZlMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMyLDkgKzEzMiwxMCBAQAogCQlBRDg5
QjZCNzFFNjQxNTA4MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODlCNkI1MUU2NDE1MDgw
MDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovOyB9OwogCQlBRDg5QjZCQTFF
NjQxNTBGMDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCOTFFNjQxNTBGMDA5
MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gKi87IH07CiAJCUFERjJDRTY3
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovOyB9OworCQlDMkJDRkM0MDFGNjFEMTMw
MDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCAq
LzsgfTsKKwkJQzJCQ0ZDNDIxRjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCQ0ZDNDExRjYxRDYx
NjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICovOyB9OwogCQlDRDU0OTdBQzE1ODU3RDAzMDBC
NUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
OyB9OwogCQlEQ0VFMjIwMTFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMUZE
MUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tICovOyB9OwotCQlEQ0VF
MjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENFRTIx
RkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5t
bSAqLzsgfTsKIAkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE1NTU2RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICov
OyB9OwogCQlFMzExRkIxNzFGMEE1NjhCMDAzQzA4REUgLyogVGhyZWFkR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxMUZCMTUxRjBBNTY4
QjAwM0MwOERFIC8qIFRocmVhZEdyb3VwLmNwcCAqLzsgfTsKIAkJRTM4QzQxMjUxRUI0RTA0QzAw
NDI5NTdEIC8qIENQVVRpbWVDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzOEM0MTI0MUVCNEUwNEMwMDQyOTU3RCAvKiBDUFVUaW1lQ29jb2Eu
bW0gKi87IH07CkBAIC01NDcsNiArNTQ4LDkgQEAKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURC
IC8qIE1lbW9yeUZvb3RwcmludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZW1vcnlGb290cHJpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUx
RTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludENvY29hLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1
cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzNFMUY2MUQxMzAwMEM5
MjIyQyAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzNGMUY2
MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkM0MTFG
NjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMYW5ndWFnZUNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzhGNTk3Q0EyQTU3NDE3RkJBQjkyRkQ2IC8qIFJhbmRvbURldmljZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5kb21EZXZpY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTcsOCArNTYxLDYgQEAKIAkJRENF
RTIxRkExQ0VBNzUzODAwMEMyMzk2IC8qIENGQnVuZGxlU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IENGQnVuZGxlU1BJLmg7IHBhdGggPSBjZi9DRkJ1bmRsZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjFGQzFDRUE3NTUxMDAwQzIzOTYgLyog
QmxvY2tPYmpDRXhjZXB0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja09iakNFeGNlcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRUUy
MUZEMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tPYmpDRXhjZXB0aW9ucy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRENFRTIxRkUxQ0VBNzU1MTAwMEMyMzk2IC8qIFBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRENFRTIxRkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDQxQ0VCOTg2OTAwMEMyMzk2IC8qIEJhY2t3YXJkc0dy
YXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2t3YXJkc0dyYXBoLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFNUEwOUZCMUJBMzY5OTIwMDNENDQyNCAv
KiBDb21tb25DcnlwdG9TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29t
bW9uQ3J5cHRvU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTU1NkYzMThB
MENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQwLDYgKzY0Miw3IEBACiAJCTJDREVEMEYwMTgx
MTVDM0YwMDREQkE3MCAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQzJCQ0ZDNDExRjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICov
LAogCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovLAogCQkJ
CTFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHNDRi5oICovLAogCQkJKTsKQEAg
LTg0Niw2ICs4NDksOCBAQAogCQkJCTUxODJDMjJDMUYyQkM3RTYwMDU5QkE3QyAvKiBJbnN0YW5j
ZUNvdW50ZWQuaCAqLywKIAkJCQk3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JB
ZGFwdG9ycy5oICovLAogCQkJCTdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJh
bmdlLmggKi8sCisJCQkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCAq
LywKKwkJCQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLywKIAkJCQk1
MzlFQjA2MjFENTUyODQyMDBDODJFRjcgLyogTEVCRGVjb2Rlci5oICovLAogCQkJCUE3MERBMDgz
MTc5OUYwNEQwMDUyOUE5QiAvKiBMaXN0RHVtcC5oICovLAogCQkJCUE4QTQ3MkMxMTUxQTgyNUEw
MDQxMjNGRiAvKiBMaXN0SGFzaFNldC5oICovLApAQCAtOTEyLDggKzkxNyw2IEBACiAJCQkJMEY4
MjRBNjUxQjc0NDNBMDAwMkUzNDVEIC8qIFBhcmtpbmdMb3QuaCAqLywKIAkJCQlBODc2REJENzE1
MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0uaCAqLywKIAkJCQlFMzIwMEFCNDFFOUE1MzZEMDAz
QjU5RDIgLyogUGxhdGZvcm1SZWdpc3RlcnMuaCAqLywKLQkJCQlEQ0VFMjFGRTFDRUE3NTUxMDAw
QzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggKi8sCi0JCQkJRENFRTIx
RkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5t
bSAqLywKIAkJCQkwRkY4NjA5NDFCQ0NCRDc0MDA0NTEyN0YgLyogUG9pbnRlckNvbXBhcmlzb24u
aCAqLywKIAkJCQkwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwICov
LAogCQkJCTBGOUQzMzVFMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5oICovLApAQCAt
MTM0NCw3ICsxMzQ3LDYgQEAKIAkJCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUExNTFBODI1QjAwNDEy
M0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGMEY1MjZCMUY0MjFGRjgwMDRBNDUyQyAvKiBTdHJpbmdN
YWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIw
MDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTM2NCw2ICsxMzY2LDgg
QEAKIAkJCQkwRjMwQkE5MDFFNzg3MDhFMDAyQ0E4NDcgLyogR2xvYmFsVmVyc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8q
IEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkJDRkM0MDFGNjFEMTMwMDBDOTIy
MkMgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQ0ZDNDIxRjYxRDYxNjAw
QzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMTY0NkExQjZG
RkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MEYzMkYxREZD
QkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUzNTM0RjJBMUVDMEUxMEUwMDE0MUIyRiAvKiBNYWNoRXhjZXB0aW9ucy5kZWZzIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzg1LDcgKzEzODksNiBAQAogCQkJCTUxRjE3NTJCMUYzRDQ4NjAwMEM3NDk1
MCAvKiBQZXJzaXN0ZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTJDMUYz
RDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYxNzUyRDFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudEVuY29kZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJRENFRTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJB
NzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjEx
RjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0I3
MjVFQzk4NzQ0NkFEOTNGMUE0NDAgLyogUmFuZG9tRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMTQxMiw2ICsxNDE1LDcgQEAKIAkJCQlBNUJBMTVGQzE4MjQzNUE2MDBBODJFNjkgLyogU3Ry
aW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUY1MTgyNDM0ODAwMEE4MkU2
OSAvKiBTdHJpbmdJbXBsTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RjMxODI0MzNB
OTAwQTgyRTY5IC8qIFN0cmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBGMEY1MjZCMUY0
MjFGRjgwMDRBNDUyQyAvKiBTdHJpbmdNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZE
REJGQTcxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjE5OTNFMTlENzk1OEQwMEMyMzkwQiAvKiBTdHJpbmdWaWV3LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzOTM0QkQ1MThBMUYxNjkwMEQwRDZBMSAvKiBTdHJpbmdWaWV3Q0Yu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEyZThjMTAwM2Mx
NTUzYzhlYjJjMzk1MTk1YzFjNDc4MWJmNmY1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMywgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgor
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCisjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKwor
c3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4OworCit0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJN
YXA7CitzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVyTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8T2JzZXJ2ZXJNYXA+IG1hcDsKKyAgICByZXR1cm4gbWFwLmdldCgpOworfQor
Cit2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VD
aGFuZ2VPYnNlcnZlckZ1bmN0aW9uIGN1c3RvbU9ic2VydmVyKQoreworICAgIG9ic2VydmVyTWFw
KCkuc2V0KGNvbnRleHQsIGN1c3RvbU9ic2VydmVyKTsKK30KKwordm9pZCByZW1vdmVMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKG9ic2VydmVyTWFw
KCkuY29udGFpbnMoY29udGV4dCkpOworICAgIG9ic2VydmVyTWFwKCkucmVtb3ZlKGNvbnRleHQp
OworfQorCit2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKK3sKKyAgICBPYnNlcnZlck1hcDo6aXRl
cmF0b3IgZW5kID0gb2JzZXJ2ZXJNYXAoKS5lbmQoKTsKKyAgICBmb3IgKE9ic2VydmVyTWFwOjpp
dGVyYXRvciBpdGVyID0gb2JzZXJ2ZXJNYXAoKS5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVy
KQorICAgICAgICBpdGVyLT52YWx1ZShpdGVyLT5rZXkpOworfQorCitTdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBs
YW5ndWFnZXNbMF07CisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKworc3RhdGljIFZl
Y3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZTsKKyAgICByZXR1cm4gb3Zl
cnJpZGU7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlk
ZSgpCit7CisgICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Cit9CisKK3Zv
aWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
dmVycmlkZSkKK3sKKyAgICBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpID0gb3ZlcnJpZGU7
CisgICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKK30KKworc3RhdGljIFZlY3RvcjxTdHJpbmc+IGlz
b2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKK3sKKyAgICBWZWN0b3I8
U3RyaW5nPiBjb3B5OworICAgIGNvcHkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdzLnNp
emUoKSk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHN0cmluZ3MpCisgICAgICAgIGNvcHku
dW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsKKyAgICByZXR1cm4gY29w
eTsKK30KKworVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAg
eworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworICAgICAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJpZGUpOworICAgIH0KKwor
ICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKK30KKworc3RhdGlj
IFN0cmluZyBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZUNvZGUpCit7CisgICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlQ29kZSA9IGxhbmd1YWdlQ29k
ZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOworICAgIAorICAgIGlmIChsb3dlcmNhc2VMYW5n
dWFnZUNvZGUubGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VMYW5ndWFnZUNvZGVbMl0gPT0gJ18n
KQorICAgICAgICBsb3dlcmNhc2VMYW5ndWFnZUNvZGUucmVwbGFjZSgyLCAxLCAiLSIpOworCisg
ICAgcmV0dXJuIGxvd2VyY2FzZUxhbmd1YWdlQ29kZTsKK30KKworc2l6ZV90IGluZGV4T2ZCZXN0
TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNoKQoreworICAgIFN0cmlu
ZyBsb3dlcmNhc2VMYW5ndWFnZSA9IGxhbmd1YWdlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7
CisgICAgU3RyaW5nIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoOworICAgIFN0cmluZyBsYW5n
dWFnZU1hdGNoQnV0Tm90TG9jYWxlOworICAgIHNpemVfdCBsYW5ndWFnZVdpdGhvdXRMb2NhbGVN
YXRjaEluZGV4ID0gMDsKKyAgICBzaXplX3QgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNo
SW5kZXggPSAwOworICAgIGJvb2wgY2FuTWF0Y2hMYW5ndWFnZU9ubHkgPSAobG93ZXJjYXNlTGFu
Z3VhZ2UubGVuZ3RoKCkgPT0gMiB8fCAobG93ZXJjYXNlTGFuZ3VhZ2UubGVuZ3RoKCkgPj0gMyAm
JiBsb3dlcmNhc2VMYW5ndWFnZVsyXSA9PSAnLScpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGFuZ3VhZ2VMaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIFN0cmluZyBjYW5vbmlj
YWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCA9IGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihsYW5n
dWFnZUxpc3RbaV0pOworCisgICAgICAgIGlmIChsb3dlcmNhc2VMYW5ndWFnZSA9PSBjYW5vbmlj
YWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCkgeworICAgICAgICAgICAgZXhhY3RNYXRjaCA9IHRydWU7
CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjYW5NYXRj
aExhbmd1YWdlT25seSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA+
PSAyKSB7CisgICAgICAgICAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VbMF0gPT0gY2Fub25pY2Fs
aXplZExhbmd1YWdlRnJvbUxpc3RbMF0gJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMV0gPT0gY2Fub25p
Y2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMV0pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWxhbmd1
YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZy
b21MaXN0Lmxlbmd0aCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRo
b3V0TG9jYWxlTWF0Y2ggPSBsYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIGxh
bmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSBpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBpZiAoIWxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUubGVuZ3RoKCkgJiYg
Y2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMykgeworICAgICAgICAg
ICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlID0gbGFuZ3VhZ2VMaXN0W2ldOwor
ICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9
IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgZXhhY3RNYXRjaCA9IGZhbHNlOworCisgICAgLy8gSWYgd2UgaGF2ZSBib3RoIGEgbGFu
Z3VhZ2Utb25seSBtYXRjaCBhbmQgYSBsYW5ndWdlLWJ1dC1ub3QtbG9jYWxlIG1hdGNoLCByZXR1
cm4gdGhlCisgICAgLy8gbGFuZ3VnZS1vbmx5IG1hdGNoIGFzIGlzIGNvbnNpZGVyZWQgYSAiYmV0
dGVyIiBtYXRjaC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBsaXN0CisgICAgLy8gcHJvdmlkZWQgaGFz
IGJvdGggImVuLUdCIiBhbmQgImVuIiBhbmQgdGhlIHVzZXIgcHJlZmVycyAiZW4tVVMiIHdlIHdp
bGwgcmV0dXJuICJlbiIuCisgICAgaWYgKGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0
aCgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleDsKKwor
ICAgIGlmIChsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgpKQorICAgICAgICByZXR1
cm4gbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXg7CisKKyAgICByZXR1cm4gbGFu
Z3VhZ2VMaXN0LnNpemUoKTsKK30KKworU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2Nh
bGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQoreworI2lmIFVTRShDRikgJiYgIVBMQVRGT1JN
KFdJTikKKyAgICBpZiAoIWxvY2FsZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gYWRv
cHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUoYWRvcHRDRihDRkxv
Y2FsZUNvcHlDdXJyZW50KCkpLmdldCgpLCBrQ0ZMb2NhbGVJZGVudGlmaWVyLCBsb2NhbGVOYW1l
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKS5nZXQoKTsKKyNlbmRpZgorICAgIHJldHVybiBsb2Nh
bGVOYW1lOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDViOTE4OTlkNGNkZWZlMGJh
ZjAwYmNkMDIxM2ZiYmQ3YzhjNDJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
TGFuZ3VhZ2UuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDEwLCAyMDEzLCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK1dURl9FWFBPUlQgU3RyaW5n
IGRlZmF1bHRMYW5ndWFnZSgpOyAvLyBUaHJlYWQtc2FmZS4KK1dURl9FWFBPUlQgVmVjdG9yPFN0
cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBC
Q1AgNDcgbGFuZ3VhZ2UgdGFncy4KK1dURl9FWFBPUlQgVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CitXVEZfRVhQT1JUIHZvaWQgb3ZlcnJpZGVVc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CitXVEZfRVhQT1JUIHNpemVf
dCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCk7
CitXVEZfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpOworLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVuIHRoZSB1c2Vy
J3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KK3ZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2Uo
KTsKKworLy8gVGhlIG9ic2VydmVyIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW4gc3lzdGVt
IGxhbmd1YWdlIGNoYW5nZXMuCit0eXBlZGVmIHZvaWQgKCpMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24pKHZvaWQqIGNvbnRleHQpOworV1RGX0VYUE9SVCB2b2lkIGFkZExhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9u
KTsKK1dURl9FWFBPUlQgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNv
bnRleHQpOworCitXVEZfRVhQT1JUIFN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxl
KGNvbnN0IFN0cmluZyYpOworfQorCit1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKK3VzaW5n
IFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKK3VzaW5nIFdURjo6dXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlOwordXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXM7Cit1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKK3VzaW5n
IFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcgV1RGOjphZGRMYW5n
dWFnZUNoYW5nZU9ic2VydmVyOwordXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyOwordXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOworCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IGNkYTVjMjk3MjNkMzdhZGQ1YjA4Y2JiZTg2MWUzNDZiOTc5
MWNmNTcuLmRhMDM4YTAxZmMzMGMzZTQ4MzhmZDM3NmJjNTRhMWU1NGMzYmU3ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMiw4ICsxMiw4IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VS
Q0VTCiAgICAgbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCiAKICAgICB1bml4
L0NQVVRpbWVVbml4LmNwcAorICAgIHVuaXgvTGFuZ3VhZ2VVbml4LmNwcAogCi0gICAgUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAKICAgICBVbmlTdGRFeHRyYXMuY3BwCiAK
ICAgICB0ZXh0L3VuaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVuaXguY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UKaW5kZXggNDRiMjIwMGJiYjZmNGYyYTE2YTk5NDdh
NDQwNzI3YWFmMTcxZDUzZi4uM2U3N2NjNGE0ODI5ZGJiNzY1MzY0Y2EwMWE0MGI5ZjhiNjQ4ODBh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZQpAQCAtMSw1ICsxLDQgQEAKIGxp
c3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
VW5peC5jcHAKIAogICAgIGdlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3BwCiAgICAgZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtOCwxMSArNywxMyBAQCBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogaWYgKFdJTjMyKQogICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgICAg
IHdpbi9DUFVUaW1lV2luLmNwcAorICAgICAgICB3aW4vTGFuZ3VhZ2VXaW4uY3BwCiAgICAgICAg
IHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAgICAgKQogZWxz
ZSAoKQogICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgICAgIHVuaXgvQ1BVVGltZVVu
aXguY3BwCisgICAgICAgIHVuaXgvTGFuZ3VhZ2VVbml4LmNwcAogICAgICAgICB0ZXh0L3VuaXgv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVuaXguY3BwCiAgICAgKQogZW5kaWYgKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYjRiMWRhZjMzOTQ1NzllMmU4MzQzYTEyZTAwMTI0
M2ViNGQyOTg5YS4uZjA3MWQyZjBlYmIwOTQxYWE3ODMyZjU5YTQxNjgwOWMyNWRhMmM0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTEwLDE1ICsxMCwxNSBAQCBsaXN0KEFQUEVORCBX
VEZfTElCUkFSSUVTCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIEF1dG9kcmFpbmVkUG9v
bE1hYy5tbQogICAgIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0KLSAgICBQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNNYWMubW0KICAgICBSdW5Mb29wVGltZXJDRi5jcHAKICAgICBTY2hlZHVs
ZVBhaXJDRi5jcHAKICAgICBTY2hlZHVsZVBhaXJNYWMubW0KIAotICAgIHRleHQvbWFjL1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KLQorICAgIGNmL0xhbmd1YWdlQ0YuY3BwCiAg
ICAgY2YvUnVuTG9vcENGLmNwcAogCisgICAgdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbQorCiAgICAgY29jb2EvQ1BVVGltZUNvY29hLm1tCiAgICAgY29jb2EvTWVt
b3J5Rm9vdHByaW50Q29jb2EuY3BwCiAgICAgY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29j
b2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcy5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNTgwZmM3NjA5ZmZkYzNhYjNiNDZk
YTBkZWM4N2E5MDM0ZmU3N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNfaAotI2RlZmluZSBQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNfaAotCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZv
aWQgKCopKCkpOwotCi0vLyBUaGlzIGlzIHRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRF
IFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDaGFuZ2VkQ2FsbGJhY2s7Ci11c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlczsKLQotI2VuZGlmIC8vIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c01hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01h
Yy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FlNzFhZWZjMzZhZTg5NWE4YWZi
ZTc2YTY0YzUzYzYzMDk2ZTQ0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNSwgMjAwNiwgMjAxMCwgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbXBvcnQgIkJsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaCIKLSNpbXBvcnQgPG11dGV4PgotI2ltcG9ydCA8dW5pY29kZS91bG9jLmg+Ci0jaW1w
b3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2ltcG9ydCA8d3RmL0xvY2suaD4KLSNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8
d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdGF0aWMgdm9pZCAoKmNhbGxiYWNrKSgpOwotCi12b2lk
IHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgq
cGFzc2VkQ2FsbGJhY2spKCkpCi17Ci0gICAgY2FsbGJhY2sgPSBwYXNzZWRDYWxsYmFjazsKLX0K
LQotc3RhdGljIFN0YXRpY0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7Ci0KLXN0YXRpYyBW
ZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKLSAgICByZXR1cm4gbGFuZ3VhZ2Vz
OwotfQotCi19Ci0KLUBpbnRlcmZhY2UgV1RGTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlciA6IE5TT2Jq
ZWN0Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXVEZMYW5ndWFnZUNoYW5nZU9ic2VydmVyCi0K
LSsgKHZvaWQpbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KLXsKLSAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKLQotICAgIHsK
LSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soV1RGOjpwcmVmZXJyZWRM
YW5ndWFnZXNNdXRleCk7Ci0gICAgICAgIFdURjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIo
KTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFdURjo6Y2FsbGJhY2spCi0gICAgICAgIFdURjo6Y2Fs
bGJhY2soKTsKLX0KLQotQGVuZAotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIFN0cmluZyBo
dHRwU3R5bGVMYW5ndWFnZUNvZGUoTlNTdHJpbmcgKmxhbmd1YWdlKQotewotICAgIFNJbnQzMiBs
YW5ndWFnZUNvZGU7Ci0gICAgU0ludDMyIHJlZ2lvbkNvZGU7Ci0gICAgU0ludDMyIHNjcmlwdENv
ZGU7Ci0gICAgQ0ZTdHJpbmdFbmNvZGluZyBzdHJpbmdFbmNvZGluZzsKLQotICAgIC8vIEZJWE1F
OiBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIHZlcnkgd3Jvbmc6Ci0gICAgLy8gMS4gVGhlcmUgaXMg
bm8gcmVhc29uIHdoeSBDRkJ1bmRsZSBsb2NhbGl6YXRpb24gbmFtZXMgd291bGQgYmUgYXQgYWxs
IHJlbGF0ZWQgdG8gbGFuZ3VhZ2UgbmFtZXMgYXMgdXNlZCBvbiB0aGUgV2ViLgotICAgIC8vIDIu
IFNjcmlwdCBNYW5hZ2VyIGNvZGVzIGNhbm5vdCByZXByZXNlbnQgYWxsIGxhbmd1YWdlcyB0aGF0
IGFyZSBub3cgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgc28gdGhlIGNvbnZlcnNpb24gaXMg
bG9zc3kuCi0gICAgLy8gMy4gVGhpcyBzaG91bGQgcHJvYmFibHkgbWF0Y2ggd2hhdCBpcyBzZW50
IGJ5IHRoZSBuZXR3b3JrIGxheWVyIGFzIEFjY2VwdC1MYW5ndWFnZSwgYnV0IGN1cnJlbnRseSwg
dGhhdCdzIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuCi0gICAgQ0ZCdW5kbGVHZXRMb2NhbGl6YXRp
b25JbmZvRm9yTG9jYWxpemF0aW9uKChDRlN0cmluZ1JlZilsYW5ndWFnZSwgJmxhbmd1YWdlQ29k
ZSwgJnJlZ2lvbkNvZGUsICZzY3JpcHRDb2RlLCAmc3RyaW5nRW5jb2RpbmcpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlID0gYWRvcHRDRihDRkJ1bmRs
ZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRpb25JbmZvKGxhbmd1YWdlQ29kZSwgcmVnaW9u
Q29kZSwgc2NyaXB0Q29kZSwgc3RyaW5nRW5jb2RpbmcpKTsKLSAgICBpZiAocHJlZmVycmVkTGFu
Z3VhZ2VDb2RlKQotICAgICAgICBsYW5ndWFnZSA9IChOU1N0cmluZyAqKXByZWZlcnJlZExhbmd1
YWdlQ29kZS5nZXQoKTsKLQotICAgIC8vIFR1cm4gYSAnXycgaW50byBhICctJyBpZiBpdCBhcHBl
YXJzIGFmdGVyIGEgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZQotICAgIGlmIChbbGFuZ3VhZ2UgbGVu
Z3RoXSA+PSAzICYmIFtsYW5ndWFnZSBjaGFyYWN0ZXJBdEluZGV4OjJdID09ICdfJykgewotICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU3RyaW5nPiBtdXRhYmxlTGFuZ3VhZ2VDb2RlID0gYWRv
cHROUyhbbGFuZ3VhZ2UgbXV0YWJsZUNvcHldKTsKLSAgICAgICAgW211dGFibGVMYW5ndWFnZUNv
ZGUuZ2V0KCkgcmVwbGFjZUNoYXJhY3RlcnNJblJhbmdlOk5TTWFrZVJhbmdlKDIsIDEpIHdpdGhT
dHJpbmc6QCItIl07Ci0gICAgICAgIHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwot
ICAgIH0KLQotICAgIHJldHVybiBsYW5ndWFnZTsKLX0KLQotVmVjdG9yPFN0cmluZz4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRv
a2VuLCBeewotICAgICAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gYWRkT2JzZXJ2ZXI6W1dURkxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIgc2VsZl0gc2Vs
ZWN0b3I6QHNlbGVjdG9yKGxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2U6KSBuYW1lOkAiQXBw
bGVMYW5ndWFnZVByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07Ci0g
ICAgfSk7Ci0jZW5kaWYKLQotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLQotICAg
IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4
KTsKLSAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJl
ZExhbmd1YWdlcygpOwotCi0gICAgaWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENG
TG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKLSAgICAgICAgQ0ZJbmRleCBsYW5ndWFn
ZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIGlmICgh
bGFuZ3VhZ2VDb3VudCkKLSAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5k
KCJlbiIpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoKE5TU3RyaW5nICopQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLSAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNo
ZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
LQotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c1VuaXguY3BwIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
VW5peC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODcyZDg5YTUxYjJiNmQ0
ODQ3ODg2ZjcwNzcxY2UzNzY2MmYzODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbmNsdWRl
IDxsb2NhbGUuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHNldFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7IH0KLQotLy8gVXNp
bmcgcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSBoZXJlIGlzIG5vdCBhbiBvcHRpb24sIGJl
Y2F1c2UKLS8vIGl0IGRvZXNuJ3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgbG9jYWxlIGluIHJ1bnRp
bWUsIHNvIGl0IHJldHVybnMKLS8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KLXN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCi17Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9j
YWxlKExDX0NUWVBFLCBudWxscHRyKSk7Ci0gICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQotICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJlbi1VUyIpOwotCi0gICAgU3RyaW5nIG5vcm1hbGl6ZWREZWZhdWx0ID0g
bG9jYWxlRGVmYXVsdDsKLSAgICBub3JtYWxpemVkRGVmYXVsdC5yZXBsYWNlKCdfJywgJy0nKTsK
LSAgICBub3JtYWxpemVkRGVmYXVsdC50cnVuY2F0ZShub3JtYWxpemVkRGVmYXVsdC5maW5kKCcu
JykpOwotICAgIHJldHVybiBub3JtYWxpemVkRGVmYXVsdDsKLX0KLQotVmVjdG9yPFN0cmluZz4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICByZXR1cm4geyBwbGF0Zm9y
bUxhbmd1YWdlKCkgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzlhZDIzYzU0MzljZTIzMzIwODA1YjI5ZDk4MzIxMjQxNjc2
M2M2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgotCi0jaW5jbHVkZSA8bXV0ZXg+Ci0jaW5jbHVk
ZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4OwotCi12b2lkIHNldFBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7
IH0KLQotc3RhdGljIFN0cmluZyBsb2NhbGVJbmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBT
dHJpbmcmIGZhbGxiYWNrKQotewotICAgIExBTkdJRCBsYW5nSUQgPSBHZXRVc2VyRGVmYXVsdFVJ
TGFuZ3VhZ2UoKTsKLSAgICBpbnQgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwg
bG9jYWxlVHlwZSwgMCwgMCk7Ci0gICAgaWYgKCFsb2NhbGVDaGFycykKLSAgICAgICAgcmV0dXJu
IGZhbGxiYWNrOwotICAgIFVDaGFyKiBsb2NhbGVOYW1lQnVmOwotICAgIFN0cmluZyBsb2NhbGVO
YW1lID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkKGxvY2FsZUNoYXJzLCBsb2NhbGVOYW1l
QnVmKTsKLSAgICBsb2NhbGVDaGFycyA9IEdldExvY2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBl
LCBsb2NhbGVOYW1lQnVmLCBsb2NhbGVDaGFycyk7Ci0gICAgaWYgKCFsb2NhbGVDaGFycykKLSAg
ICAgICAgcmV0dXJuIGZhbGxiYWNrOwotICAgIGlmIChsb2NhbGVOYW1lLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbGxiYWNrOwotCi0gICAgbG9jYWxlTmFtZS50cnVuY2F0ZShsb2NhbGVO
YW1lLmxlbmd0aCgpIC0gMSk7Ci0gICAgcmV0dXJuIGxvY2FsZU5hbWU7Ci19Ci0KLXN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCi17Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xv
Y2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4KTsKLQotICAgIHN0YXRpYyBTdHJpbmcgY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Ci0gICAgaWYgKCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc29sYXRl
ZENvcHkoKTsKLQotICAgIFN0cmluZyBsYW5ndWFnZU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9T
SVNPNjM5TEFOR05BTUUsICJlbiIpOwotICAgIFN0cmluZyBjb3VudHJ5TmFtZSA9IGxvY2FsZUlu
Zm8oTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIFN0cmluZygpKTsKLQotICAgIGlmIChjb3VudHJ5
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3Vh
Z2VOYW1lOwotICAgIGVsc2UKLSAgICAgICAgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UgPSBsYW5n
dWFnZU5hbWUgKyAnLScgKyBjb3VudHJ5TmFtZTsKLQotICAgIHJldHVybiBjb21wdXRlZERlZmF1
bHRMYW5ndWFnZTsKLX0KLQotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCkKLXsKLSAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IDRmMTViNmRkYTlm
NGNmZjk0NjI3M2EyNmRlYTk4NTRhNTI2ZjZlMWEuLjRiNDEwZTVmYjcyZGU1OTAyNTZlNDI5YjZj
MWJlZTI3M2M4NGU2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0xLDUgKzEsNCBA
QAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNVbml4LmNwcAogICAgIFVuaVN0ZEV4dHJhcy5jcHAKIAogICAgIGdlbmVyaWMvTWFpblRo
cmVhZEdlbmVyaWMuY3BwCkBAIC0xNiw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VT
CiAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAogCiAg
ICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICB1bml4L0xhbmd1YWdlVW5peC5jcHAKICkKIAog
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAz
NmJjZWM0YjY2MzNiMjVjMzlmMTRkNzhlMWE1NWVjZDQzZDQ4ZDIyLi41Y2ZlYzA3N2M0ZTUzMWFl
YmE2YTFkZDYzMzZkYmQ5MjhhYjhmOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAt
MywxMSArMywxMCBAQCBsaXN0KEFQUEVORCBXVEZfSEVBREVSUwogKQogCiBsaXN0KEFQUEVORCBX
VEZfU09VUkNFUwotICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKLQog
ICAgIHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAKICAgICB3
aW4vQ1BVVGltZVdpbi5jcHAKKyAgICB3aW4vTGFuZ3VhZ2VXaW4uY3BwCiAgICAgd2luL01haW5U
aHJlYWRXaW4uY3BwCiAgICAgd2luL01lbW9yeUZvb3RwcmludFdpbi5jcHAKICAgICB3aW4vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2Yv
TGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZWRmNjljODFlMjM3M2I1NDA3MmYyZWZjMDkwYTE1NmYwYjY1NDQyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTAsMCArMSwxMjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTEsIDIw
MTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8
dW5pY29kZS91bG9jLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3
dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMg
U3RhdGljTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNNdXRleDsKKworc3RhdGljIFZlY3RvcjxTdHJp
bmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKK3N0
YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQor
eworICAgIFNJbnQzMiBsYW5ndWFnZUNvZGU7CisgICAgU0ludDMyIHJlZ2lvbkNvZGU7CisgICAg
U0ludDMyIHNjcmlwdENvZGU7CisgICAgQ0ZTdHJpbmdFbmNvZGluZyBzdHJpbmdFbmNvZGluZzsK
KworICAgIC8vIEZJWE1FOiBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIHZlcnkgd3Jvbmc6CisgICAg
Ly8gMS4gVGhlcmUgaXMgbm8gcmVhc29uIHdoeSBDRkJ1bmRsZSBsb2NhbGl6YXRpb24gbmFtZXMg
d291bGQgYmUgYXQgYWxsIHJlbGF0ZWQgdG8gbGFuZ3VhZ2UgbmFtZXMgYXMgdXNlZCBvbiB0aGUg
V2ViLgorICAgIC8vIDIuIFNjcmlwdCBNYW5hZ2VyIGNvZGVzIGNhbm5vdCByZXByZXNlbnQgYWxs
IGxhbmd1YWdlcyB0aGF0IGFyZSBub3cgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgc28gdGhl
IGNvbnZlcnNpb24gaXMgbG9zc3kuCisgICAgLy8gMy4gVGhpcyBzaG91bGQgcHJvYmFibHkgbWF0
Y2ggd2hhdCBpcyBzZW50IGJ5IHRoZSBuZXR3b3JrIGxheWVyIGFzIEFjY2VwdC1MYW5ndWFnZSwg
YnV0IGN1cnJlbnRseSwgdGhhdCdzIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuCisgICAgQ0ZCdW5k
bGVHZXRMb2NhbGl6YXRpb25JbmZvRm9yTG9jYWxpemF0aW9uKGxhbmd1YWdlLCAmbGFuZ3VhZ2VD
b2RlLCAmcmVnaW9uQ29kZSwgJnNjcmlwdENvZGUsICZzdHJpbmdFbmNvZGluZyk7CisgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNvZGUgPSBhZG9wdENGKENGQnVu
ZGxlQ29weUxvY2FsaXphdGlvbkZvckxvY2FsaXphdGlvbkluZm8obGFuZ3VhZ2VDb2RlLCByZWdp
b25Db2RlLCBzY3JpcHRDb2RlLCBzdHJpbmdFbmNvZGluZykpOworICAgIGlmIChwcmVmZXJyZWRM
YW5ndWFnZUNvZGUpCisgICAgICAgIGxhbmd1YWdlID0gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlLmdl
dCgpOworCisgICAgLy8gVHVybiBhICdfJyBpbnRvIGEgJy0nIGlmIGl0IGFwcGVhcnMgYWZ0ZXIg
YSAyLWxldHRlciBsYW5ndWFnZSBjb2RlCisgICAgaWYgKENGU3RyaW5nR2V0TGVuZ3RoKGxhbmd1
YWdlKSA+PSAzICYmIENGU3RyaW5nR2V0Q2hhcmFjdGVyQXRJbmRleChsYW5ndWFnZSwgMikgPT0g
J18nKSB7CisgICAgICAgIGF1dG8gbXV0YWJsZUxhbmd1YWdlQ29kZSA9IGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBsYW5ndWFnZSkpOwor
ICAgICAgICBDRlN0cmluZ1JlcGxhY2UobXV0YWJsZUxhbmd1YWdlQ29kZS5nZXQoKSwgQ0ZSYW5n
ZU1ha2UoMiwgMSksIENGU1RSKCItIikpOworICAgICAgICByZXR1cm4gbXV0YWJsZUxhbmd1YWdl
Q29kZS5nZXQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKKyNpZiBQTEFU
Rk9STShNQUMpCitzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZOb3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lk
KiwgQ0ZEaWN0aW9uYXJ5UmVmKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0
YXRpY0xvY2s+IGxvY2socHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBwcmVmZXJy
ZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgIH0KKyAgICAKKyAgICBsYW5ndWFnZURpZENoYW5n
ZSgpOworfQorI2VuZGlmCisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcygpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNl
X3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXiB7CisgICAgICAg
IENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRE
aXN0cmlidXRlZENlbnRlcigpLCBudWxscHRyLCAmbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5n
ZSwgQ0ZTVFIoIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb24iKSwg
bnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisgICAg
fSk7CisjZW5kaWYKKworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZl
cnJlZExhbmd1YWdlc011dGV4KTsKKyAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExh
bmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworCisgICAgaWYgKHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5n
dWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKKyAgICAg
ICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQo
KSk7CisgICAgICAgIGlmICghbGFuZ3VhZ2VDb3VudCkKKyAgICAgICAgICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZv
ciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKKyAgICAgICAgICAgICAg
ICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoc3Rh
dGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdl
dCgpLCBpKSkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5OworICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOworCisg
ICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpCisgICAgICAg
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29s
YXRlZENvcHkoKSk7CisKKyAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7CisK
KyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTAxNmZiMmFlMzcwYjMx
ODEzNTliOGFlZjM5M2YzZTU3ZjUyZjM1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPGxvY2FsZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKKy8vIFVzaW5nIHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkg
aGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCisvLyBpdCBkb2Vzbid0IHN1cHBvcnQgY2hh
bmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1cm5zCisvLyBhbHdheXMgdGhl
IHNhbWUgdmFsdWUuCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIFN0
cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOworICAgIGlm
IChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2Fs
ZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAi
UE9TSVgiKSkKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZW4tVVMiKTsKKworICAgIFN0
cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7CisgICAgbm9ybWFsaXplZERl
ZmF1bHQucmVwbGFjZSgnXycsICctJyk7CisgICAgbm9ybWFsaXplZERlZmF1bHQudHJ1bmNhdGUo
bm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicpKTsKKyAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1
bHQ7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
Cit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwMTA5ODU1
MDAzZGEwYzJlYjMyNzk5NjE3OWIxNjNkMjk4MzgyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAxNiwgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDxtdXRleD4K
KyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxhbmd1YWdlTXV0ZXg7CisKK3N0
YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlwZSwgY29uc3QgU3RyaW5nJiBm
YWxsYmFjaykKK3sKKyAgICBMQU5HSUQgbGFuZ0lEID0gR2V0VXNlckRlZmF1bHRVSUxhbmd1YWdl
KCk7CisgICAgaW50IGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2FsZVR5
cGUsIDAsIDApOworICAgIGlmICghbG9jYWxlQ2hhcnMpCisgICAgICAgIHJldHVybiBmYWxsYmFj
azsKKyAgICBVQ2hhciogbG9jYWxlTmFtZUJ1ZjsKKyAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0
cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsb2NhbGVDaGFycywgbG9jYWxlTmFtZUJ1Zik7Cisg
ICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwgbG9jYWxlVHlwZSwgbG9jYWxl
TmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOworICAgIGlmICghbG9jYWxlQ2hhcnMpCisgICAgICAgIHJl
dHVybiBmYWxsYmFjazsKKyAgICBpZiAobG9jYWxlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBmYWxsYmFjazsKKworICAgIGxvY2FsZU5hbWUudHJ1bmNhdGUobG9jYWxlTmFtZS5sZW5n
dGgoKSAtIDEpOworICAgIHJldHVybiBsb2NhbGVOYW1lOworfQorCitzdGF0aWMgU3RyaW5nIHBs
YXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2Nr
KHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisKKyAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVm
YXVsdExhbmd1YWdlOworICAgIGlmICghY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCk7
CisKKyAgICBTdHJpbmcgbGFuZ3VhZ2VOYW1lID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzYzOUxB
TkdOQU1FLCAiZW4iKTsKKyAgICBTdHJpbmcgY291bnRyeU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FM
RV9TSVNPMzE2NkNUUllOQU1FLCBTdHJpbmcoKSk7CisKKyAgICBpZiAoY291bnRyeU5hbWUuaXNF
bXB0eSgpKQorICAgICAgICBjb21wdXRlZERlZmF1bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZTsK
KyAgICBlbHNlCisgICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3VhZ2VOYW1l
ICsgJy0nICsgY291bnRyeU5hbWU7CisKKyAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3Vh
Z2U7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
Cit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZDkwMzI1NmMzNDE5NmM4MjQzZWIxNjcy
NTc5YWRlMWFkNTNlNzZiLi45YWQxY2MyN2JmZGQ2N2FiMTBiMGZmYmM1ZDkyZmZlNGU3YjkwYzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI3NSw3ICsyMjc1LDYgQEAgc2V0KFdlYkNvcmVf
U09VUkNFUwogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5
c3RlbS5jcHAKICAgICBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcAotICAgIHBsYXRmb3Jt
L0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xheW91dFVuaXQuY3BwCiAgICAgcGxhdGZvcm0v
TGVuZ3RoLmNwcAogICAgIHBsYXRmb3JtL0xlbmd0aEJveC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YWMwYzAzODU3NWQz
YWY4OTFlYmQ1Y2VmNmZhMTA5NGE2NjIyZGI3Li4zMjIwN2IwM2JmMDBlYWEwMWU3NDQ5OGY0ZGE4
MTBmYzRkZDI4ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zNjk3LDcgKzM2OTcsNiBAQAogCQk4NTRGRTczNzBBMjI5N0JF
MDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTRGRTcyRDBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU0RkU3Mzgw
QTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MkUwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVX
YWxrZXIuY3BwICovOyB9OwogCQk4NTRGRTczOTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3
MkYwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NUVDOUFGQjBBNzFBMkM2MDBFRUVBRUQgLyog
TGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1RUM5QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MUMyRUE0MTNGQjRGREQwMDA2MkFC
QiAvKiBMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCAqLzsg
fTsKIAkJODYyRjEyOUUxOEMxNTc2RjAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkYxMjlEMThD
MTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyRjEyQTAxOEMxREQwMjAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rp
dml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0zODg5LDggKzM4ODgsNiBAQAogCQk5MzkxQTk5MTE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5oICovOyB9OwogCQk5MzkxQTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5MUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmNwcCAqLzsgfTsKIAkJOTM5MUE5OUQxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlBNkQ1QTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZS5jcHAgKi87IH07Ci0JCUE2RDVBOTlEMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTIxNDY5MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5
MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MjI2MkUxMDMyMTA4NDAw
NkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwICovOyB9OwogCQk5MzkyRjE0MjBBRDE4
NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNv
dW50ZXIuaCAqLzsgfTsKQEAgLTQ2MDQsNiArNDYwMSw4IEBACiAJCUE2MTQ4QTc5MTJFNDFFM0Iw
MDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjE0OEE3NzEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1M
S2V5Z2VuRWxlbWVudC5oICovOyB9OwogCQlBNkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyogU2hh
ZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi87IH07CiAJCUE2
RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyog
U2hhZG93Um9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUE2RDVBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlLmNwcCAqLzsgfTsKKwkJQTZENUE5OUQxNjI5RDcwMDAwMjk3MzMwIC8qIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRl
eHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1RTY1
MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUwMTM0QkJCRUMwMEQ4
RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzE1RTY1MzEzNEJC
QkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyog
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC02Njc5LDcgKzY2NzgsNiBAQAogCQlF
MTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNTY4RDBFRjJCMDJE
MDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi87IH07CiAJCUUxODI1NjkwMEVG
MkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNTY4RTBFRjJCMDJEMDA5MzMyNDIgLyog
SlNXb3JrZXJHbG9iYWxTY29wZS5oICovOyB9OwogCQlFMTgyNThBQzBFRjNDRDcwMDA5MzMyNDIg
LyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3Jr
ZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi87IH07Ci0JCUUxODc3MkYxMTI2RTI2MjkwMDNERDU4
NiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwICovOyB9Owog
CQlFMThERjMzNTE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOERGMzM0MThB
QUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxOERGMzM4MThBQUYxNEQwMDc3
M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOERGMzM2MThBQUYxNEQwMDc3M0U1OSAvKiBT
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLzsgfTsKIAkJRTE5NzI3MTYxODIwNTQ5RTAw
NTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBl
LmggKi87IH07CkBAIC0xMTUxNiw4ICsxMTUxNCw4IEBACiAJCTdDQkE1QkE2MUYwQjRCREUwMDM0
RDc0NSAvKiBKU0RPTUNvbnZlcnRXZWJHTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUNv
bnZlcnRXZWJHTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQkJCQ0M0MUY1
NjA1NjcwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERPTU1hdHJpeDJESW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QkJCQ0M2MUY1NjA1NjgwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTWF0cml4MkRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTdDQkJCQ0M4MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5p
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTU1hdHJpeDJESW5pdC5jcHA7IHBhdGggPSBK
U0RPTU1hdHJpeDJESW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkJC
Q0M5MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBKU0RPTU1hdHJpeDJESW5pdC5oOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzgxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9N
TWF0cml4MkRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWF0cml4MkRJbml0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzkxRjU2MTdDMDAwNUVGQUFD
IC8qIEpTRE9NTWF0cml4MkRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NTWF0cml4MkRJbml0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzJEREY4MUVDOTQxNUEwMDI3Qjc3
NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlv
blBlcm1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDMkRERkExRUM5
NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vdGlmaWNh
dGlvblBlcm1pc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERG
RTFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk4OCw3ICsxMTk4Niw2IEBACiAJ
CTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NVbmtub3duUnVsZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENTU1Vua25vd25SdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODVERjJGNjkwQUEzQzc0MzAwQUQ2NEM1IC8qIEhUTUxDb2xsZWN0aW9uLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTENvbGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NURGMkY5MjBBQTNDOUI2MDBBRDY0QzUgLyogSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVFQzlBRjkwQTcxQTJDNjAw
RUVFQUVEIC8qIExhbmd1YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
YW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjFDMkVBMzEzRkI0RkRE
MDAwNjJBQkIgLyogTG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYy
RjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlZFVzZXJBY3Rpdml0eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNp
c0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEh5c3RlcmVzaXNB
Y3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyMTYsOCArMTIyMTMs
NiBAQAogCQk5MzkxQTk5MDE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUE5OUExNjI5RDZGRjAw
Mjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0SXRlcmF0b3JCZWhhdmlvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyMjYyRTEwMzIxMDg0MDA2RTdENUQg
LyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckNvdW50ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDQxLDYgKzEzMDM2LDggQEAKIAkJQTYxNDhBN0YxMkU0MUVE
MTAwNDRBNzg0IC8qIEhUTUxLZXlnZW5FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBIVE1MS2V5Z2VuRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2
RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1Jvb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dSb290Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q2hlY2tlckNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1RTY1MDEzNEJCQkVDMDBEOEU3
MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0Vs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvZ3Jlc3NTaGFkb3dF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTQyOSw3ICsxNTQyNiw2
IEBACiAJCUUxODI1NjhEMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTgyNTY4RTBFRjJCMDJEMDA5
MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1dvcmtlckdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyR2xvYmFs
U2NvcGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTg3NzJGMDEy
NkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzYxOEFBRjE0RDAwNzczRTU5IC8q
IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlU
eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0tleVR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTIyLDggKzE2OTE4LDYgQEAKIAkJCQkw
RkM0RTQwQzE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZUlPUy5tbSAqLywKIAkJCQkwRkM0RTQwOTE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJl
ZUlPUy5jcHAgKi8sCiAJCQkJMEZDNEU0MEExODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1Ry
ZWVJT1MuaCAqLywKLQkJCQkxQjk0RTQwOTE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8sCi0JCQkJMUI5NEU0MEExODdGODJFMTAwNDU4
ODJDIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI0NDk3LDggKzI0
NDkxLDYgQEAKIAkJCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2
aXR5LmggKi8sCiAJCQkJMUFFMDBENTcxODJEQUM4RDAwMDg3REQ3IC8qIEtleWVkQ29kaW5nLmgg
Ki8sCiAJCQkJRTE1RkY3RDQxOEM5NTUzODAwRkU0Qzg3IC8qIEtleXByZXNzQ29tbWFuZC5oICov
LAotCQkJCUUxODc3MkYwMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi8sCi0JCQkJ
ODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi8sCiAJCQkJQTNENDJBODQx
RjMzQkEzNjAwQTY0QjYyIC8qIExheW91dFVuaXQuY3BwICovLAogCQkJCTE0MURDMDQ3MTY0ODM0
OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8sCiAJCQkJQkNFNjVCRTgwRUFDREYxNjAwN0U0
NTMzIC8qIExlbmd0aC5jcHAgKi8sCkBAIC0yNzcxNywxMiArMjc3MDksOSBAQAogCQkJCTg0NzMw
RDg1MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdodGluZy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNvbnN1
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyogRmV0
Y2hCb2R5U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxMjlEQjFGM0QxNDM4MDBEMTVF
NDcgLyogRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFNkZFODFCQkQxMkRG
MDAwQTYwMjMgLyogRmV0Y2hJbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NTE3QTUzNUExRjU4ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZCRDEwMEEzMTQ4NiAvKiBGZXRjaE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTREMUYyQTlBRkIwMDI3MkY3OCAvKiBGZXRjaFJl
ZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0UxOTE1QTFGMkE5QjM0MDAyNzJG
NzggLyogRmV0Y2hSZXF1ZXN0Q2FjaGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjkwMTIsNyArMjkw
MDEsNiBAQAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlwcmVzc0NvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFi
bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU2RkEyNzExQUQ0QTgzMDAyMEI0MjAg
LyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RUM5QUZCMEE3MUEyQzYw
MEVFRUFFRCAvKiBMYW5ndWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjkxN0I1NjIxNDczNDk2
QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5
MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRo
cm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4ODgsNyArMjk4NzYsNiBAQAogCQkJ
CTJEOTNBRUUzMTlERjU2NDEwMDJBODZDMyAvKiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RDFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NUYxRjNFQkM4MzAwQzc0OTUwIC8qIFNl
cnZpY2VXb3JrZXJDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0E1MzVEMUY1ODk5
RkUwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxRjE3NTYxMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYzMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNl
V29ya2VySm9iLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2NDFGM0VCQzgzMDBDNzQ5NTAg
LyogU2VydmljZVdvcmtlckpvYkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzA4OCw3ICsz
MzA3NSw2IEBACiAJCQkJQkM1RUJBMTAwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1lTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0NTBDRUJGMDE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxh
YmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNDU2RkEyNjExQUQ0QTgzMDAyMEI0
MjAgLyogTGFiZWxzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTE4NzcyRjExMjZF
MjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MTdCNTYx
MTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTI5MTdCNTY2MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyTWFj
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTNBNjlGMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXll
clBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCmluZGV4IDcwNzU2ZmZhZDdi
MzI2N2M1NzkwOGZlODQ1NWNjYTFiNjc0YzA1MDEuLjJlYmMyMjZiNzU5YmRhZDNiNTQzODQ2YWJi
ZDU0MGFlODhjNDZlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiU1ZHQUVs
ZW1lbnQuaCIKQEAgLTQwLDYgKzM5LDcgQEAKICNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGRjY2QyODMz
OGUzZTgwZmQzYTQ4ZjM4NTUyYTNlZjJhMDMzNTdhOTUuLjZhZTU4NzFjNmZiYjJkYTk4ZmM1ZWEy
NWZkOGMxY2Y0ZThlOTFkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93
Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAi
SlNOb2RlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNrZXIuaCIKQEAg
LTUxLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4
IDllODU0YTM4YzUzZTUwODlhMzMyMzAwMDkzOGZiYzNlMWEzZjAwZDAuLjM0YTUxYTU3MDg3Mzk4
ZjM5MWFlNjc3Y2NiN2M4ZWNhMDljNmZiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTMzLDEyICszMywx
MiBAQAogI2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
ICJKU0R5bmFtaWNEb3duY2FzdC5oIgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGUuaCIK
LSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvTWljcm90YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI5MWE1ZmEyMGI0N2I5MGU5ZTY1NGFhNDFlYzIz
MWQ3YTk5MzE5M2EuLmRlMmYzYmE2ZWM2YzdmM2YxNmMzOTRkNDk0ZGUwYzEzMGNmNDZhNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw2IEBACiAjaW5jbHVkZSAiSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2lu
Y2x1ZGUgIkxheW91dERpc2FsbG93ZWRTY29wZS5oIgogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMjA2LDYgKzIwNSw3IEBACiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHBhbC9Mb2dnZXIuaD4KICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUu
aD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKaW5kZXggYzA4Y2YzMzcwYzJhMzFhZDMwMzNiOWY2MThmYTk1ZDAw
MjMwNmNjMS4uMzhiMTI1NDkxNWZhZGNiMjllNGQ1M2U0ZDJiMmI2Mjk3ZDk0YWM2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw2IEBACiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklkVGFyZ2V0T2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtNTksNiArNTgsNyBAQAogI2luY2x1ZGUg
IlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5
bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZjMyZmU0ZGI0YTkxYzY5NGI0NWZjYzc4NWVhNWY3
NjIwMDVmY2VlLi45ZTBhOWEyZmU4N2ZhNjNhZDM1Mjg1NjM4MGU4ZjNhNmY0NDc1NjM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU0LDcgKzU0LDYgQEAK
ICNpbmNsdWRlICJKU0RPTUVycm9yLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJKU0hUTUxNZWRpYUVsZW1lbnQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAj
aW5jbHVkZSAiTWFpbkZyYW1lLmgiCkBAIC05NCw2ICs5Myw3IEBACiAjaW5jbHVkZSA8cnVudGlt
ZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNTQzZjYxZjllODczNTBkNTc4NmRkZDY2
ZTQ3NzRlNzUzNTRiZTYxNi4uNjRmMmMxYWU0ODJlN2ViYzAyMGM5YmZhY2Y5YTcxYmE2NTJiN2Q5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIkhUTUxVTGlzdEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9scy5oIgpAQCAtNjAs
NiArNTksNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tM
aXN0LmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFn
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJh
Y2tCYXNlLmNwcAppbmRleCA3ZWE0ZTA1NmIzY2JmNDJlNGIyYzcxZDUwYjM0OGI2ODI3YTgwOGRj
Li44NjgxOWY1N2IyYjkyZjc1ZmIxNmQ1NDdlMDUwZmVhYTk2MDVmZWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCiAKLSNpbmNsdWRlICJMYW5ndWFnZS5o
IgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IDdkNWFiMWUxNTE4OTU5ZTQ1YzQ0
ZTY4YTI5ZDI0MzA2Mzc5MDQyMzYuLmJhZTBiM2JhYWNlNTk4MDc1N2FhYjZkZDRmNzkwYWEwZGMz
ZTkyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
LmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKICNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNZWRpYVNlbGVjdGlvbk9wdGlvbi5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTQ0LDYgKzQzLDcgQEAKICNpbmNsdWRlIDxoZWFwL0hl
YXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NlbGxJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBmMGI4ZjdmMjdkMGRhOTY5
YmI2ZDE0MzBjMDRmODcwZTU2N2EzZjZjLi4yM2Q3ZTBiZjRlN2RhNmEwMjBhYTVlOTdkMWFmMTZj
MjViMWY0MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgotI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgpAQCAtNDYs
OCArNDUsOCBAQAogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0VHlwZXMuaCIKICNpbmNsdWRlICJW
VFRDdWUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1BsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjIzOWM4YWZlNDkwMDgzOTkwYzNiNDA1
YmE3NDdiOWQ5MTUxZWIwNy4uY2IxNjM5ODZjODM2YjU1ZDA4ZTVkMzg4YWRhODk5YjAzMWE5M2Uz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNjYsNyArNjYsNiBAQAogI2luY2x1
ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgog
I2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAi
TWVkaWFRdWVyeUxpc3QuaCIKQEAgLTExMCw2ICsxMDksNyBAQAogI2luY2x1ZGUgPGluc3BlY3Rv
ci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAppbmRleCBi
NmQ1NThmNzViMWY4MGVmYTIwYWUxMTVkNGMzMWQ5YzYzZTIxNWU0Li40MWQwODc2Y2Q1ZWVmMWVi
MDVlNTRlMzg1NzBhOGYzZTNjOWYwMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCkBA
IC0zMSwxMiArMzEsMTIgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKLSNpbmNsdWRlICJM
YW5ndWFnZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCA5N2ZmOTUzYTZmM2JkZmQwOTZlYWVkNmRj
NWJmZjg5MmM0YzcyZTk1Li4yMjJhOGVmNGM2OGYxYjI2MmFmZGY4MTIyZDhhYzk0Y2Q4YjgyM2Q3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKQEAgLTI3LDEwICsyNywxMCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJhc2UuaCIKIAotI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90aWZpZXIuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCiAjaW5jbHVkZSA8bXV0ZXg+CisjaW5j
bHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWM0YjM0OTI0NmFjN2U5ZTc2MDA2YWU3YjA0ODMwNDk2MmZhODAwOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTEgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJM
YW5ndWFnZS5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi0jaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgPENv
cmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1zdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7Ci0K
LXN0YXRpYyB2b2lkIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VDYWxsYmFja0lmTmVjZXNzYXJ5
KCkKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNhbGxfb25j
ZSgKLSAgICAgICAgb25jZSwKLSAgICAgICAgW10gewotICAgICAgICAgICAgc2V0UGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKGxhbmd1YWdlRGlkQ2hhbmdlKTsK
LSAgICAgICAgfSk7Ci19Ci0KLXR5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKLXN0YXRpYyBPYnNlcnZlck1hcCYgb2JzZXJ2
ZXJNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPYnNlcnZlck1hcD4gbWFwOwot
ICAgIHJldHVybiBtYXAuZ2V0KCk7Ci19Ci0KLXZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
cih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rpb24gY3VzdG9tT2Jz
ZXJ2ZXIpCi17Ci0gICAgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5nZUNhbGxiYWNrSWZOZWNlc3Nh
cnkoKTsKLSAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBjdXN0b21PYnNlcnZlcik7Ci19
Ci0KLXZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQotewot
ICAgIEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRleHQpKTsKLSAgICBvYnNlcnZl
ck1hcCgpLnJlbW92ZShjb250ZXh0KTsKLX0KLQotdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpCi17
Ci0gICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2VydmVyTWFwKCkuZW5kKCk7Ci0g
ICAgZm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9ic2VydmVyTWFwKCkuYmVnaW4o
KTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgaXRlci0+dmFsdWUoaXRlci0+a2V5KTsK
LX0KLQotU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIGlmIChsYW5ndWFnZXMuc2l6
ZSgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwotCi0gICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3Zl
cnJpZGU7Ci0gICAgcmV0dXJuIG92ZXJyaWRlOwotfQotCi1WZWN0b3I8U3RyaW5nPiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFn
ZXNPdmVycmlkZSgpOwotfQotCi12b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCi17Ci0gICAgcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKSA9IG92ZXJyaWRlOwotICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Ci19Ci0KLXN0
YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0
cmluZ3MpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gY29weTsKLSAgICBjb3B5LnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBz
dHJpbmdzKQotICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENv
cHkoKSk7Ci0gICAgcmV0dXJuIGNvcHk7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQotewotICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xv
Y2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKLSAgICAgICAgVmVjdG9yPFN0
cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLSAgICAgICAg
aWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5
KG92ZXJyaWRlKTsKLSAgICB9Ci0gICAgCi0gICAgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5nZUNh
bGxiYWNrSWZOZWNlc3NhcnkoKTsKLSAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCk7Ci19Ci0KLXN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlmaWVy
KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQotewotICAgIFN0cmluZyBsb3dlcmNhc2VMYW5n
dWFnZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICAK
LSAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNl
TGFuZ3VhZ2VDb2RlWzJdID09ICdfJykKLSAgICAgICAgbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLnJl
cGxhY2UoMiwgMSwgIi0iKTsKLQotICAgIHJldHVybiBsb3dlcmNhc2VMYW5ndWFnZUNvZGU7Ci19
Ci0KLXNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5n
JiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhh
Y3RNYXRjaCkKLXsKLSAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3VhZ2UgPSBsYW5ndWFnZS5jb252
ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgIFN0cmluZyBsYW5ndWFnZVdpdGhvdXRMb2NhbGVN
YXRjaDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZTsKLSAgICBzaXplX3Qg
bGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7Ci0gICAgc2l6ZV90IGxhbmd1YWdl
TWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKLSAgICBib29sIGNhbk1hdGNoTGFuZ3Vh
Z2VPbmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09IDIgfHwgKGxvd2VyY2FzZUxh
bmd1YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMl0gPT0gJy0nKSk7Ci0K
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlzdC5zaXplKCk7ICsraSkgewot
ICAgICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QgPSBjYW5vbmljYWxM
YW5ndWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKLQotICAgICAgICBpZiAobG93ZXJj
YXNlTGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QpIHsKLSAgICAgICAg
ICAgIGV4YWN0TWF0Y2ggPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYgY2Fub25pY2FsaXplZExhbmd1
YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgewotICAgICAgICAgICAgaWYgKGxvd2VyY2FzZUxh
bmd1YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzBdICYmIGxvd2VyY2Fz
ZUxhbmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzFdKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSAmJiBj
YW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9PSAyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0gbGFuZ3VhZ2VMaXN0W2ldOwot
ICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4ID0gaTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1hdGNoQnV0
Tm90TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxlbmd0
aCgpID49IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2Fs
ZSA9IGxhbmd1YWdlTGlzdFtpXTsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRjaEJ1
dE5vdExvY2FsZU1hdGNoSW5kZXggPSBpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGV4YWN0TWF0Y2ggPSBmYWxzZTsKLQotICAgIC8v
IElmIHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2ggYW5kIGEgbGFuZ3VnZS1idXQt
bm90LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQotICAgIC8vIGxhbmd1Z2Utb25seSBtYXRjaCBh
cyBpcyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBleGFtcGxlLCBpZiB0aGUgbGlz
dAotICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5kICJlbiIgYW5kIHRoZSB1c2Vy
IHByZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgotICAgIGlmIChsYW5ndWFnZVdp
dGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlV2l0aG91
dExvY2FsZU1hdGNoSW5kZXg7Ci0KLSAgICBpZiAobGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZS5s
ZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaElu
ZGV4OwotCi0gICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7Ci19Ci0KLVN0cmluZyBkaXNw
bGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKLXsKLSNp
ZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCi0gICAgaWYgKCFsb2NhbGVOYW1lLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9w
ZXJ0eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKS5nZXQoKSwga0NGTG9jYWxl
SWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSkuZ2V0KCk7Ci0j
ZW5kaWYKLSAgICByZXR1cm4gbG9jYWxlTmFtZTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xh
bmd1YWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkN2U2NjdhMjcxMTI0OTg5
NTEzNjI3M2M5ZWFjM2NiNDA4ZjE3NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaAorKysgL2Rl
di9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYs
IDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIExhbmd1YWdlX2gKLSNkZWZpbmUgTGFuZ3VhZ2VfaAotCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpOyAvLyBUaHJlYWQtc2Fm
ZS4KLVdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCi1WZWN0b3I8
U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLVdFQkNPUkVfRVhQT1JU
IHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik7Ci1zaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmlu
ZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4
YWN0TWF0Y2gpOwotCi0vLyBUaGUgb2JzZXJ2ZXIgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hl
biBzeXN0ZW0gbGFuZ3VhZ2UgY2hhbmdlcy4KLXR5cGVkZWYgdm9pZCAoKkxhbmd1YWdlQ2hhbmdl
T2JzZXJ2ZXJGdW5jdGlvbikodm9pZCogY29udGV4dCk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGFk
ZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPYnNl
cnZlckZ1bmN0aW9uKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih2b2lkKiBjb250ZXh0KTsKLQotU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VM
b2NhbGUoY29uc3QgU3RyaW5nJik7Ci0KLS8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmlj
IGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2UuCi1XRUJD
T1JFX0VYUE9SVCB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Ci19Ci0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdlbmVyaWNGYW1pbGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWls
aWVzLmNwcAppbmRleCA4MWQxMjAwOWEzZjUxOWMwN2U5MWNjZjBiYmJlNmYwODBlODYwNjNlLi4y
M2ZkZjBhNGE3MWNhNDNmY2E3ZDY0ZjlmZWFjY2Y2NDIyZDE2ODAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNw
cApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9u
dEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSA8d3Rm
L0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IDA0MmU1MzAxN2JhYmU2ZWZh
NTY5MDI1MWNmMDZjY2UwZTNjNzQ0ZDguLmEyM2Q4MDlkM2E1ZGRmYWYzNzExNjJkZjFmY2I2MDQy
MmI3M2RjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFW
Rk9iakMubW0KQEAgLTI4LDExICsyOCwxMSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
Ci0jaW1wb3J0ICJMYW5ndWFnZS5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXQuaD4K
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhU2VsZWN0aW9uR3JvdXAuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW0uaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgor
I2ltcG9ydCA8d3RmL0xhbmd1YWdlLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IDY0YWU5NzJkZmNmOTI5MDg2MDBkOWFj
OGE3ZmI3Yzc1MDQ2MTM2YzguLjVkYzAzNWRmZjVjZDU1NDlmMjE1NzVhNjk1Y2NkNGNjNWZjYTZm
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMu
Y3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKIAogI2luY2x1
ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSA8
d3RmL0RhdGVNYXRoLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvUGxhdGZvcm1Mb2NhbGUuaAppbmRleCA5MTE5OGYyNzE1NzVjN2JmZmUxMmYzNmZlYjAy
NTRhMzNiNDBmMGU2Li5hOTFmZTgzY2I3OTZmNGU4YzkyNTcxYWI1YjlmYjUxNjE4NzAxMWE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oCkBAIC0y
Nyw3ICsyNyw3IEBACiAjZGVmaW5lIFBsYXRmb3JtTG9jYWxlX2gKIAogI2luY2x1ZGUgIkRhdGVD
b21wb25lbnRzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5h
dGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25D
Ri5jcHAKaW5kZXggYjRiMGU1MWY0YWZkNmNhM2JjYzhhMGY4NzUyZDUzNGNkOGI5NmE2My4uMWM3
MGM0MTNkOGNjMjI1MDA0YjE3ZDdiMmE2NjlhNzM3MDU3ZjM2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCkBAIC0yNiw3ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSHlwaGVuYXRpb24uaCIKIAotI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaW55TFJVQ2FjaGUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIC8vIENGIGh5cGhlbmF0aW9uIGZ1bmN0aW9ucyB1c2UgbG9jYWxlIChyZWdpb25h
bCBmb3JtYXRzKSBsYW5ndWFnZSwgd2hpY2ggZG9lc24ndCBuZWNlc3NhcmlseSBtYXRjaCBwcmlt
YXJ5IFVJIGxhbmd1YWdlLAogICAgICAgICAvLyBzbyB3ZSBjYW4ndCB1c2UgZGVmYXVsdCBsb2Nh
bGUgaGVyZS4gU2VlIDxyZGFyOi8vcHJvYmxlbS8xNDg5NzY2ND4uCi0gICAgICAgIFJldGFpblB0
cjxDRkxvY2FsZVJlZj4gbG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBXZWJDb3JlOjpkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpKSk7CisgICAgICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gbG9jYWxlID0gYWRvcHRDRihD
RkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgICAgIHJldHVybiBDRlN0cmluZ0lzSHlwaGVuYXRp
b25BdmFpbGFibGVGb3JMb2NhbGUobG9jYWxlLmdldCgpKSA/IGxvY2FsZSA6IG51bGxwdHI7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2Nh
bGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0K
aW5kZXggZDE1NTkwNTVlNjBlMjA4NzZjZWRmOGJjMjZjYmQwZmE3NzhjM2M4OS4uMGFmMTc5ZmEy
MzMxNjM2NWI3YzA4YzA3Mjk0ZjgzYjk0YWQzM2FmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQpAQCAtMzEsMTIgKzMxLDEyIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTG9jYWxlTWFjLmgiCiAKKyNpbXBvcnQgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNEYXRlRm9ybWF0dGVyLmg+CiAjaW1w
b3J0IDxGb3VuZGF0aW9uL05TTG9jYWxlLmg+Ci0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKLSNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+Ci0jaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL0RhdGVNYXRoLmg+CisjaW1wb3J0
IDx3dGYvTGFuZ3VhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFBMQVRG
T1JNKElPUykKICNpbXBvcnQgIkxvY2FsaXplZERhdGVDYWNoZS5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAKaW5kZXggZTQ0YzMzNGYxNjUxOWI5YmE3MGIyZjBmMGY0OWRjYzAzNWM5MTkwZS4uODM0
YzBlM2Q5OGU4YjJkZTVkOTgwYWZhZmU3NjM1ZjI0MzdlMWYwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVz
dHMuY3BwCkBAIC0yNCwxMCArMjQsMTAgQEAKIAogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNs
dWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdT
dHJpbmdMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggOTM4OTNiZDU3MzljMGRkMjE2NzU5MDE0
MjZjZGZmMGIzMWVmODhlYS4uNGJmMWQwZTgxMjE2OGVkOTVmNWE4OWY2MzU1YjMzMTI4NDE5MWU0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1
ZGUgIkxvY2FsZVRvU2NyaXB0TWFwcGluZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1
ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAjaW5j
bHVkZSAiQ29sb3JDaG9vc2VyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggNTZmOTkxNTY4M2E1MzBkNjNhOTU4ZmQ2ZTkxOTc3MjA2NTQ4MDYyOC4uMjEzZjFkMjI1MGVj
Njk4YThiNThiM2YzMDkyMmRhYzc4MjViY2QxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtODgsNyArODgsNiBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJJbnRlcm5hbFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
TWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWFsbG9jU3RhdGlzdGljcy5oIgpAQCAtMTU0LDYgKzE1
Myw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgor
I2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhh
bmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1ZmZlci5oPgpAQCAtNDE5LDcgKzQxOSw3IEBAIHZvaWQgSW50ZXJuYWxzOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAgICAgfQogCiAgICAgV2ViQ29yZTo6
Y2xlYXJEZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZygpOwotICAgIFdlYkNvcmU6
Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKKyAgICBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4oKSk7CiAgICAgV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldFVzZXNPdmVybGF5U2Nyb2xsYmFycyhmYWxzZSk7CiAgICAgV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldFVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IoZmFsc2UpOwogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKQEAgLTE3NDIsNyArMTc0Miw3IEBAIFZlY3RvcjxTdHJpbmc+IElu
dGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiAKIHZvaWQgSW50ZXJuYWxz
OjpzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFn
ZXMpCiB7Ci0gICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1
YWdlcyk7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1YWdlcyk7CiB9
CiAKIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVy
aXN0aWNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCAwYTRlZjhiY2M5ZGE2YWEyOTAwNDk4NmY4NDI0ZTQ3MzA0YjcyNTJlLi40MmMzYjQwNzc2MmFh
YzFlNzA4ZDc5ZDQ3MDRmODJhMGE4ZGFlODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC00OTUsNyArNDk1LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91
bGRVc2VGb250U21vb3RoaW5nKGJvb2wgdXNlRm9udFNtb290aGluZykKIHZvaWQgV2ViUHJvY2Vz
czo6dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxh
bmd1YWdlcykgY29uc3QKIHsKICAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFu
Z3VhZ2VzKTsKLSAgICBsYW5ndWFnZURpZENoYW5nZSgpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6
OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320180</attachid>
            <date>2017-09-07 14:20:57 -0700</date>
            <delta_ts>2017-09-07 14:31:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176561-20170907142056.patch</filename>
            <type>text/plain</type>
            <size>95639</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi5lNjY2NDRjYTIxOGY2OWFi
OTRmYWFhMTRkOTcxNGZiYTE2YzljOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpk
ZWZhdWx0TG9jYWxlKToKKwogMjAxNy0wOS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgIm1hbGxvYyIgYW5kICJmcmVlIiBm
cm9tIEpTQy9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggZmE4YjFhZGIzOTZkNDk3ZDE4NzBmYmY1OGI4YmU2ZGMzMGVjZGVi
YS4uMmU4YTkwYjNlODA1YmI2ZTBjODJjOTI0YTJjYTdmMzBhZjI1ZmYyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSB3YXMgdGhlIG9ubHkqIHVzZXIg
b2YgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLiBKYXZhU2NyaXB0Q29yZQorICAgICAg
ICBuZWVkZWQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSwg
YnV0IGl0IGNvdWxkbid0IGdldCBpdCBiZWNhdXNlIG9mIHRoZQorICAgICAgICBsYXllcmluZyB2
aW9sYXRpb24sIHNvIGluc3RlYWQgaXQgZXJyb25lb3VzbHkgY2FsbGVkIGludG8gUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzCisgICAgICAgIGluc3RlYWQuIFRoaXMgcGF0Y2ggbWVyZ2Vz
IHRoZXNlIHR3byBmaWxlcyBpbnRvIFdURiBzbyBKU0MgZ2V0cyB0aGUgcmlnaHQgZnVuY3Rpb24g
YW5kIHRoZSBQQUwKKyAgICAgICAgZWZmb3J0IGhhcyBvbmUgbGVzcyBmaWxlIHRvIG1vdmUgZnJv
bSBXZWJDb3JlL3BsYXRmb3JtIGludG8gUEFMLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0xhbmd1YWdlLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcC4KKyAgICAgICAgKFdURjo6YWRk
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaC4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1HVEsuY21h
a2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdQRS5jbWFrZToKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTWFjLm1tLgorICAgICAgICAoV1RGOjpodHRwU3R5bGVMYW5ndWFnZUNvZGUpOgor
ICAgICAgICAoV1RGOjpsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdU
Rjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAuCisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdp
bi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNXaW4uY3BwLgorCiAyMDE3LTA5LTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcXVpcmUgTG9nZ2luZ0hlbHBlciBvdmVycmlkZXMg
dG8gcHJvdmlkZSBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjZmJlMTI0OWFkMGU5YjA2ZmIz
YzU3NTVmMjZmZTY2YjIwZDcxMS4uMGMzMDY0NDIzZjQ0Yjg4OGQ3NzNkYTcxZmY4NTdiNzdkNmRl
MTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudC5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAqIGh0bWwv
dHJhY2svVHJhY2tCYXNlLmNwcDoKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuY3BwOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3Bw
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRv
ci5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvY2Yv
SHlwaGVuYXRpb25DRi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFj
Lm1tOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKwogMjAx
Ny0wOS0wNyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtBUk1dIEJ1aWxkaW5nIEZFTGlnaHRuaW5nTkVPTi5jcHAgZmFpbHMgZHVlIHRvIG1p
c3Npbmcge1BvaW50LFNwb3R9TGlnaHRTb3VyY2UgZGVjbGFyYXRpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1
M2I1ODgyNWM1NDJiMjZhZWQ0ZjFjZDNhZWVlMWE0NTg3NmZiZTMuLjBjZWQ4MTI2NTkxMGQyY2Q2
NTBjMWQxZGZmMGJlYmMxMGU1ZWQ1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTct
MDktMDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbUEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1
YWdlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQgY29uc3QpOgorCiAyMDE3LTA5LTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFdL
VUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBhZ2VEaWRT
Y3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5k
ZXggOWYxNzRkNjQwNWM5ZjNhMDg2YjI2MzU2YmRjZWViYmNmMDQ4NDA4NS4uMjVkMjFmMmVlNWNl
M2M3NjcyMzE2YWFmNmY3YTAzNWQ2YTIxZjk4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTQ4LDggKzQ4LDggQEAKICNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VudW1zeXMuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpAQCAtNTc2LDE2ICs1NzYsMTQgQEAgU3RyaW5nIGRlZmF1bHRMb2NhbGUoRXhlY1N0
YXRlJiBzdGF0ZSkKICAgICAKICAgICAvLyBXZWJDb3JlJ3MgZ2xvYmFsIG9iamVjdHMgd2lsbCBo
YXZlIHRoZWlyIG93biBpZGVhcyBvZiBob3cgdG8gZGV0ZXJtaW5lIHRoZSBsYW5ndWFnZS4gSXQg
bWF5CiAgICAgLy8gYmUgZGV0ZXJtaW5lZCBieSBXZWJDb3JlLXNwZWNpZmljIGxvZ2ljIGxpa2Ug
c29tZSBXSyBzZXR0aW5ncy4gVXN1YWxseSB0aGlzIHdpbGwgcmV0dXJuIHRoZQotICAgIC8vIHNh
bWUgdGhpbmcgYXMgcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKClbMF0uCisgICAgLy8g
c2FtZSB0aGluZyBhcyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKClbMF0uCiAgICAgaWYgKGF1dG8g
ZGVmYXVsdExhbmd1YWdlID0gc3RhdGUuanNDYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKCktPmRlZmF1bHRMYW5ndWFnZSkgewogICAgICAgICBTdHJpbmcg
bG9jYWxlID0gZGVmYXVsdExhbmd1YWdlKCk7CiAgICAgICAgIGlmICghbG9jYWxlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybiBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhsb2NhbGUpOwog
ICAgIH0KLSAgICAKLSAgICAvLyBJZiBXZWJDb3JlIGlzbid0IGFyb3VuZCB0byB0ZWxsIHVzIGhv
dyB0byBnZXQgdGhlIGxhbmd1YWdlIHRoZW4gZmFsbCBiYWNrIHRvIG91ciBvd24gd2F5IG9mCi0g
ICAgLy8gZG9pbmcgaXQsIHdoaWNoIG1vc3RseSBmb2xsb3dzIHdoYXQgV2ViQ29yZSB3b3VsZCBo
YXZlIGRvbmUuCi0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAgICAgaWYgKCFsYW5ndWFnZXMuaXNFbXB0eSgpICYmICFs
YW5ndWFnZXNbMF0uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplTGFuZ3Vh
Z2VUYWcobGFuZ3VhZ2VzWzBdKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGIwYTE5MDhiYWRkOTAyNzg3Y2NiNDVlMTE3YWVlMTI4MWIyNjdiZjUu
LjEyOWI5ODUzOTY2OGZlZmM2MDIwNGI3NmE4MzVlNjQ3NmY4ODZlMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMyLDkgKzEzMiwxMCBAQAogCQlBRDg5
QjZCNzFFNjQxNTA4MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODlCNkI1MUU2NDE1MDgw
MDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovOyB9OwogCQlBRDg5QjZCQTFF
NjQxNTBGMDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCOTFFNjQxNTBGMDA5
MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gKi87IH07CiAJCUFERjJDRTY3
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovOyB9OworCQlDMkJDRkM0MDFGNjFEMTMw
MDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCAq
LzsgfTsKKwkJQzJCQ0ZDNDIxRjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCQ0ZDNDExRjYxRDYx
NjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICovOyB9OwogCQlDRDU0OTdBQzE1ODU3RDAzMDBC
NUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
OyB9OwogCQlEQ0VFMjIwMTFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMUZE
MUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tICovOyB9OwotCQlEQ0VF
MjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENFRTIx
RkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5t
bSAqLzsgfTsKIAkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE1NTU2RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICov
OyB9OwogCQlFMzExRkIxNzFGMEE1NjhCMDAzQzA4REUgLyogVGhyZWFkR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxMUZCMTUxRjBBNTY4
QjAwM0MwOERFIC8qIFRocmVhZEdyb3VwLmNwcCAqLzsgfTsKIAkJRTM4QzQxMjUxRUI0RTA0QzAw
NDI5NTdEIC8qIENQVVRpbWVDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzOEM0MTI0MUVCNEUwNEMwMDQyOTU3RCAvKiBDUFVUaW1lQ29jb2Eu
bW0gKi87IH07CkBAIC01NDcsNiArNTQ4LDkgQEAKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURC
IC8qIE1lbW9yeUZvb3RwcmludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZW1vcnlGb290cHJpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUx
RTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludENvY29hLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1
cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzNFMUY2MUQxMzAwMEM5
MjIyQyAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzNGMUY2
MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkM0MTFG
NjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMYW5ndWFnZUNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzhGNTk3Q0EyQTU3NDE3RkJBQjkyRkQ2IC8qIFJhbmRvbURldmljZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5kb21EZXZpY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTcsOCArNTYxLDYgQEAKIAkJRENF
RTIxRkExQ0VBNzUzODAwMEMyMzk2IC8qIENGQnVuZGxlU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IENGQnVuZGxlU1BJLmg7IHBhdGggPSBjZi9DRkJ1bmRsZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjFGQzFDRUE3NTUxMDAwQzIzOTYgLyog
QmxvY2tPYmpDRXhjZXB0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja09iakNFeGNlcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRUUy
MUZEMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tPYmpDRXhjZXB0aW9ucy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRENFRTIxRkUxQ0VBNzU1MTAwMEMyMzk2IC8qIFBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRENFRTIxRkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDQxQ0VCOTg2OTAwMEMyMzk2IC8qIEJhY2t3YXJkc0dy
YXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2t3YXJkc0dyYXBoLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFNUEwOUZCMUJBMzY5OTIwMDNENDQyNCAv
KiBDb21tb25DcnlwdG9TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29t
bW9uQ3J5cHRvU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTU1NkYzMThB
MENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQwLDYgKzY0Miw3IEBACiAJCTJDREVEMEYwMTgx
MTVDM0YwMDREQkE3MCAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQzJCQ0ZDNDExRjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICov
LAogCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovLAogCQkJ
CTFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHNDRi5oICovLAogCQkJKTsKQEAg
LTg0Niw2ICs4NDksOCBAQAogCQkJCTUxODJDMjJDMUYyQkM3RTYwMDU5QkE3QyAvKiBJbnN0YW5j
ZUNvdW50ZWQuaCAqLywKIAkJCQk3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JB
ZGFwdG9ycy5oICovLAogCQkJCTdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJh
bmdlLmggKi8sCisJCQkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCAq
LywKKwkJCQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLywKIAkJCQk1
MzlFQjA2MjFENTUyODQyMDBDODJFRjcgLyogTEVCRGVjb2Rlci5oICovLAogCQkJCUE3MERBMDgz
MTc5OUYwNEQwMDUyOUE5QiAvKiBMaXN0RHVtcC5oICovLAogCQkJCUE4QTQ3MkMxMTUxQTgyNUEw
MDQxMjNGRiAvKiBMaXN0SGFzaFNldC5oICovLApAQCAtOTEyLDggKzkxNyw2IEBACiAJCQkJMEY4
MjRBNjUxQjc0NDNBMDAwMkUzNDVEIC8qIFBhcmtpbmdMb3QuaCAqLywKIAkJCQlBODc2REJENzE1
MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0uaCAqLywKIAkJCQlFMzIwMEFCNDFFOUE1MzZEMDAz
QjU5RDIgLyogUGxhdGZvcm1SZWdpc3RlcnMuaCAqLywKLQkJCQlEQ0VFMjFGRTFDRUE3NTUxMDAw
QzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggKi8sCi0JCQkJRENFRTIx
RkYxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5t
bSAqLywKIAkJCQkwRkY4NjA5NDFCQ0NCRDc0MDA0NTEyN0YgLyogUG9pbnRlckNvbXBhcmlzb24u
aCAqLywKIAkJCQkwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwICov
LAogCQkJCTBGOUQzMzVFMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5oICovLApAQCAt
MTM0NCw3ICsxMzQ3LDYgQEAKIAkJCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUExNTFBODI1QjAwNDEy
M0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGMEY1MjZCMUY0MjFGRjgwMDRBNDUyQyAvKiBTdHJpbmdN
YWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIw
MDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTM2NCw2ICsxMzY2LDgg
QEAKIAkJCQkwRjMwQkE5MDFFNzg3MDhFMDAyQ0E4NDcgLyogR2xvYmFsVmVyc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8q
IEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkJDRkM0MDFGNjFEMTMwMDBDOTIy
MkMgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQ0ZDNDIxRjYxRDYxNjAw
QzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMTY0NkExQjZG
RkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MEYzMkYxREZD
QkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUzNTM0RjJBMUVDMEUxMEUwMDE0MUIyRiAvKiBNYWNoRXhjZXB0aW9ucy5kZWZzIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzg1LDcgKzEzODksNiBAQAogCQkJCTUxRjE3NTJCMUYzRDQ4NjAwMEM3NDk1
MCAvKiBQZXJzaXN0ZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTJDMUYz
RDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYxNzUyRDFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudEVuY29kZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJRENFRTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJB
NzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjEx
RjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0I3
MjVFQzk4NzQ0NkFEOTNGMUE0NDAgLyogUmFuZG9tRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMTQxMiw2ICsxNDE1LDcgQEAKIAkJCQlBNUJBMTVGQzE4MjQzNUE2MDBBODJFNjkgLyogU3Ry
aW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUY1MTgyNDM0ODAwMEE4MkU2
OSAvKiBTdHJpbmdJbXBsTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RjMxODI0MzNB
OTAwQTgyRTY5IC8qIFN0cmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBGMEY1MjZCMUY0
MjFGRjgwMDRBNDUyQyAvKiBTdHJpbmdNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZE
REJGQTcxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjE5OTNFMTlENzk1OEQwMEMyMzkwQiAvKiBTdHJpbmdWaWV3LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzOTM0QkQ1MThBMUYxNjkwMEQwRDZBMSAvKiBTdHJpbmdWaWV3Q0Yu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEyZThjMTAwM2Mx
NTUzYzhlYjJjMzk1MTk1YzFjNDc4MWJmNmY1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMywgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgor
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCisjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKwor
c3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4OworCit0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJN
YXA7CitzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVyTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8T2JzZXJ2ZXJNYXA+IG1hcDsKKyAgICByZXR1cm4gbWFwLmdldCgpOworfQor
Cit2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VD
aGFuZ2VPYnNlcnZlckZ1bmN0aW9uIGN1c3RvbU9ic2VydmVyKQoreworICAgIG9ic2VydmVyTWFw
KCkuc2V0KGNvbnRleHQsIGN1c3RvbU9ic2VydmVyKTsKK30KKwordm9pZCByZW1vdmVMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKG9ic2VydmVyTWFw
KCkuY29udGFpbnMoY29udGV4dCkpOworICAgIG9ic2VydmVyTWFwKCkucmVtb3ZlKGNvbnRleHQp
OworfQorCit2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKK3sKKyAgICBPYnNlcnZlck1hcDo6aXRl
cmF0b3IgZW5kID0gb2JzZXJ2ZXJNYXAoKS5lbmQoKTsKKyAgICBmb3IgKE9ic2VydmVyTWFwOjpp
dGVyYXRvciBpdGVyID0gb2JzZXJ2ZXJNYXAoKS5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVy
KQorICAgICAgICBpdGVyLT52YWx1ZShpdGVyLT5rZXkpOworfQorCitTdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBs
YW5ndWFnZXNbMF07CisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKworc3RhdGljIFZl
Y3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZTsKKyAgICByZXR1cm4gb3Zl
cnJpZGU7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlk
ZSgpCit7CisgICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Cit9CisKK3Zv
aWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
dmVycmlkZSkKK3sKKyAgICBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpID0gb3ZlcnJpZGU7
CisgICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKK30KKworc3RhdGljIFZlY3RvcjxTdHJpbmc+IGlz
b2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKK3sKKyAgICBWZWN0b3I8
U3RyaW5nPiBjb3B5OworICAgIGNvcHkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdzLnNp
emUoKSk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHN0cmluZ3MpCisgICAgICAgIGNvcHku
dW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsKKyAgICByZXR1cm4gY29w
eTsKK30KKworVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAg
eworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworICAgICAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJpZGUpOworICAgIH0KKwor
ICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKK30KKworc3RhdGlj
IFN0cmluZyBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZUNvZGUpCit7CisgICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlQ29kZSA9IGxhbmd1YWdlQ29k
ZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOworICAgIAorICAgIGlmIChsb3dlcmNhc2VMYW5n
dWFnZUNvZGUubGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VMYW5ndWFnZUNvZGVbMl0gPT0gJ18n
KQorICAgICAgICBsb3dlcmNhc2VMYW5ndWFnZUNvZGUucmVwbGFjZSgyLCAxLCAiLSIpOworCisg
ICAgcmV0dXJuIGxvd2VyY2FzZUxhbmd1YWdlQ29kZTsKK30KKworc2l6ZV90IGluZGV4T2ZCZXN0
TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNoKQoreworICAgIFN0cmlu
ZyBsb3dlcmNhc2VMYW5ndWFnZSA9IGxhbmd1YWdlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7
CisgICAgU3RyaW5nIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoOworICAgIFN0cmluZyBsYW5n
dWFnZU1hdGNoQnV0Tm90TG9jYWxlOworICAgIHNpemVfdCBsYW5ndWFnZVdpdGhvdXRMb2NhbGVN
YXRjaEluZGV4ID0gMDsKKyAgICBzaXplX3QgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNo
SW5kZXggPSAwOworICAgIGJvb2wgY2FuTWF0Y2hMYW5ndWFnZU9ubHkgPSAobG93ZXJjYXNlTGFu
Z3VhZ2UubGVuZ3RoKCkgPT0gMiB8fCAobG93ZXJjYXNlTGFuZ3VhZ2UubGVuZ3RoKCkgPj0gMyAm
JiBsb3dlcmNhc2VMYW5ndWFnZVsyXSA9PSAnLScpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGFuZ3VhZ2VMaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIFN0cmluZyBjYW5vbmlj
YWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCA9IGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihsYW5n
dWFnZUxpc3RbaV0pOworCisgICAgICAgIGlmIChsb3dlcmNhc2VMYW5ndWFnZSA9PSBjYW5vbmlj
YWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCkgeworICAgICAgICAgICAgZXhhY3RNYXRjaCA9IHRydWU7
CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjYW5NYXRj
aExhbmd1YWdlT25seSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA+
PSAyKSB7CisgICAgICAgICAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VbMF0gPT0gY2Fub25pY2Fs
aXplZExhbmd1YWdlRnJvbUxpc3RbMF0gJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMV0gPT0gY2Fub25p
Y2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMV0pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWxhbmd1
YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZy
b21MaXN0Lmxlbmd0aCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRo
b3V0TG9jYWxlTWF0Y2ggPSBsYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIGxh
bmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSBpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBpZiAoIWxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUubGVuZ3RoKCkgJiYg
Y2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMykgeworICAgICAgICAg
ICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlID0gbGFuZ3VhZ2VMaXN0W2ldOwor
ICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9
IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgZXhhY3RNYXRjaCA9IGZhbHNlOworCisgICAgLy8gSWYgd2UgaGF2ZSBib3RoIGEgbGFu
Z3VhZ2Utb25seSBtYXRjaCBhbmQgYSBsYW5ndWdlLWJ1dC1ub3QtbG9jYWxlIG1hdGNoLCByZXR1
cm4gdGhlCisgICAgLy8gbGFuZ3VnZS1vbmx5IG1hdGNoIGFzIGlzIGNvbnNpZGVyZWQgYSAiYmV0
dGVyIiBtYXRjaC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBsaXN0CisgICAgLy8gcHJvdmlkZWQgaGFz
IGJvdGggImVuLUdCIiBhbmQgImVuIiBhbmQgdGhlIHVzZXIgcHJlZmVycyAiZW4tVVMiIHdlIHdp
bGwgcmV0dXJuICJlbiIuCisgICAgaWYgKGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0
aCgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleDsKKwor
ICAgIGlmIChsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgpKQorICAgICAgICByZXR1
cm4gbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXg7CisKKyAgICByZXR1cm4gbGFu
Z3VhZ2VMaXN0LnNpemUoKTsKK30KKworU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2Nh
bGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQoreworI2lmIFVTRShDRikgJiYgIVBMQVRGT1JN
KFdJTikKKyAgICBpZiAoIWxvY2FsZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gYWRv
cHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUoYWRvcHRDRihDRkxv
Y2FsZUNvcHlDdXJyZW50KCkpLmdldCgpLCBrQ0ZMb2NhbGVJZGVudGlmaWVyLCBsb2NhbGVOYW1l
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKS5nZXQoKTsKKyNlbmRpZgorICAgIHJldHVybiBsb2Nh
bGVOYW1lOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDViOTE4OTlkNGNkZWZlMGJh
ZjAwYmNkMDIxM2ZiYmQ3YzhjNDJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
TGFuZ3VhZ2UuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDEwLCAyMDEzLCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK1dURl9FWFBPUlQgU3RyaW5n
IGRlZmF1bHRMYW5ndWFnZSgpOyAvLyBUaHJlYWQtc2FmZS4KK1dURl9FWFBPUlQgVmVjdG9yPFN0
cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBC
Q1AgNDcgbGFuZ3VhZ2UgdGFncy4KK1dURl9FWFBPUlQgVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CitXVEZfRVhQT1JUIHZvaWQgb3ZlcnJpZGVVc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CitXVEZfRVhQT1JUIHNpemVf
dCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCk7
CitXVEZfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpOworLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVuIHRoZSB1c2Vy
J3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KK3ZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2Uo
KTsKKworLy8gVGhlIG9ic2VydmVyIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW4gc3lzdGVt
IGxhbmd1YWdlIGNoYW5nZXMuCit0eXBlZGVmIHZvaWQgKCpMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24pKHZvaWQqIGNvbnRleHQpOworV1RGX0VYUE9SVCB2b2lkIGFkZExhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9u
KTsKK1dURl9FWFBPUlQgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNv
bnRleHQpOworCitXVEZfRVhQT1JUIFN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxl
KGNvbnN0IFN0cmluZyYpOworfQorCit1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKK3VzaW5n
IFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKK3VzaW5nIFdURjo6dXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlOwordXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXM7Cit1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKK3VzaW5n
IFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcgV1RGOjphZGRMYW5n
dWFnZUNoYW5nZU9ic2VydmVyOwordXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyOwordXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOworCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IGNkYTVjMjk3MjNkMzdhZGQ1YjA4Y2JiZTg2MWUzNDZiOTc5
MWNmNTcuLmRhMDM4YTAxZmMzMGMzZTQ4MzhmZDM3NmJjNTRhMWU1NGMzYmU3ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMiw4ICsxMiw4IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VS
Q0VTCiAgICAgbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCiAKICAgICB1bml4
L0NQVVRpbWVVbml4LmNwcAorICAgIHVuaXgvTGFuZ3VhZ2VVbml4LmNwcAogCi0gICAgUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAKICAgICBVbmlTdGRFeHRyYXMuY3BwCiAK
ICAgICB0ZXh0L3VuaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVuaXguY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UKaW5kZXggNDRiMjIwMGJiYjZmNGYyYTE2YTk5NDdh
NDQwNzI3YWFmMTcxZDUzZi4uM2U3N2NjNGE0ODI5ZGJiNzY1MzY0Y2EwMWE0MGI5ZjhiNjQ4ODBh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZQpAQCAtMSw1ICsxLDQgQEAKIGxp
c3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
VW5peC5jcHAKIAogICAgIGdlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3BwCiAgICAgZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtOCwxMSArNywxMyBAQCBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogaWYgKFdJTjMyKQogICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgICAg
IHdpbi9DUFVUaW1lV2luLmNwcAorICAgICAgICB3aW4vTGFuZ3VhZ2VXaW4uY3BwCiAgICAgICAg
IHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAgICAgKQogZWxz
ZSAoKQogICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgICAgIHVuaXgvQ1BVVGltZVVu
aXguY3BwCisgICAgICAgIHVuaXgvTGFuZ3VhZ2VVbml4LmNwcAogICAgICAgICB0ZXh0L3VuaXgv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVuaXguY3BwCiAgICAgKQogZW5kaWYgKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYjRiMWRhZjMzOTQ1NzllMmU4MzQzYTEyZTAwMTI0
M2ViNGQyOTg5YS4uZjA3MWQyZjBlYmIwOTQxYWE3ODMyZjU5YTQxNjgwOWMyNWRhMmM0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTEwLDE1ICsxMCwxNSBAQCBsaXN0KEFQUEVORCBX
VEZfTElCUkFSSUVTCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIEF1dG9kcmFpbmVkUG9v
bE1hYy5tbQogICAgIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0KLSAgICBQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNNYWMubW0KICAgICBSdW5Mb29wVGltZXJDRi5jcHAKICAgICBTY2hlZHVs
ZVBhaXJDRi5jcHAKICAgICBTY2hlZHVsZVBhaXJNYWMubW0KIAotICAgIHRleHQvbWFjL1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KLQorICAgIGNmL0xhbmd1YWdlQ0YuY3BwCiAg
ICAgY2YvUnVuTG9vcENGLmNwcAogCisgICAgdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbQorCiAgICAgY29jb2EvQ1BVVGltZUNvY29hLm1tCiAgICAgY29jb2EvTWVt
b3J5Rm9vdHByaW50Q29jb2EuY3BwCiAgICAgY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29j
b2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcy5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNTgwZmM3NjA5ZmZkYzNhYjNiNDZk
YTBkZWM4N2E5MDM0ZmU3N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNfaAotI2RlZmluZSBQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNfaAotCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZv
aWQgKCopKCkpOwotCi0vLyBUaGlzIGlzIHRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRF
IFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDaGFuZ2VkQ2FsbGJhY2s7Ci11c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlczsKLQotI2VuZGlmIC8vIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c01hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01h
Yy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FlNzFhZWZjMzZhZTg5NWE4YWZi
ZTc2YTY0YzUzYzYzMDk2ZTQ0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNSwgMjAwNiwgMjAxMCwgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbXBvcnQgIkJsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaCIKLSNpbXBvcnQgPG11dGV4PgotI2ltcG9ydCA8dW5pY29kZS91bG9jLmg+Ci0jaW1w
b3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2ltcG9ydCA8d3RmL0xvY2suaD4KLSNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8
d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdGF0aWMgdm9pZCAoKmNhbGxiYWNrKSgpOwotCi12b2lk
IHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgq
cGFzc2VkQ2FsbGJhY2spKCkpCi17Ci0gICAgY2FsbGJhY2sgPSBwYXNzZWRDYWxsYmFjazsKLX0K
LQotc3RhdGljIFN0YXRpY0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7Ci0KLXN0YXRpYyBW
ZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKLSAgICByZXR1cm4gbGFuZ3VhZ2Vz
OwotfQotCi19Ci0KLUBpbnRlcmZhY2UgV1RGTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlciA6IE5TT2Jq
ZWN0Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXVEZMYW5ndWFnZUNoYW5nZU9ic2VydmVyCi0K
LSsgKHZvaWQpbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KLXsKLSAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKLQotICAgIHsK
LSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soV1RGOjpwcmVmZXJyZWRM
YW5ndWFnZXNNdXRleCk7Ci0gICAgICAgIFdURjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIo
KTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFdURjo6Y2FsbGJhY2spCi0gICAgICAgIFdURjo6Y2Fs
bGJhY2soKTsKLX0KLQotQGVuZAotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIFN0cmluZyBo
dHRwU3R5bGVMYW5ndWFnZUNvZGUoTlNTdHJpbmcgKmxhbmd1YWdlKQotewotICAgIFNJbnQzMiBs
YW5ndWFnZUNvZGU7Ci0gICAgU0ludDMyIHJlZ2lvbkNvZGU7Ci0gICAgU0ludDMyIHNjcmlwdENv
ZGU7Ci0gICAgQ0ZTdHJpbmdFbmNvZGluZyBzdHJpbmdFbmNvZGluZzsKLQotICAgIC8vIEZJWE1F
OiBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIHZlcnkgd3Jvbmc6Ci0gICAgLy8gMS4gVGhlcmUgaXMg
bm8gcmVhc29uIHdoeSBDRkJ1bmRsZSBsb2NhbGl6YXRpb24gbmFtZXMgd291bGQgYmUgYXQgYWxs
IHJlbGF0ZWQgdG8gbGFuZ3VhZ2UgbmFtZXMgYXMgdXNlZCBvbiB0aGUgV2ViLgotICAgIC8vIDIu
IFNjcmlwdCBNYW5hZ2VyIGNvZGVzIGNhbm5vdCByZXByZXNlbnQgYWxsIGxhbmd1YWdlcyB0aGF0
IGFyZSBub3cgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgc28gdGhlIGNvbnZlcnNpb24gaXMg
bG9zc3kuCi0gICAgLy8gMy4gVGhpcyBzaG91bGQgcHJvYmFibHkgbWF0Y2ggd2hhdCBpcyBzZW50
IGJ5IHRoZSBuZXR3b3JrIGxheWVyIGFzIEFjY2VwdC1MYW5ndWFnZSwgYnV0IGN1cnJlbnRseSwg
dGhhdCdzIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuCi0gICAgQ0ZCdW5kbGVHZXRMb2NhbGl6YXRp
b25JbmZvRm9yTG9jYWxpemF0aW9uKChDRlN0cmluZ1JlZilsYW5ndWFnZSwgJmxhbmd1YWdlQ29k
ZSwgJnJlZ2lvbkNvZGUsICZzY3JpcHRDb2RlLCAmc3RyaW5nRW5jb2RpbmcpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlID0gYWRvcHRDRihDRkJ1bmRs
ZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRpb25JbmZvKGxhbmd1YWdlQ29kZSwgcmVnaW9u
Q29kZSwgc2NyaXB0Q29kZSwgc3RyaW5nRW5jb2RpbmcpKTsKLSAgICBpZiAocHJlZmVycmVkTGFu
Z3VhZ2VDb2RlKQotICAgICAgICBsYW5ndWFnZSA9IChOU1N0cmluZyAqKXByZWZlcnJlZExhbmd1
YWdlQ29kZS5nZXQoKTsKLQotICAgIC8vIFR1cm4gYSAnXycgaW50byBhICctJyBpZiBpdCBhcHBl
YXJzIGFmdGVyIGEgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZQotICAgIGlmIChbbGFuZ3VhZ2UgbGVu
Z3RoXSA+PSAzICYmIFtsYW5ndWFnZSBjaGFyYWN0ZXJBdEluZGV4OjJdID09ICdfJykgewotICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU3RyaW5nPiBtdXRhYmxlTGFuZ3VhZ2VDb2RlID0gYWRv
cHROUyhbbGFuZ3VhZ2UgbXV0YWJsZUNvcHldKTsKLSAgICAgICAgW211dGFibGVMYW5ndWFnZUNv
ZGUuZ2V0KCkgcmVwbGFjZUNoYXJhY3RlcnNJblJhbmdlOk5TTWFrZVJhbmdlKDIsIDEpIHdpdGhT
dHJpbmc6QCItIl07Ci0gICAgICAgIHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwot
ICAgIH0KLQotICAgIHJldHVybiBsYW5ndWFnZTsKLX0KLQotVmVjdG9yPFN0cmluZz4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRv
a2VuLCBeewotICAgICAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gYWRkT2JzZXJ2ZXI6W1dURkxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIgc2VsZl0gc2Vs
ZWN0b3I6QHNlbGVjdG9yKGxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2U6KSBuYW1lOkAiQXBw
bGVMYW5ndWFnZVByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07Ci0g
ICAgfSk7Ci0jZW5kaWYKLQotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLQotICAg
IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4
KTsKLSAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJl
ZExhbmd1YWdlcygpOwotCi0gICAgaWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENG
TG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKLSAgICAgICAgQ0ZJbmRleCBsYW5ndWFn
ZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIGlmICgh
bGFuZ3VhZ2VDb3VudCkKLSAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5k
KCJlbiIpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoKE5TU3RyaW5nICopQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLSAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNo
ZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
LQotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c1VuaXguY3BwIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
VW5peC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODcyZDg5YTUxYjJiNmQ0
ODQ3ODg2ZjcwNzcxY2UzNzY2MmYzODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbmNsdWRl
IDxsb2NhbGUuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi12b2lkIHNldFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7IH0KLQotLy8gVXNp
bmcgcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSBoZXJlIGlzIG5vdCBhbiBvcHRpb24sIGJl
Y2F1c2UKLS8vIGl0IGRvZXNuJ3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgbG9jYWxlIGluIHJ1bnRp
bWUsIHNvIGl0IHJldHVybnMKLS8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KLXN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCi17Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9j
YWxlKExDX0NUWVBFLCBudWxscHRyKSk7Ci0gICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQotICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJlbi1VUyIpOwotCi0gICAgU3RyaW5nIG5vcm1hbGl6ZWREZWZhdWx0ID0g
bG9jYWxlRGVmYXVsdDsKLSAgICBub3JtYWxpemVkRGVmYXVsdC5yZXBsYWNlKCdfJywgJy0nKTsK
LSAgICBub3JtYWxpemVkRGVmYXVsdC50cnVuY2F0ZShub3JtYWxpemVkRGVmYXVsdC5maW5kKCcu
JykpOwotICAgIHJldHVybiBub3JtYWxpemVkRGVmYXVsdDsKLX0KLQotVmVjdG9yPFN0cmluZz4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICByZXR1cm4geyBwbGF0Zm9y
bUxhbmd1YWdlKCkgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzlhZDIzYzU0MzljZTIzMzIwODA1YjI5ZDk4MzIxMjQxNjc2
M2M2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgotCi0jaW5jbHVkZSA8bXV0ZXg+Ci0jaW5jbHVk
ZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4OwotCi12b2lkIHNldFBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7
IH0KLQotc3RhdGljIFN0cmluZyBsb2NhbGVJbmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBT
dHJpbmcmIGZhbGxiYWNrKQotewotICAgIExBTkdJRCBsYW5nSUQgPSBHZXRVc2VyRGVmYXVsdFVJ
TGFuZ3VhZ2UoKTsKLSAgICBpbnQgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwg
bG9jYWxlVHlwZSwgMCwgMCk7Ci0gICAgaWYgKCFsb2NhbGVDaGFycykKLSAgICAgICAgcmV0dXJu
IGZhbGxiYWNrOwotICAgIFVDaGFyKiBsb2NhbGVOYW1lQnVmOwotICAgIFN0cmluZyBsb2NhbGVO
YW1lID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkKGxvY2FsZUNoYXJzLCBsb2NhbGVOYW1l
QnVmKTsKLSAgICBsb2NhbGVDaGFycyA9IEdldExvY2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBl
LCBsb2NhbGVOYW1lQnVmLCBsb2NhbGVDaGFycyk7Ci0gICAgaWYgKCFsb2NhbGVDaGFycykKLSAg
ICAgICAgcmV0dXJuIGZhbGxiYWNrOwotICAgIGlmIChsb2NhbGVOYW1lLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbGxiYWNrOwotCi0gICAgbG9jYWxlTmFtZS50cnVuY2F0ZShsb2NhbGVO
YW1lLmxlbmd0aCgpIC0gMSk7Ci0gICAgcmV0dXJuIGxvY2FsZU5hbWU7Ci19Ci0KLXN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCi17Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xv
Y2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4KTsKLQotICAgIHN0YXRpYyBTdHJpbmcgY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Ci0gICAgaWYgKCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc29sYXRl
ZENvcHkoKTsKLQotICAgIFN0cmluZyBsYW5ndWFnZU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9T
SVNPNjM5TEFOR05BTUUsICJlbiIpOwotICAgIFN0cmluZyBjb3VudHJ5TmFtZSA9IGxvY2FsZUlu
Zm8oTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIFN0cmluZygpKTsKLQotICAgIGlmIChjb3VudHJ5
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3Vh
Z2VOYW1lOwotICAgIGVsc2UKLSAgICAgICAgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UgPSBsYW5n
dWFnZU5hbWUgKyAnLScgKyBjb3VudHJ5TmFtZTsKLQotICAgIHJldHVybiBjb21wdXRlZERlZmF1
bHRMYW5ndWFnZTsKLX0KLQotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCkKLXsKLSAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IDRmMTViNmRkYTlm
NGNmZjk0NjI3M2EyNmRlYTk4NTRhNTI2ZjZlMWEuLjRiNDEwZTVmYjcyZGU1OTAyNTZlNDI5YjZj
MWJlZTI3M2M4NGU2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0xLDUgKzEsNCBA
QAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNVbml4LmNwcAogICAgIFVuaVN0ZEV4dHJhcy5jcHAKIAogICAgIGdlbmVyaWMvTWFpblRo
cmVhZEdlbmVyaWMuY3BwCkBAIC0xNiw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VT
CiAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAogCiAg
ICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICB1bml4L0xhbmd1YWdlVW5peC5jcHAKICkKIAog
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAz
NmJjZWM0YjY2MzNiMjVjMzlmMTRkNzhlMWE1NWVjZDQzZDQ4ZDIyLi41Y2ZlYzA3N2M0ZTUzMWFl
YmE2YTFkZDYzMzZkYmQ5MjhhYjhmOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAt
MywxMSArMywxMCBAQCBsaXN0KEFQUEVORCBXVEZfSEVBREVSUwogKQogCiBsaXN0KEFQUEVORCBX
VEZfU09VUkNFUwotICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKLQog
ICAgIHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAKICAgICB3
aW4vQ1BVVGltZVdpbi5jcHAKKyAgICB3aW4vTGFuZ3VhZ2VXaW4uY3BwCiAgICAgd2luL01haW5U
aHJlYWRXaW4uY3BwCiAgICAgd2luL01lbW9yeUZvb3RwcmludFdpbi5jcHAKICAgICB3aW4vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2Yv
TGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYzIwM2QxN2NmODlhMjAzYjlmYWNiMWMxYThiYWIxYjY4NDA5YzVkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTAsMCArMSwxMjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTEsIDIw
MTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8
dW5pY29kZS91bG9jLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3
dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMg
U3RhdGljTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNNdXRleDsKKworc3RhdGljIFZlY3RvcjxTdHJp
bmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKK3N0
YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQor
eworICAgIFNJbnQzMiBsYW5ndWFnZUNvZGU7CisgICAgU0ludDMyIHJlZ2lvbkNvZGU7CisgICAg
U0ludDMyIHNjcmlwdENvZGU7CisgICAgQ0ZTdHJpbmdFbmNvZGluZyBzdHJpbmdFbmNvZGluZzsK
KworICAgIC8vIEZJWE1FOiBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIHZlcnkgd3Jvbmc6CisgICAg
Ly8gMS4gVGhlcmUgaXMgbm8gcmVhc29uIHdoeSBDRkJ1bmRsZSBsb2NhbGl6YXRpb24gbmFtZXMg
d291bGQgYmUgYXQgYWxsIHJlbGF0ZWQgdG8gbGFuZ3VhZ2UgbmFtZXMgYXMgdXNlZCBvbiB0aGUg
V2ViLgorICAgIC8vIDIuIFNjcmlwdCBNYW5hZ2VyIGNvZGVzIGNhbm5vdCByZXByZXNlbnQgYWxs
IGxhbmd1YWdlcyB0aGF0IGFyZSBub3cgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgc28gdGhl
IGNvbnZlcnNpb24gaXMgbG9zc3kuCisgICAgLy8gMy4gVGhpcyBzaG91bGQgcHJvYmFibHkgbWF0
Y2ggd2hhdCBpcyBzZW50IGJ5IHRoZSBuZXR3b3JrIGxheWVyIGFzIEFjY2VwdC1MYW5ndWFnZSwg
YnV0IGN1cnJlbnRseSwgdGhhdCdzIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuCisgICAgQ0ZCdW5k
bGVHZXRMb2NhbGl6YXRpb25JbmZvRm9yTG9jYWxpemF0aW9uKGxhbmd1YWdlLCAmbGFuZ3VhZ2VD
b2RlLCAmcmVnaW9uQ29kZSwgJnNjcmlwdENvZGUsICZzdHJpbmdFbmNvZGluZyk7CisgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNvZGUgPSBhZG9wdENGKENGQnVu
ZGxlQ29weUxvY2FsaXphdGlvbkZvckxvY2FsaXphdGlvbkluZm8obGFuZ3VhZ2VDb2RlLCByZWdp
b25Db2RlLCBzY3JpcHRDb2RlLCBzdHJpbmdFbmNvZGluZykpOworICAgIGlmIChwcmVmZXJyZWRM
YW5ndWFnZUNvZGUpCisgICAgICAgIGxhbmd1YWdlID0gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlLmdl
dCgpOworCisgICAgLy8gVHVybiBhICdfJyBpbnRvIGEgJy0nIGlmIGl0IGFwcGVhcnMgYWZ0ZXIg
YSAyLWxldHRlciBsYW5ndWFnZSBjb2RlCisgICAgaWYgKENGU3RyaW5nR2V0TGVuZ3RoKGxhbmd1
YWdlKSA+PSAzICYmIENGU3RyaW5nR2V0Q2hhcmFjdGVyQXRJbmRleChsYW5ndWFnZSwgMikgPT0g
J18nKSB7CisgICAgICAgIGF1dG8gbXV0YWJsZUxhbmd1YWdlQ29kZSA9IGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBsYW5ndWFnZSkpOwor
ICAgICAgICBDRlN0cmluZ1JlcGxhY2UobXV0YWJsZUxhbmd1YWdlQ29kZS5nZXQoKSwgQ0ZSYW5n
ZU1ha2UoMiwgMSksIENGU1RSKCItIikpOworICAgICAgICByZXR1cm4gbXV0YWJsZUxhbmd1YWdl
Q29kZS5nZXQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKKyNpZiBQTEFU
Rk9STShNQUMpCitzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRp
Y3Rpb25hcnlSZWYpCit7CisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9j
az4gbG9jayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIHByZWZlcnJlZExhbmd1
YWdlcygpLmNsZWFyKCk7CisgICAgfQorICAgIAorICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9
CisjZW5kaWYKKworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNl
VG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeIHsKKyAgICAgICAgQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERpc3RyaWJ1
dGVkQ2VudGVyKCksIG51bGxwdHIsICZsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlLCBDRlNU
UigiQXBwbGVMYW5ndWFnZVByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbiIpLCBudWxscHRy
LCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICB9KTsKKyNl
bmRpZgorCisgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socHJlZmVycmVkTGFu
Z3VhZ2VzTXV0ZXgpOworICAgIFZlY3RvcjxTdHJpbmc+JiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
ID0gcHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisKKyAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdl
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9
IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOworICAgICAgICBDRklu
ZGV4IGxhbmd1YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKKyAg
ICAgICAgaWYgKCFsYW5ndWFnZUNvdW50KQorICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1
YWdlcy5hcHBlbmQoImVuIik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQorICAgICAgICAgICAgICAgIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShzdGF0aWNfY2Fz
dDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkp
KSkpOworICAgICAgICB9CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NvcHk7CisgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUoKSk7CisKKyAgICBmb3Ig
KGF1dG8mIGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcykKKyAgICAgICAgdXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29w
eSgpKTsKKworICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKKworICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDE2ZmIyYWUzNzBiMzE4MTM1OWI4
YWVmMzkzZjNlNTdmNTJmMzUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxNiwg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJMYW5ndWFnZS5oIgorCisjaW5jbHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKworLy8gVXNpbmcgcGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSBoZXJlIGlz
IG5vdCBhbiBvcHRpb24sIGJlY2F1c2UKKy8vIGl0IGRvZXNuJ3Qgc3VwcG9ydCBjaGFuZ2luZyB0
aGUgbG9jYWxlIGluIHJ1bnRpbWUsIHNvIGl0IHJldHVybnMKKy8vIGFsd2F5cyB0aGUgc2FtZSB2
YWx1ZS4KK3N0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCit7CisgICAgU3RyaW5nIGxv
Y2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgaWYgKGxvY2Fs
ZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVs
dCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIp
KQorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJlbi1VUyIpOworCisgICAgU3RyaW5nIG5v
cm1hbGl6ZWREZWZhdWx0ID0gbG9jYWxlRGVmYXVsdDsKKyAgICBub3JtYWxpemVkRGVmYXVsdC5y
ZXBsYWNlKCdfJywgJy0nKTsKKyAgICBub3JtYWxpemVkRGVmYXVsdC50cnVuY2F0ZShub3JtYWxp
emVkRGVmYXVsdC5maW5kKCcuJykpOworICAgIHJldHVybiBub3JtYWxpemVkRGVmYXVsdDsKK30K
KworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAg
ICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjAxMDk4NTUwMDNkYTBj
MmViMzI3OTk2MTc5YjE2M2QyOTgzODI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvd2luL0xhbmd1YWdlV2luLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDE2LCAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1
ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7
CisKK3N0YXRpYyBTdGF0aWNMb2NrIHBsYXRmb3JtTGFuZ3VhZ2VNdXRleDsKKworc3RhdGljIFN0
cmluZyBsb2NhbGVJbmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBTdHJpbmcmIGZhbGxiYWNr
KQoreworICAgIExBTkdJRCBsYW5nSUQgPSBHZXRVc2VyRGVmYXVsdFVJTGFuZ3VhZ2UoKTsKKyAg
ICBpbnQgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwgbG9jYWxlVHlwZSwgMCwg
MCk7CisgICAgaWYgKCFsb2NhbGVDaGFycykKKyAgICAgICAgcmV0dXJuIGZhbGxiYWNrOworICAg
IFVDaGFyKiBsb2NhbGVOYW1lQnVmOworICAgIFN0cmluZyBsb2NhbGVOYW1lID0gU3RyaW5nOjpj
cmVhdGVVbmluaXRpYWxpemVkKGxvY2FsZUNoYXJzLCBsb2NhbGVOYW1lQnVmKTsKKyAgICBsb2Nh
bGVDaGFycyA9IEdldExvY2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBlLCBsb2NhbGVOYW1lQnVm
LCBsb2NhbGVDaGFycyk7CisgICAgaWYgKCFsb2NhbGVDaGFycykKKyAgICAgICAgcmV0dXJuIGZh
bGxiYWNrOworICAgIGlmIChsb2NhbGVOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZh
bGxiYWNrOworCisgICAgbG9jYWxlTmFtZS50cnVuY2F0ZShsb2NhbGVOYW1lLmxlbmd0aCgpIC0g
MSk7CisgICAgcmV0dXJuIGxvY2FsZU5hbWU7Cit9CisKK3N0YXRpYyBTdHJpbmcgcGxhdGZvcm1M
YW5ndWFnZSgpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socGxhdGZv
cm1MYW5ndWFnZU11dGV4KTsKKworICAgIHN0YXRpYyBTdHJpbmcgY29tcHV0ZWREZWZhdWx0TGFu
Z3VhZ2U7CisgICAgaWYgKCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc29sYXRlZENvcHkoKTsKKworICAg
IFN0cmluZyBsYW5ndWFnZU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUs
ICJlbiIpOworICAgIFN0cmluZyBjb3VudHJ5TmFtZSA9IGxvY2FsZUluZm8oTE9DQUxFX1NJU08z
MTY2Q1RSWU5BTUUsIFN0cmluZygpKTsKKworICAgIGlmIChjb3VudHJ5TmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lOworICAgIGVs
c2UKKyAgICAgICAgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UgPSBsYW5ndWFnZU5hbWUgKyAnLScg
KyBjb3VudHJ5TmFtZTsKKworICAgIHJldHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKK30K
KworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAg
ICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlkOTAzMjU2YzM0MTk2YzgyNDNlYjE2NzI1NzlhZGUx
YWQ1M2U3NmIuLjlhZDFjYzI3YmZkZDY3YWIxMGIwZmZiYzVkOTJmZmU0ZTdiOTBjNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yMjc1LDcgKzIyNzUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cAogICAgIHBsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCi0gICAgcGxhdGZvcm0vTGFuZ3Vh
Z2UuY3BwCiAgICAgcGxhdGZvcm0vTGF5b3V0VW5pdC5jcHAKICAgICBwbGF0Zm9ybS9MZW5ndGgu
Y3BwCiAgICAgcGxhdGZvcm0vTGVuZ3RoQm94LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhhYzBjMDM4NTc1ZDNhZjg5MWVi
ZDVjZWY2ZmExMDk0YTY2MjJkYjcuLjMyMjA3YjAzYmYwMGVhYTAxZTc0NDk4ZjRkYTgxMGZjNGRk
Mjg4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM2OTcsNyArMzY5Nyw2IEBACiAJCTg1NEZFNzM3MEEyMjk3QkUwMDU4RDdB
RCAvKiBUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1NEZFNzJEMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmF2ZXJzYWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTRGRTczODBBMjI5N0JF
MDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5j
cHAgKi87IH07CiAJCTg1NEZFNzM5MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRjBBMjI5
N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTg1RUM5QUZCMEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQzlB
RjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJCIC8qIExv
YWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4
NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUQxOEMxNTcyQzAw
NUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4QzFERDAyMDA1QzU0QUYgLyogSHlz
dGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM4ODks
OCArMzg4OCw2IEBACiAJCTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgg
Ki87IH07CiAJCTkzOTFBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkxQTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwICovOyB9OwogCQk5MzkxQTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTFBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE2
RDVBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2
RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlLmNwcCAqLzsgfTsKLQkJQTZENUE5OUQxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM5MjE0NjkxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRv
ckJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzkyMjYyRjEw
MzIxMDg0MDA2RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyMjYyRTEwMzIxMDg0MDA2RTdENUQg
LyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCTkzOTJGMTQyMEFEMTg1RjQwMDY5
MUJENCAvKiBSZW5kZXJDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5o
ICovOyB9OwpAQCAtNDYwNCw2ICs0NjAxLDggQEAKIAkJQTYxNDhBNzkxMkU0MUUzQjAwNDRBNzg0
IC8qIEpTSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE2MTQ4QTc3MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5F
bGVtZW50LmggKi87IH07CiAJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2
OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKIAkJQTZEMTY5NjQx
MzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dS
b290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QTZENUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGUuY3BwICovOyB9OworCQlBNkQ1QTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTZENUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNr
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTVFNjUyMTM0QkJC
RUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTAxMzRCQkJFQzAwRDhFNzEzIC8q
IFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgKi87IH07CiAJCUE3MTVFNjUzMTM0QkJCRUMwMEQ4
RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQuaCAqLzsgfTsKQEAgLTY2NzksNyArNjY3OCw2IEBACiAJCUUxODI1NjhG
MEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1NjhEMEVGMkIwMkQwMDkzMzI0
MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmNwcCAqLzsgfTsKIAkJRTE4MjU2OTAwRUYyQjAyRDAw
OTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1NjhFMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtl
ckdsb2JhbFNjb3BlLmggKi87IH07CiAJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQ3VzdG9tLmNwcCAqLzsgfTsKLQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExh
bmd1YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxODc3MkYwMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi87IH07CiAJCUUxOERG
MzM1MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4REYzMzQxOEFBRjEyQzAw
NzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTE4REYzMzgxOEFBRjE0RDAwNzczRTU5IC8q
IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4REYzMzYxOEFBRjE0RDAwNzczRTU5IC8qIFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovOyB9OwogCQlFMTk3MjcxNjE4MjA1NDlFMDA1OTJENTEg
LyogQ3J5cHRvS2V5VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCAqLzsg
fTsKQEAgLTExNTE2LDggKzExNTE0LDggQEAKIAkJN0NCQTVCQTYxRjBCNEJERTAwMzRENzQ1IC8q
IEpTRE9NQ29udmVydFdlYkdMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NQ29udmVydFdl
YkdMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCQkJDQzQxRjU2MDU2NzAw
NUVGQUFDIC8qIERPTU1hdHJpeDJESW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9N
TWF0cml4MkRJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCQkJDQzYx
RjU2MDU2ODAwNUVGQUFDIC8qIERPTU1hdHJpeDJESW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01NYXRyaXgyREluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJN0NCQkJDQzgxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NTWF0cml4MkRJbml0LmNwcDsgcGF0aCA9IEpTRE9NTWF0
cml4MkRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NCQkJDQzkxRjU2
MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTRE9N
TWF0cml4MkRJbml0Lmg7IHBhdGggPSBKU0RPTU1hdHJpeDJESW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Q0JCQkNDODFGNTYxN0MwMDA1RUZBQUMgLyogSlNET01NYXRyaXgy
REluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JCQkNDOTFGNTYxN0MwMDA1RUZBQUMgLyogSlNE
T01NYXRyaXgyREluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDMkRERjgxRUM5NDE1QTAwMjdCNzc0IC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlz
c2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERGQTFFQzk0MTVBMDAy
N0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm90aWZpY2F0aW9uUGVy
bWlzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzJEREZFMUVDOTVB
NDQwMDI3Qjc3NCAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTg4LDcgKzExOTg2LDYgQEAKIAkJODVDNTZD
QUQwQUE4OUZFMDAwRDk1NzU1IC8qIENTU1Vua25vd25SdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTVW5rbm93blJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NURGMkY2OTBBQTNDNzQzMDBBRDY0QzUgLyogSFRNTENvbGxlY3Rpb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBIVE1MQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg1REYyRjkyMEFBM0M5QjYwMEFENjRDNSAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQg
LyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhbmd1YWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MUMyRUEzMTNGQjRGREQwMDA2MkFC
QiAvKiBMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RDE4
QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZp
dHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2aXR5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIxNiw4ICsxMjIxMyw2IEBACiAJ
CTkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxQTk5QTE2MjlENkZGMDAyOTczMzAg
LyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRJdGVyYXRvckJlaGF2aW9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTIyNjJFMTAzMjEwODQwMDZFN0Q1RCAvKiBKU0NT
U1J1bGVMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTMwNDEsNiArMTMwMzYsOCBAQAogCQlBNjE0OEE3RjEyRTQxRUQxMDA0NEE3
ODQgLyogSFRNTEtleWdlbkVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxL
ZXlnZW5FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTZEMTY5NjEx
MzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE2RDVBOTlCMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQ
cm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NDI5LDcgKzE1NDI2LDYgQEAKIAkJ
RTE4MjU2OEQwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJHbG9iYWxTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxODI1NjhFMEVGMkIwMkQwMDkzMzI0MiAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV29ya2VyR2xvYmFsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4
MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxODc3MkYwMTI2RTI2Mjkw
MDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM0
MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMThERjMzNjE4QUFGMTREMDA3NzNFNTkgLyogU2VyaWFs
aXplZENyeXB0b0tleVdyYXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjIsOCArMTY5MTgsNiBAQAogCQkJCTBGQzRFNDBD
MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1t
ICovLAogCQkJCTBGQzRFNDA5MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlSU9TLmNw
cCAqLywKIAkJCQkwRkM0RTQwQTE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJlZUlPUy5o
ICovLAotCQkJCTFCOTRFNDA5MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlLmNwcCAqLywKLQkJCQkxQjk0RTQwQTE4N0Y4MkUxMDA0NTg4MkMgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjQ0OTcsOCArMjQ0OTEsNiBA
QAogCQkJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCAq
LywKIAkJCQkxQUUwMEQ1NzE4MkRBQzhEMDAwODdERDcgLyogS2V5ZWRDb2RpbmcuaCAqLywKIAkJ
CQlFMTVGRjdENDE4Qzk1NTM4MDBGRTRDODcgLyogS2V5cHJlc3NDb21tYW5kLmggKi8sCi0JCQkJ
RTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLywKLQkJCQk4NUVDOUFG
OTBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCAqLywKIAkJCQlBM0Q0MkE4NDFGMzNCQTM2
MDBBNjRCNjIgLyogTGF5b3V0VW5pdC5jcHAgKi8sCiAJCQkJMTQxREMwNDcxNjQ4MzQ4RjAwMzcx
RTVBIC8qIExheW91dFVuaXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNERjE2MDA3RTQ1MzMgLyog
TGVuZ3RoLmNwcCAqLywKQEAgLTI3NzE3LDEyICsyNzcwOSw5IEBACiAJCQkJODQ3MzBEODUxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBE
ODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDcz
MEQ4OTEyNDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1MTdBNTM1QjFGNTg4QTRDMDBEQ0RDMEEgLyogRmV0Y2hCb2R5Q29uc3VtZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMjlDOTk3MUY1OUI5NjMwMDlENzQwMyAvKiBGZXRjaEJvZHlT
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDEyOURCMUYzRDE0MzgwMEQxNUU0NyAvKiBG
ZXRjaEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjAy
MyAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdBNTM1
QTFGNTg4OUVGMDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUx
N0E1MzU4MUY1ODg5RTgwMERDREMwQSAvKiBGZXRjaExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDFBRDc1M0ExQ0VGNkJEMTAwQTMxNDg2IC8qIEZldGNoT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0NFMTkxNEQxRjJBOUFGQjAwMjcyRjc4IC8qIEZldGNoUmVmZXJyZXJQ
b2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTVBMUYyQTlCMzQwMDI3MkY3OCAvKiBG
ZXRjaFJlcXVlc3RDYWNoZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTAxMiw3ICsyOTAwMSw2IEBA
CiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtleXByZXNzQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJl
bHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFQzlBRkIwQTcxQTJDNjAwRUVFQUVE
IC8qIExhbmd1YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5
RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjkxN0I1NjMx
NDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0OTE2RkY3MTk1REY2QTAwMDVBQjM0OSAvKiBMYXllckZsdXNoVGhyb3R0bGVT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg4OCw3ICsyOTg3Niw2IEBACiAJCQkJMkQ5M0FF
RTMxOURGNTY0MTAwMkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRjE3NTVEMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RjFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlckNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUQxRjU4OTlGRTAwRENE
QzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFG
MTc1NjExRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFGMTc1NjMxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJK
b2IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTY0MUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2
aWNlV29ya2VySm9iQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzMDg4LDcgKzMzMDc1LDYg
QEAKIAkJCQlCQzVFQkExMDBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ1MENFQkYwMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0NTZGQTI2MTFBRDRBODMwMDIwQjQyMCAvKiBM
YWJlbHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTg3NzJGMTEyNkUyNjI5MDAz
REQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1NjExNDczNDk2
QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKaW5kZXggNzA3NTZmZmFkN2IzMjY3YzU3
OTA4ZmU4NDU1Y2NhMWI2NzRjMDUwMS4uMmViYzIyNmI3NTliZGFkM2I1NDM4NDZhYmJkNTQwYWU4
OGM0NmUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTVkdBRWxlbWVudC5o
IgpAQCAtNDAsNiArMzksNyBAQAogI2luY2x1ZGUgIlNWR1RpdGxlRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSA8
d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggZGNjZDI4MzM4ZTNlODBm
ZDNhNDhmMzg1NTJhM2VmMmEwMzM1N2E5NS4uNmFlNTg3MWM2ZmJiMmRhOThmYzVlYTI1ZmQ4YzFj
ZjRlOGU5MWQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20u
aCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU05vZGUu
aCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVqZWN0ZWRQcm9taXNlVHJhY2tlci5oIgpAQCAtNTEsNiAr
NTAsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KICNpbmNsdWRlIDxydW50aW1l
L01pY3JvdGFzay5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggOWU4NTRh
MzhjNTNlNTA4OWEzMzIzMDAwOTM4ZmJjM2UxYTNmMDBkMC4uMzRhNTFhNTcwODczOThmMzkxYWU2
NzdjY2I3YzhlY2EwOWM2ZmI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtMzMsMTIgKzMzLDEyIEBACiAj
aW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRHlu
YW1pY0Rvd25jYXN0LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1
ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNy
b3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggYjkxYTVmYTIwYjQ3YjkwZTllNjU0YWE0MWVjMjMxZDdhOTkz
MTkzYS4uZGUyZjNiYTZlYzZjN2YzZjE2YzM5NGQ0OTRkZTBjMTMwY2Y0NmE2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDYgQEAKICNpbmNsdWRlICJKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgiCiAjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
TGF5b3V0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCkBAIC0yMDYsNiArMjA1LDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0
b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8cGFsL0xvZ2dlci5oPgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCBjMDhjZjMzNzBjMmEzMWFkMzAzM2I5ZjYxOGZhOTVkMDAyMzA2Y2Mx
Li4zOGIxMjU0OTE1ZmFkY2IyOWU0ZDUzZTRkMmIyYjYyOTdkOTRhYzZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRl
ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWRUYXJnZXRPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUg
IkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1Nb3VzZUV2ZW50LmgiCkBAIC01OSw2ICs1OCw3IEBACiAjaW5jbHVkZSAiU2VhcmNo
SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29s
dmVyLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IGRmMzJmZTRkYjRhOTFjNjk0YjQ1ZmNjNzg1ZWE1Zjc2MjAwNWZj
ZWUuLjllMGE5YTJmZTg3ZmE2M2FkMzUyODU2MzgwZThmM2E2ZjQ0NzU2MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNiBAQAogI2luY2x1
ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2lu
Y2x1ZGUgIkpTSFRNTE1lZGlhRWxlbWVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRl
ICJNYWluRnJhbWUuaCIKQEAgLTk0LDYgKzkzLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL1VpbnQ4
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA1NDNmNjFmOWU4NzM1MGQ1Nzg2ZGRkNjZlNDc3NGU3
NTM1NGJlNjE2Li42NGYyYzFhZTQ4MmU3ZWJjMDIwYzliZmFjZjlhNzFiYTY1MmI3ZDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzLmgiCkBAIC02MCw2ICs1OSw3
IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIK
ICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2Uu
Y3BwCmluZGV4IDdlYTRlMDU2YjNjYmY0MmU0YjJjNzFkNTBiMzQ4YjY4MjdhODA4ZGMuLjg2ODE5
ZjU3YjJiOTJmNzVmYjE2ZDU0N2UwNTBmZWFhOTYwNWZlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5j
bHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggN2Q1YWIxZTE1MTg5NTllNDVjNDRlNjhhMjlk
MjQzMDYzNzkwNDIzNi4uYmFlMGIzYmFhY2U1OTgwNzU3YWFiNmRkNGY3OTBhYTBkYzNlOTIwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBA
IC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogI2luY2x1ZGUg
IkRPTVdyYXBwZXJXb3JsZC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhU2VsZWN0aW9uT3B0aW9uLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgpAQCAtNDQsNiArNDMsNyBAQAogI2luY2x1ZGUgPGhlYXAvSGVhcElubGlu
ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ2VsbElubGluZXMuaD4KICNpbmNsdWRlIDxydW50
aW1lL1N0cnVjdHVyZUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGYwYjhmN2YyN2QwZGE5NjliYjZkMTQz
MGMwNGY4NzBlNTY3YTNmNmMuLjIzZDdlMGJmNGU3ZGE2YTAyMGFhNWU5N2QxYWYxNmMyNWIxZjQz
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUYuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjZW5kaWYKICNpbmNsdWRlICJGbG9h
dENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0jaW5jbHVkZSAi
TGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCkBAIC00Niw4ICs0NSw4
IEBACiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXRUeXBlcy5oIgogI2luY2x1ZGUgIlZUVEN1ZS5o
IgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9Tb2Z0TGlua2luZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBiMjM5YzhhZmU0OTAwODM5OTBjM2I0MDViYTc0N2I5
ZDkxNTFlYjA3Li5jYjE2Mzk4NmM4MzZiNTVkMDhlNWQzODhhZGE4OTliMDMxYTkzZTNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC02Niw3ICs2Niw2IEBACiAjaW5jbHVkZSAiSGlz
dG9yeS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTG9jYXRpb24uaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5TGlzdC5oIgpAQCAtMTEwLDYgKzEwOSw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCmluZGV4IGI2ZDU1OGY3
NWIxZjgwZWZhMjBhZTExNWQ0YzMxZDljNjNlMjE1ZTQuLjQxZDA4NzZjZDVlZWYxZWIwNWU1NGUz
ODU3MGE4ZjNlM2M5ZjAyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKQEAgLTMxLDEy
ICszMSwxMiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuY3BwCmluZGV4IDk3ZmY5NTNhNmYzYmRmZDA5NmVhZWQ2ZGM1YmZmODky
YzRjNzJlOTUuLjIyMmE4ZWY0YzY4ZjFiMjYyYWZkZjgxMjJkOGFjOTRjZDhiODIzZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgogCi0jaW5jbHVkZSAi
TGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3
dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlYzRiMzQ5MjQ2YWM3ZTllNzYwMDZhZTdiMDQ4MzA0OTYyZmE4MDA5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xhbmd1YWdlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaD4K
LSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLSNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCi0jaW5jbHVkZSA8Q29yZUZvdW5k
YXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXN0YXRpYyBTdGF0aWNMb2NrIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleDsKLQotc3RhdGlj
IHZvaWQgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5nZUNhbGxiYWNrSWZOZWNlc3NhcnkoKQotewot
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwotICAgIHN0ZDo6Y2FsbF9vbmNlKAotICAg
ICAgICBvbmNlLAotICAgICAgICBbXSB7Ci0gICAgICAgICAgICBzZXRQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sobGFuZ3VhZ2VEaWRDaGFuZ2UpOwotICAgICAg
ICB9KTsKLX0KLQotdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24+IE9ic2VydmVyTWFwOwotc3RhdGljIE9ic2VydmVyTWFwJiBvYnNlcnZlck1hcCgp
Ci17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9ic2VydmVyTWFwPiBtYXA7Ci0gICAgcmV0
dXJuIG1hcC5nZXQoKTsKLX0KLQotdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQq
IGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbiBjdXN0b21PYnNlcnZlcikK
LXsKLSAgICByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2FsbGJhY2tJZk5lY2Vzc2FyeSgpOwot
ICAgIG9ic2VydmVyTWFwKCkuc2V0KGNvbnRleHQsIGN1c3RvbU9ic2VydmVyKTsKLX0KLQotdm9p
ZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCi17Ci0gICAgQVNT
RVJUKG9ic2VydmVyTWFwKCkuY29udGFpbnMoY29udGV4dCkpOwotICAgIG9ic2VydmVyTWFwKCku
cmVtb3ZlKGNvbnRleHQpOwotfQotCi12b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKLXsKLSAgICBP
YnNlcnZlck1hcDo6aXRlcmF0b3IgZW5kID0gb2JzZXJ2ZXJNYXAoKS5lbmQoKTsKLSAgICBmb3Ig
KE9ic2VydmVyTWFwOjppdGVyYXRvciBpdGVyID0gb2JzZXJ2ZXJNYXAoKS5iZWdpbigpOyBpdGVy
ICE9IGVuZDsgKytpdGVyKQotICAgICAgICBpdGVyLT52YWx1ZShpdGVyLT5rZXkpOwotfQotCi1T
dHJpbmcgZGVmYXVsdExhbmd1YWdlKCkKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMg
PSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCi0g
ICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07Ci0KLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
LX0KLQotc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgp
Ci17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZTsK
LSAgICByZXR1cm4gb3ZlcnJpZGU7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZSgpCi17Ci0gICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCk7Ci19Ci0KLXZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKLXsKLSAgICBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlk
ZSgpID0gb3ZlcnJpZGU7Ci0gICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKLX0KLQotc3RhdGljIFZl
Y3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykK
LXsKLSAgICBWZWN0b3I8U3RyaW5nPiBjb3B5OwotICAgIGNvcHkucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShzdHJpbmdzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHN0cmluZ3Mp
Ci0gICAgICAgIGNvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsK
LSAgICByZXR1cm4gY29weTsKLX0KLQotVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1
YWdlcygpCi17Ci0gICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9j
ayh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgICAgICBWZWN0b3I8U3RyaW5nPiYg
b3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgICAgICBpZiAoIW92
ZXJyaWRlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJp
ZGUpOwotICAgIH0KLSAgICAKLSAgICByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2FsbGJhY2tJ
Zk5lY2Vzc2FyeSgpOwotICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KTsKLX0KLQotc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIoY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZUNvZGUpCi17Ci0gICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlQ29k
ZSA9IGxhbmd1YWdlQ29kZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgIAotICAgIGlm
IChsb3dlcmNhc2VMYW5ndWFnZUNvZGUubGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VMYW5ndWFn
ZUNvZGVbMl0gPT0gJ18nKQotICAgICAgICBsb3dlcmNhc2VMYW5ndWFnZUNvZGUucmVwbGFjZSgy
LCAxLCAiLSIpOwotCi0gICAgcmV0dXJuIGxvd2VyY2FzZUxhbmd1YWdlQ29kZTsKLX0KLQotc2l6
ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1
YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNo
KQotewotICAgIFN0cmluZyBsb3dlcmNhc2VMYW5ndWFnZSA9IGxhbmd1YWdlLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCk7Ci0gICAgU3RyaW5nIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoOwot
ICAgIFN0cmluZyBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlOwotICAgIHNpemVfdCBsYW5ndWFn
ZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4ID0gMDsKLSAgICBzaXplX3QgbGFuZ3VhZ2VNYXRjaEJ1
dE5vdExvY2FsZU1hdGNoSW5kZXggPSAwOwotICAgIGJvb2wgY2FuTWF0Y2hMYW5ndWFnZU9ubHkg
PSAobG93ZXJjYXNlTGFuZ3VhZ2UubGVuZ3RoKCkgPT0gMiB8fCAobG93ZXJjYXNlTGFuZ3VhZ2Uu
bGVuZ3RoKCkgPj0gMyAmJiBsb3dlcmNhc2VMYW5ndWFnZVsyXSA9PSAnLScpKTsKLQotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGFuZ3VhZ2VMaXN0LnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IFN0cmluZyBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCA9IGNhbm9uaWNhbExhbmd1YWdl
SWRlbnRpZmllcihsYW5ndWFnZUxpc3RbaV0pOwotCi0gICAgICAgIGlmIChsb3dlcmNhc2VMYW5n
dWFnZSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdCkgewotICAgICAgICAgICAgZXhh
Y3RNYXRjaCA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGlmIChjYW5NYXRjaExhbmd1YWdlT25seSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9t
TGlzdC5sZW5ndGgoKSA+PSAyKSB7Ci0gICAgICAgICAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2Vb
MF0gPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMF0gJiYgbG93ZXJjYXNlTGFuZ3Vh
Z2VbMV0gPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3RbMV0pIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIWxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoLmxlbmd0aCgpICYmIGNhbm9uaWNh
bGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxlbmd0aCgpID09IDIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2ggPSBsYW5ndWFnZUxpc3RbaV07Ci0gICAgICAg
ICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSBpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWxhbmd1YWdlTWF0Y2hCdXROb3RMb2Nh
bGUubGVuZ3RoKCkgJiYgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0g
MykgewotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlID0gbGFu
Z3VhZ2VMaXN0W2ldOwotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZU1hdGNoQnV0Tm90TG9j
YWxlTWF0Y2hJbmRleCA9IGk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgZXhhY3RNYXRjaCA9IGZhbHNlOwotCi0gICAgLy8gSWYgd2Ug
aGF2ZSBib3RoIGEgbGFuZ3VhZ2Utb25seSBtYXRjaCBhbmQgYSBsYW5ndWdlLWJ1dC1ub3QtbG9j
YWxlIG1hdGNoLCByZXR1cm4gdGhlCi0gICAgLy8gbGFuZ3VnZS1vbmx5IG1hdGNoIGFzIGlzIGNv
bnNpZGVyZWQgYSAiYmV0dGVyIiBtYXRjaC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBsaXN0Ci0gICAg
Ly8gcHJvdmlkZWQgaGFzIGJvdGggImVuLUdCIiBhbmQgImVuIiBhbmQgdGhlIHVzZXIgcHJlZmVy
cyAiZW4tVVMiIHdlIHdpbGwgcmV0dXJuICJlbiIuCi0gICAgaWYgKGxhbmd1YWdlV2l0aG91dExv
Y2FsZU1hdGNoLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VXaXRob3V0TG9jYWxl
TWF0Y2hJbmRleDsKLQotICAgIGlmIChsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgp
KQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXg7Ci0K
LSAgICByZXR1cm4gbGFuZ3VhZ2VMaXN0LnNpemUoKTsKLX0KLQotU3RyaW5nIGRpc3BsYXlOYW1l
Rm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQotewotI2lmIFVTRShD
RikgJiYgIVBMQVRGT1JNKFdJTikKLSAgICBpZiAoIWxvY2FsZU5hbWUuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFs
dWUoYWRvcHRDRihDRkxvY2FsZUNvcHlDdXJyZW50KCkpLmdldCgpLCBrQ0ZMb2NhbGVJZGVudGlm
aWVyLCBsb2NhbGVOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKS5nZXQoKTsKLSNlbmRpZgot
ICAgIHJldHVybiBsb2NhbGVOYW1lOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MYW5ndWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q3ZTY2N2EyNzExMjQ5ODk1MTM2Mjcz
YzllYWMzY2I0MDhmMTc2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAxMCwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
TGFuZ3VhZ2VfaAotI2RlZmluZSBMYW5ndWFnZV9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XRUJD
T1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgotV0VC
Q09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBU
aHJlYWQtc2FmZSwgcmV0dXJucyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KLVZlY3RvcjxTdHJpbmc+
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLXNp
emVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5n
dWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRj
aCk7Ci0KLS8vIFRoZSBvYnNlcnZlciBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuIHN5c3Rl
bSBsYW5ndWFnZSBjaGFuZ2VzLgotdHlwZWRlZiB2b2lkICgqTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
ckZ1bmN0aW9uKSh2b2lkKiBjb250ZXh0KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVu
Y3Rpb24pOwotV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVy
KHZvaWQqIGNvbnRleHQpOwotCi1TdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShj
b25zdCBTdHJpbmcmKTsKLQotLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3
aGVuIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KLVdFQkNPUkVfRVhQ
T1JUIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHZW5lcmljRmFtaWxpZXMuY3Bw
CmluZGV4IDgxZDEyMDA5YTNmNTE5YzA3ZTkxY2NmMGJiYmU2ZjA4MGU4NjA2M2UuLjVlYmFiOWM5
NmQ4OGUxZGNjY2YyYjYyMjQzNDZkMWE0YzJjZTMyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHZW5lcmljRmFtaWxpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHZW5lcmljRmFtaWxpZXMuY3BwCkBAIC0y
NSw3ICsyNSw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250R2VuZXJp
Y0ZhbWlsaWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPHd0Zi9MYW5n
dWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCAwNDJlNTMwMTdiYWJlNmVmYTU2OTAy
NTFjZjA2Y2NlMGUzYzc0NGQ4Li5hMjNkODA5ZDNhNWRkZmFmMzcxMTYyZGYxZmNiNjA0MjJiNzNk
Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
Lm1tCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2lt
cG9ydCAiTGFuZ3VhZ2UuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CiAjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYVNlbGVjdGlvbkdyb3VwLmg+CiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZQbGF5ZXJJdGVtLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBv
cnQgPHd0Zi9MYW5ndWFnZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCA2NGFlOTcyZGZjZjkyOTA4NjAwZDlhYzhhN2Zi
N2M3NTA0NjEzNmM4Li41ZGMwMzVkZmY1Y2Q1NTQ5ZjIxNTc1YTY5NWNjZDRjYzVmY2E2ZmFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApA
QCAtMzQsOCArMzQsOCBAQAogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAKICNpbmNsdWRlICJI
VFRQSGVhZGVyTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRlTWF0aC5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1BsYXRmb3JtTG9jYWxlLmgKaW5kZXggOTExOThmMjcxNTc1YzdiZmZlMTJmMzZmZWIwMjU0YTMz
YjQwZjBlNi4uYTkxZmU4M2NiNzk2ZjRlOGM5MjU3MWFiNWI5ZmI1MTYxODcwMTFhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaApAQCAtMjcsNyAr
MjcsNyBAQAogI2RlZmluZSBQbGF0Zm9ybUxvY2FsZV9oCiAKICNpbmNsdWRlICJEYXRlQ29tcG9u
ZW50cy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25D
Ri5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
CmluZGV4IGI0YjBlNTFmNGFmZDZjYTNiY2M4YTBmODc1MmQ1MzRjZDhiOTZhNjMuLjFjNzBjNDEz
ZDhjYzIyNTAwNGIxN2Q3YjJhNjY5YTczNzA1N2YzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcApAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkh5cGhlbmF0aW9uLmgiCiAKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVGlueUxSVUNhY2hlLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nVmlldy5oPgpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICAvLyBDRiBoeXBoZW5hdGlvbiBmdW5jdGlvbnMgdXNlIGxvY2FsZSAocmVnaW9uYWwgZm9y
bWF0cykgbGFuZ3VhZ2UsIHdoaWNoIGRvZXNuJ3QgbmVjZXNzYXJpbHkgbWF0Y2ggcHJpbWFyeSBV
SSBsYW5ndWFnZSwKICAgICAgICAgLy8gc28gd2UgY2FuJ3QgdXNlIGRlZmF1bHQgbG9jYWxlIGhl
cmUuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTQ4OTc2NjQ+LgotICAgICAgICBSZXRhaW5QdHI8Q0ZM
b2NhbGVSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgV2ViQ29yZTo6ZGVmYXVsdExhbmd1YWdlKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkp
OworICAgICAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2Nh
bGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExhbmd1YWdlKCkuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSkpOwogICAgICAgICByZXR1cm4gQ0ZTdHJpbmdJc0h5cGhlbmF0aW9uQXZh
aWxhYmxlRm9yTG9jYWxlKGxvY2FsZS5nZXQoKSkgPyBsb2NhbGUgOiBudWxscHRyOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCmluZGV4
IGQxNTU5MDU1ZTYwZTIwODc2Y2VkZjhiYzI2Y2JkMGZhNzc4YzNjODkuLjBhZjE3OWZhMjMzMTYz
NjViN2MwOGMwNzI5NGY4M2I5NGFkMzNhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KQEAgLTMxLDEyICszMSwxMiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsZU1hYy5oIgogCisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJp
bmdzLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TRGF0ZUZvcm1hdHRlci5oPgogI2ltcG9ydCA8
Rm91bmRhdGlvbi9OU0xvY2FsZS5oPgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCi0jaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgotI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9EYXRlTWF0aC5oPgorI2ltcG9ydCA8d3Rm
L0xhbmd1YWdlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKICNpZiBQTEFURk9STShJ
T1MpCiAjaW1wb3J0ICJMb2NhbGl6ZWREYXRlQ2FjaGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3Bw
CmluZGV4IGU0NGMzMzRmMTY1MTliOWJhNzBiMmYwZjBmNDlkY2MwMzVjOTE5MGUuLjgzNGMwZTNk
OThlOGIyZGU1ZDk4MGFmYWZlNzYzNWYyNDM3ZTFmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXN0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNw
cApAQCAtMjQsMTAgKzI0LDEwIEBACiAKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
U1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5n
TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDkzODkzYmQ1NzM5YzBkZDIxNjc1OTAxNDI2Y2Rm
ZjBiMzFlZjg4ZWEuLjRiZjFkMGU4MTIxNjhlZDk1ZjVhODlmNjM1NWIzMzEyODQxOTFlNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMzEsNyAr
MzEsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJM
b2NhbGVUb1NjcmlwdE1hcHBpbmcuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCkBAIC00MSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKKyNpbmNsdWRlIDx3
dGYvTGFuZ3VhZ2UuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogI2luY2x1ZGUg
IkNvbG9yQ2hvb3Nlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDU2
Zjk5MTU2ODNhNTMwZDYzYTk1OGZkNmU5MTk3NzIwNjU0ODA2MjguLjg3ZTM4YmZlYWNjNzZhYWFj
ZDFhNDcwMmQ4Mzg0NGVkZGFhMjlmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTg4LDcgKzg4LDYgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50
ZXJuYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgiCi0jaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIk1haW5G
cmFtZS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIKQEAgLTE1NCw2ICsxNTMsNyBA
QAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KKyNpbmNs
dWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWZmZXIuaD4KQEAgLTQxOSw3ICs0MTksNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIH0KIAogICAgIFdlYkNvcmU6OmNsZWFy
RGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKTsKLSAgICBXZWJDb3JlOjpvdmVy
cmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4oKSk7CisgICAgb3ZlcnJp
ZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkpOwogICAgIFdlYkNvcmU6
OlNldHRpbmdzOjpzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoZmFsc2UpOwogICAgIFdlYkNvcmU6
OlNldHRpbmdzOjpzZXRVc2VzTW9ja1Njcm9sbEFuaW1hdG9yKGZhbHNlKTsKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCkBAIC0xNzM3LDEyICsxNzM3LDEyIEBAIEV4Y2VwdGlvbk9yPGludD4gSW50
ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKCkKIAogVmVjdG9yPFN0cmlu
Zz4gSW50ZXJuYWxzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIHJldHVybiBXVEY6OnVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlcykKIHsKLSAgICBX
ZWJDb3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKKyAgICBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0KIAogVmVjdG9yPFN0
cmluZz4gSW50ZXJuYWxzOjp1c2VyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDBhNGVmOGJjYzlk
YTZhYTI5MDA0OTg2Zjg0MjRlNDczMDRiNzI1MmUuLjQyYzNiNDA3NzYyYWFjMWU3MDhkNzlkNDcw
NGY4MmEwYThkYWU4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTQ5NSw3ICs0OTUsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3VsZFVzZUZvbnRTbW9v
dGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogdm9pZCBXZWJQcm9jZXNzOjp1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKSBjb25z
dAogewogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhsYW5ndWFnZXMpOwotICAg
IGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJk
QWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320182</attachid>
            <date>2017-09-07 14:32:00 -0700</date>
            <delta_ts>2017-09-07 14:38:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176561-20170907143159.patch</filename>
            <type>text/plain</type>
            <size>98786</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi5lNjY2NDRjYTIxOGY2OWFi
OTRmYWFhMTRkOTcxNGZiYTE2YzljOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpk
ZWZhdWx0TG9jYWxlKToKKwogMjAxNy0wOS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgIm1hbGxvYyIgYW5kICJmcmVlIiBm
cm9tIEpTQy9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggZmE4YjFhZGIzOTZkNDk3ZDE4NzBmYmY1OGI4YmU2ZGMzMGVjZGVi
YS4uMWEzN2ZlM2E3NDk5M2NkMzUyN2FjMjk3Mzc4YjE0MjA1OGQwZThhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSB3YXMgdGhlIG9ubHkqIHVzZXIg
b2YgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzICh3aXRoIDEgZXhjZXB0aW9uKS4KKyAg
ICAgICAgVGhhdCBleGNlcHRpb24gaXMgdGhhdCBKYXZhU2NyaXB0Q29yZSBuZWVkZWQgdGhlIGZ1
bmN0aW9uYWxpdHkgb2YgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSwgYnV0IGl0CisgICAgICAg
IGNvdWxkbid0IGdldCBpdCBiZWNhdXNlIG9mIHRoZSBsYXllcmluZyB2aW9sYXRpb24sIHNvIGlu
c3RlYWQgaXQgZXJyb25lb3VzbHkgY2FsbGVkIGludG8KKyAgICAgICAgUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzIGluc3RlYWQuIFRoaXMgcGF0Y2ggbWVyZ2VzIHRoZXNlIHR3byBmaWxl
cyBpbnRvIFdURiBzbyBKU0MgZ2V0cyB0aGUKKyAgICAgICAgcmlnaHQgZnVuY3Rpb24gYW5kIHRo
ZSBQQUwgZWZmb3J0IGhhcyBvbmUgbGVzcyBmaWxlIHRvIG1vdmUgZnJvbSBXZWJDb3JlL3BsYXRm
b3JtIGludG8gUEFMLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAuCisg
ICAgICAgIChXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjp1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmguCisgICAgICAgICogd3Rm
L1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2U6
CisgICAgICAgICogd3RmL1BsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1XUEUuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbS4KKyAgICAgICAgKFdURjo6aHR0cFN0eWxl
TGFuZ3VhZ2VDb2RlKToKKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5n
ZSk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAg
ICAgICogd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwLgorICAgICAgICAqIHd0
Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcC4KKwogMjAxNy0wOS0wNiAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXF1aXJlIExvZ2dpbmdI
ZWxwZXIgb3ZlcnJpZGVzIHRvIHByb3ZpZGUgaWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4Y2Zi
ZTEyNDlhZDBlOWIwNmZiM2M1NzU1ZjI2ZmU2NmIyMGQ3MTEuLmUxOTdlYTk2YzI0YmYyMGM5YjQx
MTA4OWQ1NzYzYzYxZDdiZjg3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxNy0w
OS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3Vh
Z2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHA6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAgICAg
ICAqIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0Yu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbToKKyAgICAgICAg
KiBzdmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCiAyMDE3LTA5LTA3ICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FS
TV0gQnVpbGRpbmcgRkVMaWdodG5pbmdORU9OLmNwcCBmYWlscyBkdWUgdG8gbWlzc2luZyB7UG9p
bnQsU3BvdH1MaWdodFNvdXJjZSBkZWNsYXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODUzYjU4ODI1YzU0
MmIyNmFlZDRmMWNkM2FlZWUxYTQ1ODc2ZmJlMy4uNTg2ZGZhMDk3NmY3MmQ1OWU2ZDM5MWZlODU5
OGExZjk4YjM1NTcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wOS0wNyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtQQUxdIFVu
aWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFu
Z2VkIGNvbnN0KToKKwogMjAxNy0wOS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxl
bnQgb2YgV0tQYWdlVUlDbGllbnQncyBwYWdlRGlkU2Nyb2xsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggN2U1MWViYWY2YmZmOGVmYjFmY2NjZDgxZDI4NDBmZjcyYjQ0YzVlOC4uYjE2
ODc5MGFkYTc0YjZiYjRhN2UwYjU1MTNiNmEwYTIyYTg3MDU4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViTlNVc2VyRGVmYXVsdHNF
eHRyYXMubW06CisKIDIwMTctMDktMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdW51c2VkIGJpdHMgb2YgY29kZSBhbmQgcmVz
b3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmlu
ZGV4IDlmMTc0ZDY0MDVjOWYzYTA4NmIyNjM1NmJkY2VlYmJjZjA0ODQwODUuLjI1ZDIxZjJlZTVj
ZTNjNzY3MjMxNmFhZjZmN2EwMzVkNmEyMWY5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSA8dW5p
Y29kZS91bG9jLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91bnVtc3lzLmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTU3NiwxNiArNTc2LDE0IEBAIFN0cmluZyBkZWZhdWx0TG9jYWxlKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgCiAgICAgLy8gV2ViQ29yZSdzIGdsb2JhbCBvYmplY3RzIHdpbGwg
aGF2ZSB0aGVpciBvd24gaWRlYXMgb2YgaG93IHRvIGRldGVybWluZSB0aGUgbGFuZ3VhZ2UuIEl0
IG1heQogICAgIC8vIGJlIGRldGVybWluZWQgYnkgV2ViQ29yZS1zcGVjaWZpYyBsb2dpYyBsaWtl
IHNvbWUgV0sgc2V0dGluZ3MuIFVzdWFsbHkgdGhpcyB3aWxsIHJldHVybiB0aGUKLSAgICAvLyBz
YW1lIHRoaW5nIGFzIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpWzBdLgorICAgIC8v
IHNhbWUgdGhpbmcgYXMgdXNlclByZWZlcnJlZExhbmd1YWdlcygpWzBdLgogICAgIGlmIChhdXRv
IGRlZmF1bHRMYW5ndWFnZSA9IHN0YXRlLmpzQ2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZWZhdWx0TGFuZ3VhZ2UpIHsKICAgICAgICAgU3RyaW5n
IGxvY2FsZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwogICAgICAgICBpZiAoIWxvY2FsZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplTGFuZ3VhZ2VUYWcobG9jYWxlKTsK
ICAgICB9Ci0gICAgCi0gICAgLy8gSWYgV2ViQ29yZSBpc24ndCBhcm91bmQgdG8gdGVsbCB1cyBo
b3cgdG8gZ2V0IHRoZSBsYW5ndWFnZSB0aGVuIGZhbGwgYmFjayB0byBvdXIgb3duIHdheSBvZgot
ICAgIC8vIGRvaW5nIGl0LCB3aGljaCBtb3N0bHkgZm9sbG93cyB3aGF0IFdlYkNvcmUgd291bGQg
aGF2ZSBkb25lLgotICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOworCisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNl
clByZWZlcnJlZExhbmd1YWdlcygpOwogICAgIGlmICghbGFuZ3VhZ2VzLmlzRW1wdHkoKSAmJiAh
bGFuZ3VhZ2VzWzBdLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbGl6ZUxhbmd1
YWdlVGFnKGxhbmd1YWdlc1swXSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMGExOTA4YmFkZDkwMjc4N2NjYjQ1ZTExN2FlZTEyODFiMjY3YmY1
Li4xMjliOTg1Mzk2NjhmZWZjNjAyMDRiNzZhODM1ZTY0NzZmODg2ZTFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMiw5ICsxMzIsMTAgQEAKIAkJQUQ4
OUI2QjcxRTY0MTUwODAwOTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCNTFFNjQxNTA4
MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJQUQ4OUI2QkEx
RTY0MTUwRjAwOTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4OUI2QjkxRTY0MTUwRjAw
OTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tICovOyB9OwogCQlBREYyQ0U2
NzFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjUxRTM5RjEwNjAwNjg4
OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLzsgfTsKKwkJQzJCQ0ZDNDAxRjYxRDEz
MDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAg
Ki87IH07CisJCUMyQkNGQzQyMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkNGQzQxMUY2MUQ2
MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAqLzsgfTsKIAkJQ0Q1NDk3QUMxNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LzsgfTsKIAkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjFG
RDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLzsgfTsKLQkJRENF
RTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUy
MUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMu
bW0gKi87IH07CiAJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRp
bGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxNTU1NkYzMThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAq
LzsgfTsKIAkJRTMxMUZCMTcxRjBBNTY4QjAwM0MwOERFIC8qIFRocmVhZEdyb3VwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTFGQjE1MUYwQTU2
OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgKi87IH07CiAJCUUzOEM0MTI1MUVCNEUwNEMw
MDQyOTU3RCAvKiBDUFVUaW1lQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzhDNDEyNDFFQjRFMDRDMDA0Mjk1N0QgLyogQ1BVVGltZUNvY29h
Lm1tICovOyB9OwpAQCAtNTQ3LDYgKzU0OCw5IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVm
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkMzRTFGNjFEMTMwMDBD
OTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkMzRjFG
NjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDNDEx
RjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2VDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM4RjU5N0NBMkE1NzQxN0ZCQUI5MkZENiAvKiBSYW5kb21EZXZpY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZG9tRGV2aWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTU3LDggKzU2MSw2IEBACiAJCURD
RUUyMUZBMUNFQTc1MzgwMDBDMjM5NiAvKiBDRkJ1bmRsZVNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBDRkJ1bmRsZVNQSS5oOyBwYXRoID0gY2YvQ0ZCdW5kbGVTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIxRkMxQ0VBNzU1MTAwMEMyMzk2IC8q
IEJsb2NrT2JqQ0V4Y2VwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmxvY2tPYmpDRXhjZXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VF
MjFGRDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURDRUUyMUZFMUNFQTc1NTEwMDBDMjM5NiAvKiBQ
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCURDRUUyMUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMjA0MUNFQjk4NjkwMDBDMjM5NiAvKiBCYWNrd2FyZHNH
cmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrd2FyZHNHcmFwaC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERTVBMDlGQjFCQTM2OTkyMDAzRDQ0MjQg
LyogQ29tbW9uQ3J5cHRvU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bW1vbkNyeXB0b1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTU1NTZGMzE4
QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MCw2ICs2NDIsNyBAQAogCQkyQ0RFRDBGMDE4
MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUMyQkNGQzQxMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAq
LywKIAkJCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAqLywKIAkJ
CQkxQUZERTY0NzE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNhc3RzQ0YuaCAqLywKIAkJCSk7CkBA
IC04NDYsNiArODQ5LDggQEAKIAkJCQk1MTgyQzIyQzFGMkJDN0U2MDA1OUJBN0MgLyogSW5zdGFu
Y2VDb3VudGVkLmggKi8sCiAJCQkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJhdG9y
QWRhcHRvcnMuaCAqLywKIAkJCQk3Q0REN0ZGOTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JS
YW5nZS5oICovLAorCQkJCUMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAg
Ki8sCisJCQkJQzJCQ0ZDM0YxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmggKi8sCiAJCQkJ
NTM5RUIwNjIxRDU1Mjg0MjAwQzgyRUY3IC8qIExFQkRlY29kZXIuaCAqLywKIAkJCQlBNzBEQTA4
MzE3OTlGMDREMDA1MjlBOUIgLyogTGlzdER1bXAuaCAqLywKIAkJCQlBOEE0NzJDMTE1MUE4MjVB
MDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCAqLywKQEAgLTkxMiw4ICs5MTcsNiBAQAogCQkJCTBG
ODI0QTY1MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmggKi8sCiAJCQkJQTg3NkRCRDcx
NTE4MTZFNTAwREFEQjk1IC8qIFBsYXRmb3JtLmggKi8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAw
M0I1OUQyIC8qIFBsYXRmb3JtUmVnaXN0ZXJzLmggKi8sCi0JCQkJRENFRTIxRkUxQ0VBNzU1MTAw
MEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oICovLAotCQkJCURDRUUy
MUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMu
bW0gKi8sCiAJCQkJMEZGODYwOTQxQkNDQkQ3NDAwNDUxMjdGIC8qIFBvaW50ZXJDb21wYXJpc29u
LmggKi8sCiAJCQkJMEY5RDMzNUQxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCAq
LywKIAkJCQkwRjlEMzM1RTE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uaCAqLywKQEAg
LTEzNDQsNyArMTM0Nyw2IEBACiAJCQkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3Nz
VGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlBMTUxQTgyNUIwMDQx
MjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjBGNTI2QjFGNDIxRkY4MDA0QTQ1MkMgLyogU3RyaW5n
TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAv
KiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNG
RiAvKiBDdXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5RTE1MUE4MjVC
MDA0MTIzRkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzNjQsNiArMTM2Niw4
IEBACiAJCQkJMEYzMEJBOTAxRTc4NzA4RTAwMkNBODQ3IC8qIEdsb2JhbFZlcnNpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRh
dGVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNGRiAv
KiBIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQ0ZDNDAxRjYxRDEzMDAwQzky
MjJDIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkNGQzQyMUY2MUQ2MTYw
MEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2NDZBMUI2
RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJGMURG
Q0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzUzNEYyQTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyBpbiBTb3Vy
Y2VzICovLApAQCAtMTM4NSw3ICsxMzg5LDYgQEAKIAkJCQk1MUYxNzUyQjFGM0Q0ODYwMDBDNzQ5
NTAgLyogUGVyc2lzdGVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzUyQzFG
M0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFGMTc1MkQxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRFbmNvZGVyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM2MjE2NURC
QTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYx
MUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNC
NzI1RUM5ODc0NDZBRDkzRjFBNDQwIC8qIFJhbmRvbURldmljZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE0MTIsNiArMTQxNSw3IEBACiAJCQkJQTVCQTE1RkMxODI0MzVBNjAwQTgyRTY5IC8qIFN0
cmluZ0ltcGxDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGNTE4MjQzNDgwMDBBODJF
NjkgLyogU3RyaW5nSW1wbE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUYzMTgyNDMz
QTkwMEE4MkU2OSAvKiBTdHJpbmdNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjBGNTI2QjFG
NDIxRkY4MDA0QTQ1MkMgLyogU3RyaW5nTWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RERCRkE3MTY2NkRGQTMwMEM1NUZFRiAvKiBTdHJpbmdQcmludFN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5M0YxOTkzRTE5RDc5NThEMDBDMjM5MEIgLyogU3RyaW5nVmlldy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzkzNEJENTE4QTFGMTY5MDBEMEQ2QTEgLyogU3RyaW5nVmlld0NG
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAzYTZjZTllNGVkZWE5
OThhNTNlYTQ0ZTU0OWM2Mzc1NzBlNzU2YTcyLi5lMjA3N2QyMDY3ZjY0YTZhNjBmMDdmNmQ0OTAw
ZTFjMWI0ZjZlOWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNjAsNiArNjAsNyBAQCBzZXQo
V1RGX0hFQURFUlMKICAgICBJbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaAogICAgIEl0ZXJhdG9y
QWRhcHRvcnMuaAogICAgIEl0ZXJhdG9yUmFuZ2UuaAorICAgIExhbmd1YWdlLmgKICAgICBMaXN0
SGFzaFNldC5oCiAgICAgTGl2ZW5lc3MuaAogICAgIExvY2suaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhMmU4YzEwMDNjMTU1M2M4ZWIyYzM5NTE5NWMxYzQ3ODFiZjZmNTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSwxNzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lO
KQorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBTdGF0aWNMb2NrIHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNNdXRleDsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24+IE9ic2VydmVyTWFwOworc3RhdGljIE9ic2VydmVyTWFwJiBvYnNlcnZlck1hcCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9ic2VydmVyTWFwPiBtYXA7CisgICAgcmV0
dXJuIG1hcC5nZXQoKTsKK30KKwordm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQq
IGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbiBjdXN0b21PYnNlcnZlcikK
K3sKKyAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBjdXN0b21PYnNlcnZlcik7Cit9CisK
K3ZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQoreworICAg
IEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRleHQpKTsKKyAgICBvYnNlcnZlck1h
cCgpLnJlbW92ZShjb250ZXh0KTsKK30KKwordm9pZCBsYW5ndWFnZURpZENoYW5nZSgpCit7Cisg
ICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2VydmVyTWFwKCkuZW5kKCk7CisgICAg
Zm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9ic2VydmVyTWFwKCkuYmVnaW4oKTsg
aXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAgICAgaXRlci0+dmFsdWUoaXRlci0+a2V5KTsKK30K
KworU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCit7CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3Vh
Z2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmIChsYW5ndWFnZXMuc2l6ZSgp
KQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOworCisgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJp
ZGU7CisgICAgcmV0dXJuIG92ZXJyaWRlOworfQorCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQoreworICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOworfQorCit2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCit7CisgICAgcHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGUoKSA9IG92ZXJyaWRlOworICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisKK3N0YXRp
YyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmlu
Z3MpCit7CisgICAgVmVjdG9yPFN0cmluZz4gY29weTsKKyAgICBjb3B5LnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBzdHJp
bmdzKQorICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHko
KSk7CisgICAgcmV0dXJuIGNvcHk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+
IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICAgICAgVmVjdG9yPFN0cmlu
Zz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKKyAgICAgICAgaWYg
KCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KG92
ZXJyaWRlKTsKKyAgICB9CisKKyAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlmaWVyKGNv
bnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQoreworICAgIFN0cmluZyBsb3dlcmNhc2VMYW5ndWFn
ZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICAKKyAg
ICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFu
Z3VhZ2VDb2RlWzJdID09ICdfJykKKyAgICAgICAgbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLnJlcGxh
Y2UoMiwgMSwgIi0iKTsKKworICAgIHJldHVybiBsb3dlcmNhc2VMYW5ndWFnZUNvZGU7Cit9CisK
K3NpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RN
YXRjaCkKK3sKKyAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3VhZ2UgPSBsYW5ndWFnZS5jb252ZXJ0
VG9BU0NJSUxvd2VyY2FzZSgpOworICAgIFN0cmluZyBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRj
aDsKKyAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZTsKKyAgICBzaXplX3QgbGFu
Z3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7CisgICAgc2l6ZV90IGxhbmd1YWdlTWF0
Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKKyAgICBib29sIGNhbk1hdGNoTGFuZ3VhZ2VP
bmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09IDIgfHwgKGxvd2VyY2FzZUxhbmd1
YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMl0gPT0gJy0nKSk7CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlzdC5zaXplKCk7ICsraSkgeworICAg
ICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QgPSBjYW5vbmljYWxMYW5n
dWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKKworICAgICAgICBpZiAobG93ZXJjYXNl
TGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QpIHsKKyAgICAgICAgICAg
IGV4YWN0TWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYgY2Fub25pY2FsaXplZExhbmd1YWdl
RnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgeworICAgICAgICAgICAgaWYgKGxvd2VyY2FzZUxhbmd1
YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzBdICYmIGxvd2VyY2FzZUxh
bmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzFdKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSAmJiBjYW5v
bmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9PSAyKSB7CisgICAgICAgICAgICAg
ICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0gbGFuZ3VhZ2VMaXN0W2ldOworICAg
ICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4ID0gaTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1hdGNoQnV0Tm90
TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxlbmd0aCgp
ID49IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZSA9
IGxhbmd1YWdlTGlzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRjaEJ1dE5v
dExvY2FsZU1hdGNoSW5kZXggPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0KKworICAgIGV4YWN0TWF0Y2ggPSBmYWxzZTsKKworICAgIC8vIElm
IHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2ggYW5kIGEgbGFuZ3VnZS1idXQtbm90
LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQorICAgIC8vIGxhbmd1Z2Utb25seSBtYXRjaCBhcyBp
cyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBleGFtcGxlLCBpZiB0aGUgbGlzdAor
ICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5kICJlbiIgYW5kIHRoZSB1c2VyIHBy
ZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgorICAgIGlmIChsYW5ndWFnZVdpdGhv
dXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlV2l0aG91dExv
Y2FsZU1hdGNoSW5kZXg7CisKKyAgICBpZiAobGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZS5sZW5n
dGgoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4
OworCisgICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7Cit9CisKK1N0cmluZyBkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKK3sKKyNpZiBV
U0UoQ0YpICYmICFQTEFURk9STShXSU4pCisgICAgaWYgKCFsb2NhbGVOYW1lLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0
eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKS5nZXQoKSwga0NGTG9jYWxlSWRl
bnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSkuZ2V0KCk7CisjZW5k
aWYKKyAgICByZXR1cm4gbG9jYWxlTmFtZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzA1YjkxODk5ZDRjZGVmZTBiYWYwMGJjZDAyMTNmYmJkN2M4YzQyYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAxMCwgMjAxMywgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXVEYgewor
CitXVEZfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNhZmUuCitX
VEZfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhy
ZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCitXVEZfRVhQT1JUIFZlY3Rv
cjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworV1RGX0VYUE9SVCB2
b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYp
OworV1RGX0VYUE9SVCBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNv
bnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3Qs
IGJvb2wmIGV4YWN0TWF0Y2gpOworV1RGX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKy8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmlj
IGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2UuCit2b2lk
IGxhbmd1YWdlRGlkQ2hhbmdlKCk7CisKKy8vIFRoZSBvYnNlcnZlciBmdW5jdGlvbiB3aWxsIGJl
IGNhbGxlZCB3aGVuIHN5c3RlbSBsYW5ndWFnZSBjaGFuZ2VzLgordHlwZWRlZiB2b2lkICgqTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uKSh2b2lkKiBjb250ZXh0KTsKK1dURl9FWFBPUlQg
dm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXJGdW5jdGlvbik7CitXVEZfRVhQT1JUIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKKworV1RGX0VYUE9SVCBTdHJpbmcgZGlzcGxheU5h
bWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsKK30KKwordXNpbmcgV1RGOjpkZWZh
dWx0TGFuZ3VhZ2U7Cit1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit1c2luZyBX
VEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZTsKK3VzaW5nIFdURjo6b3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcgV1RGOjppbmRleE9mQmVzdE1hdGNoaW5nTGFu
Z3VhZ2VJbkxpc3Q7Cit1c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlczsK
K3VzaW5nIFdURjo6YWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKK3VzaW5nIFdURjo6cmVtb3Zl
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKK3VzaW5nIFdURjo6ZGlzcGxheU5hbWVGb3JMYW5ndWFn
ZUxvY2FsZTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2Ug
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBjZGE1YzI5NzIzZDM3YWRk
NWIwOGNiYmU4NjFlMzQ2Yjk3OTFjZjU3Li5kYTAzOGEwMWZjMzBjM2U0ODM4ZmQzNzZiYzU0YTFl
NTRjM2JlNzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTIsOCArMTIsOCBAQCBs
aXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGxpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxp
bnV4LmNwcAogCiAgICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICB1bml4L0xhbmd1YWdlVW5p
eC5jcHAKIAotICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCiAgICAg
VW5pU3RkRXh0cmFzLmNwcAogCiAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VVbml4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5
LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlCmluZGV4IDQ0YjIy
MDBiYmI2ZjRmMmExNmE5OTQ3YTQ0MDcyN2FhZjE3MWQ1M2YuLjNlNzdjYzRhNDgyOWRiYjc2NTM2
NGNhMDFhNDBiOWY4YjY0ODgwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SlNDT25seS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2UK
QEAgLTEsNSArMSw0IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIFBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCiAKICAgICBnZW5lcmljL01haW5UaHJlYWRHZW5l
cmljLmNwcAogICAgIGdlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAgLTgsMTEgKzcsMTMg
QEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKIGlmIChXSU4zMikKICAgICBsaXN0KEFQUEVORCBX
VEZfU09VUkNFUwogICAgICAgICB3aW4vQ1BVVGltZVdpbi5jcHAKKyAgICAgICAgd2luL0xhbmd1
YWdlV2luLmNwcAogICAgICAgICB0ZXh0L3dpbi9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
V2luLmNwcAogICAgICkKIGVsc2UgKCkKICAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAg
ICAgICB1bml4L0NQVVRpbWVVbml4LmNwcAorICAgICAgICB1bml4L0xhbmd1YWdlVW5peC5jcHAK
ICAgICAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAog
ICAgICkKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGI0YjFkYWYzMzk0
NTc5ZTJlODM0M2ExMmUwMDEyNDNlYjRkMjk4OWEuLmYwNzFkMmYwZWJiMDk0MWFhNzgzMmY1OWE0
MTY4MDljMjVkYTJjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0xMCwxNSArMTAs
MTUgQEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMK
ICAgICBBdXRvZHJhaW5lZFBvb2xNYWMubW0KICAgICBCbG9ja09iakNFeGNlcHRpb25zLm1tCi0g
ICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCiAgICAgUnVuTG9vcFRpbWVy
Q0YuY3BwCiAgICAgU2NoZWR1bGVQYWlyQ0YuY3BwCiAgICAgU2NoZWR1bGVQYWlyTWFjLm1tCiAK
LSAgICB0ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCi0KKyAgICBj
Zi9MYW5ndWFnZUNGLmNwcAogICAgIGNmL1J1bkxvb3BDRi5jcHAKIAorICAgIHRleHQvbWFjL1Rl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKwogICAgIGNvY29hL0NQVVRpbWVDb2Nv
YS5tbQogICAgIGNvY29hL01lbW9yeUZvb3RwcmludENvY29hLmNwcAogICAgIGNvY29hL01lbW9y
eVByZXNzdXJlSGFuZGxlckNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzU4
MGZjNzYwOWZmZGMzYWIzYjQ2ZGEwZGVjODdhOTAzNGZlNzdjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzX2gKLSNkZWZpbmUg
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzX2gKLQotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0K
LVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKTsKLQotLy8gVGhpcyBpcyB0aHJlYWQtc2FmZS4K
LVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6c2V0UGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrOwotdXNpbmcgV1RGOjpwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNh
ZTcxYWVmYzM2YWU4OTVhOGFmYmU3NmE2NGM1M2M2MzA5NmU0NDAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTQ0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTEsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIlBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgotCi0jaW1w
b3J0ICJCbG9ja09iakNFeGNlcHRpb25zLmgiCi0jaW1wb3J0IDxtdXRleD4KLSNpbXBvcnQgPHVu
aWNvZGUvdWxvYy5oPgotI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbXBvcnQgPHd0Zi9M
b2NrLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaD4KLSNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIHZvaWQgKCpj
YWxsYmFjaykoKTsKLQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFu
Z2VkQ2FsbGJhY2sodm9pZCAoKnBhc3NlZENhbGxiYWNrKSgpKQotewotICAgIGNhbGxiYWNrID0g
cGFzc2VkQ2FsbGJhY2s7Ci19Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExhbmd1YWdl
c011dGV4OwotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdlcygpCi17
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7Ci0g
ICAgcmV0dXJuIGxhbmd1YWdlczsKLX0KLQotfQotCi1AaW50ZXJmYWNlIFdURkxhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIgOiBOU09iamVjdAotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV1RGTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlcgotCi0rICh2b2lkKWxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2U6
KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgVU5VU0VEX1BBUkFNKG5vdGlm
aWNhdGlvbik7Ci0KLSAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBs
b2NrKFdURjo6cHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgICAgICBXVEY6OnByZWZlcnJl
ZExhbmd1YWdlcygpLmNsZWFyKCk7Ci0gICAgfQotICAgIAotICAgIGlmIChXVEY6OmNhbGxiYWNr
KQotICAgICAgICBXVEY6OmNhbGxiYWNrKCk7Ci19Ci0KLUBlbmQKLQotbmFtZXNwYWNlIFdURiB7
Ci0KLXN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKE5TU3RyaW5nICpsYW5ndWFn
ZSkKLXsKLSAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOwotICAgIFNJbnQzMiByZWdpb25Db2RlOwot
ICAgIFNJbnQzMiBzY3JpcHRDb2RlOwotICAgIENGU3RyaW5nRW5jb2Rpbmcgc3RyaW5nRW5jb2Rp
bmc7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyB0cmFuc2Zvcm1hdGlvbiBpcyB2ZXJ5IHdyb25nOgot
ICAgIC8vIDEuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgQ0ZCdW5kbGUgbG9jYWxpemF0aW9uIG5h
bWVzIHdvdWxkIGJlIGF0IGFsbCByZWxhdGVkIHRvIGxhbmd1YWdlIG5hbWVzIGFzIHVzZWQgb24g
dGhlIFdlYi4KLSAgICAvLyAyLiBTY3JpcHQgTWFuYWdlciBjb2RlcyBjYW5ub3QgcmVwcmVzZW50
IGFsbCBsYW5ndWFnZXMgdGhhdCBhcmUgbm93IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0sIHNv
IHRoZSBjb252ZXJzaW9uIGlzIGxvc3N5LgotICAgIC8vIDMuIFRoaXMgc2hvdWxkIHByb2JhYmx5
IG1hdGNoIHdoYXQgaXMgc2VudCBieSB0aGUgbmV0d29yayBsYXllciBhcyBBY2NlcHQtTGFuZ3Vh
Z2UsIGJ1dCBjdXJyZW50bHksIHRoYXQncyBpbXBsZW1lbnRlZCBzZXBhcmF0ZWx5LgotICAgIENG
QnVuZGxlR2V0TG9jYWxpemF0aW9uSW5mb0ZvckxvY2FsaXphdGlvbigoQ0ZTdHJpbmdSZWYpbGFu
Z3VhZ2UsICZsYW5ndWFnZUNvZGUsICZyZWdpb25Db2RlLCAmc2NyaXB0Q29kZSwgJnN0cmluZ0Vu
Y29kaW5nKTsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExhbmd1YWdlQ29k
ZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDb3B5TG9jYWxpemF0aW9uRm9yTG9jYWxpemF0aW9uSW5mbyhs
YW5ndWFnZUNvZGUsIHJlZ2lvbkNvZGUsIHNjcmlwdENvZGUsIHN0cmluZ0VuY29kaW5nKSk7Ci0g
ICAgaWYgKHByZWZlcnJlZExhbmd1YWdlQ29kZSkKLSAgICAgICAgbGFuZ3VhZ2UgPSAoTlNTdHJp
bmcgKilwcmVmZXJyZWRMYW5ndWFnZUNvZGUuZ2V0KCk7Ci0KLSAgICAvLyBUdXJuIGEgJ18nIGlu
dG8gYSAnLScgaWYgaXQgYXBwZWFycyBhZnRlciBhIDItbGV0dGVyIGxhbmd1YWdlIGNvZGUKLSAg
ICBpZiAoW2xhbmd1YWdlIGxlbmd0aF0gPj0gMyAmJiBbbGFuZ3VhZ2UgY2hhcmFjdGVyQXRJbmRl
eDoyXSA9PSAnXycpIHsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVN0cmluZz4gbXV0YWJs
ZUxhbmd1YWdlQ29kZSA9IGFkb3B0TlMoW2xhbmd1YWdlIG11dGFibGVDb3B5XSk7Ci0gICAgICAg
IFttdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpIHJlcGxhY2VDaGFyYWN0ZXJzSW5SYW5nZTpOU01h
a2VSYW5nZSgyLCAxKSB3aXRoU3RyaW5nOkAiLSJdOwotICAgICAgICByZXR1cm4gbXV0YWJsZUxh
bmd1YWdlQ29kZS5nZXQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbGFuZ3VhZ2U7Ci19Ci0KLVZl
Y3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0jaWYgUExB
VEZPUk0oTUFDKQotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRp
c3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgW1tOU0Rpc3RyaWJ1dGVkTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOltXVEZMYW5ndWFnZUNoYW5n
ZU9ic2VydmVyIHNlbGZdIHNlbGVjdG9yOkBzZWxlY3RvcihsYW5ndWFnZVByZWZlcmVuY2VzRGlk
Q2hhbmdlOikgbmFtZTpAIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRp
b24iIG9iamVjdDpuaWxdOwotICAgIH0pOwotI2VuZGlmCi0KLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7Ci0KLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwcmVm
ZXJyZWRMYW5ndWFnZXNNdXRleCk7Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIGlmICh1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGFu
Z3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7Ci0gICAg
ICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0
KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBm
b3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAgICAgICAg
ICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKChO
U1N0cmluZyAqKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1
YWdlc0NvcHk7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUoKSk7Ci0KLSAgICBmb3IgKGF1dG8m
IGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcykKLSAgICAgICAgdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsK
LQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLQotICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhMTg3MmQ4OWE1MWIyYjZkNDg0Nzg4NmY3MDc3MWNlMzc2NjJmMzg3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIgotCi0jaW5jbHVkZSA8bG9jYWxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9p
ZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCAo
KikoKSkgeyB9Ci0KLS8vIFVzaW5nIHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkgaGVyZSBp
cyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCi0vLyBpdCBkb2Vzbid0IHN1cHBvcnQgY2hhbmdpbmcg
dGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1cm5zCi0vLyBhbHdheXMgdGhlIHNhbWUg
dmFsdWUuCi1zdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQotewotICAgIFN0cmluZyBs
b2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwotICAgIGlmIChsb2Nh
bGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1
bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgi
KSkKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZW4tVVMiKTsKLQotICAgIFN0cmluZyBu
b3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7Ci0gICAgbm9ybWFsaXplZERlZmF1bHQu
cmVwbGFjZSgnXycsICctJyk7Ci0gICAgbm9ybWFsaXplZERlZmF1bHQudHJ1bmNhdGUobm9ybWFs
aXplZERlZmF1bHQuZmluZCgnLicpKTsKLSAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1bHQ7Ci19
Ci0KLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0g
ICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c1dpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5YWQyM2M1NDM5Y2UyMzMy
MDgwNWIyOWQ5ODMyMTI0MTY3NjNjNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzV2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCIKLQotI2luY2x1
ZGUgPG11dGV4PgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdURiB7Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHBsYXRmb3JtTGFuZ3VhZ2VN
dXRleDsKLQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkQ2Fs
bGJhY2sodm9pZCAoKikoKSkgeyB9Ci0KLXN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUg
bG9jYWxlVHlwZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKLXsKLSAgICBMQU5HSUQgbGFuZ0lE
ID0gR2V0VXNlckRlZmF1bHRVSUxhbmd1YWdlKCk7Ci0gICAgaW50IGxvY2FsZUNoYXJzID0gR2V0
TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOwotICAgIGlmICghbG9jYWxlQ2hh
cnMpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLSAgICBVQ2hhciogbG9jYWxlTmFtZUJ1ZjsK
LSAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsb2Nh
bGVDaGFycywgbG9jYWxlTmFtZUJ1Zik7Ci0gICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZv
KGxhbmdJRCwgbG9jYWxlVHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOwotICAgIGlm
ICghbG9jYWxlQ2hhcnMpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLSAgICBpZiAobG9jYWxl
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLQotICAgIGxvY2FsZU5h
bWUudHJ1bmNhdGUobG9jYWxlTmFtZS5sZW5ndGgoKSAtIDEpOwotICAgIHJldHVybiBsb2NhbGVO
YW1lOwotfQotCi1zdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQotewotICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7Ci0KLSAg
ICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwotICAgIGlmICghY29tcHV0
ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gY29tcHV0ZWREZWZh
dWx0TGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCk7Ci0KLSAgICBTdHJpbmcgbGFuZ3VhZ2VOYW1lID0g
bG9jYWxlSW5mbyhMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKLSAgICBTdHJpbmcgY291
bnRyeU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJpbmcoKSk7
Ci0KLSAgICBpZiAoY291bnRyeU5hbWUuaXNFbXB0eSgpKQotICAgICAgICBjb21wdXRlZERlZmF1
bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXB1dGVkRGVm
YXVsdExhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7Ci0KLSAgICBy
ZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IHBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0gICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5n
dWFnZSgpIH07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFr
ZQppbmRleCA0ZjE1YjZkZGE5ZjRjZmY5NDYyNzNhMjZkZWE5ODU0YTUyNmY2ZTFhLi40YjQxMGU1
ZmI3MmRlNTkwMjU2ZTQyOWI2YzFiZWUyNzNjODRlNjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5j
bWFrZQpAQCAtMSw1ICsxLDQgQEAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAKICAgICBVbmlTdGRFeHRyYXMuY3BwCiAK
ICAgICBnZW5lcmljL01haW5UaHJlYWRHZW5lcmljLmNwcApAQCAtMTYsNiArMTUsNyBAQCBsaXN0
KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVVW5peC5jcHAKIAogICAgIHVuaXgvQ1BVVGltZVVuaXguY3BwCisgICAgdW5peC9MYW5n
dWFnZVVuaXguY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm1XaW4uY21ha2UKaW5kZXggMzZiY2VjNGI2NjMzYjI1YzM5ZjE0ZDc4ZTFhNTVlY2Q0M2Q0OGQy
Mi4uNWNmZWMwNzdjNGU1MzFhZWJhNmExZGQ2MzM2ZGJkOTI4YWI4Zjk5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1XaW4uY21ha2UKQEAgLTMsMTEgKzMsMTAgQEAgbGlzdChBUFBFTkQgV1RGX0hFQURFUlMK
ICkKIAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNXaW4uY3BwCi0KICAgICB0ZXh0L3dpbi9UZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVV2luLmNwcAogCiAgICAgd2luL0NQVVRpbWVXaW4uY3BwCisgICAgd2luL0xhbmd1YWdlV2lu
LmNwcAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAogICAgIHdpbi9NZW1vcnlGb290cHJpbnRX
aW4uY3BwCiAgICAgd2luL01lbW9yeVByZXNzdXJlSGFuZGxlcldpbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwIGIvU291cmNlL1dURi93dGYvY2YvTGFu
Z3VhZ2VDRi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyMDNkMTdjZjg5YTIwM2I5ZmFjYjFjMWE4YmFiMWI2
ODQwOWM1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0Yu
Y3BwCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAy
MDA2LCAyMDEwLCAyMDExLCAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgi
CisKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1ZGUg
PG11dGV4PgorI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9jZi9D
RkJ1bmRsZVNQSS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKworc3RhdGljIFN0YXRpY0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7CisK
K3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKKyAgICByZXR1cm4g
bGFuZ3VhZ2VzOworfQorCitzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShDRlN0
cmluZ1JlZiBsYW5ndWFnZSkKK3sKKyAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOworICAgIFNJbnQz
MiByZWdpb25Db2RlOworICAgIFNJbnQzMiBzY3JpcHRDb2RlOworICAgIENGU3RyaW5nRW5jb2Rp
bmcgc3RyaW5nRW5jb2Rpbmc7CisKKyAgICAvLyBGSVhNRTogVGhpcyB0cmFuc2Zvcm1hdGlvbiBp
cyB2ZXJ5IHdyb25nOgorICAgIC8vIDEuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgQ0ZCdW5kbGUg
bG9jYWxpemF0aW9uIG5hbWVzIHdvdWxkIGJlIGF0IGFsbCByZWxhdGVkIHRvIGxhbmd1YWdlIG5h
bWVzIGFzIHVzZWQgb24gdGhlIFdlYi4KKyAgICAvLyAyLiBTY3JpcHQgTWFuYWdlciBjb2RlcyBj
YW5ub3QgcmVwcmVzZW50IGFsbCBsYW5ndWFnZXMgdGhhdCBhcmUgbm93IHN1cHBvcnRlZCBieSB0
aGUgcGxhdGZvcm0sIHNvIHRoZSBjb252ZXJzaW9uIGlzIGxvc3N5LgorICAgIC8vIDMuIFRoaXMg
c2hvdWxkIHByb2JhYmx5IG1hdGNoIHdoYXQgaXMgc2VudCBieSB0aGUgbmV0d29yayBsYXllciBh
cyBBY2NlcHQtTGFuZ3VhZ2UsIGJ1dCBjdXJyZW50bHksIHRoYXQncyBpbXBsZW1lbnRlZCBzZXBh
cmF0ZWx5LgorICAgIENGQnVuZGxlR2V0TG9jYWxpemF0aW9uSW5mb0ZvckxvY2FsaXphdGlvbihs
YW5ndWFnZSwgJmxhbmd1YWdlQ29kZSwgJnJlZ2lvbkNvZGUsICZzY3JpcHRDb2RlLCAmc3RyaW5n
RW5jb2RpbmcpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VD
b2RlID0gYWRvcHRDRihDRkJ1bmRsZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRpb25JbmZv
KGxhbmd1YWdlQ29kZSwgcmVnaW9uQ29kZSwgc2NyaXB0Q29kZSwgc3RyaW5nRW5jb2RpbmcpKTsK
KyAgICBpZiAocHJlZmVycmVkTGFuZ3VhZ2VDb2RlKQorICAgICAgICBsYW5ndWFnZSA9IHByZWZl
cnJlZExhbmd1YWdlQ29kZS5nZXQoKTsKKworICAgIC8vIFR1cm4gYSAnXycgaW50byBhICctJyBp
ZiBpdCBhcHBlYXJzIGFmdGVyIGEgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZQorICAgIGlmIChDRlN0
cmluZ0dldExlbmd0aChsYW5ndWFnZSkgPj0gMyAmJiBDRlN0cmluZ0dldENoYXJhY3RlckF0SW5k
ZXgobGFuZ3VhZ2UsIDIpID09ICdfJykgeworICAgICAgICBhdXRvIG11dGFibGVMYW5ndWFnZUNv
ZGUgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgMCwgbGFuZ3VhZ2UpKTsKKyAgICAgICAgQ0ZTdHJpbmdSZXBsYWNlKG11dGFibGVMYW5ndWFn
ZUNvZGUuZ2V0KCksIENGUmFuZ2VNYWtlKDIsIDEpLCBDRlNUUigiLSIpKTsKKyAgICAgICAgcmV0
dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7CisgICAgfQorCisgICAgcmV0dXJuIGxhbmd1
YWdlOworfQorCisjaWYgUExBVEZPUk0oTUFDKQorc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJl
bmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVm
LCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQoreworICAgIHsKKyAgICAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAg
ICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgIH0KKyAgICAKKyAgICBsYW5n
dWFnZURpZENoYW5nZSgpOworfQorI2VuZGlmCisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcygpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyBk
aXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwg
XiB7CisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRp
b25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCBudWxscHRyLCAmbGFuZ3VhZ2VQcmVmZXJl
bmNlc0RpZENoYW5nZSwgQ0ZTVFIoIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5nZWROb3Rp
ZmljYXRpb24iKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2Fs
ZXNjZSk7CisgICAgfSk7CisjZW5kaWYKKworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2Nr
PiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICBWZWN0b3I8U3RyaW5nPiYgdXNl
clByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworCisgICAgaWYgKHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdl
cygpKTsKKyAgICAgICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxh
bmd1YWdlcy5nZXQoKSk7CisgICAgICAgIGlmICghbGFuZ3VhZ2VDb3VudCkKKyAgICAgICAgICAg
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKKyAg
ICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5n
dWFnZUNvZGUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
bGFuZ3VhZ2VzLmdldCgpLCBpKSkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFZlY3RvcjxT
dHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OworICAgIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1YWdlcy5z
aXplKCkpOworCisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMpCisgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChs
YW5ndWFnZS5pc29sYXRlZENvcHkoKSk7CisKKyAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1
YWdlc0NvcHk7CisKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTAx
NmZiMmFlMzcwYjMxODEzNTliOGFlZjM5M2YzZTU3ZjUyZjM1MwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPGxv
Y2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFVzaW5nIHBhbmdvX2xhbmd1YWdlX2dl
dF9kZWZhdWx0KCkgaGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCisvLyBpdCBkb2Vzbid0
IHN1cHBvcnQgY2hhbmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1cm5zCisv
LyBhbHdheXMgdGhlIHNhbWUgdmFsdWUuCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2Uo
KQoreworICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0
cikpOworICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2Nh
bGVEZWZhdWx0LCAiUE9TSVgiKSkKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZW4tVVMi
KTsKKworICAgIFN0cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7CisgICAg
bm9ybWFsaXplZERlZmF1bHQucmVwbGFjZSgnXycsICctJyk7CisgICAgbm9ybWFsaXplZERlZmF1
bHQudHJ1bmNhdGUobm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicpKTsKKyAgICByZXR1cm4gbm9y
bWFsaXplZERlZmF1bHQ7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1
YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzYwMTA5ODU1MDAzZGEwYzJlYjMyNzk5NjE3OWIxNjNkMjk4MzgyNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTAsMCArMSw4MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiwgMjAxNyBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNs
dWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxhbmd1YWdl
TXV0ZXg7CisKK3N0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlwZSwgY29u
c3QgU3RyaW5nJiBmYWxsYmFjaykKK3sKKyAgICBMQU5HSUQgbGFuZ0lEID0gR2V0VXNlckRlZmF1
bHRVSUxhbmd1YWdlKCk7CisgICAgaW50IGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5mbyhsYW5n
SUQsIGxvY2FsZVR5cGUsIDAsIDApOworICAgIGlmICghbG9jYWxlQ2hhcnMpCisgICAgICAgIHJl
dHVybiBmYWxsYmFjazsKKyAgICBVQ2hhciogbG9jYWxlTmFtZUJ1ZjsKKyAgICBTdHJpbmcgbG9j
YWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsb2NhbGVDaGFycywgbG9jYWxl
TmFtZUJ1Zik7CisgICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwgbG9jYWxl
VHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOworICAgIGlmICghbG9jYWxlQ2hhcnMp
CisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBpZiAobG9jYWxlTmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKworICAgIGxvY2FsZU5hbWUudHJ1bmNhdGUobG9j
YWxlTmFtZS5sZW5ndGgoKSAtIDEpOworICAgIHJldHVybiBsb2NhbGVOYW1lOworfQorCitzdGF0
aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0
aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisKKyAgICBzdGF0aWMgU3RyaW5n
IGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOworICAgIGlmICghY29tcHV0ZWREZWZhdWx0TGFuZ3Vh
Z2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNv
bGF0ZWRDb3B5KCk7CisKKyAgICBTdHJpbmcgbGFuZ3VhZ2VOYW1lID0gbG9jYWxlSW5mbyhMT0NB
TEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKKyAgICBTdHJpbmcgY291bnRyeU5hbWUgPSBsb2Nh
bGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJpbmcoKSk7CisKKyAgICBpZiAoY291
bnRyeU5hbWUuaXNFbXB0eSgpKQorICAgICAgICBjb21wdXRlZERlZmF1bHRMYW5ndWFnZSA9IGxh
bmd1YWdlTmFtZTsKKyAgICBlbHNlCisgICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlID0g
bGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7CisKKyAgICByZXR1cm4gY29tcHV0ZWRE
ZWZhdWx0TGFuZ3VhZ2U7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZDkwMzI1NmMzNDE5
NmM4MjQzZWIxNjcyNTc5YWRlMWFkNTNlNzZiLi45YWQxY2MyN2JmZGQ2N2FiMTBiMGZmYmM1ZDky
ZmZlNGU3YjkwYzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI3NSw3ICsyMjc1LDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCiAgICAgcGxh
dGZvcm0vRmlsZVN5c3RlbS5jcHAKICAgICBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcAot
ICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xheW91dFVuaXQuY3BwCiAg
ICAgcGxhdGZvcm0vTGVuZ3RoLmNwcAogICAgIHBsYXRmb3JtL0xlbmd0aEJveC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4
YWMwYzAzODU3NWQzYWY4OTFlYmQ1Y2VmNmZhMTA5NGE2NjIyZGI3Li4zMjIwN2IwM2JmMDBlYWEw
MWU3NDQ5OGY0ZGE4MTBmYzRkZDI4ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjk3LDcgKzM2OTcsNiBAQAogCQk4NTRG
RTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRDBBMjI5N0JFMDA1OEQ3QUQgLyogVHJh
dmVyc2FsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODU0RkU3MzgwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MkUwQTIyOTdCRTAwNThE
N0FEIC8qIFRyZWVXYWxrZXIuY3BwICovOyB9OwogCQk4NTRGRTczOTBBMjI5N0JFMDA1OEQ3QUQg
LyogVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU0RkU3MkYwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NUVDOUFGQjBBNzFBMkM2
MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RUM5QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MUMyRUE0MTNG
QjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGlt
aW5nLmNwcCAqLzsgfTsKIAkJODYyRjEyOUUxOEMxNTc2RjAwNUM1NEFGIC8qIENvdW50ZWRVc2Vy
QWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyRjEyQTAxOEMx
REQwMjAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5
c3RlcmVzaXNBY3Rpdml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0zODg5LDggKzM4ODgsNiBAQAogCQk5MzkxQTk5MTE2Mjc0NkNCMDAyOTcz
MzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxp
bmdDb29yZGluYXRvck1hYy5oICovOyB9OwogCQk5MzkxQTk5QzE2MjlENzAwMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcCAqLzsgfTsKIAkJOTM5MUE5OUQxNjI5RDcwMDAwMjk3MzMw
IC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQlBNkQ1QTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi87IH07Ci0JCUE2RDVBOTlEMTYyOUQ3MDAwMDI5
NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QjE2MjlENzAwMDAyOTcz
MzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTIxNDY5MThBNkQ3OTEwMDBF
RTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MjI2
MkUxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwICovOyB9OwogCQk5
MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0
IC8qIFJlbmRlckNvdW50ZXIuaCAqLzsgfTsKQEAgLTQ2MDQsNiArNDYwMSw4IEBACiAJCUE2MTQ4
QTc5MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjE0OEE3NzEyRTQxRTNCMDA0NEE3
ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oICovOyB9OwogCQlBNkQxNjk2MjEzNDZCNDlCMDAw
RUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAg
Ki87IH07CiAJCUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MzEzNDZCNEMx
MDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUE2RDVBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLzsgfTsKKwkJQTZENUE5OUQxNjI5RDcwMDAw
Mjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlCMTYyOUQ3MDAwMDI5
NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAw
NUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNr
ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUw
MTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlB
NzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVD
MDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC02Njc5LDcgKzY2
NzgsNiBAQAogCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29w
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgy
NTY4RDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi87IH07CiAJ
CUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNTY4RTBFRjJCMDJE
MDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovOyB9OwogCQlFMTgyNThBQzBFRjND
RDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNThBQjBFRjNDRDcwMDA5MzMy
NDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi87IH07Ci0JCUUxODc3MkYxMTI2
RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2Uu
Y3BwICovOyB9OwogCQlFMThERjMzNTE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0
b0tleVdyYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxOERGMzM0MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxOERGMzM4
MThBQUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOERGMzM2MThBQUYxNEQw
MDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLzsgfTsKIAkJRTE5NzI3
MTYxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1MSAvKiBD
cnlwdG9LZXlUeXBlLmggKi87IH07CkBAIC0xMTUxNiw4ICsxMTUxNCw4IEBACiAJCTdDQkE1QkE2
MUYwQjRCREUwMDM0RDc0NSAvKiBKU0RPTUNvbnZlcnRXZWJHTC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0RPTUNvbnZlcnRXZWJHTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDQkJCQ0M0MUY1NjA1NjcwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERPTU1hdHJpeDJESW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDQkJCQ0M2MUY1NjA1NjgwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTWF0cml4MkRJbml0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkJCQ0M4MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RP
TU1hdHJpeDJESW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTU1hdHJpeDJESW5pdC5j
cHA7IHBhdGggPSBKU0RPTU1hdHJpeDJESW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTdDQkJCQ0M5MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBKU0RPTU1hdHJpeDJESW5pdC5oOyBwYXRoID0gSlNET01NYXRyaXgyRElu
aXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzgxRjU2MTdDMDAwNUVG
QUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWF0
cml4MkRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzkxRjU2
MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9N
TWF0cml4MkRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzJEREY4MUVD
OTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0NDMkRERkExRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0MyRERGRTFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm90aWZpY2F0aW9u
UGVybWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk4OCw3ICsx
MTk4Niw2IEBACiAJCTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NVbmtub3duUnVsZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1Vua25vd25SdWxlLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjJGNjkwQUEzQzc0MzAwQUQ2NEM1IC8qIEhUTUxDb2xs
ZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTENvbGxlY3Rpb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkY5MjBBQTNDOUI2MDBBRDY0QzUgLyog
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVFQzlB
RjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjFD
MkVBMzEzRkI0RkREMDAwNjJBQkIgLyogTG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlZFVzZXJBY3Rpdml0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYg
LyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEh5c3RlcmVzaXNBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIy
MTYsOCArMTIyMTMsNiBAQAogCQk5MzkxQTk5MDE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUE5
OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUE5OUIxNjI5RDcwMDAw
Mjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0
b3JCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0SXRlcmF0
b3JCZWhhdmlvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyMjYyRTEwMzIx
MDg0MDA2RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckNvdW50ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDQxLDYgKzEzMDM2LDggQEAKIAkJQTYx
NDhBN0YxMkU0MUVEMTAwNDRBNzg0IC8qIEhUTUxLZXlnZW5FbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBIVE1MS2V5Z2VuRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1Jvb3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93
Um9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dSb290Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAg
LyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBU
ZXh0Q2hlY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0
Q2hlY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1RTY1MDEz
NEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9n
cmVzc1NoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTQy
OSw3ICsxNTQyNiw2IEBACiAJCUUxODI1NjhEMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckds
b2JhbFNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29y
a2VyR2xvYmFsU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTgyNTY4
RTBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tl
eVdyYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZENyeXB0
b0tleVdyYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzYxOEFBRjE0
RDAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1MSAv
KiBDcnlwdG9LZXlUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0tleVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTIyLDggKzE2OTE4
LDYgQEAKIAkJCQkwRkM0RTQwQzE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRkM0RTQwOTE4N0Y4MkUxMDA0NTg4MkMgLyog
U2Nyb2xsaW5nVHJlZUlPUy5jcHAgKi8sCiAJCQkJMEZDNEU0MEExODdGODJFMTAwNDU4ODJDIC8q
IFNjcm9sbGluZ1RyZWVJT1MuaCAqLywKLQkJCQkxQjk0RTQwOTE4N0Y4MkUxMDA0NTg4MkMgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8sCi0JCQkJMUI5NEU0MEEx
ODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTI0NDk3LDggKzI0NDkxLDYgQEAKIAkJCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlz
dGVyZXNpc0FjdGl2aXR5LmggKi8sCiAJCQkJMUFFMDBENTcxODJEQUM4RDAwMDg3REQ3IC8qIEtl
eWVkQ29kaW5nLmggKi8sCiAJCQkJRTE1RkY3RDQxOEM5NTUzODAwRkU0Qzg3IC8qIEtleXByZXNz
Q29tbWFuZC5oICovLAotCQkJCUUxODc3MkYwMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5j
cHAgKi8sCi0JCQkJODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi8sCiAJ
CQkJQTNENDJBODQxRjMzQkEzNjAwQTY0QjYyIC8qIExheW91dFVuaXQuY3BwICovLAogCQkJCTE0
MURDMDQ3MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8sCiAJCQkJQkNFNjVCRTgw
RUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgKi8sCkBAIC0yNzcxNywxMiArMjc3MDksOSBA
QAogCQkJCTg0NzMwRDg1MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdo
dGluZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8qIEZl
dGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5Qzk5NzFGNTlCOTYzMDA5
RDc0MDMgLyogRmV0Y2hCb2R5U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxMjlEQjFG
M0QxNDM4MDBEMTVFNDcgLyogRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZF
NkZFODFCQkQxMkRGMDAwQTYwMjMgLyogRmV0Y2hJbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTE3QTUzNUExRjU4ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZCRDEwMEEzMTQ4NiAvKiBG
ZXRjaE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTREMUYyQTlBRkIwMDI3MkY3
OCAvKiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0UxOTE1QTFG
MkE5QjM0MDAyNzJGNzggLyogRmV0Y2hSZXF1ZXN0Q2FjaGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MjkwMTIsNyArMjkwMDEsNiBAQAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlw
cmVzc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0
OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU2RkEyNzExQUQ0
QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RUM5
QUZCMEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjkx
N0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyog
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4ODgsNyArMjk4
NzYsNiBAQAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJBODZDMyAvKiBTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RDFGM0VCQzgzMDBDNzQ5NTAg
LyogU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NUYxRjNFQkM4MzAw
Qzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUx
N0E1MzVEMUY1ODk5RkUwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRjE3NTYxMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYzMUYzRUJDODMwMEM3NDk1
MCAvKiBTZXJ2aWNlV29ya2VySm9iLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2NDFGM0VC
QzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckpvYkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMzA4OCw3ICszMzA3NSw2IEBACiAJCQkJQkM1RUJBMTAwRTgyM0U0NzAwQjI1OTY1IC8qIEtl
eWZyYW1lTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NTBDRUJGMDE1MDczQkJFMDAyQkIx
NDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNDU2RkEyNjEx
QUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
RTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTI5MTdCNTYxMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTI5MTdCNTY2MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTNBNjlGMTk0QjU5QjYwMDFD
QkQyNCAvKiBMYXllclBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCmluZGV4
IDcwNzU2ZmZhZDdiMzI2N2M1NzkwOGZlODQ1NWNjYTFiNjc0YzA1MDEuLjJlYmMyMjZiNzU5YmRh
ZDNiNTQzODQ2YWJiZDU0MGFlODhjNDZlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCkBAIC0zMSw3ICsz
MSw2IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVy
YXRvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5j
bHVkZSAiU1ZHQUVsZW1lbnQuaCIKQEAgLTQwLDYgKzM5LDcgQEAKICNpbmNsdWRlICJTVkdUaXRs
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtO
YW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmlu
ZGV4IGRjY2QyODMzOGUzZTgwZmQzYTQ4ZjM4NTUyYTNlZjJhMDMzNTdhOTUuLjZhZTU4NzFjNmZi
YjJkYTk4ZmM1ZWEyNWZkOGMxY2Y0ZThlOTFkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUg
IkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgi
CiAjaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRy
YWNrZXIuaCIKQEAgLTUxLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2UuY3BwCmluZGV4IDllODU0YTM4YzUzZTUwODlhMzMyMzAwMDkzOGZiYzNlMWEzZjAwZDAuLjM0
YTUxYTU3MDg3Mzk4ZjM5MWFlNjc3Y2NiN2M4ZWNhMDljNmZiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAg
LTMzLDEyICszMywxMiBAQAogI2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJKU0R5bmFtaWNEb3duY2FzdC5oIgogI2luY2x1ZGUgIkpTV29ya2VyR2xv
YmFsU2NvcGUuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2Jh
bFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8cnVudGltZS9K
U0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI5MWE1ZmEyMGI0N2I5MGU5
ZTY1NGFhNDFlYzIzMWQ3YTk5MzE5M2EuLmRlMmYzYmE2ZWM2YzdmM2YxNmMzOTRkNDk0ZGUwYzEz
MGNmNDZhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw2IEBACiAj
aW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJMYW5n
dWFnZS5oIgogI2luY2x1ZGUgIkxheW91dERpc2FsbG93ZWRTY29wZS5oIgogI2luY2x1ZGUgIkxv
YWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMjA2LDYgKzIwNSw3IEBA
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHBhbC9M
b2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFu
Z3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
U2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYzA4Y2YzMzcwYzJhMzFhZDMwMzNi
OWY2MThmYTk1ZDAwMjMwNmNjMS4uMzhiMTI1NDkxNWZhZGNiMjllNGQ1M2U0ZDJiMmI2Mjk3ZDk0
YWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00OSw3
ICs0OSw2IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklkVGFy
Z2V0T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VF
dmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtNTksNiArNTgsNyBA
QAogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZjMyZmU0ZGI0YTkxYzY5NGI0
NWZjYzc4NWVhNWY3NjIwMDVmY2VlLi45ZTBhOWEyZmU4N2ZhNjNhZDM1Mjg1NjM4MGU4ZjNhNmY0
NDc1NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU0
LDcgKzU0LDYgQEAKICNpbmNsdWRlICJKU0RPTUVycm9yLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0hUTUxNZWRpYUVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCkBAIC05NCw2ICs5Myw3IEBACiAjaW5j
bHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4K
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNTQzZjYxZjllODcz
NTBkNTc4NmRkZDY2ZTQ3NzRlNzUzNTRiZTYxNi4uNjRmMmMxYWU0ODJlN2ViYzAyMGM5YmZhY2Y5
YTcxYmE2NTJiN2Q5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIkhUTUxV
TGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9s
cy5oIgpAQCAtNjAsNiArNTksNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRl
ICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgorI2luY2x1ZGUg
PHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCA3ZWE0ZTA1NmIzY2JmNDJlNGIyYzcxZDUwYjM0
OGI2ODI3YTgwOGRjLi44NjgxOWY1N2IyYjkyZjc1ZmIxNmQ1NDdlMDUwZmVhYTk2MDVmZWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCiAKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IDdkNWFiMWUx
NTE4OTU5ZTQ1YzQ0ZTY4YTI5ZDI0MzA2Mzc5MDQyMzYuLmJhZTBiM2JhYWNlNTk4MDc1N2FhYjZk
ZDRmNzkwYWEwZGMzZTkyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a0xpc3QuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJMYW5ndWFn
ZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNZWRpYVNlbGVj
dGlvbk9wdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTQ0LDYgKzQzLDcgQEAKICNpbmNs
dWRlIDxoZWFwL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBmMGI4
ZjdmMjdkMGRhOTY5YmI2ZDE0MzBjMDRmODcwZTU2N2EzZjZjLi4yM2Q3ZTBiZjRlN2RhNmEwMjBh
YTVlOTdkMWFmMTZjMjViMWY0MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2Vu
ZGlmCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxl
bWVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xFbGVtZW50
cy5oIgpAQCAtNDYsOCArNDUsOCBAQAogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0VHlwZXMuaCIK
ICNpbmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8d3Rm
L0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjIzOWM4YWZlNDkw
MDgzOTkwYzNiNDA1YmE3NDdiOWQ5MTUxZWIwNy4uY2IxNjM5ODZjODM2YjU1ZDA4ZTVkMzg4YWRh
ODk5YjAzMWE5M2UzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNjYsNyArNjYs
NiBAQAogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJM
YW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgi
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKQEAgLTExMCw2ICsxMDksNyBAQAogI2luY2x1
ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAppbmRleCBiNmQ1NThmNzViMWY4MGVmYTIwYWUxMTVkNGMzMWQ5YzYzZTIxNWU0Li40MWQw
ODc2Y2Q1ZWVmMWViMDVlNTRlMzg1NzBhOGYzZTNjOWYwMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZp
Z2F0b3IuY3BwCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIK
LSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVn
aW5EYXRhLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
VEY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCA5N2ZmOTUzYTZmM2Jk
ZmQwOTZlYWVkNmRjNWJmZjg5MmM0YzcyZTk1Li4yMjJhOGVmNGM2OGYxYjI2MmFmZGY4MTIyZDhh
Yzk0Y2Q4YjgyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKQEAgLTI3
LDEwICsyNywxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJh
c2UuaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90
aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCiAjaW5jbHVkZSA8
bXV0ZXg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xh
bmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM0YjM0OTI0NmFjN2U5ZTc2MDA2YWU3YjA0ODMwNDk2
MmZhODAwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
OTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJMYW5ndWFnZS5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQot
I2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0jZW5kaWYKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzTXV0ZXg7Ci0KLXN0YXRpYyB2b2lkIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VDYWxsYmFj
a0lmTmVjZXNzYXJ5KCkKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKLSAgICBz
dGQ6OmNhbGxfb25jZSgKLSAgICAgICAgb25jZSwKLSAgICAgICAgW10gewotICAgICAgICAgICAg
c2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKGxhbmd1YWdl
RGlkQ2hhbmdlKTsKLSAgICAgICAgfSk7Ci19Ci0KLXR5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKLXN0YXRpYyBPYnNlcnZl
ck1hcCYgb2JzZXJ2ZXJNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPYnNlcnZl
ck1hcD4gbWFwOwotICAgIHJldHVybiBtYXAuZ2V0KCk7Ci19Ci0KLXZvaWQgYWRkTGFuZ3VhZ2VD
aGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rp
b24gY3VzdG9tT2JzZXJ2ZXIpCi17Ci0gICAgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5nZUNhbGxi
YWNrSWZOZWNlc3NhcnkoKTsKLSAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBjdXN0b21P
YnNlcnZlcik7Ci19Ci0KLXZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBj
b250ZXh0KQotewotICAgIEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRleHQpKTsK
LSAgICBvYnNlcnZlck1hcCgpLnJlbW92ZShjb250ZXh0KTsKLX0KLQotdm9pZCBsYW5ndWFnZURp
ZENoYW5nZSgpCi17Ci0gICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2VydmVyTWFw
KCkuZW5kKCk7Ci0gICAgZm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9ic2VydmVy
TWFwKCkuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgaXRlci0+dmFsdWUo
aXRlci0+a2V5KTsKLX0KLQotU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCi17Ci0gICAgVmVjdG9y
PFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIGlmIChs
YW5ndWFnZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwotCi0gICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVk
TGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
U3RyaW5nPj4gb3ZlcnJpZGU7Ci0gICAgcmV0dXJuIG92ZXJyaWRlOwotfQotCi1WZWN0b3I8U3Ry
aW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHJldHVybiBwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotfQotCi12b2lkIG92ZXJyaWRlVXNlclByZWZlcnJl
ZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCi17Ci0gICAgcHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKSA9IG92ZXJyaWRlOwotICAgIGxhbmd1YWdlRGlkQ2hhbmdl
KCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHN0cmluZ3MpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gY29weTsKLSAgICBjb3B5
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOwotICAgIGZvciAoYXV0byYg
bGFuZ3VhZ2UgOiBzdHJpbmdzKQotICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFn
ZS5pc29sYXRlZENvcHkoKSk7Ci0gICAgcmV0dXJuIGNvcHk7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKLSAgICAg
ICAgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUo
KTsKLSAgICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4g
aXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKLSAgICB9Ci0gICAgCi0gICAgcmVnaXN0ZXJMYW5ndWFn
ZURpZENoYW5nZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKLSAgICByZXR1cm4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci19Ci0KLXN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3Vh
Z2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQotewotICAgIFN0cmluZyBs
b3dlcmNhc2VMYW5ndWFnZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlMb3dlcmNh
c2UoKTsKLSAgICAKLSAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgpID49IDMg
JiYgbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlWzJdID09ICdfJykKLSAgICAgICAgbG93ZXJjYXNlTGFu
Z3VhZ2VDb2RlLnJlcGxhY2UoMiwgMSwgIi0iKTsKLQotICAgIHJldHVybiBsb3dlcmNhc2VMYW5n
dWFnZUNvZGU7Ci19Ci0KLXNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3Qo
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlz
dCwgYm9vbCYgZXhhY3RNYXRjaCkKLXsKLSAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3VhZ2UgPSBs
YW5ndWFnZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgIFN0cmluZyBsYW5ndWFnZVdp
dGhvdXRMb2NhbGVNYXRjaDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZTsK
LSAgICBzaXplX3QgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7Ci0gICAgc2l6
ZV90IGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKLSAgICBib29sIGNh
bk1hdGNoTGFuZ3VhZ2VPbmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09IDIgfHwg
KGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMl0g
PT0gJy0nKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlzdC5zaXpl
KCk7ICsraSkgewotICAgICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3Qg
PSBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKLQotICAgICAg
ICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3Qp
IHsKLSAgICAgICAgICAgIGV4YWN0TWF0Y2ggPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGk7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYgY2Fub25p
Y2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgewotICAgICAgICAgICAgaWYg
KGxvd2VyY2FzZUxhbmd1YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzBd
ICYmIGxvd2VyY2FzZUxhbmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0
WzFdKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5s
ZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9PSAyKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0gbGFuZ3Vh
Z2VMaXN0W2ldOwotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRj
aEluZGV4ID0gaTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCFsYW5n
dWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZy
b21MaXN0Lmxlbmd0aCgpID49IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRj
aEJ1dE5vdExvY2FsZSA9IGxhbmd1YWdlTGlzdFtpXTsKLSAgICAgICAgICAgICAgICAgICAgbGFu
Z3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXggPSBpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGV4YWN0TWF0Y2ggPSBmYWxz
ZTsKLQotICAgIC8vIElmIHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2ggYW5kIGEg
bGFuZ3VnZS1idXQtbm90LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQotICAgIC8vIGxhbmd1Z2Ut
b25seSBtYXRjaCBhcyBpcyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBleGFtcGxl
LCBpZiB0aGUgbGlzdAotICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5kICJlbiIg
YW5kIHRoZSB1c2VyIHByZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgotICAgIGlm
IChsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGxh
bmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXg7Ci0KLSAgICBpZiAobGFuZ3VhZ2VNYXRjaEJ1
dE5vdExvY2FsZS5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hCdXROb3RM
b2NhbGVNYXRjaEluZGV4OwotCi0gICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7Ci19Ci0K
LVN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxl
TmFtZSkKLXsKLSNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCi0gICAgaWYgKCFsb2NhbGVO
YW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxh
eU5hbWVGb3JQcm9wZXJ0eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKS5nZXQo
KSwga0NGTG9jYWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KSkuZ2V0KCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gbG9jYWxlTmFtZTsKLX0KLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xhbmd1YWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkN2U2
NjdhMjcxMTI0OTg5NTEzNjI3M2M5ZWFjM2NiNDA4ZjE3NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3Vh
Z2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIExhbmd1YWdlX2gKLSNkZWZpbmUgTGFuZ3VhZ2VfaAotCi0jaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpOyAv
LyBUaHJlYWQtc2FmZS4KLVdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRh
Z3MuCi1WZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLVdF
QkNPUkVfRVhQT1JUIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jik7Ci1zaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0
KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxp
c3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwotCi0vLyBUaGUgb2JzZXJ2ZXIgZnVuY3Rpb24gd2lsbCBi
ZSBjYWxsZWQgd2hlbiBzeXN0ZW0gbGFuZ3VhZ2UgY2hhbmdlcy4KLXR5cGVkZWYgdm9pZCAoKkxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbikodm9pZCogY29udGV4dCk7Ci1XRUJDT1JFX0VY
UE9SVCB2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKLQotU3RyaW5nIGRpc3BsYXlOYW1l
Rm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7Ci0KLS8vIENhbGxlZCBmcm9tIHBsYXRm
b3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBj
aGFuZ2UuCi1XRUJDT1JFX0VYUE9SVCB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Ci19Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdl
bmVyaWNGYW1pbGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
R2VuZXJpY0ZhbWlsaWVzLmNwcAppbmRleCA4MWQxMjAwOWEzZjUxOWMwN2U5MWNjZjBiYmJlNmYw
ODBlODYwNjNlLi41ZWJhYjljOTZkODhlMWRjY2NmMmI2MjI0MzQ2ZDFhNGMyY2UzMjdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJpY0ZhbWls
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJp
Y0ZhbWlsaWVzLmNwcApAQCAtMjUsNyArMjUsOCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisK
KyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXggMDQy
ZTUzMDE3YmFiZTZlZmE1NjkwMjUxY2YwNmNjZTBlM2M3NDRkOC4uYTIzZDgwOWQzYTVkZGZhZjM3
MTE2MmRmMWZjYjYwNDIyYjczZGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNl
bGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMjgsMTEgKzI4LDExIEBACiAKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAKLSNpbXBvcnQgIkxhbmd1YWdlLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRp
b24vQVZBc3NldC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxlY3Rpb25Hcm91
cC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9ydCA8b2Jq
Yy9ydW50aW1lLmg+CisjaW1wb3J0IDx3dGYvTGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggNjRhZTk3MmRm
Y2Y5MjkwODYwMGQ5YWM4YTdmYjdjNzUwNDYxMzZjOC4uNWRjMDM1ZGZmNWNkNTU0OWYyMTU3NWE2
OTVjY2Q0Y2M1ZmNhNmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2Uu
aCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oCmluZGV4IDkxMTk4ZjI3MTU3NWM3
YmZmZTEyZjM2ZmViMDI1NGEzM2I0MGYwZTYuLmE5MWZlODNjYjc5NmY0ZThjOTI1NzFhYjViOWZi
NTE2MTg3MDExYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3Jt
TG9jYWxlLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUGxhdGZvcm1Mb2NhbGVfaAogCiAj
aW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1
ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9j
Zi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCBiNGIwZTUxZjRhZmQ2Y2EzYmNjOGEwZjg3NTJkNTM0
Y2Q4Yjk2YTYzLi4xYzcwYzQxM2Q4Y2MyMjUwMDRiMTdkN2IyYTY2OWE3MzcwNTdmMzZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIeXBoZW5h
dGlvbi5oIgogCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RpbnlMUlVDYWNo
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTUzLDcgKzUzLDcgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgLy8gQ0YgaHlwaGVuYXRpb24gZnVuY3Rpb25zIHVzZSBs
b2NhbGUgKHJlZ2lvbmFsIGZvcm1hdHMpIGxhbmd1YWdlLCB3aGljaCBkb2Vzbid0IG5lY2Vzc2Fy
aWx5IG1hdGNoIHByaW1hcnkgVUkgbGFuZ3VhZ2UsCiAgICAgICAgIC8vIHNvIHdlIGNhbid0IHVz
ZSBkZWZhdWx0IGxvY2FsZSBoZXJlLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODk3NjY0Pi4KLSAg
ICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIFdlYkNvcmU6OmRlZmF1bHRMYW5ndWFnZSgpLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2Nh
bGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRM
YW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICAgICAgcmV0dXJuIENGU3Ry
aW5nSXNIeXBoZW5hdGlvbkF2YWlsYWJsZUZvckxvY2FsZShsb2NhbGUuZ2V0KCkpID8gbG9jYWxl
IDogbnVsbHB0cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvbWFjL0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFj
L0xvY2FsZU1hYy5tbQppbmRleCBkMTU1OTA1NWU2MGUyMDg3NmNlZGY4YmMyNmNiZDBmYTc3OGMz
Yzg5Li4wYWYxNzlmYTIzMzE2MzY1YjdjMDhjMDcyOTRmODNiOTRhZDMzYWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0zMSwxMiArMzEs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGVNYWMuaCIKIAorI2lt
cG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0RhdGVGb3Jt
YXR0ZXIuaD4KICNpbXBvcnQgPEZvdW5kYXRpb24vTlNMb2NhbGUuaD4KLSNpbmNsdWRlICJMYW5n
dWFnZS5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvRGF0
ZU1hdGguaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvRGF0ZU1h
dGguaD4KKyNpbXBvcnQgPHd0Zi9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiTG9jYWxpemVkRGF0ZUNhY2hlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1Rlc3RzLmNwcAppbmRleCBlNDRjMzM0ZjE2NTE5YjliYTcwYjJmMGYwZjQ5ZGNj
MDM1YzkxOTBlLi44MzRjMGUzZDk4ZThiMmRlNWQ5ODBhZmFmZTc2MzVmMjQzN2UxZjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXN0cy5jcHAKQEAgLTI0LDEwICsyNCwxMCBAQAogCiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5n
dWFnZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgog
I2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShNQVRITUwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA5Mzg5M2JkNTcz
OWMwZGQyMTY3NTkwMTQyNmNkZmYwYjMxZWY4OGVhLi40YmYxZDBlODEyMTY4ZWQ5NWY1YTg5ZjYz
NTViMzMxMjg0MTkxZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkxhbmd1
YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgiCiAjaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUZXh0
UnVuLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKICNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCA1NmY5OTE1NjgzYTUzMGQ2M2E5NThmZDZlOTE5NzcyMDY1NDgwNjI4
Li44N2UzOGJmZWFjYzc2YWFhY2QxYTQ3MDJkODM4NDRlZGRhYTI5Zjk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04OCw3ICs4OCw2IEBACiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0
YS5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNYWxsb2NTdGF0aXN0aWNzLmgi
CkBAIC0xNTQsNiArMTUzLDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVz
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01l
bW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CkBAIC00MTksNyArNDE5LDcgQEAgdm9p
ZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICB9CiAK
ICAgICBXZWJDb3JlOjpjbGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKCk7
Ci0gICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJp
bmc+KCkpOworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5n
PigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZh
bHNlKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcihm
YWxzZSk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMTczNywxMiArMTczNywxMiBAQCBF
eGNlcHRpb25PcjxpbnQ+IEludGVybmFsczo6bGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5j
ZSgpCiAKIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsK
KyAgICByZXR1cm4gV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiB9CiAKIHZvaWQgSW50
ZXJuYWxzOjpzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBs
YW5ndWFnZXMpCiB7Ci0gICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KGxhbmd1YWdlcyk7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1YWdl
cyk7CiB9CiAKIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCA4MTE2NTM2YzRmODhmZDNmYjU2NDFlYjAyMGJkYzExNjViZWQ0ZWUyLi5k
NTkzYTgzMjRkODZmODc5YTUwNTZhZDM1YmYxNTBiNjIwZDAwZDU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03Miw3ICs3Miw2IEBACiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC04MCw2ICs3OSw3IEBACiAjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApp
bmRleCAwYTRlZjhiY2M5ZGE2YWEyOTAwNDk4NmY4NDI0ZTQ3MzA0YjcyNTJlLi43YjZjZDRmNzRk
NjE2N2FlYjEwMDIyZDc0MGM4ZjQxYWZlZTk1MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC05MSw3ICs5MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HbHlw
aFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlD
YWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgpAQCAtMTEyLDYgKzEx
MSw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKQEAgLTQ5NSw3ICs0OTUsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3VsZFVz
ZUZvbnRTbW9vdGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogdm9pZCBXZWJQcm9jZXNzOjp1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3Vh
Z2VzKSBjb25zdAogewogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhsYW5ndWFn
ZXMpOwotICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6ZnVs
bEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZh
dWx0c0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNVc2VyRGVm
YXVsdHNFeHRyYXMubW0KaW5kZXggOTdjMDU5NDNlMjlkYmE5MGExNzczMGUxM2U1YTg3MjVlNzZm
YjNjZC4uODIyMzU4NGFiMTIyZWNjNDFiM2FlNTFhMTI5ZjQyZGEzMDhmYWQzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0
cmFzLm1tCkBAIC0yOCwxMSArMjgsOSBAQAogCiAjaW1wb3J0ICJXZWJOU1VzZXJEZWZhdWx0c0V4
dHJhcy5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0xhbmd1YWdlLmg+CisjaW1wb3J0IDx3dGYvTGFu
Z3VhZ2UuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQogQGltcGxlbWVudGF0aW9uIE5TVXNlckRlZmF1bHRzIChXZWJOU1VzZXJE
ZWZhdWx0c0V4dHJhcykKIAogKyAoTlNTdHJpbmcgKilfd2Via2l0X3ByZWZlcnJlZExhbmd1YWdl
Q29kZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320184</attachid>
            <date>2017-09-07 14:38:58 -0700</date>
            <delta_ts>2017-09-07 14:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176561-20170907143857.patch</filename>
            <type>text/plain</type>
            <size>98963</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi5lNjY2NDRjYTIxOGY2OWFi
OTRmYWFhMTRkOTcxNGZiYTE2YzljOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpk
ZWZhdWx0TG9jYWxlKToKKwogMjAxNy0wOS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgIm1hbGxvYyIgYW5kICJmcmVlIiBm
cm9tIEpTQy9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggZmE4YjFhZGIzOTZkNDk3ZDE4NzBmYmY1OGI4YmU2ZGMzMGVjZGVi
YS4uMWEzN2ZlM2E3NDk5M2NkMzUyN2FjMjk3Mzc4YjE0MjA1OGQwZThhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSB3YXMgdGhlIG9ubHkqIHVzZXIg
b2YgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzICh3aXRoIDEgZXhjZXB0aW9uKS4KKyAg
ICAgICAgVGhhdCBleGNlcHRpb24gaXMgdGhhdCBKYXZhU2NyaXB0Q29yZSBuZWVkZWQgdGhlIGZ1
bmN0aW9uYWxpdHkgb2YgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSwgYnV0IGl0CisgICAgICAg
IGNvdWxkbid0IGdldCBpdCBiZWNhdXNlIG9mIHRoZSBsYXllcmluZyB2aW9sYXRpb24sIHNvIGlu
c3RlYWQgaXQgZXJyb25lb3VzbHkgY2FsbGVkIGludG8KKyAgICAgICAgUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzIGluc3RlYWQuIFRoaXMgcGF0Y2ggbWVyZ2VzIHRoZXNlIHR3byBmaWxl
cyBpbnRvIFdURiBzbyBKU0MgZ2V0cyB0aGUKKyAgICAgICAgcmlnaHQgZnVuY3Rpb24gYW5kIHRo
ZSBQQUwgZWZmb3J0IGhhcyBvbmUgbGVzcyBmaWxlIHRvIG1vdmUgZnJvbSBXZWJDb3JlL3BsYXRm
b3JtIGludG8gUEFMLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAuCisg
ICAgICAgIChXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjp1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmguCisgICAgICAgICogd3Rm
L1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2U6
CisgICAgICAgICogd3RmL1BsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1XUEUuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbS4KKyAgICAgICAgKFdURjo6aHR0cFN0eWxl
TGFuZ3VhZ2VDb2RlKToKKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5n
ZSk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAg
ICAgICogd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwLgorICAgICAgICAqIHd0
Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcC4KKwogMjAxNy0wOS0wNiAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXF1aXJlIExvZ2dpbmdI
ZWxwZXIgb3ZlcnJpZGVzIHRvIHByb3ZpZGUgaWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4Y2Zi
ZTEyNDlhZDBlOWIwNmZiM2M1NzU1ZjI2ZmU2NmIyMGQ3MTEuLmUxOTdlYTk2YzI0YmYyMGM5YjQx
MTA4OWQ1NzYzYzYxZDdiZjg3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxNy0w
OS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3Vh
Z2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHA6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAgICAg
ICAqIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0Yu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbToKKyAgICAgICAg
KiBzdmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCiAyMDE3LTA5LTA3ICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FS
TV0gQnVpbGRpbmcgRkVMaWdodG5pbmdORU9OLmNwcCBmYWlscyBkdWUgdG8gbWlzc2luZyB7UG9p
bnQsU3BvdH1MaWdodFNvdXJjZSBkZWNsYXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODUzYjU4ODI1YzU0
MmIyNmFlZDRmMWNkM2FlZWUxYTQ1ODc2ZmJlMy4uNTg2ZGZhMDk3NmY3MmQ1OWU2ZDM5MWZlODU5
OGExZjk4YjM1NTcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wOS0wNyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtQQUxdIFVu
aWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFu
Z2VkIGNvbnN0KToKKwogMjAxNy0wOS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxl
bnQgb2YgV0tQYWdlVUlDbGllbnQncyBwYWdlRGlkU2Nyb2xsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggN2U1MWViYWY2YmZmOGVmYjFmY2NjZDgxZDI4NDBmZjcyYjQ0YzVlOC4uYjE2
ODc5MGFkYTc0YjZiYjRhN2UwYjU1MTNiNmEwYTIyYTg3MDU4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViTlNVc2VyRGVmYXVsdHNF
eHRyYXMubW06CisKIDIwMTctMDktMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdW51c2VkIGJpdHMgb2YgY29kZSBhbmQgcmVz
b3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmlu
ZGV4IDlmMTc0ZDY0MDVjOWYzYTA4NmIyNjM1NmJkY2VlYmJjZjA0ODQwODUuLjI1ZDIxZjJlZTVj
ZTNjNzY3MjMxNmFhZjZmN2EwMzVkNmEyMWY5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSA8dW5p
Y29kZS91bG9jLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91bnVtc3lzLmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTU3NiwxNiArNTc2LDE0IEBAIFN0cmluZyBkZWZhdWx0TG9jYWxlKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgCiAgICAgLy8gV2ViQ29yZSdzIGdsb2JhbCBvYmplY3RzIHdpbGwg
aGF2ZSB0aGVpciBvd24gaWRlYXMgb2YgaG93IHRvIGRldGVybWluZSB0aGUgbGFuZ3VhZ2UuIEl0
IG1heQogICAgIC8vIGJlIGRldGVybWluZWQgYnkgV2ViQ29yZS1zcGVjaWZpYyBsb2dpYyBsaWtl
IHNvbWUgV0sgc2V0dGluZ3MuIFVzdWFsbHkgdGhpcyB3aWxsIHJldHVybiB0aGUKLSAgICAvLyBz
YW1lIHRoaW5nIGFzIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpWzBdLgorICAgIC8v
IHNhbWUgdGhpbmcgYXMgdXNlclByZWZlcnJlZExhbmd1YWdlcygpWzBdLgogICAgIGlmIChhdXRv
IGRlZmF1bHRMYW5ndWFnZSA9IHN0YXRlLmpzQ2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZWZhdWx0TGFuZ3VhZ2UpIHsKICAgICAgICAgU3RyaW5n
IGxvY2FsZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwogICAgICAgICBpZiAoIWxvY2FsZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplTGFuZ3VhZ2VUYWcobG9jYWxlKTsK
ICAgICB9Ci0gICAgCi0gICAgLy8gSWYgV2ViQ29yZSBpc24ndCBhcm91bmQgdG8gdGVsbCB1cyBo
b3cgdG8gZ2V0IHRoZSBsYW5ndWFnZSB0aGVuIGZhbGwgYmFjayB0byBvdXIgb3duIHdheSBvZgot
ICAgIC8vIGRvaW5nIGl0LCB3aGljaCBtb3N0bHkgZm9sbG93cyB3aGF0IFdlYkNvcmUgd291bGQg
aGF2ZSBkb25lLgotICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOworCisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNl
clByZWZlcnJlZExhbmd1YWdlcygpOwogICAgIGlmICghbGFuZ3VhZ2VzLmlzRW1wdHkoKSAmJiAh
bGFuZ3VhZ2VzWzBdLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbGl6ZUxhbmd1
YWdlVGFnKGxhbmd1YWdlc1swXSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMGExOTA4YmFkZDkwMjc4N2NjYjQ1ZTExN2FlZTEyODFiMjY3YmY1
Li4xMjliOTg1Mzk2NjhmZWZjNjAyMDRiNzZhODM1ZTY0NzZmODg2ZTFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMiw5ICsxMzIsMTAgQEAKIAkJQUQ4
OUI2QjcxRTY0MTUwODAwOTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCNTFFNjQxNTA4
MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJQUQ4OUI2QkEx
RTY0MTUwRjAwOTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4OUI2QjkxRTY0MTUwRjAw
OTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tICovOyB9OwogCQlBREYyQ0U2
NzFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjUxRTM5RjEwNjAwNjg4
OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLzsgfTsKKwkJQzJCQ0ZDNDAxRjYxRDEz
MDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAg
Ki87IH07CisJCUMyQkNGQzQyMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkNGQzQxMUY2MUQ2
MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAqLzsgfTsKIAkJQ0Q1NDk3QUMxNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LzsgfTsKIAkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjFG
RDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLzsgfTsKLQkJRENF
RTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUy
MUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMu
bW0gKi87IH07CiAJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRp
bGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxNTU1NkYzMThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAq
LzsgfTsKIAkJRTMxMUZCMTcxRjBBNTY4QjAwM0MwOERFIC8qIFRocmVhZEdyb3VwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTFGQjE1MUYwQTU2
OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgKi87IH07CiAJCUUzOEM0MTI1MUVCNEUwNEMw
MDQyOTU3RCAvKiBDUFVUaW1lQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzhDNDEyNDFFQjRFMDRDMDA0Mjk1N0QgLyogQ1BVVGltZUNvY29h
Lm1tICovOyB9OwpAQCAtNTQ3LDYgKzU0OCw5IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVm
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkMzRTFGNjFEMTMwMDBD
OTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkMzRjFG
NjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDNDEx
RjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2VDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM4RjU5N0NBMkE1NzQxN0ZCQUI5MkZENiAvKiBSYW5kb21EZXZpY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZG9tRGV2aWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTU3LDggKzU2MSw2IEBACiAJCURD
RUUyMUZBMUNFQTc1MzgwMDBDMjM5NiAvKiBDRkJ1bmRsZVNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBDRkJ1bmRsZVNQSS5oOyBwYXRoID0gY2YvQ0ZCdW5kbGVTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIxRkMxQ0VBNzU1MTAwMEMyMzk2IC8q
IEJsb2NrT2JqQ0V4Y2VwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmxvY2tPYmpDRXhjZXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VF
MjFGRDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURDRUUyMUZFMUNFQTc1NTEwMDBDMjM5NiAvKiBQ
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCURDRUUyMUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMjA0MUNFQjk4NjkwMDBDMjM5NiAvKiBCYWNrd2FyZHNH
cmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrd2FyZHNHcmFwaC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERTVBMDlGQjFCQTM2OTkyMDAzRDQ0MjQg
LyogQ29tbW9uQ3J5cHRvU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bW1vbkNyeXB0b1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTU1NTZGMzE4
QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MCw2ICs2NDIsNyBAQAogCQkyQ0RFRDBGMDE4
MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUMyQkNGQzQxMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAq
LywKIAkJCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAqLywKIAkJ
CQkxQUZERTY0NzE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNhc3RzQ0YuaCAqLywKIAkJCSk7CkBA
IC04NDYsNiArODQ5LDggQEAKIAkJCQk1MTgyQzIyQzFGMkJDN0U2MDA1OUJBN0MgLyogSW5zdGFu
Y2VDb3VudGVkLmggKi8sCiAJCQkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJhdG9y
QWRhcHRvcnMuaCAqLywKIAkJCQk3Q0REN0ZGOTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JS
YW5nZS5oICovLAorCQkJCUMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAg
Ki8sCisJCQkJQzJCQ0ZDM0YxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmggKi8sCiAJCQkJ
NTM5RUIwNjIxRDU1Mjg0MjAwQzgyRUY3IC8qIExFQkRlY29kZXIuaCAqLywKIAkJCQlBNzBEQTA4
MzE3OTlGMDREMDA1MjlBOUIgLyogTGlzdER1bXAuaCAqLywKIAkJCQlBOEE0NzJDMTE1MUE4MjVB
MDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCAqLywKQEAgLTkxMiw4ICs5MTcsNiBAQAogCQkJCTBG
ODI0QTY1MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmggKi8sCiAJCQkJQTg3NkRCRDcx
NTE4MTZFNTAwREFEQjk1IC8qIFBsYXRmb3JtLmggKi8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAw
M0I1OUQyIC8qIFBsYXRmb3JtUmVnaXN0ZXJzLmggKi8sCi0JCQkJRENFRTIxRkUxQ0VBNzU1MTAw
MEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oICovLAotCQkJCURDRUUy
MUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMu
bW0gKi8sCiAJCQkJMEZGODYwOTQxQkNDQkQ3NDAwNDUxMjdGIC8qIFBvaW50ZXJDb21wYXJpc29u
LmggKi8sCiAJCQkJMEY5RDMzNUQxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCAq
LywKIAkJCQkwRjlEMzM1RTE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uaCAqLywKQEAg
LTEzNDQsNyArMTM0Nyw2IEBACiAJCQkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3Nz
VGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlBMTUxQTgyNUIwMDQx
MjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjBGNTI2QjFGNDIxRkY4MDA0QTQ1MkMgLyogU3RyaW5n
TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAv
KiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNG
RiAvKiBDdXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5RTE1MUE4MjVC
MDA0MTIzRkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzNjQsNiArMTM2Niw4
IEBACiAJCQkJMEYzMEJBOTAxRTc4NzA4RTAwMkNBODQ3IC8qIEdsb2JhbFZlcnNpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRh
dGVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNGRiAv
KiBIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQ0ZDNDAxRjYxRDEzMDAwQzky
MjJDIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkNGQzQyMUY2MUQ2MTYw
MEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2NDZBMUI2
RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJGMURG
Q0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzUzNEYyQTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyBpbiBTb3Vy
Y2VzICovLApAQCAtMTM4NSw3ICsxMzg5LDYgQEAKIAkJCQk1MUYxNzUyQjFGM0Q0ODYwMDBDNzQ5
NTAgLyogUGVyc2lzdGVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzUyQzFG
M0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFGMTc1MkQxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRFbmNvZGVyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM2MjE2NURC
QTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYx
MUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNC
NzI1RUM5ODc0NDZBRDkzRjFBNDQwIC8qIFJhbmRvbURldmljZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE0MTIsNiArMTQxNSw3IEBACiAJCQkJQTVCQTE1RkMxODI0MzVBNjAwQTgyRTY5IC8qIFN0
cmluZ0ltcGxDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGNTE4MjQzNDgwMDBBODJF
NjkgLyogU3RyaW5nSW1wbE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUYzMTgyNDMz
QTkwMEE4MkU2OSAvKiBTdHJpbmdNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjBGNTI2QjFG
NDIxRkY4MDA0QTQ1MkMgLyogU3RyaW5nTWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RERCRkE3MTY2NkRGQTMwMEM1NUZFRiAvKiBTdHJpbmdQcmludFN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5M0YxOTkzRTE5RDc5NThEMDBDMjM5MEIgLyogU3RyaW5nVmlldy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzkzNEJENTE4QTFGMTY5MDBEMEQ2QTEgLyogU3RyaW5nVmlld0NG
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAzYTZjZTllNGVkZWE5
OThhNTNlYTQ0ZTU0OWM2Mzc1NzBlNzU2YTcyLi5kY2EzOGJiZDc3NGJjMWNlNDBkNjA4ZWQ4MWQ5
OTU3NjIwOGY5NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNjAsNiArNjAsNyBAQCBzZXQo
V1RGX0hFQURFUlMKICAgICBJbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaAogICAgIEl0ZXJhdG9y
QWRhcHRvcnMuaAogICAgIEl0ZXJhdG9yUmFuZ2UuaAorICAgIExhbmd1YWdlLmgKICAgICBMaXN0
SGFzaFNldC5oCiAgICAgTGl2ZW5lc3MuaAogICAgIExvY2suaApAQCAtMjI5LDYgKzIzMCw3IEBA
IHNldChXVEZfU09VUkNFUwogICAgIEdsb2JhbFZlcnNpb24uY3BwCiAgICAgR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwCiAgICAgSGFzaFRhYmxlLmNwcAorICAgIExhbmd1YWdlLmNwcAogICAgIExvY2su
Y3BwCiAgICAgTG9ja2VkUHJpbnRTdHJlYW0uY3BwCiAgICAgTUQ1LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFhMmU4YzEwMDNjMTU1M2M4ZWIyYzM5NTE5NWMxYzQ3ODFiZjZmNTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSwx
NzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYsIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKENGKSAmJiAhUExBVEZP
Uk0oV0lOKQorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjZW5k
aWYKKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBTdGF0aWNMb2NrIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNNdXRleDsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNoYW5nZU9i
c2VydmVyRnVuY3Rpb24+IE9ic2VydmVyTWFwOworc3RhdGljIE9ic2VydmVyTWFwJiBvYnNlcnZl
ck1hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9ic2VydmVyTWFwPiBtYXA7Cisg
ICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKwordm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVy
KHZvaWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbiBjdXN0b21PYnNl
cnZlcikKK3sKKyAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBjdXN0b21PYnNlcnZlcik7
Cit9CisKK3ZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQor
eworICAgIEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRleHQpKTsKKyAgICBvYnNl
cnZlck1hcCgpLnJlbW92ZShjb250ZXh0KTsKK30KKwordm9pZCBsYW5ndWFnZURpZENoYW5nZSgp
Cit7CisgICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2VydmVyTWFwKCkuZW5kKCk7
CisgICAgZm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9ic2VydmVyTWFwKCkuYmVn
aW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAgICAgaXRlci0+dmFsdWUoaXRlci0+a2V5
KTsKK30KKworU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCit7CisgICAgVmVjdG9yPFN0cmluZz4g
bGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmIChsYW5ndWFnZXMu
c2l6ZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOworCisgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4g
b3ZlcnJpZGU7CisgICAgcmV0dXJuIG92ZXJyaWRlOworfQorCitWZWN0b3I8U3RyaW5nPiB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQoreworICAgIHJldHVybiBwcmVmZXJyZWRMYW5n
dWFnZXNPdmVycmlkZSgpOworfQorCit2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCit7CisgICAgcHJlZmVycmVkTGFuZ3Vh
Z2VzT3ZlcnJpZGUoKSA9IG92ZXJyaWRlOworICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisK
K3N0YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHN0cmluZ3MpCit7CisgICAgVmVjdG9yPFN0cmluZz4gY29weTsKKyAgICBjb3B5LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2Ug
OiBzdHJpbmdzKQorICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRl
ZENvcHkoKSk7CisgICAgcmV0dXJuIGNvcHk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRp
Y0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKKyAgICAg
ICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRD
b3B5KG92ZXJyaWRlKTsKKyAgICB9CisKKyAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlm
aWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQoreworICAgIFN0cmluZyBsb3dlcmNhc2VM
YW5ndWFnZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAg
ICAKKyAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJj
YXNlTGFuZ3VhZ2VDb2RlWzJdID09ICdfJykKKyAgICAgICAgbG93ZXJjYXNlTGFuZ3VhZ2VDb2Rl
LnJlcGxhY2UoMiwgMSwgIi0iKTsKKworICAgIHJldHVybiBsb3dlcmNhc2VMYW5ndWFnZUNvZGU7
Cit9CisKK3NpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYg
ZXhhY3RNYXRjaCkKK3sKKyAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3VhZ2UgPSBsYW5ndWFnZS5j
b252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOworICAgIFN0cmluZyBsYW5ndWFnZVdpdGhvdXRMb2Nh
bGVNYXRjaDsKKyAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZTsKKyAgICBzaXpl
X3QgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7CisgICAgc2l6ZV90IGxhbmd1
YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKKyAgICBib29sIGNhbk1hdGNoTGFu
Z3VhZ2VPbmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09IDIgfHwgKGxvd2VyY2Fz
ZUxhbmd1YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMl0gPT0gJy0nKSk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlzdC5zaXplKCk7ICsraSkg
eworICAgICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QgPSBjYW5vbmlj
YWxMYW5ndWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKKworICAgICAgICBpZiAobG93
ZXJjYXNlTGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QpIHsKKyAgICAg
ICAgICAgIGV4YWN0TWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYgY2Fub25pY2FsaXplZExh
bmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgeworICAgICAgICAgICAgaWYgKGxvd2VyY2Fz
ZUxhbmd1YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzBdICYmIGxvd2Vy
Y2FzZUxhbmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzFdKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSAm
JiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9PSAyKSB7CisgICAgICAg
ICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0gbGFuZ3VhZ2VMaXN0W2ld
OworICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4ID0g
aTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1hdGNo
QnV0Tm90TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxl
bmd0aCgpID49IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExv
Y2FsZSA9IGxhbmd1YWdlTGlzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRj
aEJ1dE5vdExvY2FsZU1hdGNoSW5kZXggPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGV4YWN0TWF0Y2ggPSBmYWxzZTsKKworICAg
IC8vIElmIHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2ggYW5kIGEgbGFuZ3VnZS1i
dXQtbm90LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQorICAgIC8vIGxhbmd1Z2Utb25seSBtYXRj
aCBhcyBpcyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBleGFtcGxlLCBpZiB0aGUg
bGlzdAorICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5kICJlbiIgYW5kIHRoZSB1
c2VyIHByZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgorICAgIGlmIChsYW5ndWFn
ZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlV2l0
aG91dExvY2FsZU1hdGNoSW5kZXg7CisKKyAgICBpZiAobGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2Fs
ZS5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRj
aEluZGV4OworCisgICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7Cit9CisKK1N0cmluZyBk
aXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKK3sK
KyNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCisgICAgaWYgKCFsb2NhbGVOYW1lLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQ
cm9wZXJ0eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKS5nZXQoKSwga0NGTG9j
YWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSkuZ2V0KCk7
CisjZW5kaWYKKyAgICByZXR1cm4gbG9jYWxlTmFtZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzA1YjkxODk5ZDRjZGVmZTBiYWYwMGJjZDAyMTNmYmJkN2M4YzQyYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAxMCwgMjAxMywgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBX
VEYgeworCitXVEZfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNh
ZmUuCitXVEZfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsg
Ly8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCitXVEZfRVhQT1JU
IFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworV1RGX0VY
UE9SVCB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOworV1RGX0VYUE9SVCBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5M
aXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFn
ZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOworV1RGX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKy8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNw
ZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2Uu
Cit2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CisKKy8vIFRoZSBvYnNlcnZlciBmdW5jdGlvbiB3
aWxsIGJlIGNhbGxlZCB3aGVuIHN5c3RlbSBsYW5ndWFnZSBjaGFuZ2VzLgordHlwZWRlZiB2b2lk
ICgqTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uKSh2b2lkKiBjb250ZXh0KTsKK1dURl9F
WFBPUlQgdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbik7CitXVEZfRVhQT1JUIHZvaWQgcmVtb3ZlTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKKworV1RGX0VYUE9SVCBTdHJpbmcgZGlz
cGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsKK30KKwordXNpbmcgV1RG
OjpkZWZhdWx0TGFuZ3VhZ2U7Cit1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit1
c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZTsKK3VzaW5nIFdURjo6b3Zl
cnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcgV1RGOjppbmRleE9mQmVzdE1hdGNo
aW5nTGFuZ3VhZ2VJbkxpc3Q7Cit1c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlczsKK3VzaW5nIFdURjo6YWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKK3VzaW5nIFdURjo6
cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKK3VzaW5nIFdURjo6ZGlzcGxheU5hbWVGb3JM
YW5ndWFnZUxvY2FsZTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsu
Y21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBjZGE1YzI5NzIz
ZDM3YWRkNWIwOGNiYmU4NjFlMzQ2Yjk3OTFjZjU3Li5kYTAzOGEwMWZjMzBjM2U0ODM4ZmQzNzZi
YzU0YTFlNTRjM2JlNzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5j
bWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTIsOCArMTIs
OCBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGxpbnV4L01lbW9yeVByZXNzdXJlSGFu
ZGxlckxpbnV4LmNwcAogCiAgICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICB1bml4L0xhbmd1
YWdlVW5peC5jcHAKIAotICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3Bw
CiAgICAgVW5pU3RkRXh0cmFzLmNwcAogCiAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1VVbml4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1K
U0NPbmx5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlCmluZGV4
IDQ0YjIyMDBiYmI2ZjRmMmExNmE5OTQ3YTQ0MDcyN2FhZjE3MWQ1M2YuLjNlNzdjYzRhNDgyOWRi
Yjc2NTM2NGNhMDFhNDBiOWY4YjY0ODgwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSlNDT25seS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUpTQ09ubHku
Y21ha2UKQEAgLTEsNSArMSw0IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCiAKICAgICBnZW5lcmljL01haW5UaHJl
YWRHZW5lcmljLmNwcAogICAgIGdlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAgLTgsMTEg
KzcsMTMgQEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKIGlmIChXSU4zMikKICAgICBsaXN0KEFQ
UEVORCBXVEZfU09VUkNFUwogICAgICAgICB3aW4vQ1BVVGltZVdpbi5jcHAKKyAgICAgICAgd2lu
L0xhbmd1YWdlV2luLmNwcAogICAgICAgICB0ZXh0L3dpbi9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVV2luLmNwcAogICAgICkKIGVsc2UgKCkKICAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNF
UwogICAgICAgICB1bml4L0NQVVRpbWVVbml4LmNwcAorICAgICAgICB1bml4L0xhbmd1YWdlVW5p
eC5jcHAKICAgICAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4
LmNwcAogICAgICkKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGI0YjFk
YWYzMzk0NTc5ZTJlODM0M2ExMmUwMDEyNDNlYjRkMjk4OWEuLmYwNzFkMmYwZWJiMDk0MWFhNzgz
MmY1OWE0MTY4MDljMjVkYTJjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0xMCwx
NSArMTAsMTUgQEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogbGlzdChBUFBFTkQgV1RGX1NP
VVJDRVMKICAgICBBdXRvZHJhaW5lZFBvb2xNYWMubW0KICAgICBCbG9ja09iakNFeGNlcHRpb25z
Lm1tCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCiAgICAgUnVuTG9v
cFRpbWVyQ0YuY3BwCiAgICAgU2NoZWR1bGVQYWlyQ0YuY3BwCiAgICAgU2NoZWR1bGVQYWlyTWFj
Lm1tCiAKLSAgICB0ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCi0K
KyAgICBjZi9MYW5ndWFnZUNGLmNwcAogICAgIGNmL1J1bkxvb3BDRi5jcHAKIAorICAgIHRleHQv
bWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKwogICAgIGNvY29hL0NQVVRp
bWVDb2NvYS5tbQogICAgIGNvY29hL01lbW9yeUZvb3RwcmludENvY29hLmNwcAogICAgIGNvY29h
L01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5MzU4MGZjNzYwOWZmZGMzYWIzYjQ2ZGEwZGVjODdhOTAzNGZlNzdjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzX2gKLSNk
ZWZpbmUgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzX2gKLQotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdU
RiB7Ci0KLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKTsKLQotLy8gVGhpcyBpcyB0aHJlYWQt
c2FmZS4KLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6c2V0
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrOwotdXNpbmcgV1RG
OjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNhZTcxYWVmYzM2YWU4OTVhOGFmYmU3NmE2NGM1M2M2MzA5NmU0NDAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTQ0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTEs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJjb25maWcuaCIKLSNpbXBvcnQgIlBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgot
Ci0jaW1wb3J0ICJCbG9ja09iakNFeGNlcHRpb25zLmgiCi0jaW1wb3J0IDxtdXRleD4KLSNpbXBv
cnQgPHVuaWNvZGUvdWxvYy5oPgotI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbXBvcnQg
PHd0Zi9Mb2NrLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaD4KLSNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIHZv
aWQgKCpjYWxsYmFjaykoKTsKLQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCAoKnBhc3NlZENhbGxiYWNrKSgpKQotewotICAgIGNhbGxi
YWNrID0gcGFzc2VkQ2FsbGJhY2s7Ci19Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExh
bmd1YWdlc011dGV4OwotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdl
cygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFn
ZXM7Ci0gICAgcmV0dXJuIGxhbmd1YWdlczsKLX0KLQotfQotCi1AaW50ZXJmYWNlIFdURkxhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXIgOiBOU09iamVjdAotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV1RG
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcgotCi0rICh2b2lkKWxhbmd1YWdlUHJlZmVyZW5jZXNEaWRD
aGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgVU5VU0VEX1BBUkFN
KG5vdGlmaWNhdGlvbik7Ci0KLSAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKFdURjo6cHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgICAgICBXVEY6OnBy
ZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7Ci0gICAgfQotICAgIAotICAgIGlmIChXVEY6OmNh
bGxiYWNrKQotICAgICAgICBXVEY6OmNhbGxiYWNrKCk7Ci19Ci0KLUBlbmQKLQotbmFtZXNwYWNl
IFdURiB7Ci0KLXN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKE5TU3RyaW5nICps
YW5ndWFnZSkKLXsKLSAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOwotICAgIFNJbnQzMiByZWdpb25D
b2RlOwotICAgIFNJbnQzMiBzY3JpcHRDb2RlOwotICAgIENGU3RyaW5nRW5jb2Rpbmcgc3RyaW5n
RW5jb2Rpbmc7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyB0cmFuc2Zvcm1hdGlvbiBpcyB2ZXJ5IHdy
b25nOgotICAgIC8vIDEuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgQ0ZCdW5kbGUgbG9jYWxpemF0
aW9uIG5hbWVzIHdvdWxkIGJlIGF0IGFsbCByZWxhdGVkIHRvIGxhbmd1YWdlIG5hbWVzIGFzIHVz
ZWQgb24gdGhlIFdlYi4KLSAgICAvLyAyLiBTY3JpcHQgTWFuYWdlciBjb2RlcyBjYW5ub3QgcmVw
cmVzZW50IGFsbCBsYW5ndWFnZXMgdGhhdCBhcmUgbm93IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZv
cm0sIHNvIHRoZSBjb252ZXJzaW9uIGlzIGxvc3N5LgotICAgIC8vIDMuIFRoaXMgc2hvdWxkIHBy
b2JhYmx5IG1hdGNoIHdoYXQgaXMgc2VudCBieSB0aGUgbmV0d29yayBsYXllciBhcyBBY2NlcHQt
TGFuZ3VhZ2UsIGJ1dCBjdXJyZW50bHksIHRoYXQncyBpbXBsZW1lbnRlZCBzZXBhcmF0ZWx5Lgot
ICAgIENGQnVuZGxlR2V0TG9jYWxpemF0aW9uSW5mb0ZvckxvY2FsaXphdGlvbigoQ0ZTdHJpbmdS
ZWYpbGFuZ3VhZ2UsICZsYW5ndWFnZUNvZGUsICZyZWdpb25Db2RlLCAmc2NyaXB0Q29kZSwgJnN0
cmluZ0VuY29kaW5nKTsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExhbmd1
YWdlQ29kZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDb3B5TG9jYWxpemF0aW9uRm9yTG9jYWxpemF0aW9u
SW5mbyhsYW5ndWFnZUNvZGUsIHJlZ2lvbkNvZGUsIHNjcmlwdENvZGUsIHN0cmluZ0VuY29kaW5n
KSk7Ci0gICAgaWYgKHByZWZlcnJlZExhbmd1YWdlQ29kZSkKLSAgICAgICAgbGFuZ3VhZ2UgPSAo
TlNTdHJpbmcgKilwcmVmZXJyZWRMYW5ndWFnZUNvZGUuZ2V0KCk7Ci0KLSAgICAvLyBUdXJuIGEg
J18nIGludG8gYSAnLScgaWYgaXQgYXBwZWFycyBhZnRlciBhIDItbGV0dGVyIGxhbmd1YWdlIGNv
ZGUKLSAgICBpZiAoW2xhbmd1YWdlIGxlbmd0aF0gPj0gMyAmJiBbbGFuZ3VhZ2UgY2hhcmFjdGVy
QXRJbmRleDoyXSA9PSAnXycpIHsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVN0cmluZz4g
bXV0YWJsZUxhbmd1YWdlQ29kZSA9IGFkb3B0TlMoW2xhbmd1YWdlIG11dGFibGVDb3B5XSk7Ci0g
ICAgICAgIFttdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpIHJlcGxhY2VDaGFyYWN0ZXJzSW5SYW5n
ZTpOU01ha2VSYW5nZSgyLCAxKSB3aXRoU3RyaW5nOkAiLSJdOwotICAgICAgICByZXR1cm4gbXV0
YWJsZUxhbmd1YWdlQ29kZS5nZXQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbGFuZ3VhZ2U7Ci19
Ci0KLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0j
aWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwot
ICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgW1tOU0Rpc3RyaWJ1dGVk
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOltXVEZMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyIHNlbGZdIHNlbGVjdG9yOkBzZWxlY3RvcihsYW5ndWFnZVByZWZlcmVu
Y2VzRGlkQ2hhbmdlOikgbmFtZTpAIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5nZWROb3Rp
ZmljYXRpb24iIG9iamVjdDpuaWxdOwotICAgIH0pOwotI2VuZGlmCi0KLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7Ci0KLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9j
ayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIGlmICh1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJl
Zj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7
Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFn
ZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAg
ICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VD
b2RlKChOU1N0cmluZyAqKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBp
KSkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NvcHk7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUoKSk7Ci0KLSAgICBmb3Ig
KGF1dG8mIGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcykKLSAgICAgICAgdXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29w
eSgpKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLQotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMTg3MmQ4OWE1MWIyYjZkNDg0Nzg4NmY3MDc3MWNlMzc2NjJmMzg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcy5oIgotCi0jaW5jbHVkZSA8bG9jYWxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2so
dm9pZCAoKikoKSkgeyB9Ci0KLS8vIFVzaW5nIHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkg
aGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCi0vLyBpdCBkb2Vzbid0IHN1cHBvcnQgY2hh
bmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1cm5zCi0vLyBhbHdheXMgdGhl
IHNhbWUgdmFsdWUuCi1zdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQotewotICAgIFN0
cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwotICAgIGlm
IChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2Fs
ZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAi
UE9TSVgiKSkKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZW4tVVMiKTsKLQotICAgIFN0
cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7Ci0gICAgbm9ybWFsaXplZERl
ZmF1bHQucmVwbGFjZSgnXycsICctJyk7Ci0gICAgbm9ybWFsaXplZERlZmF1bHQudHJ1bmNhdGUo
bm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicpKTsKLSAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1
bHQ7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
Ci17Ci0gICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc1dpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5YWQyM2M1NDM5
Y2UyMzMyMDgwNWIyOWQ5ODMyMTI0MTY3NjNjNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzV2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCIKLQot
I2luY2x1ZGUgPG11dGV4PgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDx3dGYvTG9j
ay5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHBsYXRmb3JtTGFu
Z3VhZ2VNdXRleDsKLQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFu
Z2VkQ2FsbGJhY2sodm9pZCAoKikoKSkgeyB9Ci0KLXN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhM
Q1RZUEUgbG9jYWxlVHlwZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKLXsKLSAgICBMQU5HSUQg
bGFuZ0lEID0gR2V0VXNlckRlZmF1bHRVSUxhbmd1YWdlKCk7Ci0gICAgaW50IGxvY2FsZUNoYXJz
ID0gR2V0TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOwotICAgIGlmICghbG9j
YWxlQ2hhcnMpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLSAgICBVQ2hhciogbG9jYWxlTmFt
ZUJ1ZjsKLSAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXpl
ZChsb2NhbGVDaGFycywgbG9jYWxlTmFtZUJ1Zik7Ci0gICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2Nh
bGVJbmZvKGxhbmdJRCwgbG9jYWxlVHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOwot
ICAgIGlmICghbG9jYWxlQ2hhcnMpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLSAgICBpZiAo
bG9jYWxlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLQotICAgIGxv
Y2FsZU5hbWUudHJ1bmNhdGUobG9jYWxlTmFtZS5sZW5ndGgoKSAtIDEpOwotICAgIHJldHVybiBs
b2NhbGVOYW1lOwotfQotCi1zdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQotewotICAg
IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7
Ci0KLSAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwotICAgIGlmICgh
Y29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gY29tcHV0
ZWREZWZhdWx0TGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCk7Ci0KLSAgICBTdHJpbmcgbGFuZ3VhZ2VO
YW1lID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKLSAgICBTdHJp
bmcgY291bnRyeU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJp
bmcoKSk7Ci0KLSAgICBpZiAoY291bnRyeU5hbWUuaXNFbXB0eSgpKQotICAgICAgICBjb21wdXRl
ZERlZmF1bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXB1
dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7Ci0K
LSAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0gICAgcmV0dXJuIHsgcGxhdGZv
cm1MYW5ndWFnZSgpIH07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQ
RS5jbWFrZQppbmRleCA0ZjE1YjZkZGE5ZjRjZmY5NDYyNzNhMjZkZWE5ODU0YTUyNmY2ZTFhLi40
YjQxMGU1ZmI3MmRlNTkwMjU2ZTQyOWI2YzFiZWUyNzNjODRlNjg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMSw1ICsxLDQgQEAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAg
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAKICAgICBVbmlTdGRFeHRyYXMu
Y3BwCiAKICAgICBnZW5lcmljL01haW5UaHJlYWRHZW5lcmljLmNwcApAQCAtMTYsNiArMTUsNyBA
QCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVVW5peC5jcHAKIAogICAgIHVuaXgvQ1BVVGltZVVuaXguY3BwCisgICAgdW5p
eC9MYW5ndWFnZVVuaXguY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggMzZiY2VjNGI2NjMzYjI1YzM5ZjE0ZDc4ZTFhNTVlY2Q0
M2Q0OGQyMi4uNWNmZWMwNzdjNGU1MzFhZWJhNmExZGQ2MzM2ZGJkOTI4YWI4Zjk5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTMsMTEgKzMsMTAgQEAgbGlzdChBUFBFTkQgV1RGX0hF
QURFUlMKICkKIAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNXaW4uY3BwCi0KICAgICB0ZXh0L3dpbi9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVV2luLmNwcAogCiAgICAgd2luL0NQVVRpbWVXaW4uY3BwCisgICAgd2luL0xhbmd1
YWdlV2luLmNwcAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAogICAgIHdpbi9NZW1vcnlGb290
cHJpbnRXaW4uY3BwCiAgICAgd2luL01lbW9yeVByZXNzdXJlSGFuZGxlcldpbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwIGIvU291cmNlL1dURi93dGYv
Y2YvTGFuZ3VhZ2VDRi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyMDNkMTdjZjg5YTIwM2I5ZmFjYjFjMWE4
YmFiMWI2ODQwOWM1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1
YWdlQ0YuY3BwCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA1LCAyMDA2LCAyMDEwLCAyMDExLCAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1
YWdlLmgiCisKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2lu
Y2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3Nw
aS9jZi9DRkJ1bmRsZVNQSS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV1RGIHsKKworc3RhdGljIFN0YXRpY0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0
ZXg7CisKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKKyAgICBy
ZXR1cm4gbGFuZ3VhZ2VzOworfQorCitzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29k
ZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKK3sKKyAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOworICAg
IFNJbnQzMiByZWdpb25Db2RlOworICAgIFNJbnQzMiBzY3JpcHRDb2RlOworICAgIENGU3RyaW5n
RW5jb2Rpbmcgc3RyaW5nRW5jb2Rpbmc7CisKKyAgICAvLyBGSVhNRTogVGhpcyB0cmFuc2Zvcm1h
dGlvbiBpcyB2ZXJ5IHdyb25nOgorICAgIC8vIDEuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgQ0ZC
dW5kbGUgbG9jYWxpemF0aW9uIG5hbWVzIHdvdWxkIGJlIGF0IGFsbCByZWxhdGVkIHRvIGxhbmd1
YWdlIG5hbWVzIGFzIHVzZWQgb24gdGhlIFdlYi4KKyAgICAvLyAyLiBTY3JpcHQgTWFuYWdlciBj
b2RlcyBjYW5ub3QgcmVwcmVzZW50IGFsbCBsYW5ndWFnZXMgdGhhdCBhcmUgbm93IHN1cHBvcnRl
ZCBieSB0aGUgcGxhdGZvcm0sIHNvIHRoZSBjb252ZXJzaW9uIGlzIGxvc3N5LgorICAgIC8vIDMu
IFRoaXMgc2hvdWxkIHByb2JhYmx5IG1hdGNoIHdoYXQgaXMgc2VudCBieSB0aGUgbmV0d29yayBs
YXllciBhcyBBY2NlcHQtTGFuZ3VhZ2UsIGJ1dCBjdXJyZW50bHksIHRoYXQncyBpbXBsZW1lbnRl
ZCBzZXBhcmF0ZWx5LgorICAgIENGQnVuZGxlR2V0TG9jYWxpemF0aW9uSW5mb0ZvckxvY2FsaXph
dGlvbihsYW5ndWFnZSwgJmxhbmd1YWdlQ29kZSwgJnJlZ2lvbkNvZGUsICZzY3JpcHRDb2RlLCAm
c3RyaW5nRW5jb2RpbmcpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFu
Z3VhZ2VDb2RlID0gYWRvcHRDRihDRkJ1bmRsZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRp
b25JbmZvKGxhbmd1YWdlQ29kZSwgcmVnaW9uQ29kZSwgc2NyaXB0Q29kZSwgc3RyaW5nRW5jb2Rp
bmcpKTsKKyAgICBpZiAocHJlZmVycmVkTGFuZ3VhZ2VDb2RlKQorICAgICAgICBsYW5ndWFnZSA9
IHByZWZlcnJlZExhbmd1YWdlQ29kZS5nZXQoKTsKKworICAgIC8vIFR1cm4gYSAnXycgaW50byBh
ICctJyBpZiBpdCBhcHBlYXJzIGFmdGVyIGEgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZQorICAgIGlm
IChDRlN0cmluZ0dldExlbmd0aChsYW5ndWFnZSkgPj0gMyAmJiBDRlN0cmluZ0dldENoYXJhY3Rl
ckF0SW5kZXgobGFuZ3VhZ2UsIDIpID09ICdfJykgeworICAgICAgICBhdXRvIG11dGFibGVMYW5n
dWFnZUNvZGUgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgbGFuZ3VhZ2UpKTsKKyAgICAgICAgQ0ZTdHJpbmdSZXBsYWNlKG11dGFibGVM
YW5ndWFnZUNvZGUuZ2V0KCksIENGUmFuZ2VNYWtlKDIsIDEpLCBDRlNUUigiLSIpKTsKKyAgICAg
ICAgcmV0dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7CisgICAgfQorCisgICAgcmV0dXJu
IGxhbmd1YWdlOworfQorCisjaWYgUExBVEZPUk0oTUFDKQorc3RhdGljIHZvaWQgbGFuZ3VhZ2VQ
cmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3Ry
aW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQoreworICAgIHsKKyAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgp
OworICAgICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgIH0KKyAgICAKKyAg
ICBsYW5ndWFnZURpZENoYW5nZSgpOworfQorI2VuZGlmCisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0
YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VU
b2tlbiwgXiB7CisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCBudWxscHRyLCAmbGFuZ3VhZ2VQ
cmVmZXJlbmNlc0RpZENoYW5nZSwgQ0ZTVFIoIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb24iKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZp
b3JDb2FsZXNjZSk7CisgICAgfSk7CisjZW5kaWYKKworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0
aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICBWZWN0b3I8U3RyaW5n
PiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworCisgICAg
aWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJldGFpblB0
cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExh
bmd1YWdlcygpKTsKKyAgICAgICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENv
dW50KGxhbmd1YWdlcy5nZXQoKSk7CisgICAgICAgIGlmICghbGFuZ3VhZ2VDb3VudCkKKyAgICAg
ICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIpOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkr
KykKKyAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5
bGVMYW5ndWFnZUNvZGUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFZl
Y3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OworICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1
YWdlcy5zaXplKCkpOworCisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMpCisgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFw
cGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7CisKKyAgICByZXR1cm4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NvcHk7CisKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdl
VW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTAxNmZiMmFlMzcwYjMxODEzNTliOGFlZjM5M2YzZTU3ZjUyZjM1MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1
ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFVzaW5nIHBhbmdvX2xhbmd1
YWdlX2dldF9kZWZhdWx0KCkgaGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCisvLyBpdCBk
b2Vzbid0IHN1cHBvcnQgY2hhbmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1
cm5zCisvLyBhbHdheXMgdGhlIHNhbWUgdmFsdWUuCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFu
Z3VhZ2UoKQoreworICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwg
bnVsbHB0cikpOworICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
ZW4tVVMiKTsKKworICAgIFN0cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7
CisgICAgbm9ybWFsaXplZERlZmF1bHQucmVwbGFjZSgnXycsICctJyk7CisgICAgbm9ybWFsaXpl
ZERlZmF1bHQudHJ1bmNhdGUobm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicpKTsKKyAgICByZXR1
cm4gbm9ybWFsaXplZERlZmF1bHQ7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2lu
L0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzYwMTA5ODU1MDAzZGEwYzJlYjMyNzk5NjE3OWIxNjNkMjk4MzgyNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTAsMCAr
MSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiwgMjAxNyBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisK
KyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxh
bmd1YWdlTXV0ZXg7CisKK3N0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlw
ZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKK3sKKyAgICBMQU5HSUQgbGFuZ0lEID0gR2V0VXNl
ckRlZmF1bHRVSUxhbmd1YWdlKCk7CisgICAgaW50IGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5m
byhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOworICAgIGlmICghbG9jYWxlQ2hhcnMpCisgICAg
ICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBVQ2hhciogbG9jYWxlTmFtZUJ1ZjsKKyAgICBTdHJp
bmcgbG9jYWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsb2NhbGVDaGFycywg
bG9jYWxlTmFtZUJ1Zik7CisgICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwg
bG9jYWxlVHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOworICAgIGlmICghbG9jYWxl
Q2hhcnMpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBpZiAobG9jYWxlTmFtZS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKworICAgIGxvY2FsZU5hbWUudHJ1bmNh
dGUobG9jYWxlTmFtZS5sZW5ndGgoKSAtIDEpOworICAgIHJldHVybiBsb2NhbGVOYW1lOworfQor
CitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIHN0ZDo6bG9ja19ndWFy
ZDxTdGF0aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisKKyAgICBzdGF0aWMg
U3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOworICAgIGlmICghY29tcHV0ZWREZWZhdWx0
TGFuZ3VhZ2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3Vh
Z2UuaXNvbGF0ZWRDb3B5KCk7CisKKyAgICBTdHJpbmcgbGFuZ3VhZ2VOYW1lID0gbG9jYWxlSW5m
byhMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKKyAgICBTdHJpbmcgY291bnRyeU5hbWUg
PSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJpbmcoKSk7CisKKyAgICBp
ZiAoY291bnRyeU5hbWUuaXNFbXB0eSgpKQorICAgICAgICBjb21wdXRlZERlZmF1bHRMYW5ndWFn
ZSA9IGxhbmd1YWdlTmFtZTsKKyAgICBlbHNlCisgICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlID0gbGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7CisKKyAgICByZXR1cm4gY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZDkwMzI1
NmMzNDE5NmM4MjQzZWIxNjcyNTc5YWRlMWFkNTNlNzZiLi45YWQxY2MyN2JmZGQ2N2FiMTBiMGZm
YmM1ZDkyZmZlNGU3YjkwYzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI3NSw3ICsyMjc1
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCiAg
ICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKICAgICBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVl
LmNwcAotICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xheW91dFVuaXQu
Y3BwCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmNwcAogICAgIHBsYXRmb3JtL0xlbmd0aEJveC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4YWMwYzAzODU3NWQzYWY4OTFlYmQ1Y2VmNmZhMTA5NGE2NjIyZGI3Li4zMjIwN2IwM2Jm
MDBlYWEwMWU3NDQ5OGY0ZGE4MTBmYzRkZDI4ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjk3LDcgKzM2OTcsNiBAQAog
CQk4NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRDBBMjI5N0JFMDA1OEQ3QUQg
LyogVHJhdmVyc2FsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODU0RkU3MzgwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MkUwQTIyOTdC
RTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwICovOyB9OwogCQk4NTRGRTczOTBBMjI5N0JFMDA1
OEQ3QUQgLyogVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU0RkU3MkYwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NUVDOUFGQjBB
NzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUM5QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MUMy
RUE0MTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBM
b2FkVGltaW5nLmNwcCAqLzsgfTsKIAkJODYyRjEyOUUxOEMxNTc2RjAwNUM1NEFGIC8qIENvdW50
ZWRVc2VyQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyRjEy
QTAxOEMxREQwMjAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUYxOEMxRENFNDAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0zODg5LDggKzM4ODgsNiBAQAogCQk5MzkxQTk5MTE2Mjc0NkNC
MDAyOTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5oICovOyB9OwogCQk5MzkxQTk5QzE2MjlENzAwMDAyOTcz
MzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCAqLzsgfTsKIAkJOTM5MUE5OUQxNjI5RDcwMDAw
Mjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlBNkQ1QTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi87IH07Ci0JCUE2RDVBOTlEMTYyOUQ3
MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QjE2MjlENzAw
MDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTIxNDY5MThBNkQ3
OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRl
eHRJdGVyYXRvckJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5MjI2MkUxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwICovOyB9
OwogCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDEwQUQxODVGNDAw
NjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCAqLzsgfTsKQEAgLTQ2MDQsNiArNDYwMSw4IEBACiAJ
CUE2MTQ4QTc5MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjE0OEE3NzEyRTQxRTNC
MDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oICovOyB9OwogCQlBNkQxNjk2MjEzNDZC
NDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9v
dC5jcHAgKi87IH07CiAJCUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MzEz
NDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE2RDVBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLzsgfTsKKwkJQTZENUE5OUQxNjI5
RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlCMTYyOUQ3
MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYx
NTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4
dENoZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9
OwogCQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEz
NEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC02Njc5
LDcgKzY2NzgsNiBAQAogCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9i
YWxTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTgyNTY4RDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi87
IH07CiAJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNTY4RTBF
RjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovOyB9OwogCQlFMTgyNThB
QzBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNThBQjBFRjNDRDcw
MDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi87IH07Ci0JCUUxODc3
MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFu
Z3VhZ2UuY3BwICovOyB9OwogCQlFMThERjMzNTE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXpl
ZENyeXB0b0tleVdyYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxOERGMzM0MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUx
OERGMzM4MThBQUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOERGMzM2MThB
QUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLzsgfTsKIAkJ
RTE5NzI3MTYxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1
MSAvKiBDcnlwdG9LZXlUeXBlLmggKi87IH07CkBAIC0xMTUxNiw4ICsxMTUxNCw4IEBACiAJCTdD
QkE1QkE2MUYwQjRCREUwMDM0RDc0NSAvKiBKU0RPTUNvbnZlcnRXZWJHTC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTUNvbnZlcnRXZWJHTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDQkJCQ0M0MUY1NjA1NjcwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTU1hdHJpeDJESW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDQkJCQ0M2MUY1NjA1NjgwMDVFRkFBQyAvKiBET01NYXRyaXgyRElu
aXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTWF0cml4MkRJbml0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkJCQ0M4MUY1NjE3QzAwMDVFRkFBQyAv
KiBKU0RPTU1hdHJpeDJESW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTU1hdHJpeDJE
SW5pdC5jcHA7IHBhdGggPSBKU0RPTU1hdHJpeDJESW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTdDQkJCQ0M5MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5p
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBKU0RPTU1hdHJpeDJESW5pdC5oOyBwYXRoID0gSlNET01NYXRy
aXgyREluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzgxRjU2MTdD
MDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RE9NTWF0cml4MkRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJD
QzkxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRE9NTWF0cml4MkRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzJE
REY4MUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NDMkRERkExRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0MyRERGRTFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJt
aXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm90aWZp
Y2F0aW9uUGVybWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk4
OCw3ICsxMTk4Niw2IEBACiAJCTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NVbmtub3du
UnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1Vua25vd25SdWxlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjJGNjkwQUEzQzc0MzAwQUQ2NEM1IC8qIEhU
TUxDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTENvbGxlY3Rpb24u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkY5MjBBQTNDOUI2MDBBRDY0
QzUgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
ODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogTG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0
aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlZFVzZXJBY3Rp
dml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RjE4QzFEQ0U0MDA1
QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEh5c3RlcmVzaXNBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTIyMTYsOCArMTIyMTMsNiBAQAogCQk5MzkxQTk5MDE2Mjc0NkNCMDAyOTczMzAgLyogU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM5MUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUE5OUIxNjI5
RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyMjYy
RTEwMzIxMDg0MDA2RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRl
ckNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckNvdW50
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDQxLDYgKzEzMDM2LDggQEAK
IAkJQTYxNDhBN0YxMkU0MUVEMTAwNDRBNzg0IC8qIEhUTUxLZXlnZW5FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MS2V5Z2VuRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1Jvb3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyog
U2hhZG93Um9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dSb290
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMz
MCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNkQ1QTk5QjE2MjlENzAwMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2
NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0Q2hlY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1
RTY1MDEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAv
KiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTQyOSw3ICsxNTQyNiw2IEBACiAJCUUxODI1NjhEMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV29ya2VyR2xvYmFsU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTgyNTY4RTBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckdsb2JhbFNjb3BlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtl
ckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENy
eXB0b0tleVdyYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXpl
ZENyeXB0b0tleVdyYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzYx
OEFBRjE0RDAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXBN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOTcyNzE1MTgyMDU0OUUwMDU5
MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyeXB0b0tleVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTIyLDgg
KzE2OTE4LDYgQEAKIAkJCQkwRkM0RTQwQzE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRkM0RTQwOTE4N0Y4MkUxMDA0NTg4
MkMgLyogU2Nyb2xsaW5nVHJlZUlPUy5jcHAgKi8sCiAJCQkJMEZDNEU0MEExODdGODJFMTAwNDU4
ODJDIC8qIFNjcm9sbGluZ1RyZWVJT1MuaCAqLywKLQkJCQkxQjk0RTQwOTE4N0Y4MkUxMDA0NTg4
MkMgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8sCi0JCQkJMUI5
NEU0MEExODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTI0NDk3LDggKzI0NDkxLDYgQEAKIAkJCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYg
LyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8sCiAJCQkJMUFFMDBENTcxODJEQUM4RDAwMDg3REQ3
IC8qIEtleWVkQ29kaW5nLmggKi8sCiAJCQkJRTE1RkY3RDQxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oICovLAotCQkJCUUxODc3MkYwMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5n
dWFnZS5jcHAgKi8sCi0JCQkJODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmgg
Ki8sCiAJCQkJQTNENDJBODQxRjMzQkEzNjAwQTY0QjYyIC8qIExheW91dFVuaXQuY3BwICovLAog
CQkJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8sCiAJCQkJQkNF
NjVCRTgwRUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgKi8sCkBAIC0yNzcxNywxMiArMjc3
MDksOSBAQAogCQkJCTg0NzMwRDg1MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3Vs
YXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBB
IC8qIEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5Qzk5NzFGNTlC
OTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQx
MjlEQjFGM0QxNDM4MDBEMTVFNDcgLyogRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwMjMgLyogRmV0Y2hJbnRlcm5hbHNCdWlsdGlucy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUExRjU4ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZCRDEwMEEzMTQ4
NiAvKiBGZXRjaE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTREMUYyQTlBRkIw
MDI3MkY3OCAvKiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Ux
OTE1QTFGMkE5QjM0MDAyNzJGNzggLyogRmV0Y2hSZXF1ZXN0Q2FjaGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkwMTIsNyArMjkwMDEsNiBAQAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAv
KiBLZXlwcmVzc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUw
MDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU2RkEy
NzExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTg1RUM5QUZCMEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjkxN0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIz
NDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4ODgs
NyArMjk4NzYsNiBAQAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJBODZDMyAvKiBTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RDFGM0VCQzgzMDBD
NzQ5NTAgLyogU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NUYxRjNF
QkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTUxN0E1MzVEMUY1ODk5RkUwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYxMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYzMUYzRUJDODMw
MEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VySm9iLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2
NDFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckpvYkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMzA4OCw3ICszMzA3NSw2IEBACiAJCQkJQkM1RUJBMTAwRTgyM0U0NzAwQjI1OTY1
IC8qIEtleWZyYW1lTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NTBDRUJGMDE1MDczQkJF
MDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNDU2
RkEyNjExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI5MTdCNTYxMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MTdCNTY2MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXll
ckZsdXNoU2NoZWR1bGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTNBNjlGMTk0QjU5
QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3Bw
CmluZGV4IDcwNzU2ZmZhZDdiMzI2N2M1NzkwOGZlODQ1NWNjYTFiNjc0YzA1MDEuLjJlYmMyMjZi
NzU5YmRhZDNiNTQzODQ2YWJiZDU0MGFlODhjNDZlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
CiAjaW5jbHVkZSAiU1ZHQUVsZW1lbnQuaCIKQEAgLTQwLDYgKzM5LDcgQEAKICNpbmNsdWRlICJT
VkdUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAi
WExpbmtOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCmluZGV4IGRjY2QyODMzOGUzZTgwZmQzYTQ4ZjM4NTUyYTNlZjJhMDMzNTdhOTUuLjZhZTU4
NzFjNmZiYjJkYTk4ZmM1ZWEyNWZkOGMxY2Y0ZThlOTFkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJv
bWlzZVRyYWNrZXIuaCIKQEAgLTUxLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFu
Z3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCmluZGV4IDllODU0YTM4YzUzZTUwODlhMzMyMzAwMDkzOGZiYzNlMWEzZjAw
ZDAuLjM0YTUxYTU3MDg3Mzk4ZjM5MWFlNjc3Y2NiN2M4ZWNhMDljNmZiNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTMzLDEyICszMywxMiBAQAogI2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU0R5bmFtaWNEb3duY2FzdC5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI5MWE1ZmEyMGI0
N2I5MGU5ZTY1NGFhNDFlYzIzMWQ3YTk5MzE5M2EuLmRlMmYzYmE2ZWM2YzdmM2YxNmMzOTRkNDk0
ZGUwYzEzMGNmNDZhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw2
IEBACiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNM
YXp5RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxheW91dERpc2FsbG93ZWRTY29wZS5oIgogI2luY2x1
ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMjA2LDYgKzIw
NSw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUg
PHBhbC9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3
dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYzA4Y2YzMzcwYzJhMzFh
ZDMwMzNiOWY2MThmYTk1ZDAwMjMwNmNjMS4uMzhiMTI1NDkxNWZhZGNiMjllNGQ1M2U0ZDJiMmI2
Mjk3ZDk0YWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBA
IC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUg
IklkVGFyZ2V0T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtNTksNiAr
NTgsNyBAQAogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZjMyZmU0ZGI0YTkx
YzY5NGI0NWZjYzc4NWVhNWY3NjIwMDVmY2VlLi45ZTBhOWEyZmU4N2ZhNjNhZDM1Mjg1NjM4MGU4
ZjNhNmY0NDc1NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJKU0RPTUVycm9yLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0hUTUxNZWRpYUVsZW1lbnQuaCIKLSNp
bmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCkBAIC05NCw2ICs5Myw3IEBA
CiAjaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRo
bXMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNTQzZjYx
ZjllODczNTBkNTc4NmRkZDY2ZTQ3NzRlNzUzNTRiZTYxNi4uNjRmMmMxYWU0ODJlN2ViYzAyMGM5
YmZhY2Y5YTcxYmE2NTJiN2Q5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUg
IkhUTUxVTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxv
Y2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9scy5oIgpAQCAtNjAsNiArNTksNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNp
bmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgorI2lu
Y2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCA3ZWE0ZTA1NmIzY2JmNDJlNGIyYzcx
ZDUwYjM0OGI2ODI3YTgwOGRjLi44NjgxOWY1N2IyYjkyZjc1ZmIxNmQ1NDdlMDUwZmVhYTk2MDVm
ZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCiAKLSNp
bmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IDdk
NWFiMWUxNTE4OTU5ZTQ1YzQ0ZTY4YTI5ZDI0MzA2Mzc5MDQyMzYuLmJhZTBiM2JhYWNlNTk4MDc1
N2FhYjZkZDRmNzkwYWEwZGMzZTkyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXVk
aW9UcmFja0xpc3QuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJM
YW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNZWRp
YVNlbGVjdGlvbk9wdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTQ0LDYgKzQzLDcgQEAK
ICNpbmNsdWRlIDxoZWFwL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NlbGxJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRl
eCBmMGI4ZjdmMjdkMGRhOTY5YmI2ZDE0MzBjMDRmODcwZTU2N2EzZjZjLi4yM2Q3ZTBiZjRlN2Rh
NmEwMjBhYTVlOTdkMWFmMTZjMjViMWY0MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzcsNyArMzcsNiBA
QAogI2VuZGlmCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xF
bGVtZW50cy5oIgpAQCAtNDYsOCArNDUsOCBAQAogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0VHlw
ZXMuaCIKICNpbmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oPgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjIzOWM4
YWZlNDkwMDgzOTkwYzNiNDA1YmE3NDdiOWQ5MTUxZWIwNy4uY2IxNjM5ODZjODM2YjU1ZDA4ZTVk
Mzg4YWRhODk5YjAzMWE5M2UzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNjYs
NyArNjYsNiBAQAogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNs
dWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTWFpbkZy
YW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKQEAgLTExMCw2ICsxMDksNyBAQAog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8
bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5n
dWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmNwcAppbmRleCBiNmQ1NThmNzViMWY4MGVmYTIwYWUxMTVkNGMzMWQ5YzYzZTIxNWU0
Li40MWQwODc2Y2Q1ZWVmMWViMDVlNTRlMzg1NzBhOGYzZTNjOWYwMjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3IuY3BwCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b24uaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbHVnaW5EYXRhLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXVEY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCA5N2ZmOTUz
YTZmM2JkZmQwOTZlYWVkNmRjNWJmZjg5MmM0YzcyZTk1Li4yMjJhOGVmNGM2OGYxYjI2MmFmZGY4
MTIyZDhhYzk0Y2Q4YjgyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAK
QEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmln
YXRvckJhc2UuaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0
YXRlTm90aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCiAjaW5j
bHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM0YjM0OTI0NmFjN2U5ZTc2MDA2YWU3YjA0
ODMwNDk2MmZhODAwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgVVNFKENGKSAmJiAhUExBVEZPUk0o
V0lOKQotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0jZW5kaWYK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTXV0ZXg7Ci0KLXN0YXRpYyB2b2lkIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VD
YWxsYmFja0lmTmVjZXNzYXJ5KCkKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsK
LSAgICBzdGQ6OmNhbGxfb25jZSgKLSAgICAgICAgb25jZSwKLSAgICAgICAgW10gewotICAgICAg
ICAgICAgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKGxh
bmd1YWdlRGlkQ2hhbmdlKTsKLSAgICAgICAgfSk7Ci19Ci0KLXR5cGVkZWYgSGFzaE1hcDx2b2lk
KiwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKLXN0YXRpYyBP
YnNlcnZlck1hcCYgb2JzZXJ2ZXJNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
YnNlcnZlck1hcD4gbWFwOwotICAgIHJldHVybiBtYXAuZ2V0KCk7Ci19Ci0KLXZvaWQgYWRkTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24gY3VzdG9tT2JzZXJ2ZXIpCi17Ci0gICAgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5n
ZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKLSAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBj
dXN0b21PYnNlcnZlcik7Ci19Ci0KLXZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2
b2lkKiBjb250ZXh0KQotewotICAgIEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRl
eHQpKTsKLSAgICBvYnNlcnZlck1hcCgpLnJlbW92ZShjb250ZXh0KTsKLX0KLQotdm9pZCBsYW5n
dWFnZURpZENoYW5nZSgpCi17Ci0gICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2Vy
dmVyTWFwKCkuZW5kKCk7Ci0gICAgZm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9i
c2VydmVyTWFwKCkuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgaXRlci0+
dmFsdWUoaXRlci0+a2V5KTsKLX0KLQotU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCi17Ci0gICAg
VmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAg
IGlmIChsYW5ndWFnZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwotCi0g
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGU7Ci0gICAgcmV0dXJuIG92ZXJyaWRlOwotfQotCi1WZWN0
b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHJldHVy
biBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotfQotCi12b2lkIG92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCi17Ci0gICAg
cHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKSA9IG92ZXJyaWRlOwotICAgIGxhbmd1YWdlRGlk
Q2hhbmdlKCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gY29weTsKLSAg
ICBjb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOwotICAgIGZvciAo
YXV0byYgbGFuZ3VhZ2UgOiBzdHJpbmdzKQotICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChs
YW5ndWFnZS5pc29sYXRlZENvcHkoKSk7Ci0gICAgcmV0dXJuIGNvcHk7Ci19Ci0KLVZlY3RvcjxT
dHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotICAgIHsKLSAgICAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsK
LSAgICAgICAgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGUoKTsKLSAgICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKLSAgICB9Ci0gICAgCi0gICAgcmVnaXN0ZXJM
YW5ndWFnZURpZENoYW5nZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKLSAgICByZXR1cm4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci19Ci0KLXN0YXRpYyBTdHJpbmcgY2Fub25pY2Fs
TGFuZ3VhZ2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQotewotICAgIFN0
cmluZyBsb3dlcmNhc2VMYW5ndWFnZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKLSAgICAKLSAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgp
ID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlWzJdID09ICdfJykKLSAgICAgICAgbG93ZXJj
YXNlTGFuZ3VhZ2VDb2RlLnJlcGxhY2UoMiwgMSwgIi0iKTsKLQotICAgIHJldHVybiBsb3dlcmNh
c2VMYW5ndWFnZUNvZGU7Ci19Ci0KLXNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJ
bkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1
YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCkKLXsKLSAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3Vh
Z2UgPSBsYW5ndWFnZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgIFN0cmluZyBsYW5n
dWFnZVdpdGhvdXRMb2NhbGVNYXRjaDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExv
Y2FsZTsKLSAgICBzaXplX3QgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7Ci0g
ICAgc2l6ZV90IGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKLSAgICBi
b29sIGNhbk1hdGNoTGFuZ3VhZ2VPbmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09
IDIgfHwgKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3Vh
Z2VbMl0gPT0gJy0nKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlz
dC5zaXplKCk7ICsraSkgewotICAgICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJv
bUxpc3QgPSBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKLQot
ICAgICAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJv
bUxpc3QpIHsKLSAgICAgICAgICAgIGV4YWN0TWF0Y2ggPSB0cnVlOwotICAgICAgICAgICAgcmV0
dXJuIGk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYg
Y2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgewotICAgICAgICAg
ICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21M
aXN0WzBdICYmIGxvd2VyY2FzZUxhbmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZy
b21MaXN0WzFdKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVN
YXRjaC5sZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9
PSAyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0g
bGFuZ3VhZ2VMaXN0W2ldOwotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2Nh
bGVNYXRjaEluZGV4ID0gaTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYg
KCFsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5n
dWFnZUZyb21MaXN0Lmxlbmd0aCgpID49IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3Vh
Z2VNYXRjaEJ1dE5vdExvY2FsZSA9IGxhbmd1YWdlTGlzdFtpXTsKLSAgICAgICAgICAgICAgICAg
ICAgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXggPSBpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGV4YWN0TWF0Y2gg
PSBmYWxzZTsKLQotICAgIC8vIElmIHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2gg
YW5kIGEgbGFuZ3VnZS1idXQtbm90LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQotICAgIC8vIGxh
bmd1Z2Utb25seSBtYXRjaCBhcyBpcyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBl
eGFtcGxlLCBpZiB0aGUgbGlzdAotICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5k
ICJlbiIgYW5kIHRoZSB1c2VyIHByZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgot
ICAgIGlmIChsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKLSAgICAgICAgcmV0
dXJuIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXg7Ci0KLSAgICBpZiAobGFuZ3VhZ2VN
YXRjaEJ1dE5vdExvY2FsZS5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hC
dXROb3RMb2NhbGVNYXRjaEluZGV4OwotCi0gICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7
Ci19Ci0KLVN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYg
bG9jYWxlTmFtZSkKLXsKLSNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCi0gICAgaWYgKCFs
b2NhbGVOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5
RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgp
KS5nZXQoKSwga0NGTG9jYWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygp
LmdldCgpKSkuZ2V0KCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gbG9jYWxlTmFtZTsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNkN2U2NjdhMjcxMTI0OTg5NTEzNjI3M2M5ZWFjM2NiNDA4ZjE3NmMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGFuZ3VhZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDYsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExhbmd1YWdlX2gKLSNkZWZpbmUgTGFuZ3VhZ2VfaAot
Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1bHRMYW5ndWFn
ZSgpOyAvLyBUaHJlYWQtc2FmZS4KLVdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1
YWdlIHRhZ3MuCi1WZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUo
KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci1zaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdl
SW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5n
dWFnZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwotCi0vLyBUaGUgb2JzZXJ2ZXIgZnVuY3Rpb24g
d2lsbCBiZSBjYWxsZWQgd2hlbiBzeXN0ZW0gbGFuZ3VhZ2UgY2hhbmdlcy4KLXR5cGVkZWYgdm9p
ZCAoKkxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbikodm9pZCogY29udGV4dCk7Ci1XRUJD
T1JFX0VYUE9SVCB2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwg
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKLQotU3RyaW5nIGRpc3Bs
YXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7Ci0KLS8vIENhbGxlZCBmcm9t
IHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFn
ZShzKSBjaGFuZ2UuCi1XRUJDT1JFX0VYUE9SVCB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Ci19
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcAppbmRleCA4MWQxMjAwOWEzZjUxOWMwN2U5MWNjZjBi
YmJlNmYwODBlODYwNjNlLi41ZWJhYjljOTZkODhlMWRjY2NmMmI2MjI0MzQ2ZDFhNGMyY2UzMjdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJp
Y0ZhbWlsaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
R2VuZXJpY0ZhbWlsaWVzLmNwcApAQCAtMjUsNyArMjUsOCBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCisKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5k
ZXggMDQyZTUzMDE3YmFiZTZlZmE1NjkwMjUxY2YwNmNjZTBlM2M3NDRkOC4uYTIzZDgwOWQzYTVk
ZGZhZjM3MTE2MmRmMWZjYjYwNDIyYjczZGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMjgsMTEgKzI4LDExIEBACiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbXBvcnQgIkxhbmd1YWdlLmgiCiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZBc3NldC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxlY3Rp
b25Hcm91cC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDx3dGYvTGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggNjRh
ZTk3MmRmY2Y5MjkwODYwMGQ5YWM4YTdmYjdjNzUwNDYxMzZjOC4uNWRjMDM1ZGZmNWNkNTU0OWYy
MTU3NWE2OTVjY2Q0Y2M1ZmNhNmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJIVFRQ
UGFyc2Vycy5oIgogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCi0jaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oCmluZGV4IDkxMTk4ZjI3
MTU3NWM3YmZmZTEyZjM2ZmViMDI1NGEzM2I0MGYwZTYuLmE5MWZlODNjYjc5NmY0ZThjOTI1NzFh
YjViOWZiNTE2MTg3MDExYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvUGxhdGZvcm1Mb2NhbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Bs
YXRmb3JtTG9jYWxlLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUGxhdGZvcm1Mb2NhbGVf
aAogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgor
I2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCBiNGIwZTUxZjRhZmQ2Y2EzYmNjOGEwZjg3
NTJkNTM0Y2Q4Yjk2YTYzLi4xYzcwYzQxM2Q4Y2MyMjUwMDRiMTdkN2IyYTY2OWE3MzcwNTdmMzZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9u
Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25D
Ri5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJI
eXBoZW5hdGlvbi5oIgogCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFu
Z3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RpbnlM
UlVDYWNoZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTUzLDcgKzUz
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgLy8gQ0YgaHlwaGVuYXRpb24gZnVuY3Rpb25z
IHVzZSBsb2NhbGUgKHJlZ2lvbmFsIGZvcm1hdHMpIGxhbmd1YWdlLCB3aGljaCBkb2Vzbid0IG5l
Y2Vzc2FyaWx5IG1hdGNoIHByaW1hcnkgVUkgbGFuZ3VhZ2UsCiAgICAgICAgIC8vIHNvIHdlIGNh
bid0IHVzZSBkZWZhdWx0IGxvY2FsZSBoZXJlLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODk3NjY0
Pi4KLSAgICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUgPSBhZG9wdENGKENGTG9j
YWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIFdlYkNvcmU6OmRlZmF1bHRMYW5ndWFnZSgp
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVm
PiBsb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRl
ZmF1bHRMYW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICAgICAgcmV0dXJu
IENGU3RyaW5nSXNIeXBoZW5hdGlvbkF2YWlsYWJsZUZvckxvY2FsZShsb2NhbGUuZ2V0KCkpID8g
bG9jYWxlIDogbnVsbHB0cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvbWFjL0xvY2FsZU1hYy5tbQppbmRleCBkMTU1OTA1NWU2MGUyMDg3NmNlZGY4YmMyNmNiZDBm
YTc3OGMzYzg5Li4wYWYxNzlmYTIzMzE2MzY1YjdjMDhjMDcyOTRmODNiOTRhZDMzYWYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0zMSwx
MiArMzEsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGVNYWMuaCIK
IAorI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0Rh
dGVGb3JtYXR0ZXIuaD4KICNpbXBvcnQgPEZvdW5kYXRpb24vTlNMb2NhbGUuaD4KLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3
dGYvRGF0ZU1hdGguaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYv
RGF0ZU1hdGguaD4KKyNpbXBvcnQgPHd0Zi9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiTG9jYWxpemVkRGF0ZUNhY2hl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAppbmRleCBlNDRjMzM0ZjE2NTE5YjliYTcwYjJmMGYw
ZjQ5ZGNjMDM1YzkxOTBlLi44MzRjMGUzZDk4ZThiMmRlNWQ5ODBhZmFmZTc2MzVmMjQzN2UxZjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAKQEAgLTI0LDEwICsyNCwxMCBAQAogCiAjaW5jbHVk
ZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1l
cy5oIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShNQVRITUwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA5Mzg5
M2JkNTczOWMwZGQyMTY3NTkwMTQyNmNkZmYwYjMxZWY4OGVhLi40YmYxZDBlODEyMTY4ZWQ5NWY1
YTg5ZjYzNTViMzMxMjg0MTkxZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgiCiAjaW5jbHVk
ZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRl
ICJUZXh0UnVuLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKICNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCA1NmY5OTE1NjgzYTUzMGQ2M2E5NThmZDZlOTE5NzcyMDY1
NDgwNjI4Li44N2UzOGJmZWFjYzc2YWFhY2QxYTQ3MDJkODM4NDRlZGRhYTI5Zjk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04OCw3ICs4OCw2IEBACiAjaW5jbHVkZSAi
SW50UmVjdC5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJKU0lt
YWdlRGF0YS5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNYWxsb2NTdGF0aXN0
aWNzLmgiCkBAIC0xNTQsNiArMTUzLDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
VmFsdWVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CkBAIC00MTksNyArNDE5LDcg
QEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAg
ICB9CiAKICAgICBXZWJDb3JlOjpjbGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0
aW5nKCk7Ci0gICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3Rv
cjxTdHJpbmc+KCkpOworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8
U3RyaW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxi
YXJzKGZhbHNlKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmlt
YXRvcihmYWxzZSk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMTczNywxMiArMTczNywx
MiBAQCBFeGNlcHRpb25PcjxpbnQ+IEludGVybmFsczo6bGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRT
ZXF1ZW5jZSgpCiAKIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1
YWdlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoKTsKKyAgICByZXR1cm4gV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiB9CiAKIHZv
aWQgSW50ZXJuYWxzOjpzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBsYW5ndWFnZXMpCiB7Ci0gICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKGxhbmd1YWdlcyk7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxh
bmd1YWdlcyk7CiB9CiAKIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZEF1
ZGlvQ2hhcmFjdGVyaXN0aWNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCA4MTE2NTM2YzRmODhmZDNmYjU2NDFlYjAyMGJkYzExNjViZWQ0
ZWUyLi5kNTkzYTgzMjRkODZmODc5YTUwNTZhZDM1YmYxNTBiNjIwZDAwZDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03Miw3ICs3Miw2IEBACiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtI
YXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC04MCw2ICs3OSw3IEBACiAjaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCAwYTRlZjhiY2M5ZGE2YWEyOTAwNDk4NmY4NDI0ZTQ3MzA0YjcyNTJlLi43YjZj
ZDRmNzRkNjE2N2FlYjEwMDIyZDc0MGM4ZjQxYWZlZTk1MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC05MSw3ICs5MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9HbHlwaFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgpAQCAtMTEy
LDYgKzExMSw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xh
bmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CiAKQEAgLTQ5NSw3ICs0OTUsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNo
b3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogdm9pZCBXZWJQcm9j
ZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYg
bGFuZ3VhZ2VzKSBjb25zdAogewogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhs
YW5ndWFnZXMpOwotICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vz
czo6ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Vz
ZXJEZWZhdWx0c0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNV
c2VyRGVmYXVsdHNFeHRyYXMubW0KaW5kZXggOTdjMDU5NDNlMjlkYmE5MGExNzczMGUxM2U1YTg3
MjVlNzZmYjNjZC4uODIyMzU4NGFiMTIyZWNjNDFiM2FlNTFhMTI5ZjQyZGEzMDhmYWQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4
dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TVXNlckRlZmF1
bHRzRXh0cmFzLm1tCkBAIC0yOCwxMSArMjgsOSBAQAogCiAjaW1wb3J0ICJXZWJOU1VzZXJEZWZh
dWx0c0V4dHJhcy5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0xhbmd1YWdlLmg+CisjaW1wb3J0IDx3
dGYvTGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQogQGltcGxlbWVudGF0aW9uIE5TVXNlckRlZmF1bHRzIChXZWJO
U1VzZXJEZWZhdWx0c0V4dHJhcykKIAogKyAoTlNTdHJpbmcgKilfd2Via2l0X3ByZWZlcnJlZExh
bmd1YWdlQ29kZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320185</attachid>
            <date>2017-09-07 14:45:42 -0700</date>
            <delta_ts>2017-09-07 15:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176561-20170907144541.patch</filename>
            <type>text/plain</type>
            <size>101445</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi5lNjY2NDRjYTIxOGY2OWFi
OTRmYWFhMTRkOTcxNGZiYTE2YzljOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpk
ZWZhdWx0TG9jYWxlKToKKwogMjAxNy0wOS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgIm1hbGxvYyIgYW5kICJmcmVlIiBm
cm9tIEpTQy9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggZmE4YjFhZGIzOTZkNDk3ZDE4NzBmYmY1OGI4YmU2ZGMzMGVjZGVi
YS4uMWEzN2ZlM2E3NDk5M2NkMzUyN2FjMjk3Mzc4YjE0MjA1OGQwZThhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSB3YXMgdGhlIG9ubHkqIHVzZXIg
b2YgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzICh3aXRoIDEgZXhjZXB0aW9uKS4KKyAg
ICAgICAgVGhhdCBleGNlcHRpb24gaXMgdGhhdCBKYXZhU2NyaXB0Q29yZSBuZWVkZWQgdGhlIGZ1
bmN0aW9uYWxpdHkgb2YgV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZSwgYnV0IGl0CisgICAgICAg
IGNvdWxkbid0IGdldCBpdCBiZWNhdXNlIG9mIHRoZSBsYXllcmluZyB2aW9sYXRpb24sIHNvIGlu
c3RlYWQgaXQgZXJyb25lb3VzbHkgY2FsbGVkIGludG8KKyAgICAgICAgUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzIGluc3RlYWQuIFRoaXMgcGF0Y2ggbWVyZ2VzIHRoZXNlIHR3byBmaWxl
cyBpbnRvIFdURiBzbyBKU0MgZ2V0cyB0aGUKKyAgICAgICAgcmlnaHQgZnVuY3Rpb24gYW5kIHRo
ZSBQQUwgZWZmb3J0IGhhcyBvbmUgbGVzcyBmaWxlIHRvIG1vdmUgZnJvbSBXZWJDb3JlL3BsYXRm
b3JtIGludG8gUEFMLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAuCisg
ICAgICAgIChXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjp1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmguCisgICAgICAgICogd3Rm
L1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUpTQ09ubHkuY21ha2U6
CisgICAgICAgICogd3RmL1BsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1XUEUuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbS4KKyAgICAgICAgKFdURjo6aHR0cFN0eWxl
TGFuZ3VhZ2VDb2RlKToKKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5n
ZSk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAg
ICAgICogd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwLgorICAgICAgICAqIHd0
Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcC4KKwogMjAxNy0wOS0wNiAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXF1aXJlIExvZ2dpbmdI
ZWxwZXIgb3ZlcnJpZGVzIHRvIHByb3ZpZGUgaWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4Y2Zi
ZTEyNDlhZDBlOWIwNmZiM2M1NzU1ZjI2ZmU2NmIyMGQ3MTEuLmUxOTdlYTk2YzI0YmYyMGM5YjQx
MTA4OWQ1NzYzYzYxZDdiZjg3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxNy0w
OS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3Vh
Z2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHA6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAgICAg
ICAqIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0Yu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbToKKyAgICAgICAg
KiBzdmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCiAyMDE3LTA5LTA3ICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FS
TV0gQnVpbGRpbmcgRkVMaWdodG5pbmdORU9OLmNwcCBmYWlscyBkdWUgdG8gbWlzc2luZyB7UG9p
bnQsU3BvdH1MaWdodFNvdXJjZSBkZWNsYXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODUzYjU4ODI1YzU0
MmIyNmFlZDRmMWNkM2FlZWUxYTQ1ODc2ZmJlMy4uNTg2ZGZhMDk3NmY3MmQ1OWU2ZDM5MWZlODU5
OGExZjk4YjM1NTcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wOS0wNyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtQQUxdIFVu
aWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFu
Z2VkIGNvbnN0KToKKwogMjAxNy0wOS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxl
bnQgb2YgV0tQYWdlVUlDbGllbnQncyBwYWdlRGlkU2Nyb2xsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggN2U1MWViYWY2YmZmOGVmYjFmY2NjZDgxZDI4NDBmZjcyYjQ0YzVlOC4uYjE2
ODc5MGFkYTc0YjZiYjRhN2UwYjU1MTNiNmEwYTIyYTg3MDU4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViTlNVc2VyRGVmYXVsdHNF
eHRyYXMubW06CisKIDIwMTctMDktMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdW51c2VkIGJpdHMgb2YgY29kZSBhbmQgcmVz
b3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmlu
ZGV4IDlmMTc0ZDY0MDVjOWYzYTA4NmIyNjM1NmJkY2VlYmJjZjA0ODQwODUuLjI1ZDIxZjJlZTVj
ZTNjNzY3MjMxNmFhZjZmN2EwMzVkNmEyMWY5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSA8dW5p
Y29kZS91bG9jLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91bnVtc3lzLmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTU3NiwxNiArNTc2LDE0IEBAIFN0cmluZyBkZWZhdWx0TG9jYWxlKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgCiAgICAgLy8gV2ViQ29yZSdzIGdsb2JhbCBvYmplY3RzIHdpbGwg
aGF2ZSB0aGVpciBvd24gaWRlYXMgb2YgaG93IHRvIGRldGVybWluZSB0aGUgbGFuZ3VhZ2UuIEl0
IG1heQogICAgIC8vIGJlIGRldGVybWluZWQgYnkgV2ViQ29yZS1zcGVjaWZpYyBsb2dpYyBsaWtl
IHNvbWUgV0sgc2V0dGluZ3MuIFVzdWFsbHkgdGhpcyB3aWxsIHJldHVybiB0aGUKLSAgICAvLyBz
YW1lIHRoaW5nIGFzIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpWzBdLgorICAgIC8v
IHNhbWUgdGhpbmcgYXMgdXNlclByZWZlcnJlZExhbmd1YWdlcygpWzBdLgogICAgIGlmIChhdXRv
IGRlZmF1bHRMYW5ndWFnZSA9IHN0YXRlLmpzQ2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5kZWZhdWx0TGFuZ3VhZ2UpIHsKICAgICAgICAgU3RyaW5n
IGxvY2FsZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwogICAgICAgICBpZiAoIWxvY2FsZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplTGFuZ3VhZ2VUYWcobG9jYWxlKTsK
ICAgICB9Ci0gICAgCi0gICAgLy8gSWYgV2ViQ29yZSBpc24ndCBhcm91bmQgdG8gdGVsbCB1cyBo
b3cgdG8gZ2V0IHRoZSBsYW5ndWFnZSB0aGVuIGZhbGwgYmFjayB0byBvdXIgb3duIHdheSBvZgot
ICAgIC8vIGRvaW5nIGl0LCB3aGljaCBtb3N0bHkgZm9sbG93cyB3aGF0IFdlYkNvcmUgd291bGQg
aGF2ZSBkb25lLgotICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOworCisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNl
clByZWZlcnJlZExhbmd1YWdlcygpOwogICAgIGlmICghbGFuZ3VhZ2VzLmlzRW1wdHkoKSAmJiAh
bGFuZ3VhZ2VzWzBdLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbGl6ZUxhbmd1
YWdlVGFnKGxhbmd1YWdlc1swXSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMGExOTA4YmFkZDkwMjc4N2NjYjQ1ZTExN2FlZTEyODFiMjY3YmY1
Li4xMjliOTg1Mzk2NjhmZWZjNjAyMDRiNzZhODM1ZTY0NzZmODg2ZTFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMiw5ICsxMzIsMTAgQEAKIAkJQUQ4
OUI2QjcxRTY0MTUwODAwOTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCNTFFNjQxNTA4
MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJQUQ4OUI2QkEx
RTY0MTUwRjAwOTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4OUI2QjkxRTY0MTUwRjAw
OTA3MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tICovOyB9OwogCQlBREYyQ0U2
NzFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjUxRTM5RjEwNjAwNjg4
OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLzsgfTsKKwkJQzJCQ0ZDNDAxRjYxRDEz
MDAwQzkyMjJDIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAg
Ki87IH07CisJCUMyQkNGQzQyMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkNGQzQxMUY2MUQ2
MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAqLzsgfTsKIAkJQ0Q1NDk3QUMxNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LzsgfTsKIAkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjFG
RDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLzsgfTsKLQkJRENF
RTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUy
MUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMu
bW0gKi87IH07CiAJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRp
bGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxNTU1NkYzMThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAq
LzsgfTsKIAkJRTMxMUZCMTcxRjBBNTY4QjAwM0MwOERFIC8qIFRocmVhZEdyb3VwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTFGQjE1MUYwQTU2
OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgKi87IH07CiAJCUUzOEM0MTI1MUVCNEUwNEMw
MDQyOTU3RCAvKiBDUFVUaW1lQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzhDNDEyNDFFQjRFMDRDMDA0Mjk1N0QgLyogQ1BVVGltZUNvY29h
Lm1tICovOyB9OwpAQCAtNTQ3LDYgKzU0OCw5IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVm
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkMzRTFGNjFEMTMwMDBD
OTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJDRkMzRjFG
NjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDNDEx
RjYxRDYxNjAwQzkyMjJDIC8qIExhbmd1YWdlQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2VDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM4RjU5N0NBMkE1NzQxN0ZCQUI5MkZENiAvKiBSYW5kb21EZXZpY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZG9tRGV2aWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTU3LDggKzU2MSw2IEBACiAJCURD
RUUyMUZBMUNFQTc1MzgwMDBDMjM5NiAvKiBDRkJ1bmRsZVNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBDRkJ1bmRsZVNQSS5oOyBwYXRoID0gY2YvQ0ZCdW5kbGVTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIxRkMxQ0VBNzU1MTAwMEMyMzk2IC8q
IEJsb2NrT2JqQ0V4Y2VwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmxvY2tPYmpDRXhjZXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VF
MjFGRDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURDRUUyMUZFMUNFQTc1NTEwMDBDMjM5NiAvKiBQ
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCURDRUUyMUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMjA0MUNFQjk4NjkwMDBDMjM5NiAvKiBCYWNrd2FyZHNH
cmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrd2FyZHNHcmFwaC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERTVBMDlGQjFCQTM2OTkyMDAzRDQ0MjQg
LyogQ29tbW9uQ3J5cHRvU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bW1vbkNyeXB0b1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTU1NTZGMzE4
QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MCw2ICs2NDIsNyBAQAogCQkyQ0RFRDBGMDE4
MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUMyQkNGQzQxMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAq
LywKIAkJCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAqLywKIAkJ
CQkxQUZERTY0NzE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNhc3RzQ0YuaCAqLywKIAkJCSk7CkBA
IC04NDYsNiArODQ5LDggQEAKIAkJCQk1MTgyQzIyQzFGMkJDN0U2MDA1OUJBN0MgLyogSW5zdGFu
Y2VDb3VudGVkLmggKi8sCiAJCQkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJhdG9y
QWRhcHRvcnMuaCAqLywKIAkJCQk3Q0REN0ZGOTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JS
YW5nZS5oICovLAorCQkJCUMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAg
Ki8sCisJCQkJQzJCQ0ZDM0YxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1YWdlLmggKi8sCiAJCQkJ
NTM5RUIwNjIxRDU1Mjg0MjAwQzgyRUY3IC8qIExFQkRlY29kZXIuaCAqLywKIAkJCQlBNzBEQTA4
MzE3OTlGMDREMDA1MjlBOUIgLyogTGlzdER1bXAuaCAqLywKIAkJCQlBOEE0NzJDMTE1MUE4MjVB
MDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCAqLywKQEAgLTkxMiw4ICs5MTcsNiBAQAogCQkJCTBG
ODI0QTY1MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmggKi8sCiAJCQkJQTg3NkRCRDcx
NTE4MTZFNTAwREFEQjk1IC8qIFBsYXRmb3JtLmggKi8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAw
M0I1OUQyIC8qIFBsYXRmb3JtUmVnaXN0ZXJzLmggKi8sCi0JCQkJRENFRTIxRkUxQ0VBNzU1MTAw
MEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oICovLAotCQkJCURDRUUy
MUZGMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMu
bW0gKi8sCiAJCQkJMEZGODYwOTQxQkNDQkQ3NDAwNDUxMjdGIC8qIFBvaW50ZXJDb21wYXJpc29u
LmggKi8sCiAJCQkJMEY5RDMzNUQxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCAq
LywKIAkJCQkwRjlEMzM1RTE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uaCAqLywKQEAg
LTEzNDQsNyArMTM0Nyw2IEBACiAJCQkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3Nz
VGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlBMTUxQTgyNUIwMDQx
MjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjBGNTI2QjFGNDIxRkY4MDA0QTQ1MkMgLyogU3RyaW5n
TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAv
KiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNG
RiAvKiBDdXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5RTE1MUE4MjVC
MDA0MTIzRkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzNjQsNiArMTM2Niw4
IEBACiAJCQkJMEYzMEJBOTAxRTc4NzA4RTAwMkNBODQ3IC8qIEdsb2JhbFZlcnNpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRh
dGVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNGRiAv
KiBIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQ0ZDNDAxRjYxRDEzMDAwQzky
MjJDIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkNGQzQyMUY2MUQ2MTYw
MEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2NDZBMUI2
RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJGMURG
Q0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzUzNEYyQTFFQzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyBpbiBTb3Vy
Y2VzICovLApAQCAtMTM4NSw3ICsxMzg5LDYgQEAKIAkJCQk1MUYxNzUyQjFGM0Q0ODYwMDBDNzQ5
NTAgLyogUGVyc2lzdGVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzUyQzFG
M0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFGMTc1MkQxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRFbmNvZGVyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM2MjE2NURC
QTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYx
MUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNC
NzI1RUM5ODc0NDZBRDkzRjFBNDQwIC8qIFJhbmRvbURldmljZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE0MTIsNiArMTQxNSw3IEBACiAJCQkJQTVCQTE1RkMxODI0MzVBNjAwQTgyRTY5IC8qIFN0
cmluZ0ltcGxDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGNTE4MjQzNDgwMDBBODJF
NjkgLyogU3RyaW5nSW1wbE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUYzMTgyNDMz
QTkwMEE4MkU2OSAvKiBTdHJpbmdNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjBGNTI2QjFG
NDIxRkY4MDA0QTQ1MkMgLyogU3RyaW5nTWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RERCRkE3MTY2NkRGQTMwMEM1NUZFRiAvKiBTdHJpbmdQcmludFN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5M0YxOTkzRTE5RDc5NThEMDBDMjM5MEIgLyogU3RyaW5nVmlldy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzkzNEJENTE4QTFGMTY5MDBEMEQ2QTEgLyogU3RyaW5nVmlld0NG
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAzYTZjZTllNGVkZWE5
OThhNTNlYTQ0ZTU0OWM2Mzc1NzBlNzU2YTcyLi5kY2EzOGJiZDc3NGJjMWNlNDBkNjA4ZWQ4MWQ5
OTU3NjIwOGY5NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNjAsNiArNjAsNyBAQCBzZXQo
V1RGX0hFQURFUlMKICAgICBJbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaAogICAgIEl0ZXJhdG9y
QWRhcHRvcnMuaAogICAgIEl0ZXJhdG9yUmFuZ2UuaAorICAgIExhbmd1YWdlLmgKICAgICBMaXN0
SGFzaFNldC5oCiAgICAgTGl2ZW5lc3MuaAogICAgIExvY2suaApAQCAtMjI5LDYgKzIzMCw3IEBA
IHNldChXVEZfU09VUkNFUwogICAgIEdsb2JhbFZlcnNpb24uY3BwCiAgICAgR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwCiAgICAgSGFzaFRhYmxlLmNwcAorICAgIExhbmd1YWdlLmNwcAogICAgIExvY2su
Y3BwCiAgICAgTG9ja2VkUHJpbnRTdHJlYW0uY3BwCiAgICAgTUQ1LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFhMmU4YzEwMDNjMTU1M2M4ZWIyYzM5NTE5NWMxYzQ3ODFiZjZmNTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSwx
NzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYsIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKENGKSAmJiAhUExBVEZP
Uk0oV0lOKQorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjZW5k
aWYKKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBTdGF0aWNMb2NrIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNNdXRleDsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNoYW5nZU9i
c2VydmVyRnVuY3Rpb24+IE9ic2VydmVyTWFwOworc3RhdGljIE9ic2VydmVyTWFwJiBvYnNlcnZl
ck1hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9ic2VydmVyTWFwPiBtYXA7Cisg
ICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKwordm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVy
KHZvaWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbiBjdXN0b21PYnNl
cnZlcikKK3sKKyAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBjdXN0b21PYnNlcnZlcik7
Cit9CisKK3ZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQor
eworICAgIEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRleHQpKTsKKyAgICBvYnNl
cnZlck1hcCgpLnJlbW92ZShjb250ZXh0KTsKK30KKwordm9pZCBsYW5ndWFnZURpZENoYW5nZSgp
Cit7CisgICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2VydmVyTWFwKCkuZW5kKCk7
CisgICAgZm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9ic2VydmVyTWFwKCkuYmVn
aW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAgICAgaXRlci0+dmFsdWUoaXRlci0+a2V5
KTsKK30KKworU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCit7CisgICAgVmVjdG9yPFN0cmluZz4g
bGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmIChsYW5ndWFnZXMu
c2l6ZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOworCisgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4g
b3ZlcnJpZGU7CisgICAgcmV0dXJuIG92ZXJyaWRlOworfQorCitWZWN0b3I8U3RyaW5nPiB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQoreworICAgIHJldHVybiBwcmVmZXJyZWRMYW5n
dWFnZXNPdmVycmlkZSgpOworfQorCit2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCit7CisgICAgcHJlZmVycmVkTGFuZ3Vh
Z2VzT3ZlcnJpZGUoKSA9IG92ZXJyaWRlOworICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisK
K3N0YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHN0cmluZ3MpCit7CisgICAgVmVjdG9yPFN0cmluZz4gY29weTsKKyAgICBjb3B5LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2Ug
OiBzdHJpbmdzKQorICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRl
ZENvcHkoKSk7CisgICAgcmV0dXJuIGNvcHk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRp
Y0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKKyAgICAg
ICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRD
b3B5KG92ZXJyaWRlKTsKKyAgICB9CisKKyAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlm
aWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQoreworICAgIFN0cmluZyBsb3dlcmNhc2VM
YW5ndWFnZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAg
ICAKKyAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJj
YXNlTGFuZ3VhZ2VDb2RlWzJdID09ICdfJykKKyAgICAgICAgbG93ZXJjYXNlTGFuZ3VhZ2VDb2Rl
LnJlcGxhY2UoMiwgMSwgIi0iKTsKKworICAgIHJldHVybiBsb3dlcmNhc2VMYW5ndWFnZUNvZGU7
Cit9CisKK3NpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYg
ZXhhY3RNYXRjaCkKK3sKKyAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3VhZ2UgPSBsYW5ndWFnZS5j
b252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOworICAgIFN0cmluZyBsYW5ndWFnZVdpdGhvdXRMb2Nh
bGVNYXRjaDsKKyAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZTsKKyAgICBzaXpl
X3QgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7CisgICAgc2l6ZV90IGxhbmd1
YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKKyAgICBib29sIGNhbk1hdGNoTGFu
Z3VhZ2VPbmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09IDIgfHwgKGxvd2VyY2Fz
ZUxhbmd1YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VbMl0gPT0gJy0nKSk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlzdC5zaXplKCk7ICsraSkg
eworICAgICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QgPSBjYW5vbmlj
YWxMYW5ndWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKKworICAgICAgICBpZiAobG93
ZXJjYXNlTGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QpIHsKKyAgICAg
ICAgICAgIGV4YWN0TWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYgY2Fub25pY2FsaXplZExh
bmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgeworICAgICAgICAgICAgaWYgKGxvd2VyY2Fz
ZUxhbmd1YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzBdICYmIGxvd2Vy
Y2FzZUxhbmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0WzFdKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSAm
JiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9PSAyKSB7CisgICAgICAg
ICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0gbGFuZ3VhZ2VMaXN0W2ld
OworICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4ID0g
aTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1hdGNo
QnV0Tm90TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxl
bmd0aCgpID49IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExv
Y2FsZSA9IGxhbmd1YWdlTGlzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VNYXRj
aEJ1dE5vdExvY2FsZU1hdGNoSW5kZXggPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGV4YWN0TWF0Y2ggPSBmYWxzZTsKKworICAg
IC8vIElmIHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2ggYW5kIGEgbGFuZ3VnZS1i
dXQtbm90LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQorICAgIC8vIGxhbmd1Z2Utb25seSBtYXRj
aCBhcyBpcyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBleGFtcGxlLCBpZiB0aGUg
bGlzdAorICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5kICJlbiIgYW5kIHRoZSB1
c2VyIHByZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgorICAgIGlmIChsYW5ndWFn
ZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlV2l0
aG91dExvY2FsZU1hdGNoSW5kZXg7CisKKyAgICBpZiAobGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2Fs
ZS5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRj
aEluZGV4OworCisgICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7Cit9CisKK1N0cmluZyBk
aXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKK3sK
KyNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCisgICAgaWYgKCFsb2NhbGVOYW1lLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQ
cm9wZXJ0eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKS5nZXQoKSwga0NGTG9j
YWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSkuZ2V0KCk7
CisjZW5kaWYKKyAgICByZXR1cm4gbG9jYWxlTmFtZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzA1YjkxODk5ZDRjZGVmZTBiYWYwMGJjZDAyMTNmYmJkN2M4YzQyYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAxMCwgMjAxMywgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBX
VEYgeworCitXVEZfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNh
ZmUuCitXVEZfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsg
Ly8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCitXVEZfRVhQT1JU
IFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworV1RGX0VY
UE9SVCB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOworV1RGX0VYUE9SVCBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5M
aXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFn
ZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOworV1RGX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKy8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNw
ZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2Uu
Cit2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CisKKy8vIFRoZSBvYnNlcnZlciBmdW5jdGlvbiB3
aWxsIGJlIGNhbGxlZCB3aGVuIHN5c3RlbSBsYW5ndWFnZSBjaGFuZ2VzLgordHlwZWRlZiB2b2lk
ICgqTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uKSh2b2lkKiBjb250ZXh0KTsKK1dURl9F
WFBPUlQgdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbik7CitXVEZfRVhQT1JUIHZvaWQgcmVtb3ZlTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKKworV1RGX0VYUE9SVCBTdHJpbmcgZGlz
cGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsKK30KKwordXNpbmcgV1RG
OjpkZWZhdWx0TGFuZ3VhZ2U7Cit1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit1
c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZTsKK3VzaW5nIFdURjo6b3Zl
cnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcgV1RGOjppbmRleE9mQmVzdE1hdGNo
aW5nTGFuZ3VhZ2VJbkxpc3Q7Cit1c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlczsKK3VzaW5nIFdURjo6YWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKK3VzaW5nIFdURjo6
cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKK3VzaW5nIFdURjo6ZGlzcGxheU5hbWVGb3JM
YW5ndWFnZUxvY2FsZTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsu
Y21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBjZGE1YzI5NzIz
ZDM3YWRkNWIwOGNiYmU4NjFlMzQ2Yjk3OTFjZjU3Li5kYTAzOGEwMWZjMzBjM2U0ODM4ZmQzNzZi
YzU0YTFlNTRjM2JlNzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5j
bWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTIsOCArMTIs
OCBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGxpbnV4L01lbW9yeVByZXNzdXJlSGFu
ZGxlckxpbnV4LmNwcAogCiAgICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICB1bml4L0xhbmd1
YWdlVW5peC5jcHAKIAotICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3Bw
CiAgICAgVW5pU3RkRXh0cmFzLmNwcAogCiAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1VVbml4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1K
U0NPbmx5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlCmluZGV4
IDQ0YjIyMDBiYmI2ZjRmMmExNmE5OTQ3YTQ0MDcyN2FhZjE3MWQ1M2YuLjNlNzdjYzRhNDgyOWRi
Yjc2NTM2NGNhMDFhNDBiOWY4YjY0ODgwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSlNDT25seS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUpTQ09ubHku
Y21ha2UKQEAgLTEsNSArMSw0IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCiAKICAgICBnZW5lcmljL01haW5UaHJl
YWRHZW5lcmljLmNwcAogICAgIGdlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAgLTgsMTEg
KzcsMTMgQEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKIGlmIChXSU4zMikKICAgICBsaXN0KEFQ
UEVORCBXVEZfU09VUkNFUwogICAgICAgICB3aW4vQ1BVVGltZVdpbi5jcHAKKyAgICAgICAgd2lu
L0xhbmd1YWdlV2luLmNwcAogICAgICAgICB0ZXh0L3dpbi9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVV2luLmNwcAogICAgICkKIGVsc2UgKCkKICAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNF
UwogICAgICAgICB1bml4L0NQVVRpbWVVbml4LmNwcAorICAgICAgICB1bml4L0xhbmd1YWdlVW5p
eC5jcHAKICAgICAgICAgdGV4dC91bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4
LmNwcAogICAgICkKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGI0YjFk
YWYzMzk0NTc5ZTJlODM0M2ExMmUwMDEyNDNlYjRkMjk4OWEuLmYwNzFkMmYwZWJiMDk0MWFhNzgz
MmY1OWE0MTY4MDljMjVkYTJjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0xMCwx
NSArMTAsMTUgQEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogbGlzdChBUFBFTkQgV1RGX1NP
VVJDRVMKICAgICBBdXRvZHJhaW5lZFBvb2xNYWMubW0KICAgICBCbG9ja09iakNFeGNlcHRpb25z
Lm1tCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCiAgICAgUnVuTG9v
cFRpbWVyQ0YuY3BwCiAgICAgU2NoZWR1bGVQYWlyQ0YuY3BwCiAgICAgU2NoZWR1bGVQYWlyTWFj
Lm1tCiAKLSAgICB0ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCi0K
KyAgICBjZi9MYW5ndWFnZUNGLmNwcAogICAgIGNmL1J1bkxvb3BDRi5jcHAKIAorICAgIHRleHQv
bWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKwogICAgIGNvY29hL0NQVVRp
bWVDb2NvYS5tbQogICAgIGNvY29hL01lbW9yeUZvb3RwcmludENvY29hLmNwcAogICAgIGNvY29h
L01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5MzU4MGZjNzYwOWZmZGMzYWIzYjQ2ZGEwZGVjODdhOTAzNGZlNzdjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzX2gKLSNk
ZWZpbmUgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzX2gKLQotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdU
RiB7Ci0KLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKTsKLQotLy8gVGhpcyBpcyB0aHJlYWQt
c2FmZS4KLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6c2V0
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrOwotdXNpbmcgV1RG
OjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0KLSNlbmRpZiAvLyBQbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNhZTcxYWVmYzM2YWU4OTVhOGFmYmU3NmE2NGM1M2M2MzA5NmU0NDAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTQ0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTEs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJjb25maWcuaCIKLSNpbXBvcnQgIlBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgot
Ci0jaW1wb3J0ICJCbG9ja09iakNFeGNlcHRpb25zLmgiCi0jaW1wb3J0IDxtdXRleD4KLSNpbXBv
cnQgPHVuaWNvZGUvdWxvYy5oPgotI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbXBvcnQg
PHd0Zi9Mb2NrLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaD4KLSNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIHZv
aWQgKCpjYWxsYmFjaykoKTsKLQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCAoKnBhc3NlZENhbGxiYWNrKSgpKQotewotICAgIGNhbGxi
YWNrID0gcGFzc2VkQ2FsbGJhY2s7Ci19Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExh
bmd1YWdlc011dGV4OwotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdl
cygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFn
ZXM7Ci0gICAgcmV0dXJuIGxhbmd1YWdlczsKLX0KLQotfQotCi1AaW50ZXJmYWNlIFdURkxhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXIgOiBOU09iamVjdAotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV1RG
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcgotCi0rICh2b2lkKWxhbmd1YWdlUHJlZmVyZW5jZXNEaWRD
aGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgVU5VU0VEX1BBUkFN
KG5vdGlmaWNhdGlvbik7Ci0KLSAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKFdURjo6cHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgICAgICBXVEY6OnBy
ZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7Ci0gICAgfQotICAgIAotICAgIGlmIChXVEY6OmNh
bGxiYWNrKQotICAgICAgICBXVEY6OmNhbGxiYWNrKCk7Ci19Ci0KLUBlbmQKLQotbmFtZXNwYWNl
IFdURiB7Ci0KLXN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKE5TU3RyaW5nICps
YW5ndWFnZSkKLXsKLSAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOwotICAgIFNJbnQzMiByZWdpb25D
b2RlOwotICAgIFNJbnQzMiBzY3JpcHRDb2RlOwotICAgIENGU3RyaW5nRW5jb2Rpbmcgc3RyaW5n
RW5jb2Rpbmc7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyB0cmFuc2Zvcm1hdGlvbiBpcyB2ZXJ5IHdy
b25nOgotICAgIC8vIDEuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgQ0ZCdW5kbGUgbG9jYWxpemF0
aW9uIG5hbWVzIHdvdWxkIGJlIGF0IGFsbCByZWxhdGVkIHRvIGxhbmd1YWdlIG5hbWVzIGFzIHVz
ZWQgb24gdGhlIFdlYi4KLSAgICAvLyAyLiBTY3JpcHQgTWFuYWdlciBjb2RlcyBjYW5ub3QgcmVw
cmVzZW50IGFsbCBsYW5ndWFnZXMgdGhhdCBhcmUgbm93IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZv
cm0sIHNvIHRoZSBjb252ZXJzaW9uIGlzIGxvc3N5LgotICAgIC8vIDMuIFRoaXMgc2hvdWxkIHBy
b2JhYmx5IG1hdGNoIHdoYXQgaXMgc2VudCBieSB0aGUgbmV0d29yayBsYXllciBhcyBBY2NlcHQt
TGFuZ3VhZ2UsIGJ1dCBjdXJyZW50bHksIHRoYXQncyBpbXBsZW1lbnRlZCBzZXBhcmF0ZWx5Lgot
ICAgIENGQnVuZGxlR2V0TG9jYWxpemF0aW9uSW5mb0ZvckxvY2FsaXphdGlvbigoQ0ZTdHJpbmdS
ZWYpbGFuZ3VhZ2UsICZsYW5ndWFnZUNvZGUsICZyZWdpb25Db2RlLCAmc2NyaXB0Q29kZSwgJnN0
cmluZ0VuY29kaW5nKTsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExhbmd1
YWdlQ29kZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDb3B5TG9jYWxpemF0aW9uRm9yTG9jYWxpemF0aW9u
SW5mbyhsYW5ndWFnZUNvZGUsIHJlZ2lvbkNvZGUsIHNjcmlwdENvZGUsIHN0cmluZ0VuY29kaW5n
KSk7Ci0gICAgaWYgKHByZWZlcnJlZExhbmd1YWdlQ29kZSkKLSAgICAgICAgbGFuZ3VhZ2UgPSAo
TlNTdHJpbmcgKilwcmVmZXJyZWRMYW5ndWFnZUNvZGUuZ2V0KCk7Ci0KLSAgICAvLyBUdXJuIGEg
J18nIGludG8gYSAnLScgaWYgaXQgYXBwZWFycyBhZnRlciBhIDItbGV0dGVyIGxhbmd1YWdlIGNv
ZGUKLSAgICBpZiAoW2xhbmd1YWdlIGxlbmd0aF0gPj0gMyAmJiBbbGFuZ3VhZ2UgY2hhcmFjdGVy
QXRJbmRleDoyXSA9PSAnXycpIHsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVN0cmluZz4g
bXV0YWJsZUxhbmd1YWdlQ29kZSA9IGFkb3B0TlMoW2xhbmd1YWdlIG11dGFibGVDb3B5XSk7Ci0g
ICAgICAgIFttdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpIHJlcGxhY2VDaGFyYWN0ZXJzSW5SYW5n
ZTpOU01ha2VSYW5nZSgyLCAxKSB3aXRoU3RyaW5nOkAiLSJdOwotICAgICAgICByZXR1cm4gbXV0
YWJsZUxhbmd1YWdlQ29kZS5nZXQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbGFuZ3VhZ2U7Ci19
Ci0KLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0j
aWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwot
ICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgW1tOU0Rpc3RyaWJ1dGVk
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOltXVEZMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyIHNlbGZdIHNlbGVjdG9yOkBzZWxlY3RvcihsYW5ndWFnZVByZWZlcmVu
Y2VzRGlkQ2hhbmdlOikgbmFtZTpAIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5nZWROb3Rp
ZmljYXRpb24iIG9iamVjdDpuaWxdOwotICAgIH0pOwotI2VuZGlmCi0KLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7Ci0KLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9j
ayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIGlmICh1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJl
Zj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7
Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFn
ZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAg
ICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VD
b2RlKChOU1N0cmluZyAqKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBp
KSkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NvcHk7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUoKSk7Ci0KLSAgICBmb3Ig
KGF1dG8mIGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcykKLSAgICAgICAgdXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29w
eSgpKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLQotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMTg3MmQ4OWE1MWIyYjZkNDg0Nzg4NmY3MDc3MWNlMzc2NjJmMzg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcy5oIgotCi0jaW5jbHVkZSA8bG9jYWxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2so
dm9pZCAoKikoKSkgeyB9Ci0KLS8vIFVzaW5nIHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkg
aGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCi0vLyBpdCBkb2Vzbid0IHN1cHBvcnQgY2hh
bmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1cm5zCi0vLyBhbHdheXMgdGhl
IHNhbWUgdmFsdWUuCi1zdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQotewotICAgIFN0
cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwotICAgIGlm
IChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2Fs
ZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAi
UE9TSVgiKSkKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZW4tVVMiKTsKLQotICAgIFN0
cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7Ci0gICAgbm9ybWFsaXplZERl
ZmF1bHQucmVwbGFjZSgnXycsICctJyk7Ci0gICAgbm9ybWFsaXplZERlZmF1bHQudHJ1bmNhdGUo
bm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicpKTsKLSAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1
bHQ7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
Ci17Ci0gICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc1dpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5YWQyM2M1NDM5
Y2UyMzMyMDgwNWIyOWQ5ODMyMTI0MTY3NjNjNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzV2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCIKLQot
I2luY2x1ZGUgPG11dGV4PgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDx3dGYvTG9j
ay5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXN0YXRpYyBTdGF0aWNMb2NrIHBsYXRmb3JtTGFu
Z3VhZ2VNdXRleDsKLQotdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFu
Z2VkQ2FsbGJhY2sodm9pZCAoKikoKSkgeyB9Ci0KLXN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhM
Q1RZUEUgbG9jYWxlVHlwZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKLXsKLSAgICBMQU5HSUQg
bGFuZ0lEID0gR2V0VXNlckRlZmF1bHRVSUxhbmd1YWdlKCk7Ci0gICAgaW50IGxvY2FsZUNoYXJz
ID0gR2V0TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOwotICAgIGlmICghbG9j
YWxlQ2hhcnMpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLSAgICBVQ2hhciogbG9jYWxlTmFt
ZUJ1ZjsKLSAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXpl
ZChsb2NhbGVDaGFycywgbG9jYWxlTmFtZUJ1Zik7Ci0gICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2Nh
bGVJbmZvKGxhbmdJRCwgbG9jYWxlVHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOwot
ICAgIGlmICghbG9jYWxlQ2hhcnMpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLSAgICBpZiAo
bG9jYWxlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLQotICAgIGxv
Y2FsZU5hbWUudHJ1bmNhdGUobG9jYWxlTmFtZS5sZW5ndGgoKSAtIDEpOwotICAgIHJldHVybiBs
b2NhbGVOYW1lOwotfQotCi1zdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQotewotICAg
IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7
Ci0KLSAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwotICAgIGlmICgh
Y29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gY29tcHV0
ZWREZWZhdWx0TGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCk7Ci0KLSAgICBTdHJpbmcgbGFuZ3VhZ2VO
YW1lID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKLSAgICBTdHJp
bmcgY291bnRyeU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJp
bmcoKSk7Ci0KLSAgICBpZiAoY291bnRyeU5hbWUuaXNFbXB0eSgpKQotICAgICAgICBjb21wdXRl
ZERlZmF1bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXB1
dGVkRGVmYXVsdExhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7Ci0K
LSAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCi17Ci0gICAgcmV0dXJuIHsgcGxhdGZv
cm1MYW5ndWFnZSgpIH07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQ
RS5jbWFrZQppbmRleCA0ZjE1YjZkZGE5ZjRjZmY5NDYyNzNhMjZkZWE5ODU0YTUyNmY2ZTFhLi40
YjQxMGU1ZmI3MmRlNTkwMjU2ZTQyOWI2YzFiZWUyNzNjODRlNjg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMSw1ICsxLDQgQEAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAg
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAKICAgICBVbmlTdGRFeHRyYXMu
Y3BwCiAKICAgICBnZW5lcmljL01haW5UaHJlYWRHZW5lcmljLmNwcApAQCAtMTYsNiArMTUsNyBA
QCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVVW5peC5jcHAKIAogICAgIHVuaXgvQ1BVVGltZVVuaXguY3BwCisgICAgdW5p
eC9MYW5ndWFnZVVuaXguY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggMzZiY2VjNGI2NjMzYjI1YzM5ZjE0ZDc4ZTFhNTVlY2Q0
M2Q0OGQyMi4uNWNmZWMwNzdjNGU1MzFhZWJhNmExZGQ2MzM2ZGJkOTI4YWI4Zjk5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTMsMTEgKzMsMTAgQEAgbGlzdChBUFBFTkQgV1RGX0hF
QURFUlMKICkKIAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNXaW4uY3BwCi0KICAgICB0ZXh0L3dpbi9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVV2luLmNwcAogCiAgICAgd2luL0NQVVRpbWVXaW4uY3BwCisgICAgd2luL0xhbmd1
YWdlV2luLmNwcAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAogICAgIHdpbi9NZW1vcnlGb290
cHJpbnRXaW4uY3BwCiAgICAgd2luL01lbW9yeVByZXNzdXJlSGFuZGxlcldpbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwIGIvU291cmNlL1dURi93dGYv
Y2YvTGFuZ3VhZ2VDRi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyMDNkMTdjZjg5YTIwM2I5ZmFjYjFjMWE4
YmFiMWI2ODQwOWM1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1
YWdlQ0YuY3BwCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA1LCAyMDA2LCAyMDEwLCAyMDExLCAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1
YWdlLmgiCisKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2lu
Y2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3Nw
aS9jZi9DRkJ1bmRsZVNQSS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV1RGIHsKKworc3RhdGljIFN0YXRpY0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0
ZXg7CisKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKKyAgICBy
ZXR1cm4gbGFuZ3VhZ2VzOworfQorCitzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29k
ZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKK3sKKyAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOworICAg
IFNJbnQzMiByZWdpb25Db2RlOworICAgIFNJbnQzMiBzY3JpcHRDb2RlOworICAgIENGU3RyaW5n
RW5jb2Rpbmcgc3RyaW5nRW5jb2Rpbmc7CisKKyAgICAvLyBGSVhNRTogVGhpcyB0cmFuc2Zvcm1h
dGlvbiBpcyB2ZXJ5IHdyb25nOgorICAgIC8vIDEuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgQ0ZC
dW5kbGUgbG9jYWxpemF0aW9uIG5hbWVzIHdvdWxkIGJlIGF0IGFsbCByZWxhdGVkIHRvIGxhbmd1
YWdlIG5hbWVzIGFzIHVzZWQgb24gdGhlIFdlYi4KKyAgICAvLyAyLiBTY3JpcHQgTWFuYWdlciBj
b2RlcyBjYW5ub3QgcmVwcmVzZW50IGFsbCBsYW5ndWFnZXMgdGhhdCBhcmUgbm93IHN1cHBvcnRl
ZCBieSB0aGUgcGxhdGZvcm0sIHNvIHRoZSBjb252ZXJzaW9uIGlzIGxvc3N5LgorICAgIC8vIDMu
IFRoaXMgc2hvdWxkIHByb2JhYmx5IG1hdGNoIHdoYXQgaXMgc2VudCBieSB0aGUgbmV0d29yayBs
YXllciBhcyBBY2NlcHQtTGFuZ3VhZ2UsIGJ1dCBjdXJyZW50bHksIHRoYXQncyBpbXBsZW1lbnRl
ZCBzZXBhcmF0ZWx5LgorICAgIENGQnVuZGxlR2V0TG9jYWxpemF0aW9uSW5mb0ZvckxvY2FsaXph
dGlvbihsYW5ndWFnZSwgJmxhbmd1YWdlQ29kZSwgJnJlZ2lvbkNvZGUsICZzY3JpcHRDb2RlLCAm
c3RyaW5nRW5jb2RpbmcpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFu
Z3VhZ2VDb2RlID0gYWRvcHRDRihDRkJ1bmRsZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRp
b25JbmZvKGxhbmd1YWdlQ29kZSwgcmVnaW9uQ29kZSwgc2NyaXB0Q29kZSwgc3RyaW5nRW5jb2Rp
bmcpKTsKKyAgICBpZiAocHJlZmVycmVkTGFuZ3VhZ2VDb2RlKQorICAgICAgICBsYW5ndWFnZSA9
IHByZWZlcnJlZExhbmd1YWdlQ29kZS5nZXQoKTsKKworICAgIC8vIFR1cm4gYSAnXycgaW50byBh
ICctJyBpZiBpdCBhcHBlYXJzIGFmdGVyIGEgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZQorICAgIGlm
IChDRlN0cmluZ0dldExlbmd0aChsYW5ndWFnZSkgPj0gMyAmJiBDRlN0cmluZ0dldENoYXJhY3Rl
ckF0SW5kZXgobGFuZ3VhZ2UsIDIpID09ICdfJykgeworICAgICAgICBhdXRvIG11dGFibGVMYW5n
dWFnZUNvZGUgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgbGFuZ3VhZ2UpKTsKKyAgICAgICAgQ0ZTdHJpbmdSZXBsYWNlKG11dGFibGVM
YW5ndWFnZUNvZGUuZ2V0KCksIENGUmFuZ2VNYWtlKDIsIDEpLCBDRlNUUigiLSIpKTsKKyAgICAg
ICAgcmV0dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7CisgICAgfQorCisgICAgcmV0dXJu
IGxhbmd1YWdlOworfQorCisjaWYgUExBVEZPUk0oTUFDKQorc3RhdGljIHZvaWQgbGFuZ3VhZ2VQ
cmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3Ry
aW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQoreworICAgIHsKKyAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgp
OworICAgICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgIH0KKyAgICAKKyAg
ICBsYW5ndWFnZURpZENoYW5nZSgpOworfQorI2VuZGlmCisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0
YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VU
b2tlbiwgXiB7CisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJHZXREaXN0cmlidXRlZENlbnRlcigpLCBudWxscHRyLCAmbGFuZ3VhZ2VQ
cmVmZXJlbmNlc0RpZENoYW5nZSwgQ0ZTVFIoIkFwcGxlTGFuZ3VhZ2VQcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb24iKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZp
b3JDb2FsZXNjZSk7CisgICAgfSk7CisjZW5kaWYKKworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0
aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICBWZWN0b3I8U3RyaW5n
PiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworCisgICAg
aWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJldGFpblB0
cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExh
bmd1YWdlcygpKTsKKyAgICAgICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENv
dW50KGxhbmd1YWdlcy5nZXQoKSk7CisgICAgICAgIGlmICghbGFuZ3VhZ2VDb3VudCkKKyAgICAg
ICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIpOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkr
KykKKyAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5
bGVMYW5ndWFnZUNvZGUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFZl
Y3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OworICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1
YWdlcy5zaXplKCkpOworCisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMpCisgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFw
cGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7CisKKyAgICByZXR1cm4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NvcHk7CisKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdl
VW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTAxNmZiMmFlMzcwYjMxODEzNTliOGFlZjM5M2YzZTU3ZjUyZjM1MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1
ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFVzaW5nIHBhbmdvX2xhbmd1
YWdlX2dldF9kZWZhdWx0KCkgaGVyZSBpcyBub3QgYW4gb3B0aW9uLCBiZWNhdXNlCisvLyBpdCBk
b2Vzbid0IHN1cHBvcnQgY2hhbmdpbmcgdGhlIGxvY2FsZSBpbiBydW50aW1lLCBzbyBpdCByZXR1
cm5zCisvLyBhbHdheXMgdGhlIHNhbWUgdmFsdWUuCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFu
Z3VhZ2UoKQoreworICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwg
bnVsbHB0cikpOworICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
ZW4tVVMiKTsKKworICAgIFN0cmluZyBub3JtYWxpemVkRGVmYXVsdCA9IGxvY2FsZURlZmF1bHQ7
CisgICAgbm9ybWFsaXplZERlZmF1bHQucmVwbGFjZSgnXycsICctJyk7CisgICAgbm9ybWFsaXpl
ZERlZmF1bHQudHJ1bmNhdGUobm9ybWFsaXplZERlZmF1bHQuZmluZCgnLicpKTsKKyAgICByZXR1
cm4gbm9ybWFsaXplZERlZmF1bHQ7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2lu
L0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzYwMTA5ODU1MDAzZGEwYzJlYjMyNzk5NjE3OWIxNjNkMjk4MzgyNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTAsMCAr
MSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNiwgMjAxNyBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisK
KyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxh
bmd1YWdlTXV0ZXg7CisKK3N0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlw
ZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKK3sKKyAgICBMQU5HSUQgbGFuZ0lEID0gR2V0VXNl
ckRlZmF1bHRVSUxhbmd1YWdlKCk7CisgICAgaW50IGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5m
byhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOworICAgIGlmICghbG9jYWxlQ2hhcnMpCisgICAg
ICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBVQ2hhciogbG9jYWxlTmFtZUJ1ZjsKKyAgICBTdHJp
bmcgbG9jYWxlTmFtZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsb2NhbGVDaGFycywg
bG9jYWxlTmFtZUJ1Zik7CisgICAgbG9jYWxlQ2hhcnMgPSBHZXRMb2NhbGVJbmZvKGxhbmdJRCwg
bG9jYWxlVHlwZSwgbG9jYWxlTmFtZUJ1ZiwgbG9jYWxlQ2hhcnMpOworICAgIGlmICghbG9jYWxl
Q2hhcnMpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKyAgICBpZiAobG9jYWxlTmFtZS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxsYmFjazsKKworICAgIGxvY2FsZU5hbWUudHJ1bmNh
dGUobG9jYWxlTmFtZS5sZW5ndGgoKSAtIDEpOworICAgIHJldHVybiBsb2NhbGVOYW1lOworfQor
CitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIHN0ZDo6bG9ja19ndWFy
ZDxTdGF0aWNMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisKKyAgICBzdGF0aWMg
U3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOworICAgIGlmICghY29tcHV0ZWREZWZhdWx0
TGFuZ3VhZ2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3Vh
Z2UuaXNvbGF0ZWRDb3B5KCk7CisKKyAgICBTdHJpbmcgbGFuZ3VhZ2VOYW1lID0gbG9jYWxlSW5m
byhMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCAiZW4iKTsKKyAgICBTdHJpbmcgY291bnRyeU5hbWUg
PSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCBTdHJpbmcoKSk7CisKKyAgICBp
ZiAoY291bnRyeU5hbWUuaXNFbXB0eSgpKQorICAgICAgICBjb21wdXRlZERlZmF1bHRMYW5ndWFn
ZSA9IGxhbmd1YWdlTmFtZTsKKyAgICBlbHNlCisgICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlID0gbGFuZ3VhZ2VOYW1lICsgJy0nICsgY291bnRyeU5hbWU7CisKKyAgICByZXR1cm4gY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2U7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZDkwMzI1
NmMzNDE5NmM4MjQzZWIxNjcyNTc5YWRlMWFkNTNlNzZiLi45YWQxY2MyN2JmZGQ2N2FiMTBiMGZm
YmM1ZDkyZmZlNGU3YjkwYzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI3NSw3ICsyMjc1
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCiAg
ICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKICAgICBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVl
LmNwcAotICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xheW91dFVuaXQu
Y3BwCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmNwcAogICAgIHBsYXRmb3JtL0xlbmd0aEJveC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4YWMwYzAzODU3NWQzYWY4OTFlYmQ1Y2VmNmZhMTA5NGE2NjIyZGI3Li4zMjIwN2IwM2Jm
MDBlYWEwMWU3NDQ5OGY0ZGE4MTBmYzRkZDI4ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjk3LDcgKzM2OTcsNiBAQAog
CQk4NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRDBBMjI5N0JFMDA1OEQ3QUQg
LyogVHJhdmVyc2FsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODU0RkU3MzgwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MkUwQTIyOTdC
RTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwICovOyB9OwogCQk4NTRGRTczOTBBMjI5N0JFMDA1
OEQ3QUQgLyogVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU0RkU3MkYwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NUVDOUFGQjBB
NzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUM5QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MUMy
RUE0MTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBM
b2FkVGltaW5nLmNwcCAqLzsgfTsKIAkJODYyRjEyOUUxOEMxNTc2RjAwNUM1NEFGIC8qIENvdW50
ZWRVc2VyQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyRjEy
QTAxOEMxREQwMjAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUYxOEMxRENFNDAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0zODg5LDggKzM4ODgsNiBAQAogCQk5MzkxQTk5MTE2Mjc0NkNC
MDAyOTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5oICovOyB9OwogCQk5MzkxQTk5QzE2MjlENzAwMDAyOTcz
MzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCAqLzsgfTsKIAkJOTM5MUE5OUQxNjI5RDcwMDAw
Mjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlBNkQ1QTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi87IH07Ci0JCUE2RDVBOTlEMTYyOUQ3
MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QjE2MjlENzAw
MDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTIxNDY5MThBNkQ3
OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRl
eHRJdGVyYXRvckJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5MjI2MkUxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwICovOyB9
OwogCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDEwQUQxODVGNDAw
NjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCAqLzsgfTsKQEAgLTQ2MDQsNiArNDYwMSw4IEBACiAJ
CUE2MTQ4QTc5MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjE0OEE3NzEyRTQxRTNC
MDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oICovOyB9OwogCQlBNkQxNjk2MjEzNDZC
NDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9v
dC5jcHAgKi87IH07CiAJCUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MzEz
NDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE2RDVBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLzsgfTsKKwkJQTZENUE5OUQxNjI5
RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDVBOTlCMTYyOUQ3
MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYx
NTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4
dENoZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9
OwogCQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEz
NEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC02Njc5
LDcgKzY2NzgsNiBAQAogCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9i
YWxTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTgyNTY4RDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi87
IH07CiAJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNTY4RTBF
RjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovOyB9OwogCQlFMTgyNThB
QzBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNThBQjBFRjNDRDcw
MDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi87IH07Ci0JCUUxODc3
MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFu
Z3VhZ2UuY3BwICovOyB9OwogCQlFMThERjMzNTE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXpl
ZENyeXB0b0tleVdyYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxOERGMzM0MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUx
OERGMzM4MThBQUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOERGMzM2MThB
QUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLzsgfTsKIAkJ
RTE5NzI3MTYxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1
MSAvKiBDcnlwdG9LZXlUeXBlLmggKi87IH07CkBAIC0xMTUxNiw4ICsxMTUxNCw4IEBACiAJCTdD
QkE1QkE2MUYwQjRCREUwMDM0RDc0NSAvKiBKU0RPTUNvbnZlcnRXZWJHTC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTUNvbnZlcnRXZWJHTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDQkJCQ0M0MUY1NjA1NjcwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTU1hdHJpeDJESW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDQkJCQ0M2MUY1NjA1NjgwMDVFRkFBQyAvKiBET01NYXRyaXgyRElu
aXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTWF0cml4MkRJbml0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkJCQ0M4MUY1NjE3QzAwMDVFRkFBQyAv
KiBKU0RPTU1hdHJpeDJESW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTU1hdHJpeDJE
SW5pdC5jcHA7IHBhdGggPSBKU0RPTU1hdHJpeDJESW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTdDQkJCQ0M5MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5p
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBKU0RPTU1hdHJpeDJESW5pdC5oOyBwYXRoID0gSlNET01NYXRy
aXgyREluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzgxRjU2MTdD
MDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RE9NTWF0cml4MkRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJD
QzkxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRE9NTWF0cml4MkRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzJE
REY4MUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NDMkRERkExRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0MyRERGRTFFQzk1QTQ0MDAyN0I3NzQgLyogSlNOb3RpZmljYXRpb25QZXJt
aXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm90aWZp
Y2F0aW9uUGVybWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk4
OCw3ICsxMTk4Niw2IEBACiAJCTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NVbmtub3du
UnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1Vua25vd25SdWxlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjJGNjkwQUEzQzc0MzAwQUQ2NEM1IC8qIEhU
TUxDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTENvbGxlY3Rpb24u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkY5MjBBQTNDOUI2MDBBRDY0
QzUgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
ODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogTG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0
aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlZFVzZXJBY3Rp
dml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RjE4QzFEQ0U0MDA1
QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEh5c3RlcmVzaXNBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTIyMTYsOCArMTIyMTMsNiBAQAogCQk5MzkxQTk5MDE2Mjc0NkNCMDAyOTczMzAgLyogU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM5MUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUE5OUIxNjI5
RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNkQ1QTk5QjE2MjlENzAwMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyMjYy
RTEwMzIxMDg0MDA2RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRl
ckNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckNvdW50
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDQxLDYgKzEzMDM2LDggQEAK
IAkJQTYxNDhBN0YxMkU0MUVEMTAwNDRBNzg0IC8qIEhUTUxLZXlnZW5FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MS2V5Z2VuRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1Jvb3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyog
U2hhZG93Um9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dSb290
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDVBOTlBMTYyOUQ2RkYwMDI5NzMz
MCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNkQ1QTk5QjE2MjlENzAwMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2
NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0Q2hlY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1
RTY1MDEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAv
KiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTQyOSw3ICsxNTQyNiw2IEBACiAJCUUxODI1NjhEMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV29ya2VyR2xvYmFsU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTgyNTY4RTBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckdsb2JhbFNjb3BlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtl
ckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENy
eXB0b0tleVdyYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXpl
ZENyeXB0b0tleVdyYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzYx
OEFBRjE0RDAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXBN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOTcyNzE1MTgyMDU0OUUwMDU5
MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyeXB0b0tleVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTIyLDgg
KzE2OTE4LDYgQEAKIAkJCQkwRkM0RTQwQzE4N0Y4MkUxMDA0NTg4MkMgLyogU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRkM0RTQwOTE4N0Y4MkUxMDA0NTg4
MkMgLyogU2Nyb2xsaW5nVHJlZUlPUy5jcHAgKi8sCiAJCQkJMEZDNEU0MEExODdGODJFMTAwNDU4
ODJDIC8qIFNjcm9sbGluZ1RyZWVJT1MuaCAqLywKLQkJCQkxQjk0RTQwOTE4N0Y4MkUxMDA0NTg4
MkMgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8sCi0JCQkJMUI5
NEU0MEExODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTI0NDk3LDggKzI0NDkxLDYgQEAKIAkJCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYg
LyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8sCiAJCQkJMUFFMDBENTcxODJEQUM4RDAwMDg3REQ3
IC8qIEtleWVkQ29kaW5nLmggKi8sCiAJCQkJRTE1RkY3RDQxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oICovLAotCQkJCUUxODc3MkYwMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5n
dWFnZS5jcHAgKi8sCi0JCQkJODVFQzlBRjkwQTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmgg
Ki8sCiAJCQkJQTNENDJBODQxRjMzQkEzNjAwQTY0QjYyIC8qIExheW91dFVuaXQuY3BwICovLAog
CQkJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8sCiAJCQkJQkNF
NjVCRTgwRUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgKi8sCkBAIC0yNzcxNywxMiArMjc3
MDksOSBAQAogCQkJCTg0NzMwRDg1MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3Vs
YXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBB
IC8qIEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5Qzk5NzFGNTlC
OTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQx
MjlEQjFGM0QxNDM4MDBEMTVFNDcgLyogRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwMjMgLyogRmV0Y2hJbnRlcm5hbHNCdWlsdGlucy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNUExRjU4ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZCRDEwMEEzMTQ4
NiAvKiBGZXRjaE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTREMUYyQTlBRkIw
MDI3MkY3OCAvKiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Ux
OTE1QTFGMkE5QjM0MDAyNzJGNzggLyogRmV0Y2hSZXF1ZXN0Q2FjaGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkwMTIsNyArMjkwMDEsNiBAQAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAv
KiBLZXlwcmVzc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUw
MDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU2RkEy
NzExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTg1RUM5QUZCMEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjkxN0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIz
NDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4ODgs
NyArMjk4NzYsNiBAQAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJBODZDMyAvKiBTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RDFGM0VCQzgzMDBD
NzQ5NTAgLyogU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NUYxRjNF
QkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTUxN0E1MzVEMUY1ODk5RkUwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYxMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYzMUYzRUJDODMw
MEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VySm9iLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2
NDFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckpvYkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMzA4OCw3ICszMzA3NSw2IEBACiAJCQkJQkM1RUJBMTAwRTgyM0U0NzAwQjI1OTY1
IC8qIEtleWZyYW1lTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NTBDRUJGMDE1MDczQkJF
MDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNDU2
RkEyNjExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI5MTdCNTYxMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MTdCNTY2MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXll
ckZsdXNoU2NoZWR1bGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTNBNjlGMTk0QjU5
QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3Bw
CmluZGV4IDcwNzU2ZmZhZDdiMzI2N2M1NzkwOGZlODQ1NWNjYTFiNjc0YzA1MDEuLjJlYmMyMjZi
NzU5YmRhZDNiNTQzODQ2YWJiZDU0MGFlODhjNDZlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
CiAjaW5jbHVkZSAiU1ZHQUVsZW1lbnQuaCIKQEAgLTQwLDYgKzM5LDcgQEAKICNpbmNsdWRlICJT
VkdUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAi
WExpbmtOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCmluZGV4IGRjY2QyODMzOGUzZTgwZmQzYTQ4ZjM4NTUyYTNlZjJhMDMzNTdhOTUuLjZhZTU4
NzFjNmZiYjJkYTk4ZmM1ZWEyNWZkOGMxY2Y0ZThlOTFkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJv
bWlzZVRyYWNrZXIuaCIKQEAgLTUxLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KKyNpbmNsdWRlIDx3dGYvTGFu
Z3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCmluZGV4IDllODU0YTM4YzUzZTUwODlhMzMyMzAwMDkzOGZiYzNlMWEzZjAw
ZDAuLjM0YTUxYTU3MDg3Mzk4ZjM5MWFlNjc3Y2NiN2M4ZWNhMDljNmZiNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTMzLDEyICszMywxMiBAQAogI2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU0R5bmFtaWNEb3duY2FzdC5oIgogI2luY2x1ZGUgIkpTV29y
a2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI5MWE1ZmEyMGI0
N2I5MGU5ZTY1NGFhNDFlYzIzMWQ3YTk5MzE5M2EuLmRlMmYzYmE2ZWM2YzdmM2YxNmMzOTRkNDk0
ZGUwYzEzMGNmNDZhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw2
IEBACiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNM
YXp5RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRl
ICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxheW91dERpc2FsbG93ZWRTY29wZS5oIgogI2luY2x1
ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMjA2LDYgKzIw
NSw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUg
PHBhbC9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3
dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYzA4Y2YzMzcwYzJhMzFh
ZDMwMzNiOWY2MThmYTk1ZDAwMjMwNmNjMS4uMzhiMTI1NDkxNWZhZGNiMjllNGQ1M2U0ZDJiMmI2
Mjk3ZDk0YWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBA
IC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUg
IklkVGFyZ2V0T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtNTksNiAr
NTgsNyBAQAogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZjMyZmU0ZGI0YTkx
YzY5NGI0NWZjYzc4NWVhNWY3NjIwMDVmY2VlLi45ZTBhOWEyZmU4N2ZhNjNhZDM1Mjg1NjM4MGU4
ZjNhNmY0NDc1NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJKU0RPTUVycm9yLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0hUTUxNZWRpYUVsZW1lbnQuaCIKLSNp
bmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCkBAIC05NCw2ICs5Myw3IEBA
CiAjaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRo
bXMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNTQzZjYx
ZjllODczNTBkNTc4NmRkZDY2ZTQ3NzRlNzUzNTRiZTYxNi4uNjRmMmMxYWU0ODJlN2ViYzAyMGM5
YmZhY2Y5YTcxYmE2NTJiN2Q5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUg
IkhUTUxVTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxv
Y2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9scy5oIgpAQCAtNjAsNiArNTksNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNp
bmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgorI2lu
Y2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCA3ZWE0ZTA1NmIzY2JmNDJlNGIyYzcx
ZDUwYjM0OGI2ODI3YTgwOGRjLi44NjgxOWY1N2IyYjkyZjc1ZmIxNmQ1NDdlMDUwZmVhYTk2MDVm
ZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCiAKLSNp
bmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IDdk
NWFiMWUxNTE4OTU5ZTQ1YzQ0ZTY4YTI5ZDI0MzA2Mzc5MDQyMzYuLmJhZTBiM2JhYWNlNTk4MDc1
N2FhYjZkZDRmNzkwYWEwZGMzZTkyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXVk
aW9UcmFja0xpc3QuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJM
YW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNZWRp
YVNlbGVjdGlvbk9wdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTQ0LDYgKzQzLDcgQEAK
ICNpbmNsdWRlIDxoZWFwL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NlbGxJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRl
eCBmMGI4ZjdmMjdkMGRhOTY5YmI2ZDE0MzBjMDRmODcwZTU2N2EzZjZjLi4yM2Q3ZTBiZjRlN2Rh
NmEwMjBhYTVlOTdkMWFmMTZjMjViMWY0MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzcsNyArMzcsNiBA
QAogI2VuZGlmCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xF
bGVtZW50cy5oIgpAQCAtNDYsOCArNDUsOCBAQAogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0VHlw
ZXMuaCIKICNpbmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oPgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjIzOWM4
YWZlNDkwMDgzOTkwYzNiNDA1YmE3NDdiOWQ5MTUxZWIwNy4uY2IxNjM5ODZjODM2YjU1ZDA4ZTVk
Mzg4YWRhODk5YjAzMWE5M2UzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNjYs
NyArNjYsNiBAQAogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNs
dWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTWFpbkZy
YW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKQEAgLTExMCw2ICsxMDksNyBAQAog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8
bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9MYW5n
dWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmNwcAppbmRleCBiNmQ1NThmNzViMWY4MGVmYTIwYWUxMTVkNGMzMWQ5YzYzZTIxNWU0
Li40MWQwODc2Y2Q1ZWVmMWViMDVlNTRlMzg1NzBhOGYzZTNjOWYwMjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3IuY3BwCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b24uaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbHVnaW5EYXRhLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXVEY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCA5N2ZmOTUz
YTZmM2JkZmQwOTZlYWVkNmRjNWJmZjg5MmM0YzcyZTk1Li4yMjJhOGVmNGM2OGYxYjI2MmFmZGY4
MTIyZDhhYzk0Y2Q4YjgyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAK
QEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmln
YXRvckJhc2UuaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0
YXRlTm90aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCiAjaW5j
bHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM0YjM0OTI0NmFjN2U5ZTc2MDA2YWU3YjA0
ODMwNDk2MmZhODAwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgVVNFKENGKSAmJiAhUExBVEZPUk0o
V0lOKQotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0jZW5kaWYK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTXV0ZXg7Ci0KLXN0YXRpYyB2b2lkIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VD
YWxsYmFja0lmTmVjZXNzYXJ5KCkKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsK
LSAgICBzdGQ6OmNhbGxfb25jZSgKLSAgICAgICAgb25jZSwKLSAgICAgICAgW10gewotICAgICAg
ICAgICAgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKGxh
bmd1YWdlRGlkQ2hhbmdlKTsKLSAgICAgICAgfSk7Ci19Ci0KLXR5cGVkZWYgSGFzaE1hcDx2b2lk
KiwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKLXN0YXRpYyBP
YnNlcnZlck1hcCYgb2JzZXJ2ZXJNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
YnNlcnZlck1hcD4gbWFwOwotICAgIHJldHVybiBtYXAuZ2V0KCk7Ci19Ci0KLXZvaWQgYWRkTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RnVuY3Rpb24gY3VzdG9tT2JzZXJ2ZXIpCi17Ci0gICAgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5n
ZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKLSAgICBvYnNlcnZlck1hcCgpLnNldChjb250ZXh0LCBj
dXN0b21PYnNlcnZlcik7Ci19Ci0KLXZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2
b2lkKiBjb250ZXh0KQotewotICAgIEFTU0VSVChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKGNvbnRl
eHQpKTsKLSAgICBvYnNlcnZlck1hcCgpLnJlbW92ZShjb250ZXh0KTsKLX0KLQotdm9pZCBsYW5n
dWFnZURpZENoYW5nZSgpCi17Ci0gICAgT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG9ic2Vy
dmVyTWFwKCkuZW5kKCk7Ci0gICAgZm9yIChPYnNlcnZlck1hcDo6aXRlcmF0b3IgaXRlciA9IG9i
c2VydmVyTWFwKCkuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgaXRlci0+
dmFsdWUoaXRlci0+a2V5KTsKLX0KLQotU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCi17Ci0gICAg
VmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAg
IGlmIChsYW5ndWFnZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwotCi0g
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGU7Ci0gICAgcmV0dXJuIG92ZXJyaWRlOwotfQotCi1WZWN0
b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQotewotICAgIHJldHVy
biBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotfQotCi12b2lkIG92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCi17Ci0gICAg
cHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKSA9IG92ZXJyaWRlOwotICAgIGxhbmd1YWdlRGlk
Q2hhbmdlKCk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gY29weTsKLSAg
ICBjb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOwotICAgIGZvciAo
YXV0byYgbGFuZ3VhZ2UgOiBzdHJpbmdzKQotICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChs
YW5ndWFnZS5pc29sYXRlZENvcHkoKSk7Ci0gICAgcmV0dXJuIGNvcHk7Ci19Ci0KLVZlY3RvcjxT
dHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotICAgIHsKLSAgICAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsK
LSAgICAgICAgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGUoKTsKLSAgICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKLSAgICB9Ci0gICAgCi0gICAgcmVnaXN0ZXJM
YW5ndWFnZURpZENoYW5nZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKLSAgICByZXR1cm4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci19Ci0KLXN0YXRpYyBTdHJpbmcgY2Fub25pY2Fs
TGFuZ3VhZ2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQotewotICAgIFN0
cmluZyBsb3dlcmNhc2VMYW5ndWFnZUNvZGUgPSBsYW5ndWFnZUNvZGUuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKLSAgICAKLSAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2VDb2RlLmxlbmd0aCgp
ID49IDMgJiYgbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlWzJdID09ICdfJykKLSAgICAgICAgbG93ZXJj
YXNlTGFuZ3VhZ2VDb2RlLnJlcGxhY2UoMiwgMSwgIi0iKTsKLQotICAgIHJldHVybiBsb3dlcmNh
c2VMYW5ndWFnZUNvZGU7Ci19Ci0KLXNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJ
bkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1
YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCkKLXsKLSAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3Vh
Z2UgPSBsYW5ndWFnZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgIFN0cmluZyBsYW5n
dWFnZVdpdGhvdXRMb2NhbGVNYXRjaDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExv
Y2FsZTsKLSAgICBzaXplX3QgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IDA7Ci0g
ICAgc2l6ZV90IGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gMDsKLSAgICBi
b29sIGNhbk1hdGNoTGFuZ3VhZ2VPbmx5ID0gKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID09
IDIgfHwgKGxvd2VyY2FzZUxhbmd1YWdlLmxlbmd0aCgpID49IDMgJiYgbG93ZXJjYXNlTGFuZ3Vh
Z2VbMl0gPT0gJy0nKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlTGlz
dC5zaXplKCk7ICsraSkgewotICAgICAgICBTdHJpbmcgY2Fub25pY2FsaXplZExhbmd1YWdlRnJv
bUxpc3QgPSBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIobGFuZ3VhZ2VMaXN0W2ldKTsKLQot
ICAgICAgICBpZiAobG93ZXJjYXNlTGFuZ3VhZ2UgPT0gY2Fub25pY2FsaXplZExhbmd1YWdlRnJv
bUxpc3QpIHsKLSAgICAgICAgICAgIGV4YWN0TWF0Y2ggPSB0cnVlOwotICAgICAgICAgICAgcmV0
dXJuIGk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY2FuTWF0Y2hMYW5ndWFnZU9ubHkgJiYg
Y2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPj0gMikgewotICAgICAgICAg
ICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlWzBdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21M
aXN0WzBdICYmIGxvd2VyY2FzZUxhbmd1YWdlWzFdID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZy
b21MaXN0WzFdKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZVdpdGhvdXRMb2NhbGVN
YXRjaC5sZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgoKSA9
PSAyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoID0g
bGFuZ3VhZ2VMaXN0W2ldOwotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2Nh
bGVNYXRjaEluZGV4ID0gaTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYg
KCFsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlLmxlbmd0aCgpICYmIGNhbm9uaWNhbGl6ZWRMYW5n
dWFnZUZyb21MaXN0Lmxlbmd0aCgpID49IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3Vh
Z2VNYXRjaEJ1dE5vdExvY2FsZSA9IGxhbmd1YWdlTGlzdFtpXTsKLSAgICAgICAgICAgICAgICAg
ICAgbGFuZ3VhZ2VNYXRjaEJ1dE5vdExvY2FsZU1hdGNoSW5kZXggPSBpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGV4YWN0TWF0Y2gg
PSBmYWxzZTsKLQotICAgIC8vIElmIHdlIGhhdmUgYm90aCBhIGxhbmd1YWdlLW9ubHkgbWF0Y2gg
YW5kIGEgbGFuZ3VnZS1idXQtbm90LWxvY2FsZSBtYXRjaCwgcmV0dXJuIHRoZQotICAgIC8vIGxh
bmd1Z2Utb25seSBtYXRjaCBhcyBpcyBjb25zaWRlcmVkIGEgImJldHRlciIgbWF0Y2guIEZvciBl
eGFtcGxlLCBpZiB0aGUgbGlzdAotICAgIC8vIHByb3ZpZGVkIGhhcyBib3RoICJlbi1HQiIgYW5k
ICJlbiIgYW5kIHRoZSB1c2VyIHByZWZlcnMgImVuLVVTIiB3ZSB3aWxsIHJldHVybiAiZW4iLgot
ICAgIGlmIChsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaC5sZW5ndGgoKSkKLSAgICAgICAgcmV0
dXJuIGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXg7Ci0KLSAgICBpZiAobGFuZ3VhZ2VN
YXRjaEJ1dE5vdExvY2FsZS5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlTWF0Y2hC
dXROb3RMb2NhbGVNYXRjaEluZGV4OwotCi0gICAgcmV0dXJuIGxhbmd1YWdlTGlzdC5zaXplKCk7
Ci19Ci0KLVN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYg
bG9jYWxlTmFtZSkKLXsKLSNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCi0gICAgaWYgKCFs
b2NhbGVOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5
RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVlKGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgp
KS5nZXQoKSwga0NGTG9jYWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygp
LmdldCgpKSkuZ2V0KCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gbG9jYWxlTmFtZTsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNkN2U2NjdhMjcxMTI0OTg5NTEzNjI3M2M5ZWFjM2NiNDA4ZjE3NmMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGFuZ3VhZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDYsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExhbmd1YWdlX2gKLSNkZWZpbmUgTGFuZ3VhZ2VfaAot
Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1bHRMYW5ndWFn
ZSgpOyAvLyBUaHJlYWQtc2FmZS4KLVdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1
YWdlIHRhZ3MuCi1WZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUo
KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci1zaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdl
SW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5n
dWFnZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwotCi0vLyBUaGUgb2JzZXJ2ZXIgZnVuY3Rpb24g
d2lsbCBiZSBjYWxsZWQgd2hlbiBzeXN0ZW0gbGFuZ3VhZ2UgY2hhbmdlcy4KLXR5cGVkZWYgdm9p
ZCAoKkxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbikodm9pZCogY29udGV4dCk7Ci1XRUJD
T1JFX0VYUE9SVCB2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwg
TGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKLQotU3RyaW5nIGRpc3Bs
YXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7Ci0KLS8vIENhbGxlZCBmcm9t
IHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFn
ZShzKSBjaGFuZ2UuCi1XRUJDT1JFX0VYUE9SVCB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Ci19
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250R2VuZXJpY0ZhbWlsaWVzLmNwcAppbmRleCA4MWQxMjAwOWEzZjUxOWMwN2U5MWNjZjBi
YmJlNmYwODBlODYwNjNlLi41ZWJhYjljOTZkODhlMWRjY2NmMmI2MjI0MzQ2ZDFhNGMyY2UzMjdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250R2VuZXJp
Y0ZhbWlsaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
R2VuZXJpY0ZhbWlsaWVzLmNwcApAQCAtMjUsNyArMjUsOCBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCisKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5k
ZXggMDQyZTUzMDE3YmFiZTZlZmE1NjkwMjUxY2YwNmNjZTBlM2M3NDRkOC4uYTIzZDgwOWQzYTVk
ZGZhZjM3MTE2MmRmMWZjYjYwNDIyYjczZGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMjgsMTEgKzI4LDExIEBACiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbXBvcnQgIkxhbmd1YWdlLmgiCiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZBc3NldC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxlY3Rp
b25Hcm91cC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDx3dGYvTGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggNjRh
ZTk3MmRmY2Y5MjkwODYwMGQ5YWM4YTdmYjdjNzUwNDYxMzZjOC4uNWRjMDM1ZGZmNWNkNTU0OWYy
MTU3NWE2OTVjY2Q0Y2M1ZmNhNmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJIVFRQ
UGFyc2Vycy5oIgogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCi0jaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oCmluZGV4IDkxMTk4ZjI3
MTU3NWM3YmZmZTEyZjM2ZmViMDI1NGEzM2I0MGYwZTYuLmE5MWZlODNjYjc5NmY0ZThjOTI1NzFh
YjViOWZiNTE2MTg3MDExYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvUGxhdGZvcm1Mb2NhbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Bs
YXRmb3JtTG9jYWxlLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUGxhdGZvcm1Mb2NhbGVf
aAogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgor
I2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCBiNGIwZTUxZjRhZmQ2Y2EzYmNjOGEwZjg3
NTJkNTM0Y2Q4Yjk2YTYzLi4xYzcwYzQxM2Q4Y2MyMjUwMDRiMTdkN2IyYTY2OWE3MzcwNTdmMzZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9u
Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25D
Ri5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJI
eXBoZW5hdGlvbi5oIgogCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFu
Z3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RpbnlM
UlVDYWNoZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTUzLDcgKzUz
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgLy8gQ0YgaHlwaGVuYXRpb24gZnVuY3Rpb25z
IHVzZSBsb2NhbGUgKHJlZ2lvbmFsIGZvcm1hdHMpIGxhbmd1YWdlLCB3aGljaCBkb2Vzbid0IG5l
Y2Vzc2FyaWx5IG1hdGNoIHByaW1hcnkgVUkgbGFuZ3VhZ2UsCiAgICAgICAgIC8vIHNvIHdlIGNh
bid0IHVzZSBkZWZhdWx0IGxvY2FsZSBoZXJlLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODk3NjY0
Pi4KLSAgICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUgPSBhZG9wdENGKENGTG9j
YWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIFdlYkNvcmU6OmRlZmF1bHRMYW5ndWFnZSgp
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVm
PiBsb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRl
ZmF1bHRMYW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICAgICAgcmV0dXJu
IENGU3RyaW5nSXNIeXBoZW5hdGlvbkF2YWlsYWJsZUZvckxvY2FsZShsb2NhbGUuZ2V0KCkpID8g
bG9jYWxlIDogbnVsbHB0cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5jcHAKaW5kZXggNjM4
Zjc2YzQ2Y2M2ZDgxMmVlNWU5MmNlM2E1NWYzNzNlZjQwOGQ2Mi4uOGNlZTJjOTZkODhhM2E3NTY2
M2Q4N2MxMjRmNmFlNjY2NzliNmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5jcHAKQEAgLTIyLDkg
KzIyLDkgQEAKIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogCi0jaW5jbHVkZSA8TGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxlTWFjLm1tCmluZGV4IGQxNTU5MDU1ZTYwZTIwODc2Y2VkZjhiYzI2Y2JkMGZh
Nzc4YzNjODkuLjBhZjE3OWZhMjMzMTYzNjViN2MwOGMwNzI5NGY4M2I5NGFkMzNhZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KQEAgLTMxLDEy
ICszMSwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsZU1hYy5oIgog
CisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TRGF0
ZUZvcm1hdHRlci5oPgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0xvY2FsZS5oPgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0
Zi9EYXRlTWF0aC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9E
YXRlTWF0aC5oPgorI2ltcG9ydCA8d3RmL0xhbmd1YWdlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0ICJMb2NhbGl6ZWREYXRlQ2FjaGUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCmlu
ZGV4IDZjZTFiZmE5NTJiNTg2MDY2Y2E4MTQ4YWU1MjFlM2QwZDRhMzY3MjEuLmQ3NmE4MTk4OTE0
MzllNmIwYjY3YmZkNmY5ZDA3YzllMWYxNDYzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzMsMTMgKzMzLDEzIEBACiAKICNpbmNs
dWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCi0jaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSA8bGltaXRzPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGVzdHMuY3BwCmluZGV4IGU0NGMzMzRmMTY1MTliOWJhNzBiMmYwZjBmNDlkY2MwMzVjOTE5MGUu
LjgzNGMwZTNkOThlOGIyZGU1ZDk4MGFmYWZlNzYzNWYyNDM3ZTFmMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1Rlc3RzLmNwcApAQCAtMjQsMTAgKzI0LDEwIEBACiAKICNpbmNsdWRlICJET01JbXBsZW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAj
aW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAi
U1ZHU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDkzODkzYmQ1NzM5YzBkZDIxNjc1
OTAxNDI2Y2RmZjBiMzFlZjg4ZWEuLjRiZjFkMGU4MTIxNjhlZDk1ZjVhODlmNjM1NWIzMzEyODQx
OTFlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApA
QCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udENh
Y2hlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNp
bmNsdWRlICJMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCkBAIC00MSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKKyNp
bmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQog
I2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IDU2Zjk5MTU2ODNhNTMwZDYzYTk1OGZkNmU5MTk3NzIwNjU0ODA2MjguLjg3ZTM4YmZl
YWNjNzZhYWFjZDFhNDcwMmQ4Mzg0NGVkZGFhMjlmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTg4LDcgKzg4LDYgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiSW50ZXJuYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgiCi0jaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1
ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIKQEAgLTE1NCw2
ICsxNTMsNyBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUu
aD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KQEAgLTQxOSw3ICs0MTksNyBAQCB2b2lkIEludGVybmFs
czo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIH0KIAogICAgIFdlYkNv
cmU6OmNsZWFyRGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKTsKLSAgICBXZWJD
b3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4oKSk7Cisg
ICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkpOwogICAg
IFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoZmFsc2UpOwogICAg
IFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzTW9ja1Njcm9sbEFuaW1hdG9yKGZhbHNlKTsKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0xNzM3LDEyICsxNzM3LDEyIEBAIEV4Y2VwdGlvbk9y
PGludD4gSW50ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKCkKIAogVmVj
dG9yPFN0cmluZz4gSW50ZXJuYWxzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIHJldHVy
biBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNl
dFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlcykK
IHsKLSAgICBXZWJDb3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2Vz
KTsKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0KIAog
VmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjp1c2VyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3Rp
Y3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCAzYTBiNGYzNzdlYWFmYWQ1ZDQwNTdkYTVlZWM2MTE5
YWRkMmZjZThiLi4xNzI3ZTc3NWQ5OGM4ZWUxNjJjYWVlNWY5MDIwOGVkODk1MDM5MDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250
ZXh0LmNwcApAQCAtNTUsMTEgKzU1LDExIEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2lu
Y2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8bGliaW50bC5oPgogI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFn
ZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDgxMTY1MzZjNGY4OGZkM2ZiNTY0MWViMDIwYmRj
MTE2NWJlZDRlZTIuLmQ1OTNhODMyNGQ4NmY4NzlhNTA1NmFkMzViZjE1MGI2MjBkMDBkNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTcyLDcgKzcy
LDYgQEAKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTgwLDYgKzc5LDcgQEAKICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCmluZGV4IDQ4ZmRiMDgxM2M1N2Vj
Yzg3YzcyZTQ0YzNkNzFkMTFiNzM2MmUzN2IuLmU5MjZkYzNjMmVjOTk5OThiODJkNDMxOWVhODc2
MjM5NzIzNzM4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1Bvb2xTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dl
YlByb2Nlc3NQb29sU291cC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJDb29r
aWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdl
Lmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMGE0ZWY4YmNjOWRhNmFh
MjkwMDQ5ODZmODQyNGU0NzMwNGI3MjUyZS4uN2I2Y2Q0Zjc0ZDYxNjdhZWIxMDAyMmQ3NDBjOGY0
MWFmZWU5NTI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
OTEsNyArOTEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR2x5cGhQYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTVdpbmRv
dy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01h
aW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KQEAgLTExMiw2ICsxMTEsNyBAQAogI2luY2x1ZGUgPHVu
aXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
Q291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC00OTUsNyAr
NDk1LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJvb2wg
dXNlRm9udFNtb290aGluZykKIHZvaWQgV2ViUHJvY2Vzczo6dXNlclByZWZlcnJlZExhbmd1YWdl
c0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlcykgY29uc3QKIHsKICAgICBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKLSAgICBsYW5ndWFnZURp
ZENoYW5nZSgpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVD
aGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0cmFzLm1tCmluZGV4
IDk3YzA1OTQzZTI5ZGJhOTBhMTc3MzBlMTNlNWE4NzI1ZTc2ZmIzY2QuLjgyMjM1ODRhYjEyMmVj
YzQxYjNhZTUxYTEyOWY0MmRhMzA4ZmFkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5tbQpAQCAtMjgsMTEgKzI4
LDkgQEAKIAogI2ltcG9ydCAiV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMuaCIKIAotI2ltcG9ydCA8
V2ViQ29yZS9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL0xhbmd1YWdlLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIEBpbXBs
ZW1lbnRhdGlvbiBOU1VzZXJEZWZhdWx0cyAoV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMpCiAKICsg
KE5TU3RyaW5nICopX3dlYmtpdF9wcmVmZXJyZWRMYW5ndWFnZUNvZGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320190</attachid>
            <date>2017-09-07 15:25:18 -0700</date>
            <delta_ts>2017-09-07 15:36:43 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-176561-20170907152517.patch</filename>
            <type>text/plain</type>
            <size>101789</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi4xMjAxMTJmYThlYThiNzI4
ZmJhMGJlODk3Y2ZmNjRjZTlkOGYwYzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hh
bS4KKworICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmRl
ZmF1bHRMb2NhbGUpOgorCiAyMDE3LTA5LTA2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSAibWFsbG9jIiBhbmQgImZyZWUiIGZy
b20gSlNDL0FQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBmYThiMWFkYjM5NmQ0OTdkMTg3MGZiZjU4YjhiZTZkYzMwZWNkZWJh
Li41ZDcwNGU1MDMzNzczZTYxZWMyNDE5ZmUxNTIwMzc3OGJiYjZmMGMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Lmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgor
CisgICAgICAgIFdlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2Ugd2FzIHRoZSBvbmx5KiB1c2VyIG9m
IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyAod2l0aCAxIGV4Y2VwdGlvbikuCisgICAg
ICAgIFRoYXQgZXhjZXB0aW9uIGlzIHRoYXQgSmF2YVNjcmlwdENvcmUgbmVlZGVkIHRoZSBmdW5j
dGlvbmFsaXR5IG9mIFdlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UsIGJ1dCBpdAorICAgICAgICBj
b3VsZG4ndCBnZXQgaXQgYmVjYXVzZSBvZiB0aGUgbGF5ZXJpbmcgdmlvbGF0aW9uLCBzbyBpbnN0
ZWFkIGl0IGVycm9uZW91c2x5IGNhbGxlZCBpbnRvCisgICAgICAgIFBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlcyBpbnN0ZWFkLiBUaGlzIHBhdGNoIG1lcmdlcyB0aGVzZSB0d28gZmlsZXMg
aW50byBXVEYgc28gSlNDIGdldHMgdGhlCisgICAgICAgIHJpZ2h0IGZ1bmN0aW9uIGFuZCB0aGUg
UEFMIGVmZm9ydCBoYXMgb25lIGxlc3MgZmlsZSB0byBtb3ZlIGZyb20gV2ViQ29yZS9wbGF0Zm9y
bSBpbnRvIFBBTC4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwLgorICAg
ICAgICAoV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6dXNl
clByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL0xhbmd1YWdlLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oLgorICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL1BsYXRmb3Jt
V1BFLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiB3
dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0uCisgICAgICAgIChXVEY6Omh0dHBTdHlsZUxh
bmd1YWdlQ29kZSk6CisgICAgICAgIChXVEY6Omxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2Up
OgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAg
ICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcC4KKyAgICAgICAgKiB3dGYv
d2luL0xhbmd1YWdlV2luLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAuCisKIDIwMTctMDktMDYgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVxdWlyZSBMb2dnaW5nSGVs
cGVyIG92ZXJyaWRlcyB0byBwcm92aWRlIGlkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOGNmYmUx
MjQ5YWQwZTliMDZmYjNjNTc1NWYyNmZlNjZiMjBkNzExLi42OTA1NGY5Y2U3MjYzMDg5Y2ZiZjIx
ODdlNGFkOTUxOWVmMzEzZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMDkt
MDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBb
UEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1YWdl
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjU2
MQorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5j
cHA6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAgICAgICAq
IHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEdlbmVyaWNGYW1pbGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxhdGZv
cm1Mb2NhbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbToKKyAgICAgICAgKiBz
dmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCiAyMDE3LTA5LTA3ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FSTV0g
QnVpbGRpbmcgRkVMaWdodG5pbmdORU9OLmNwcCBmYWlscyBkdWUgdG8gbWlzc2luZyB7UG9pbnQs
U3BvdH1MaWdodFNvdXJjZSBkZWNsYXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODUzYjU4ODI1YzU0MmIy
NmFlZDRmMWNkM2FlZWUxYTQ1ODc2ZmJlMy4uMjEyYmY3YTk3OTU3MzMwNzg5YmM0NDUxOGY5OWU3
ZjM1Njc0OWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wOS0wNyAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5
IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQg
Y29uc3QpOgorCiAyMDE3LTA5LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFdLVUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBv
ZiBXS1BhZ2VVSUNsaWVudCdzIHBhZ2VEaWRTY3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCA3ZTUxZWJhZjZiZmY4ZWZiMWZjY2NkODFkMjg0MGZmNzJiNDRjNWU4Li43ZmQxNWYy
ZmVlYjllN2EyMDlhNjE5NWZkNTNjNmIxOGU3NjI3NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDktMDcgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbUEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1YWdlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBNaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0cmFz
Lm1tOgorCiAyMDE3LTA5LTA1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBzb21lIHVudXNlZCBiaXRzIG9mIGNvZGUgYW5kIHJlc291cmNl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCA5
ZjE3NGQ2NDA1YzlmM2EwODZiMjYzNTZiZGNlZWJiY2YwNDg0MDg1Li4yNWQyMWYyZWU1Y2UzYzc2
NzIzMTZhYWY2ZjdhMDM1ZDZhMjFmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcApAQCAtNDgsOCArNDgsOCBAQAogI2luY2x1ZGUgPHVuaWNvZGUv
dWxvYy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdW51bXN5cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC01NzYsMTYgKzU3NiwxNCBAQCBTdHJpbmcgZGVmYXVsdExvY2FsZShFeGVjU3RhdGUm
IHN0YXRlKQogICAgIAogICAgIC8vIFdlYkNvcmUncyBnbG9iYWwgb2JqZWN0cyB3aWxsIGhhdmUg
dGhlaXIgb3duIGlkZWFzIG9mIGhvdyB0byBkZXRlcm1pbmUgdGhlIGxhbmd1YWdlLiBJdCBtYXkK
ICAgICAvLyBiZSBkZXRlcm1pbmVkIGJ5IFdlYkNvcmUtc3BlY2lmaWMgbG9naWMgbGlrZSBzb21l
IFdLIHNldHRpbmdzLiBVc3VhbGx5IHRoaXMgd2lsbCByZXR1cm4gdGhlCi0gICAgLy8gc2FtZSB0
aGluZyBhcyBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKVswXS4KKyAgICAvLyBzYW1l
IHRoaW5nIGFzIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKVswXS4KICAgICBpZiAoYXV0byBkZWZh
dWx0TGFuZ3VhZ2UgPSBzdGF0ZS5qc0NhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+ZGVmYXVsdExhbmd1YWdlKSB7CiAgICAgICAgIFN0cmluZyBsb2Nh
bGUgPSBkZWZhdWx0TGFuZ3VhZ2UoKTsKICAgICAgICAgaWYgKCFsb2NhbGUuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbGl6ZUxhbmd1YWdlVGFnKGxvY2FsZSk7CiAgICAg
fQotICAgIAotICAgIC8vIElmIFdlYkNvcmUgaXNuJ3QgYXJvdW5kIHRvIHRlbGwgdXMgaG93IHRv
IGdldCB0aGUgbGFuZ3VhZ2UgdGhlbiBmYWxsIGJhY2sgdG8gb3VyIG93biB3YXkgb2YKLSAgICAv
LyBkb2luZyBpdCwgd2hpY2ggbW9zdGx5IGZvbGxvd3Mgd2hhdCBXZWJDb3JlIHdvdWxkIGhhdmUg
ZG9uZS4KLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKICAgICBpZiAoIWxhbmd1YWdlcy5pc0VtcHR5KCkgJiYgIWxhbmd1
YWdlc1swXS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBjYW5vbmljYWxpemVMYW5ndWFnZVRh
ZyhsYW5ndWFnZXNbMF0pOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYjBhMTkwOGJhZGQ5MDI3ODdjY2I0NWUxMTdhZWUxMjgxYjI2N2JmNS4uMTI5
Yjk4NTM5NjY4ZmVmYzYwMjA0Yjc2YTgzNWU2NDc2Zjg4NmUxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzIsOSArMTMyLDEwIEBACiAJCUFEODlCNkI3
MUU2NDE1MDgwMDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4OUI2QjUxRTY0MTUwODAwOTA3
MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgKi87IH07CiAJCUFEODlCNkJBMUU2NDE1
MEYwMDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODlCNkI5MUU2NDE1MEYwMDkwNzA3
RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSAqLzsgfTsKIAkJQURGMkNFNjcxRTM5
RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERjJDRTY1MUUzOUYxMDYwMDY4ODlEQiAv
KiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgKi87IH07CisJCUMyQkNGQzQwMUY2MUQxMzAwMEM5
MjIyQyAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkJDRkMzRTFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovOyB9
OworCQlDMkJDRkM0MjFGNjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJDRkM0MTFGNjFENjE2MDBD
OTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07
CiAJCURDRUUyMjAxMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENFRTIxRkQxQ0VB
NzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gKi87IH07Ci0JCURDRUUyMjAz
MUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjFGRjFD
RUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tICov
OyB9OwogCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGll
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTU1
NTZGMzE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgKi87IH07
CiAJCUUzMTFGQjE3MUYwQTU2OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzExRkIxNTFGMEE1NjhCMDAz
QzA4REUgLyogVGhyZWFkR3JvdXAuY3BwICovOyB9OwogCQlFMzhDNDEyNTFFQjRFMDRDMDA0Mjk1
N0QgLyogQ1BVVGltZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM4QzQxMjQxRUI0RTA0QzAwNDI5NTdEIC8qIENQVVRpbWVDb2NvYS5tbSAq
LzsgfTsKQEAgLTU0Nyw2ICs1NDgsOSBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyog
TWVtb3J5Rm9vdHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9y
eUZvb3RwcmludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURl
ZmluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJD
IC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExh
bmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDM0YxRjYxRDEz
MDAwQzkyMjJDIC8qIExhbmd1YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExhbmd1YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzQxMUY2MUQ2
MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExhbmd1YWdlQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
NEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDOEY1OTdDQTJBNTc0MTdGQkFCOTJGRDYgLyogUmFuZG9tRGV2aWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmRvbURldmljZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1Nyw4ICs1NjEsNiBAQAogCQlEQ0VFMjFG
QTFDRUE3NTM4MDAwQzIzOTYgLyogQ0ZCdW5kbGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQ0ZCdW5kbGVTUEkuaDsgcGF0aCA9IGNmL0NGQnVuZGxlU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMUZDMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9j
a09iakNFeGNlcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2Nr
T2JqQ0V4Y2VwdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIxRkQx
Q0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCbG9ja09iakNFeGNlcHRpb25zLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlEQ0VFMjFGRTFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlEQ0VFMjFGRjFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQ0VFMjIwNDFDRUI5ODY5MDAwQzIzOTYgLyogQmFja3dhcmRzR3JhcGgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja3dhcmRzR3JhcGguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREU1QTA5RkIxQkEzNjk5MjAwM0Q0NDI0IC8qIENv
bW1vbkNyeXB0b1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25D
cnlwdG9TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1NTU2RjMxOEEwQ0Mx
ODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDAsNiArNjQyLDcgQEAKIAkJMkNERUQwRjAxODExNUMz
RjAwNERCQTcwIC8qIGNmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlDMkJDRkM0MTFGNjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi8sCiAJ
CQkJMkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgKi8sCiAJCQkJMUFG
REU2NDcxOTUyMDFDMzAwQzQ4RkZBIC8qIFR5cGVDYXN0c0NGLmggKi8sCiAJCQkpOwpAQCAtODQ2
LDYgKzg0OSw4IEBACiAJCQkJNTE4MkMyMkMxRjJCQzdFNjAwNTlCQTdDIC8qIEluc3RhbmNlQ291
bnRlZC5oICovLAogCQkJCTdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0
b3JzLmggKi8sCiAJCQkJN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2Uu
aCAqLywKKwkJCQlDMkJDRkMzRTFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovLAor
CQkJCUMyQkNGQzNGMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovLAogCQkJCTUzOUVC
MDYyMUQ1NTI4NDIwMEM4MkVGNyAvKiBMRUJEZWNvZGVyLmggKi8sCiAJCQkJQTcwREEwODMxNzk5
RjA0RDAwNTI5QTlCIC8qIExpc3REdW1wLmggKi8sCiAJCQkJQThBNDcyQzExNTFBODI1QTAwNDEy
M0ZGIC8qIExpc3RIYXNoU2V0LmggKi8sCkBAIC05MTIsOCArOTE3LDYgQEAKIAkJCQkwRjgyNEE2
NTFCNzQ0M0EwMDAyRTM0NUQgLyogUGFya2luZ0xvdC5oICovLAogCQkJCUE4NzZEQkQ3MTUxODE2
RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovLAogCQkJCUUzMjAwQUI0MUU5QTUzNkQwMDNCNTlE
MiAvKiBQbGF0Zm9ybVJlZ2lzdGVycy5oICovLAotCQkJCURDRUUyMUZFMUNFQTc1NTEwMDBDMjM5
NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCAqLywKLQkJCQlEQ0VFMjFGRjFD
RUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tICov
LAogCQkJCTBGRjg2MDk0MUJDQ0JENzQwMDQ1MTI3RiAvKiBQb2ludGVyQ29tcGFyaXNvbi5oICov
LAogCQkJCTBGOUQzMzVEMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgKi8sCiAJ
CQkJMEY5RDMzNUUxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmggKi8sCkBAIC0xMzQ0
LDcgKzEzNDcsNiBAQAogCQkJCTUxNUY3OTRFMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVh
ZENvcGllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5QTE1MUE4MjVCMDA0MTIzRkYg
LyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYwRjUyNkIxRjQyMUZGODAwNEE0NTJDIC8qIFN0cmluZ01hbGxv
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQzOTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0
cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5QzE1MUE4MjVCMDA0MTIzRkYgLyog
Q3VycmVudFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEy
M0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMzY0LDYgKzEzNjYsOCBAQAog
CQkJCTBGMzBCQTkwMUU3ODcwOEUwMDJDQTg0NyAvKiBHbG9iYWxWZXJzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGlt
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNEODE1MUE4MjVCMDA0MTIzRkYgLyogSGFz
aFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkNGQzQwMUY2MUQxMzAwMEM5MjIyQyAv
KiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkJDRkM0MjFGNjFENjE2MDBDOTIy
MkMgLyogTGFuZ3VhZ2VDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUxNjQ2QTFCNkZGQzk2
MDA0MDBFN0MgLyogTG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYwRjMyRjFERkNCRDFC
MDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM1
MzRGMkExRUMwRTEwRTAwMTQxQjJGIC8qIE1hY2hFeGNlcHRpb25zLmRlZnMgaW4gU291cmNlcyAq
LywKQEAgLTEzODUsNyArMTM4OSw2IEBACiAJCQkJNTFGMTc1MkIxRjNENDg2MDAwQzc0OTUwIC8q
IFBlcnNpc3RlbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMTc1MkMxRjNENDg2
MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnREZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RjE3NTJEMUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RW5jb2Rlci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlEQ0VFMjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjIxNjVEQkE3MzAw
NUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0Y2MTFGMTU2
NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQjcyNUVD
OTg3NDQ2QUQ5M0YxQTQ0MCAvKiBSYW5kb21EZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0x
NDEyLDYgKzE0MTUsNyBAQAogCQkJCUE1QkExNUZDMTgyNDM1QTYwMEE4MkU2OSAvKiBTdHJpbmdJ
bXBsQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RjUxODI0MzQ4MDAwQTgyRTY5IC8q
IFN0cmluZ0ltcGxNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGMzE4MjQzM0E5MDBB
ODJFNjkgLyogU3RyaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEYwRjUyNkIxRjQyMUZG
ODAwNEE0NTJDIC8qIFN0cmluZ01hbGxvYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkREQkZB
NzE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNGMTk5M0UxOUQ3OTU4RDAwQzIzOTBCIC8qIFN0cmluZ1ZpZXcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM5MzRCRDUxOEExRjE2OTAwRDBENkExIC8qIFN0cmluZ1ZpZXdDRi5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggM2E2Y2U5ZTRlZGVhOTk4YTUz
ZWE0NGU1NDljNjM3NTcwZTc1NmE3Mi4uZGNhMzhiYmQ3NzRiYzFjZTQwZDYwOGVkODFkOTk1NzYy
MDhmOTUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTYwLDYgKzYwLDcgQEAgc2V0KFdURl9I
RUFERVJTCiAgICAgSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yLmgKICAgICBJdGVyYXRvckFkYXB0
b3JzLmgKICAgICBJdGVyYXRvclJhbmdlLmgKKyAgICBMYW5ndWFnZS5oCiAgICAgTGlzdEhhc2hT
ZXQuaAogICAgIExpdmVuZXNzLmgKICAgICBMb2NrLmgKQEAgLTIyOSw2ICsyMzAsNyBAQCBzZXQo
V1RGX1NPVVJDRVMKICAgICBHbG9iYWxWZXJzaW9uLmNwcAogICAgIEdyZWdvcmlhbkRhdGVUaW1l
LmNwcAogICAgIEhhc2hUYWJsZS5jcHAKKyAgICBMYW5ndWFnZS5jcHAKICAgICBMb2NrLmNwcAog
ICAgIExvY2tlZFByaW50U3RyZWFtLmNwcAogICAgIE1ENS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYTJlOGMxMDAzYzE1NTNjOGViMmMzOTUxOTVjMWM0NzgxYmY2ZjU3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0wLDAgKzEsMTc4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2LCAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFVTRShDRikgJiYgIVBMQVRGT1JNKFdJ
TikKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzTXV0ZXg7CisKK3R5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
ckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKK3N0YXRpYyBPYnNlcnZlck1hcCYgb2JzZXJ2ZXJNYXAo
KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPYnNlcnZlck1hcD4gbWFwOworICAgIHJl
dHVybiBtYXAuZ2V0KCk7Cit9CisKK3ZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lk
KiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rpb24gY3VzdG9tT2JzZXJ2ZXIp
Cit7CisgICAgb2JzZXJ2ZXJNYXAoKS5zZXQoY29udGV4dCwgY3VzdG9tT2JzZXJ2ZXIpOworfQor
Cit2b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCkKK3sKKyAg
ICBBU1NFUlQob2JzZXJ2ZXJNYXAoKS5jb250YWlucyhjb250ZXh0KSk7CisgICAgb2JzZXJ2ZXJN
YXAoKS5yZW1vdmUoY29udGV4dCk7Cit9CisKK3ZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKQorewor
ICAgIE9ic2VydmVyTWFwOjppdGVyYXRvciBlbmQgPSBvYnNlcnZlck1hcCgpLmVuZCgpOworICAg
IGZvciAoT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBvYnNlcnZlck1hcCgpLmJlZ2luKCk7
IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAgICAgIGl0ZXItPnZhbHVlKGl0ZXItPmtleSk7Cit9
CisKK1N0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1
YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBpZiAobGFuZ3VhZ2VzLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1swXTsKKworICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOworfQorCitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IG92ZXJy
aWRlOworICAgIHJldHVybiBvdmVycmlkZTsKK30KKworVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCkKK3sKKyAgICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKTsKK30KKwordm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlKQoreworICAgIHByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlKCkgPSBvdmVycmlkZTsKKyAgICBsYW5ndWFnZURpZENoYW5nZSgpOworfQorCitzdGF0
aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJp
bmdzKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGNvcHk7CisgICAgY29weS5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHN0cmluZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogc3Ry
aW5ncykKKyAgICAgICAgY29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5
KCkpOworICAgIHJldHVybiBjb3B5OworfQorCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCkKK3sKKyAgICB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2Nr
PiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIFZlY3RvcjxTdHJp
bmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CisgICAgICAgIGlm
ICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGlzb2xhdGVkQ29weShv
dmVycmlkZSk7CisgICAgfQorCisgICAgcmV0dXJuIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcygpOworfQorCitzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihj
b25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKK3sKKyAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3Vh
Z2VDb2RlID0gbGFuZ3VhZ2VDb2RlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CisgICAgCisg
ICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlQ29kZS5sZW5ndGgoKSA+PSAzICYmIGxvd2VyY2FzZUxh
bmd1YWdlQ29kZVsyXSA9PSAnXycpCisgICAgICAgIGxvd2VyY2FzZUxhbmd1YWdlQ29kZS5yZXBs
YWNlKDIsIDEsICItIik7CisKKyAgICByZXR1cm4gbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlOworfQor
CitzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYg
bGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4YWN0
TWF0Y2gpCit7CisgICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlID0gbGFuZ3VhZ2UuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICBTdHJpbmcgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0
Y2g7CisgICAgU3RyaW5nIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGU7CisgICAgc2l6ZV90IGxh
bmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSAwOworICAgIHNpemVfdCBsYW5ndWFnZU1h
dGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9IDA7CisgICAgYm9vbCBjYW5NYXRjaExhbmd1YWdl
T25seSA9IChsb3dlcmNhc2VMYW5ndWFnZS5sZW5ndGgoKSA9PSAyIHx8IChsb3dlcmNhc2VMYW5n
dWFnZS5sZW5ndGgoKSA+PSAzICYmIGxvd2VyY2FzZUxhbmd1YWdlWzJdID09ICctJykpOworCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYW5ndWFnZUxpc3Quc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0ID0gY2Fub25pY2FsTGFu
Z3VhZ2VJZGVudGlmaWVyKGxhbmd1YWdlTGlzdFtpXSk7CisKKyAgICAgICAgaWYgKGxvd2VyY2Fz
ZUxhbmd1YWdlID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0KSB7CisgICAgICAgICAg
ICBleGFjdE1hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGNhbk1hdGNoTGFuZ3VhZ2VPbmx5ICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFn
ZUZyb21MaXN0Lmxlbmd0aCgpID49IDIpIHsKKyAgICAgICAgICAgIGlmIChsb3dlcmNhc2VMYW5n
dWFnZVswXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdFswXSAmJiBsb3dlcmNhc2VM
YW5ndWFnZVsxXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdFsxXSkgeworICAgICAg
ICAgICAgICAgIGlmICghbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2gubGVuZ3RoKCkgJiYgY2Fu
b25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPT0gMikgeworICAgICAgICAgICAg
ICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaCA9IGxhbmd1YWdlTGlzdFtpXTsKKyAg
ICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IGk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghbGFuZ3VhZ2VNYXRjaEJ1dE5v
dExvY2FsZS5sZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgo
KSA+PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUg
PSBsYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlTWF0Y2hCdXRO
b3RMb2NhbGVNYXRjaEluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBleGFjdE1hdGNoID0gZmFsc2U7CisKKyAgICAvLyBJ
ZiB3ZSBoYXZlIGJvdGggYSBsYW5ndWFnZS1vbmx5IG1hdGNoIGFuZCBhIGxhbmd1Z2UtYnV0LW5v
dC1sb2NhbGUgbWF0Y2gsIHJldHVybiB0aGUKKyAgICAvLyBsYW5ndWdlLW9ubHkgbWF0Y2ggYXMg
aXMgY29uc2lkZXJlZCBhICJiZXR0ZXIiIG1hdGNoLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGxpc3QK
KyAgICAvLyBwcm92aWRlZCBoYXMgYm90aCAiZW4tR0IiIGFuZCAiZW4iIGFuZCB0aGUgdXNlciBw
cmVmZXJzICJlbi1VUyIgd2Ugd2lsbCByZXR1cm4gImVuIi4KKyAgICBpZiAobGFuZ3VhZ2VXaXRo
b3V0TG9jYWxlTWF0Y2gubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBsYW5ndWFnZVdpdGhvdXRM
b2NhbGVNYXRjaEluZGV4OworCisgICAgaWYgKGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUubGVu
Z3RoKCkpCisgICAgICAgIHJldHVybiBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRl
eDsKKworICAgIHJldHVybiBsYW5ndWFnZUxpc3Quc2l6ZSgpOworfQorCitTdHJpbmcgZGlzcGxh
eU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmIGxvY2FsZU5hbWUpCit7CisjaWYg
VVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQorICAgIGlmICghbG9jYWxlTmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBhZG9wdENGKENGTG9jYWxlQ29weURpc3BsYXlOYW1lRm9yUHJvcGVy
dHlWYWx1ZShhZG9wdENGKENGTG9jYWxlQ29weUN1cnJlbnQoKSkuZ2V0KCksIGtDRkxvY2FsZUlk
ZW50aWZpZXIsIGxvY2FsZU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpLmdldCgpOworI2Vu
ZGlmCisgICAgcmV0dXJuIGxvY2FsZU5hbWU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0xhbmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMwNWI5MTg5OWQ0Y2RlZmUwYmFmMDBiY2QwMjEzZmJiZDdjOGM0MmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMTAsIDIwMTMsIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworV1RGX0VYUE9SVCBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgor
V1RGX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7IC8vIFRo
cmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgorV1RGX0VYUE9SVCBWZWN0
b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKK1dURl9FWFBPUlQg
dm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKK1dURl9FWFBPUlQgc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChj
b25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0
LCBib29sJiBleGFjdE1hdGNoKTsKK1dURl9FWFBPUlQgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisvLyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZp
YyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgordm9p
ZCBsYW5ndWFnZURpZENoYW5nZSgpOworCisvLyBUaGUgb2JzZXJ2ZXIgZnVuY3Rpb24gd2lsbCBi
ZSBjYWxsZWQgd2hlbiBzeXN0ZW0gbGFuZ3VhZ2UgY2hhbmdlcy4KK3R5cGVkZWYgdm9pZCAoKkxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbikodm9pZCogY29udGV4dCk7CitXVEZfRVhQT1JU
IHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNo
YW5nZU9ic2VydmVyRnVuY3Rpb24pOworV1RGX0VYUE9SVCB2b2lkIHJlbW92ZUxhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CisKK1dURl9FWFBPUlQgU3RyaW5nIGRpc3BsYXlO
YW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7Cit9CisKK3VzaW5nIFdURjo6ZGVm
YXVsdExhbmd1YWdlOwordXNpbmcgV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcg
V1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGU7Cit1c2luZyBXVEY6Om92ZXJyaWRl
VXNlclByZWZlcnJlZExhbmd1YWdlczsKK3VzaW5nIFdURjo6aW5kZXhPZkJlc3RNYXRjaGluZ0xh
bmd1YWdlSW5MaXN0OwordXNpbmcgV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
Cit1c2luZyBXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7Cit1c2luZyBXVEY6OnJlbW92
ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7Cit1c2luZyBXVEY6OmRpc3BsYXlOYW1lRm9yTGFuZ3Vh
Z2VMb2NhbGU7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggY2RhNWMyOTcyM2QzN2Fk
ZDViMDhjYmJlODYxZTM0NmI5NzkxY2Y1Ny4uZGEwMzhhMDFmYzMwYzNlNDgzOGZkMzc2YmM1NGEx
ZTU0YzNiZTc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEyLDggKzEyLDggQEAg
bGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICBsaW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJM
aW51eC5jcHAKIAogICAgIHVuaXgvQ1BVVGltZVVuaXguY3BwCisgICAgdW5peC9MYW5ndWFnZVVu
aXguY3BwCiAKLSAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAogICAg
IFVuaVN0ZEV4dHJhcy5jcHAKIAogICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVVW5peC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25s
eS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZQppbmRleCA0NGIy
MjAwYmJiNmY0ZjJhMTZhOTk0N2E0NDA3MjdhYWYxNzFkNTNmLi4zZTc3Y2M0YTQ4MjlkYmI3NjUz
NjRjYTAxYTQwYjlmOGI2NDg4MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUpTQ09ubHkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtl
CkBAIC0xLDUgKzEsNCBAQAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAogCiAgICAgZ2VuZXJpYy9NYWluVGhyZWFkR2Vu
ZXJpYy5jcHAKICAgICBnZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC04LDExICs3LDEz
IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiBpZiAoV0lOMzIpCiAgICAgbGlzdChBUFBFTkQg
V1RGX1NPVVJDRVMKICAgICAgICAgd2luL0NQVVRpbWVXaW4uY3BwCisgICAgICAgIHdpbi9MYW5n
dWFnZVdpbi5jcHAKICAgICAgICAgdGV4dC93aW4vVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VVdpbi5jcHAKICAgICApCiBlbHNlICgpCiAgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAg
ICAgICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICAgICAgdW5peC9MYW5ndWFnZVVuaXguY3Bw
CiAgICAgICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVVW5peC5jcHAK
ICAgICApCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMu
Y21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBiNGIxZGFmMzM5
NDU3OWUyZTgzNDNhMTJlMDAxMjQzZWI0ZDI5ODlhLi5mMDcxZDJmMGViYjA5NDFhYTc4MzJmNTlh
NDE2ODA5YzI1ZGEyYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5j
bWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMTAsMTUgKzEw
LDE1IEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VT
CiAgICAgQXV0b2RyYWluZWRQb29sTWFjLm1tCiAgICAgQmxvY2tPYmpDRXhjZXB0aW9ucy5tbQot
ICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbQogICAgIFJ1bkxvb3BUaW1l
ckNGLmNwcAogICAgIFNjaGVkdWxlUGFpckNGLmNwcAogICAgIFNjaGVkdWxlUGFpck1hYy5tbQog
Ci0gICAgdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQotCisgICAg
Y2YvTGFuZ3VhZ2VDRi5jcHAKICAgICBjZi9SdW5Mb29wQ0YuY3BwCiAKKyAgICB0ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisKICAgICBjb2NvYS9DUFVUaW1lQ29j
b2EubW0KICAgICBjb2NvYS9NZW1vcnlGb290cHJpbnRDb2NvYS5jcHAKICAgICBjb2NvYS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM1
ODBmYzc2MDlmZmRjM2FiM2I0NmRhMGRlYzg3YTkwMzRmZTc3Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0jZGVmaW5l
IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewot
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCAoKikoKSk7Ci0KLS8vIFRoaXMgaXMgdGhyZWFkLXNhZmUu
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OnNldFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjazsKLXVzaW5nIFdURjo6cGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwotCi0jZW5kaWYgLy8gUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YWU3MWFlZmMzNmFlODk1YThhZmJlNzZhNjRjNTNjNjMwOTZlNDQwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlc01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE0NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDEwLCAyMDExLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29u
ZmlnLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCIKLQotI2lt
cG9ydCAiQmxvY2tPYmpDRXhjZXB0aW9ucy5oIgotI2ltcG9ydCA8bXV0ZXg+Ci0jaW1wb3J0IDx1
bmljb2RlL3Vsb2MuaD4KLSNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW1wb3J0IDx3dGYv
TG9jay5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+Ci0jaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXN0YXRpYyB2b2lkICgq
Y2FsbGJhY2spKCk7Ci0KLXZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hh
bmdlZENhbGxiYWNrKHZvaWQgKCpwYXNzZWRDYWxsYmFjaykoKSkKLXsKLSAgICBjYWxsYmFjayA9
IHBhc3NlZENhbGxiYWNrOwotfQotCi1zdGF0aWMgU3RhdGljTG9jayBwcmVmZXJyZWRMYW5ndWFn
ZXNNdXRleDsKLQotc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKQot
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwot
ICAgIHJldHVybiBsYW5ndWFnZXM7Ci19Ci0KLX0KLQotQGludGVyZmFjZSBXVEZMYW5ndWFnZUNo
YW5nZU9ic2VydmVyIDogTlNPYmplY3QKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdURkxhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXIKLQotKyAodm9pZClsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdl
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwotCi0gICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4g
bG9jayhXVEY6OnByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKLSAgICAgICAgV1RGOjpwcmVmZXJy
ZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLSAgICAKLSAgICBpZiAoV1RGOjpjYWxsYmFj
aykKLSAgICAgICAgV1RGOjpjYWxsYmFjaygpOwotfQotCi1AZW5kCi0KLW5hbWVzcGFjZSBXVEYg
ewotCi1zdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShOU1N0cmluZyAqbGFuZ3Vh
Z2UpCi17Ci0gICAgU0ludDMyIGxhbmd1YWdlQ29kZTsKLSAgICBTSW50MzIgcmVnaW9uQ29kZTsK
LSAgICBTSW50MzIgc2NyaXB0Q29kZTsKLSAgICBDRlN0cmluZ0VuY29kaW5nIHN0cmluZ0VuY29k
aW5nOwotCi0gICAgLy8gRklYTUU6IFRoaXMgdHJhbnNmb3JtYXRpb24gaXMgdmVyeSB3cm9uZzoK
LSAgICAvLyAxLiBUaGVyZSBpcyBubyByZWFzb24gd2h5IENGQnVuZGxlIGxvY2FsaXphdGlvbiBu
YW1lcyB3b3VsZCBiZSBhdCBhbGwgcmVsYXRlZCB0byBsYW5ndWFnZSBuYW1lcyBhcyB1c2VkIG9u
IHRoZSBXZWIuCi0gICAgLy8gMi4gU2NyaXB0IE1hbmFnZXIgY29kZXMgY2Fubm90IHJlcHJlc2Vu
dCBhbGwgbGFuZ3VhZ2VzIHRoYXQgYXJlIG5vdyBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtLCBz
byB0aGUgY29udmVyc2lvbiBpcyBsb3NzeS4KLSAgICAvLyAzLiBUaGlzIHNob3VsZCBwcm9iYWJs
eSBtYXRjaCB3aGF0IGlzIHNlbnQgYnkgdGhlIG5ldHdvcmsgbGF5ZXIgYXMgQWNjZXB0LUxhbmd1
YWdlLCBidXQgY3VycmVudGx5LCB0aGF0J3MgaW1wbGVtZW50ZWQgc2VwYXJhdGVseS4KLSAgICBD
RkJ1bmRsZUdldExvY2FsaXphdGlvbkluZm9Gb3JMb2NhbGl6YXRpb24oKENGU3RyaW5nUmVmKWxh
bmd1YWdlLCAmbGFuZ3VhZ2VDb2RlLCAmcmVnaW9uQ29kZSwgJnNjcmlwdENvZGUsICZzdHJpbmdF
bmNvZGluZyk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNv
ZGUgPSBhZG9wdENGKENGQnVuZGxlQ29weUxvY2FsaXphdGlvbkZvckxvY2FsaXphdGlvbkluZm8o
bGFuZ3VhZ2VDb2RlLCByZWdpb25Db2RlLCBzY3JpcHRDb2RlLCBzdHJpbmdFbmNvZGluZykpOwot
ICAgIGlmIChwcmVmZXJyZWRMYW5ndWFnZUNvZGUpCi0gICAgICAgIGxhbmd1YWdlID0gKE5TU3Ry
aW5nICopcHJlZmVycmVkTGFuZ3VhZ2VDb2RlLmdldCgpOwotCi0gICAgLy8gVHVybiBhICdfJyBp
bnRvIGEgJy0nIGlmIGl0IGFwcGVhcnMgYWZ0ZXIgYSAyLWxldHRlciBsYW5ndWFnZSBjb2RlCi0g
ICAgaWYgKFtsYW5ndWFnZSBsZW5ndGhdID49IDMgJiYgW2xhbmd1YWdlIGNoYXJhY3RlckF0SW5k
ZXg6Ml0gPT0gJ18nKSB7Ci0gICAgICAgIFJldGFpblB0cjxOU011dGFibGVTdHJpbmc+IG11dGFi
bGVMYW5ndWFnZUNvZGUgPSBhZG9wdE5TKFtsYW5ndWFnZSBtdXRhYmxlQ29weV0pOwotICAgICAg
ICBbbXV0YWJsZUxhbmd1YWdlQ29kZS5nZXQoKSByZXBsYWNlQ2hhcmFjdGVyc0luUmFuZ2U6TlNN
YWtlUmFuZ2UoMiwgMSkgd2l0aFN0cmluZzpAIi0iXTsKLSAgICAgICAgcmV0dXJuIG11dGFibGVM
YW5ndWFnZUNvZGUuZ2V0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGxhbmd1YWdlOwotfQotCi1W
ZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBk
aXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIFtbTlNEaXN0cmlidXRlZE5vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpbV1RGTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlciBzZWxmXSBzZWxlY3RvcjpAc2VsZWN0b3IobGFuZ3VhZ2VQcmVmZXJlbmNlc0Rp
ZENoYW5nZTopIG5hbWU6QCJBcHBsZUxhbmd1YWdlUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0
aW9uIiBvYmplY3Q6bmlsXTsKLSAgICB9KTsKLSNlbmRpZgotCi0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwotCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socHJl
ZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgIFZlY3RvcjxTdHJpbmc+JiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBpZiAodXNlclByZWZlcnJl
ZExhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxh
bmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAg
ICAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdl
dCgpKTsKLSAgICAgICAgaWYgKCFsYW5ndWFnZUNvdW50KQotICAgICAgICAgICAgdXNlclByZWZl
cnJlZExhbmd1YWdlcy5hcHBlbmQoImVuIik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAg
Zm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICAgICAg
ICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZSgo
TlNTdHJpbmcgKilDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDb3B5OwotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOwotCi0gICAgZm9yIChhdXRv
JiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpCi0gICAgICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7
Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0KLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwotCi0gICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTE4NzJkODlhNTFiMmI2ZDQ4NDc4ODZmNzA3NzFjZTM3NjYyZjM4Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuaCIKLQotI2luY2x1ZGUgPGxvY2FsZS5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXZv
aWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQg
KCopKCkpIHsgfQotCi0vLyBVc2luZyBwYW5nb19sYW5ndWFnZV9nZXRfZGVmYXVsdCgpIGhlcmUg
aXMgbm90IGFuIG9wdGlvbiwgYmVjYXVzZQotLy8gaXQgZG9lc24ndCBzdXBwb3J0IGNoYW5naW5n
IHRoZSBsb2NhbGUgaW4gcnVudGltZSwgc28gaXQgcmV0dXJucwotLy8gYWx3YXlzIHRoZSBzYW1l
IHZhbHVlLgotc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKLXsKLSAgICBTdHJpbmcg
bG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKLSAgICBpZiAobG9j
YWxlRGVmYXVsdC5pc0VtcHR5KCkgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZh
dWx0LCAiQyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIlBPU0lY
IikpCi0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImVuLVVTIik7Ci0KLSAgICBTdHJpbmcg
bm9ybWFsaXplZERlZmF1bHQgPSBsb2NhbGVEZWZhdWx0OwotICAgIG5vcm1hbGl6ZWREZWZhdWx0
LnJlcGxhY2UoJ18nLCAnLScpOwotICAgIG5vcm1hbGl6ZWREZWZhdWx0LnRydW5jYXRlKG5vcm1h
bGl6ZWREZWZhdWx0LmZpbmQoJy4nKSk7Ci0gICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0Owot
fQotCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewot
ICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWFkMjNjNTQzOWNlMjMz
MjA4MDViMjlkOTgzMjEyNDE2NzYzYzZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbmNs
dWRlIDxtdXRleD4KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxhbmd1YWdl
TXV0ZXg7Ci0KLXZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENh
bGxiYWNrKHZvaWQgKCopKCkpIHsgfQotCi1zdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBF
IGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCi17Ci0gICAgTEFOR0lEIGxhbmdJ
RCA9IEdldFVzZXJEZWZhdWx0VUlMYW5ndWFnZSgpOwotICAgIGludCBsb2NhbGVDaGFycyA9IEdl
dExvY2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBlLCAwLCAwKTsKLSAgICBpZiAoIWxvY2FsZUNo
YXJzKQotICAgICAgICByZXR1cm4gZmFsbGJhY2s7Ci0gICAgVUNoYXIqIGxvY2FsZU5hbWVCdWY7
Ci0gICAgU3RyaW5nIGxvY2FsZU5hbWUgPSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobG9j
YWxlQ2hhcnMsIGxvY2FsZU5hbWVCdWYpOwotICAgIGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5m
byhsYW5nSUQsIGxvY2FsZVR5cGUsIGxvY2FsZU5hbWVCdWYsIGxvY2FsZUNoYXJzKTsKLSAgICBp
ZiAoIWxvY2FsZUNoYXJzKQotICAgICAgICByZXR1cm4gZmFsbGJhY2s7Ci0gICAgaWYgKGxvY2Fs
ZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsbGJhY2s7Ci0KLSAgICBsb2NhbGVO
YW1lLnRydW5jYXRlKGxvY2FsZU5hbWUubGVuZ3RoKCkgLSAxKTsKLSAgICByZXR1cm4gbG9jYWxl
TmFtZTsKLX0KLQotc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKLXsKLSAgICBzdGQ6
OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwbGF0Zm9ybUxhbmd1YWdlTXV0ZXgpOwotCi0g
ICAgc3RhdGljIFN0cmluZyBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKLSAgICBpZiAoIWNvbXB1
dGVkRGVmYXVsdExhbmd1YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVm
YXVsdExhbmd1YWdlLmlzb2xhdGVkQ29weSgpOwotCi0gICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9
IGxvY2FsZUluZm8oTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7Ci0gICAgU3RyaW5nIGNv
dW50cnlOYW1lID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkp
OwotCi0gICAgaWYgKGNvdW50cnlOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgY29tcHV0ZWREZWZh
dWx0TGFuZ3VhZ2UgPSBsYW5ndWFnZU5hbWU7Ci0gICAgZWxzZQotICAgICAgICBjb21wdXRlZERl
ZmF1bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZSArICctJyArIGNvdW50cnlOYW1lOwotCi0gICAg
cmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwotfQotCi1WZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotICAgIHJldHVybiB7IHBsYXRmb3JtTGFu
Z3VhZ2UoKSB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21h
a2UKaW5kZXggNGYxNWI2ZGRhOWY0Y2ZmOTQ2MjczYTI2ZGVhOTg1NGE1MjZmNmUxYS4uNGI0MTBl
NWZiNzJkZTU5MDI1NmU0MjliNmMxYmVlMjczYzg0ZTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUu
Y21ha2UKQEAgLTEsNSArMSw0IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCiAgICAgVW5pU3RkRXh0cmFzLmNwcAog
CiAgICAgZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAKQEAgLTE2LDYgKzE1LDcgQEAgbGlz
dChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB0ZXh0L3VuaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVVVuaXguY3BwCiAKICAgICB1bml4L0NQVVRpbWVVbml4LmNwcAorICAgIHVuaXgvTGFu
Z3VhZ2VVbml4LmNwcAogKQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtV2luLmNtYWtlCmluZGV4IDM2YmNlYzRiNjYzM2IyNWMzOWYxNGQ3OGUxYTU1ZWNkNDNkNDhk
MjIuLjVjZmVjMDc3YzRlNTMxYWViYTZhMWRkNjMzNmRiZDkyOGFiOGY5OTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtV2luLmNtYWtlCkBAIC0zLDExICszLDEwIEBAIGxpc3QoQVBQRU5EIFdURl9IRUFERVJT
CiApCiAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzV2luLmNwcAotCiAgICAgdGV4dC93aW4vVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVVdpbi5jcHAKIAogICAgIHdpbi9DUFVUaW1lV2luLmNwcAorICAgIHdpbi9MYW5ndWFnZVdp
bi5jcHAKICAgICB3aW4vTWFpblRocmVhZFdpbi5jcHAKICAgICB3aW4vTWVtb3J5Rm9vdHByaW50
V2luLmNwcAogICAgIHdpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL0xh
bmd1YWdlQ0YuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMjAzZDE3Y2Y4OWEyMDNiOWZhY2IxYzFhOGJhYjFi
Njg0MDljNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNG
LmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwg
MjAwNiwgMjAxMCwgMjAxMSwgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5o
IgorCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRl
IDxtdXRleD4KKyNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvY2Yv
Q0ZCdW5kbGVTUEkuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdURiB7CisKK3N0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExhbmd1YWdlc011dGV4Owor
CitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJu
IGxhbmd1YWdlczsKK30KKworc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZT
dHJpbmdSZWYgbGFuZ3VhZ2UpCit7CisgICAgU0ludDMyIGxhbmd1YWdlQ29kZTsKKyAgICBTSW50
MzIgcmVnaW9uQ29kZTsKKyAgICBTSW50MzIgc2NyaXB0Q29kZTsKKyAgICBDRlN0cmluZ0VuY29k
aW5nIHN0cmluZ0VuY29kaW5nOworCisgICAgLy8gRklYTUU6IFRoaXMgdHJhbnNmb3JtYXRpb24g
aXMgdmVyeSB3cm9uZzoKKyAgICAvLyAxLiBUaGVyZSBpcyBubyByZWFzb24gd2h5IENGQnVuZGxl
IGxvY2FsaXphdGlvbiBuYW1lcyB3b3VsZCBiZSBhdCBhbGwgcmVsYXRlZCB0byBsYW5ndWFnZSBu
YW1lcyBhcyB1c2VkIG9uIHRoZSBXZWIuCisgICAgLy8gMi4gU2NyaXB0IE1hbmFnZXIgY29kZXMg
Y2Fubm90IHJlcHJlc2VudCBhbGwgbGFuZ3VhZ2VzIHRoYXQgYXJlIG5vdyBzdXBwb3J0ZWQgYnkg
dGhlIHBsYXRmb3JtLCBzbyB0aGUgY29udmVyc2lvbiBpcyBsb3NzeS4KKyAgICAvLyAzLiBUaGlz
IHNob3VsZCBwcm9iYWJseSBtYXRjaCB3aGF0IGlzIHNlbnQgYnkgdGhlIG5ldHdvcmsgbGF5ZXIg
YXMgQWNjZXB0LUxhbmd1YWdlLCBidXQgY3VycmVudGx5LCB0aGF0J3MgaW1wbGVtZW50ZWQgc2Vw
YXJhdGVseS4KKyAgICBDRkJ1bmRsZUdldExvY2FsaXphdGlvbkluZm9Gb3JMb2NhbGl6YXRpb24o
bGFuZ3VhZ2UsICZsYW5ndWFnZUNvZGUsICZyZWdpb25Db2RlLCAmc2NyaXB0Q29kZSwgJnN0cmlu
Z0VuY29kaW5nKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExhbmd1YWdl
Q29kZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDb3B5TG9jYWxpemF0aW9uRm9yTG9jYWxpemF0aW9uSW5m
byhsYW5ndWFnZUNvZGUsIHJlZ2lvbkNvZGUsIHNjcmlwdENvZGUsIHN0cmluZ0VuY29kaW5nKSk7
CisgICAgaWYgKHByZWZlcnJlZExhbmd1YWdlQ29kZSkKKyAgICAgICAgbGFuZ3VhZ2UgPSBwcmVm
ZXJyZWRMYW5ndWFnZUNvZGUuZ2V0KCk7CisKKyAgICAvLyBUdXJuIGEgJ18nIGludG8gYSAnLScg
aWYgaXQgYXBwZWFycyBhZnRlciBhIDItbGV0dGVyIGxhbmd1YWdlIGNvZGUKKyAgICBpZiAoQ0ZT
dHJpbmdHZXRMZW5ndGgobGFuZ3VhZ2UpID49IDMgJiYgQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJBdElu
ZGV4KGxhbmd1YWdlLCAyKSA9PSAnXycpIHsKKyAgICAgICAgYXV0byBtdXRhYmxlTGFuZ3VhZ2VD
b2RlID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsIGxhbmd1YWdlKSk7CisgICAgICAgIENGU3RyaW5nUmVwbGFjZShtdXRhYmxlTGFuZ3Vh
Z2VDb2RlLmdldCgpLCBDRlJhbmdlTWFrZSgyLCAxKSwgQ0ZTVFIoIi0iKSk7CisgICAgICAgIHJl
dHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOworICAgIH0KKworICAgIHJldHVybiBsYW5n
dWFnZTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKK3N0YXRpYyB2b2lkIGxhbmd1YWdlUHJlZmVy
ZW5jZXNEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluZ1Jl
ZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAgICB7CisgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAg
ICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAgICB9CisgICAgCisgICAgbGFu
Z3VhZ2VEaWRDaGFuZ2UoKTsKK30KKyNlbmRpZgorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4s
IF4geworICAgICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGlzdHJpYnV0ZWRDZW50ZXIoKSwgbnVsbHB0ciwgJmxhbmd1YWdlUHJlZmVy
ZW5jZXNEaWRDaGFuZ2UsIENGU1RSKCJBcHBsZUxhbmd1YWdlUHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uIiksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29h
bGVzY2UpOworICAgIH0pOworI2VuZGlmCisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9j
az4gbG9jayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgVmVjdG9yPFN0cmluZz4mIHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKworICAgIGlmICh1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkgeworICAgICAgICBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFn
ZXMoKSk7CisgICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChs
YW5ndWFnZXMuZ2V0KCkpOworICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCisgICAgICAgICAg
ICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCisg
ICAgICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFu
Z3VhZ2VDb2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4
KGxhbmd1YWdlcy5nZXQoKSwgaSkpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBWZWN0b3I8
U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKKyAgICB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMu
c2l6ZSgpKTsKKworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKQorICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNoZWNrZWRBcHBlbmQo
bGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOworCisgICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDb3B5OworCisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXgu
Y3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUw
MTZmYjJhZTM3MGIzMTgxMzU5YjhhZWYzOTNmM2U1N2Y1MmYzNTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDxs
b2NhbGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBVc2luZyBwYW5nb19sYW5ndWFnZV9n
ZXRfZGVmYXVsdCgpIGhlcmUgaXMgbm90IGFuIG9wdGlvbiwgYmVjYXVzZQorLy8gaXQgZG9lc24n
dCBzdXBwb3J0IGNoYW5naW5nIHRoZSBsb2NhbGUgaW4gcnVudGltZSwgc28gaXQgcmV0dXJucwor
Ly8gYWx3YXlzIHRoZSBzYW1lIHZhbHVlLgorc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdl
KCkKK3sKKyAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxw
dHIpKTsKKyAgICBpZiAobG9jYWxlRGVmYXVsdC5pc0VtcHR5KCkgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiQyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9j
YWxlRGVmYXVsdCwgIlBPU0lYIikpCisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImVuLVVT
Iik7CisKKyAgICBTdHJpbmcgbm9ybWFsaXplZERlZmF1bHQgPSBsb2NhbGVEZWZhdWx0OworICAg
IG5vcm1hbGl6ZWREZWZhdWx0LnJlcGxhY2UoJ18nLCAnLScpOworICAgIG5vcm1hbGl6ZWREZWZh
dWx0LnRydW5jYXRlKG5vcm1hbGl6ZWREZWZhdWx0LmZpbmQoJy4nKSk7CisgICAgcmV0dXJuIG5v
cm1hbGl6ZWREZWZhdWx0OworfQorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQoreworICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5n
dWFnZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc2MDEwOTg1NTAwM2RhMGMyZWIzMjc5OTYxNzliMTYzZDI5ODM4MjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCkBAIC0wLDAgKzEsODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgorCisjaW5j
bHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV1RGIHsKKworc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFn
ZU11dGV4OworCitzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUsIGNv
bnN0IFN0cmluZyYgZmFsbGJhY2spCit7CisgICAgTEFOR0lEIGxhbmdJRCA9IEdldFVzZXJEZWZh
dWx0VUlMYW5ndWFnZSgpOworICAgIGludCBsb2NhbGVDaGFycyA9IEdldExvY2FsZUluZm8obGFu
Z0lELCBsb2NhbGVUeXBlLCAwLCAwKTsKKyAgICBpZiAoIWxvY2FsZUNoYXJzKQorICAgICAgICBy
ZXR1cm4gZmFsbGJhY2s7CisgICAgVUNoYXIqIGxvY2FsZU5hbWVCdWY7CisgICAgU3RyaW5nIGxv
Y2FsZU5hbWUgPSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobG9jYWxlQ2hhcnMsIGxvY2Fs
ZU5hbWVCdWYpOworICAgIGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2Fs
ZVR5cGUsIGxvY2FsZU5hbWVCdWYsIGxvY2FsZUNoYXJzKTsKKyAgICBpZiAoIWxvY2FsZUNoYXJz
KQorICAgICAgICByZXR1cm4gZmFsbGJhY2s7CisgICAgaWYgKGxvY2FsZU5hbWUuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gZmFsbGJhY2s7CisKKyAgICBsb2NhbGVOYW1lLnRydW5jYXRlKGxv
Y2FsZU5hbWUubGVuZ3RoKCkgLSAxKTsKKyAgICByZXR1cm4gbG9jYWxlTmFtZTsKK30KKworc3Rh
dGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayhwbGF0Zm9ybUxhbmd1YWdlTXV0ZXgpOworCisgICAgc3RhdGljIFN0cmlu
ZyBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKKyAgICBpZiAoIWNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlLmlz
b2xhdGVkQ29weSgpOworCisgICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9IGxvY2FsZUluZm8oTE9D
QUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7CisgICAgU3RyaW5nIGNvdW50cnlOYW1lID0gbG9j
YWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkpOworCisgICAgaWYgKGNv
dW50cnlOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UgPSBs
YW5ndWFnZU5hbWU7CisgICAgZWxzZQorICAgICAgICBjb21wdXRlZERlZmF1bHRMYW5ndWFnZSA9
IGxhbmd1YWdlTmFtZSArICctJyArIGNvdW50cnlOYW1lOworCisgICAgcmV0dXJuIGNvbXB1dGVk
RGVmYXVsdExhbmd1YWdlOworfQorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQoreworICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWQ5MDMyNTZjMzQx
OTZjODI0M2ViMTY3MjU3OWFkZTFhZDUzZTc2Yi4uOWFkMWNjMjdiZmRkNjdhYjEwYjBmZmJjNWQ5
MmZmZTRlN2I5MGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIyNzUsNyArMjI3NSw2IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCiAgICAgcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAK
LSAgICBwbGF0Zm9ybS9MYW5ndWFnZS5jcHAKICAgICBwbGF0Zm9ybS9MYXlvdXRVbml0LmNwcAog
ICAgIHBsYXRmb3JtL0xlbmd0aC5jcHAKICAgICBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGFjMGMwMzg1NzVkM2FmODkxZWJkNWNlZjZmYTEwOTRhNjYyMmRiNy4uMzIyMDdiMDNiZjAwZWFh
MDFlNzQ0OThmNGRhODEwZmM0ZGQyODg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY5Nyw3ICszNjk3LDYgQEAKIAkJODU0
RkU3MzcwQTIyOTdCRTAwNThEN0FEIC8qIFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MkQwQTIyOTdCRTAwNThEN0FEIC8qIFRy
YXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg1NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzJFMEEyMjk3QkUwMDU4
RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzkwQTIyOTdCRTAwNThEN0FE
IC8qIFRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODVFQzlBRkIwQTcxQTJD
NjAwRUVFQUVEIC8qIExhbmd1YWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjFDMkVBNDEz
RkI0RkREMDAwNjJBQkIgLyogTG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogTG9hZFRp
bWluZy5jcHAgKi87IH07CiAJCTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBDb3VudGVkVXNl
ckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MkYxMkEwMThD
MUREMDIwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBI
eXN0ZXJlc2lzQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMzg4OSw4ICszODg4LDYgQEAKIAkJOTM5MUE5OTExNjI3NDZDQjAwMjk3
MzMwIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxQTk5MDE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMuaCAqLzsgfTsKIAkJOTM5MUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8q
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgKi87IH07CiAJCTkzOTFBOTlEMTYyOUQ3MDAwMDI5NzMz
MCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJQTZENUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwICovOyB9OwotCQlBNkQ1QTk5RDE2MjlENzAwMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTZENUE5OUIxNjI5RDcwMDAwMjk3
MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzkyMTQ2OTE4QTZENzkxMDAw
RUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRl
cmF0b3JCZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzOTIyNjJGMTAzMjEwODQwMDZFN0Q1RCAvKiBKU0NTU1J1bGVMaXN0Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIy
NjJFMTAzMjEwODQwMDZFN0Q1RCAvKiBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJ
OTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQxMEFEMTg1RjQwMDY5MUJE
NCAvKiBSZW5kZXJDb3VudGVyLmggKi87IH07CkBAIC00NjA0LDYgKzQ2MDEsOCBAQAogCQlBNjE0
OEE3OTEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYxNDhBNzcxMkU0MUUzQjAwNDRB
Nzg0IC8qIEpTSFRNTEtleWdlbkVsZW1lbnQuaCAqLzsgfTsKIAkJQTZEMTY5NjIxMzQ2QjQ5QjAw
MEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3Bw
ICovOyB9OwogCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTZEMTY5NjMxMzQ2QjRD
MTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlBNkQ1QTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi87IH07CisJCUE2RDVBOTlEMTYyOUQ3MDAw
MDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QjE2MjlENzAwMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTUxQkQ4MTJGMTU1OEYw
MDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVj
a2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTcxNUU2NTIxMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1
MDEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
QTcxNUU2NTMxMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTExMzRCQkJF
QzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovOyB9OwpAQCAtNjY3OSw3ICs2
Njc4LDYgQEAKIAkJRTE4MjU2OEYwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4
MjU2OEQwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuY3BwICovOyB9Owog
CQlFMTgyNTY5MDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4MjU2OEUwRUYyQjAy
RDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCAqLzsgfTsKIAkJRTE4MjU4QUMwRUYz
Q0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4MjU4QUIwRUYzQ0Q3MDAwOTMz
MjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovOyB9OwotCQlFMTg3NzJGMTEy
NkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdl
LmNwcCAqLzsgfTsKIAkJRTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMThERjMz
ODE4QUFGMTREMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThERjMzNjE4QUFGMTRE
MDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gKi87IH07CiAJCUUxOTcy
NzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyog
Q3J5cHRvS2V5VHlwZS5oICovOyB9OwpAQCAtMTE1MTYsOCArMTE1MTQsOCBAQAogCQk3Q0JBNUJB
NjFGMEI0QkRFMDAzNEQ3NDUgLyogSlNET01Db252ZXJ0V2ViR0wuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNET01Db252ZXJ0V2ViR0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Q0JCQkNDNDFGNTYwNTY3MDA1RUZBQUMgLyogRE9NTWF0cml4MkRJbml0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBET01NYXRyaXgyREluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0JCQkNDNjFGNTYwNTY4MDA1RUZBQUMgLyogRE9NTWF0cml4MkRJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1hdHJpeDJESW5pdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0JCQkNDODFGNTYxN0MwMDA1RUZBQUMgLyogSlNE
T01NYXRyaXgyREluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNET01NYXRyaXgyREluaXQu
Y3BwOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3Q0JCQkNDOTFGNTYxN0MwMDA1RUZBQUMgLyogSlNET01NYXRyaXgyREluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSlNET01NYXRyaXgyREluaXQuaDsgcGF0aCA9IEpTRE9NTWF0cml4MkRJ
bml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkJCQ0M4MUY1NjE3QzAwMDVF
RkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTU1h
dHJpeDJESW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkJCQ0M5MUY1
NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RP
TU1hdHJpeDJESW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERGODFF
Qzk0MTVBMDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDQzJEREZBMUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NDMkRERkUxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vdGlmaWNhdGlv
blBlcm1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE5ODgsNyAr
MTE5ODYsNiBAQAogCQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NVbmtub3duUnVsZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1REYyRjY5MEFBM0M3NDMwMEFENjRDNSAvKiBIVE1MQ29s
bGVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjJGOTIwQUEzQzlCNjAwQUQ2NEM1IC8q
IEhUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxP
cHRpb25zQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RUM5
QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYx
QzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZWRVc2VyQWN0aXZpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
MjE2LDggKzEyMjEzLDYgQEAKIAkJOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFB
OTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFBOTlCMTYyOUQ3MDAw
MDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTZENUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJh
dG9yQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEl0ZXJh
dG9yQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MjI2MkUxMDMy
MTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJDb3Vu
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJDb3VudGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzA0MSw2ICsxMzAzNiw4IEBACiAJCUE2
MTQ4QTdGMTJFNDFFRDEwMDQ0QTc4NCAvKiBIVE1MS2V5Z2VuRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTEtleWdlbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dSb290LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRv
d1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93Um9vdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZENUE5OUIxNjI5RDcwMDAwMjk3MzMw
IC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyog
VGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4
dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNUU2NTAx
MzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
b2dyZXNzU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU0
MjksNyArMTU0MjYsNiBAQAogCQlFMTgyNTY4RDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJH
bG9iYWxTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dv
cmtlckdsb2JhbFNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4MjU2
OEUwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9i
YWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTE4REYzMzQxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM2MThBQUYx
NEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEg
LyogQ3J5cHRvS2V5VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlw
dG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjkyMiw4ICsxNjkx
OCw2IEBACiAJCQkJMEZDNEU0MEMxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVJT1MubW0gKi8sCiAJCQkJMEZDNEU0MDkxODdGODJFMTAwNDU4ODJDIC8q
IFNjcm9sbGluZ1RyZWVJT1MuY3BwICovLAogCQkJCTBGQzRFNDBBMTg3RjgyRTEwMDQ1ODgyQyAv
KiBTY3JvbGxpbmdUcmVlSU9TLmggKi8sCi0JCQkJMUI5NEU0MDkxODdGODJFMTAwNDU4ODJDIC8q
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwICovLAotCQkJCTFCOTRFNDBB
MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0yNDQ5Nyw4ICsyNDQ5MSw2IEBACiAJCQkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5
c3RlcmVzaXNBY3Rpdml0eS5oICovLAogCQkJCTFBRTAwRDU3MTgyREFDOEQwMDA4N0RENyAvKiBL
ZXllZENvZGluZy5oICovLAogCQkJCUUxNUZGN0Q0MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlwcmVz
c0NvbW1hbmQuaCAqLywKLQkJCQlFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2Uu
Y3BwICovLAotCQkJCTg1RUM5QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oICovLAog
CQkJCUEzRDQyQTg0MUYzM0JBMzYwMEE2NEI2MiAvKiBMYXlvdXRVbml0LmNwcCAqLywKIAkJCQkx
NDFEQzA0NzE2NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0VW5pdC5oICovLAogCQkJCUJDRTY1QkU4
MEVBQ0RGMTYwMDdFNDUzMyAvKiBMZW5ndGguY3BwICovLApAQCAtMjc3MTcsMTIgKzI3NzA5LDkg
QEAKIAkJCQk4NDczMEQ4NTEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZzZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0NzMwRDg5MTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1bGFyTGln
aHRpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBG
ZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOUM5OTcxRjU5Qjk2MzAw
OUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REIx
RjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2
RTZGRTgxQkJEMTJERjAwMEE2MDIzIC8qIEZldGNoSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTUxN0E1MzVBMUY1ODg5RUYwMERDREMwQSAvKiBGZXRjaExvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFENzUzQTFDRUY2QkQxMDBBMzE0ODYgLyog
RmV0Y2hPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0UxOTE0RDFGMkE5QUZCMDAyNzJG
NzggLyogRmV0Y2hSZWZlcnJlclBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFMTkxNUEx
RjJBOUIzNDAwMjcyRjc4IC8qIEZldGNoUmVxdWVzdENhY2hlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5MDEyLDcgKzI5MDAxLDYgQEAKIAkJCQlFMTVGRjdENTE4Qzk1NTM4MDBGRTRDODcgLyogS2V5
cHJlc3NDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTBDRUJGMTE1MDczQkJFMDAyQkIx
NDkgLyogTGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQ1NkZBMjcxMUFE
NEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUVD
OUFGQjBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5
MTdCNTYyMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyOTE3QjU2MzE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8q
IExheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODg4LDcgKzI5
ODc2LDYgQEAKIAkJCQkyRDkzQUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NUQxRjNFQkM4MzAwQzc0OTUw
IC8qIFNlcnZpY2VXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTVGMUYzRUJDODMw
MEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MTdBNTM1RDFGNTg5OUZFMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUYxNzU2MTFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2MzFGM0VCQzgzMDBDNzQ5
NTAgLyogU2VydmljZVdvcmtlckpvYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NjQxRjNF
QkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMzMwODgsNyArMzMwNzUsNiBAQAogCQkJCUJDNUVCQTEwMEU4MjNFNDcwMEIyNTk2NSAvKiBL
ZXlmcmFtZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDUwQ0VCRjAxNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NkZBMjYx
MUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyOTE3QjU2MTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyOTE3QjU2NjE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEzQTY5RjE5NEI1OUI2MDAx
Q0JEMjQgLyogTGF5ZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcAppbmRl
eCA3MDc1NmZmYWQ3YjMyNjdjNTc5MDhmZTg0NTVjY2ExYjY3NGMwNTAxLi4yZWJjMjI2Yjc1OWJk
YWQzYjU0Mzg0NmFiYmQ1NDBhZTg4YzQ2ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcApAQCAtMzEsNyAr
MzEsNiBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFbGVtZW50SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgog
I2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2lu
Y2x1ZGUgIlNWR0FFbGVtZW50LmgiCkBAIC00MCw2ICszOSw3IEBACiAjaW5jbHVkZSAiU1ZHVGl0
bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlhMaW5r
TmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApp
bmRleCBkY2NkMjgzMzhlM2U4MGZkM2E0OGYzODU1MmEzZWYyYTAzMzU3YTk1Li42YWU1ODcxYzZm
YmIyZGE5OGZjNWVhMjVmZDhjMWNmNGU4ZTkxZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRl
ICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5o
IgogI2luY2x1ZGUgIkpTTm9kZS5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VU
cmFja2VyLmgiCkBAIC01MSw2ICs1MCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFs
UHJvbWlzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcAppbmRleCA5ZTg1NGEzOGM1M2U1MDg5YTMzMjMwMDA5MzhmYmMzZTFhM2YwMGQwLi4z
NGE1MWE1NzA4NzM5OGYzOTFhZTY3N2NjYjdjOGVjYTA5YzZmYjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBA
IC0zMywxMiArMzMsMTIgQEAKICNpbmNsdWRlICJKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmgiCiAjaW5jbHVkZSAiSlNEeW5hbWljRG93bmNhc3QuaCIKICNpbmNsdWRlICJKU1dvcmtlckds
b2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNp
bmNsdWRlIDxydW50aW1lL01pY3JvdGFzay5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgog
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiOTFhNWZhMjBiNDdiOTBl
OWU2NTRhYTQxZWMyMzFkN2E5OTMxOTNhLi5kZTJmM2JhNmVjNmM3ZjNmMTZjMzk0ZDQ5NGRlMGMx
MzBjZjQ2YTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwNSw3ICsxMDUsNiBAQAog
I2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2
ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKICNpbmNsdWRlICJMYXlvdXREaXNhbGxvd2VkU2NvcGUuaCIKICNpbmNsdWRlICJM
b2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTIwNiw2ICsyMDUsNyBA
QAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxwYWwv
TG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xh
bmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGMwOGNmMzM3MGMyYTMxYWQzMDMz
YjlmNjE4ZmE5NWQwMDIzMDZjYzEuLjM4YjEyNTQ5MTVmYWRjYjI5ZTRkNTNlNGQyYjJiNjI5N2Q5
NGFjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNDks
NyArNDksNiBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZFRh
cmdldE9ic2VydmVyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKQEAgLTU5LDYgKzU4LDcg
QEAKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGYzMmZlNGRiNGE5MWM2OTRi
NDVmY2M3ODVlYTVmNzYyMDA1ZmNlZS4uOWUwYTlhMmZlODdmYTYzYWQzNTI4NTYzODBlOGYzYTZm
NDQ3NTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01
NCw3ICs1NCw2IEBACiAjaW5jbHVkZSAiSlNET01FcnJvci5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNIVE1MTWVkaWFFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgpAQCAtOTQsNiArOTMsNyBAQAogI2lu
Y2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDU0M2Y2MWY5ZTg3
MzUwZDU3ODZkZGQ2NmU0Nzc0ZTc1MzU0YmU2MTYuLjY0ZjJjMWFlNDgyZTdlYmMwMjBjOWJmYWNm
OWE3MWJhNjUyYjdkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJIVE1M
VUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJv
bHMuaCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiVGV4dFRyYWNrTGlzdC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKKyNpbmNsdWRl
IDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggN2VhNGUwNTZiM2NiZjQyZTRiMmM3MWQ1MGIz
NDhiNjgyN2E4MDhkYy4uODY4MTlmNTdiMmI5MmY3NWZiMTZkNTQ3ZTA1MGZlYWE5NjA1ZmVkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgogCi0jaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAppbmRleCA3ZDVhYjFl
MTUxODk1OWU0NWM0NGU2OGEyOWQyNDMwNjM3OTA0MjM2Li5iYWUwYjNiYWFjZTU5ODA3NTdhYWI2
ZGQ0Zjc5MGFhMGRjM2U5MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkF1ZGlvVHJh
Y2tMaXN0LmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCi0jaW5jbHVkZSAiTGFuZ3Vh
Z2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NCw2ICs0Myw3IEBACiAjaW5j
bHVkZSA8aGVhcC9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKaW5kZXggZjBi
OGY3ZjI3ZDBkYTk2OWJiNmQxNDMwYzA0Zjg3MGU1NjdhM2Y2Yy4uMjNkN2UwYmY0ZTdkYTZhMDIw
YWE1ZTk3ZDFhZjE2YzI1YjFmNDMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNl
bmRpZgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmlu
Z3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVu
dHMuaCIKQEAgLTQ2LDggKzQ1LDggQEAKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldFR5cGVzLmgi
CiAjaW5jbHVkZSAiVlRUQ3VlLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUg
PHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGIyMzljOGFmZTQ5
MDA4Mzk5MGMzYjQwNWJhNzQ3YjlkOTE1MWViMDcuLmNiMTYzOTg2YzgzNmI1NWQwOGU1ZDM4OGFk
YTg5OWIwMzFhOTNlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTY2LDcgKzY2
LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAi
TGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5o
IgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCkBAIC0xMTAsNiArMTA5LDcgQEAKICNpbmNs
dWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ci5jcHAKaW5kZXggYjZkNTU4Zjc1YjFmODBlZmEyMGFlMTE1ZDRjMzFkOWM2M2UyMTVlNC4uNDFk
MDg3NmNkNWVlZjFlYjA1ZTU0ZTM4NTcwYThmM2UzYzlmMDI1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmNwcApAQCAtMzEsMTIgKzMxLDEyIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgi
Ci0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luRGF0YS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1
YWdlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggOTdmZjk1M2E2ZjNi
ZGZkMDk2ZWFlZDZkYzViZmY4OTJjNGM3MmU5NS4uMjIyYThlZjRjNjhmMWIyNjJhZmRmODEyMmQ4
YWM5NGNkOGI4MjNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC0y
NywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JC
YXNlLmgiCiAKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNvbnRhaW5lci5oIgogI2luY2x1ZGUg
PG11dGV4PgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjNGIzNDkyNDZhYzdlOWU3NjAwNmFlN2IwNDgzMDQ5
NjJmYTgwMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcy5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIFVTRShDRikgJiYgIVBMQVRGT1JNKFdJTikK
LSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2VuZGlmCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1
YWdlc011dGV4OwotCi1zdGF0aWMgdm9pZCByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2FsbGJh
Y2tJZk5lY2Vzc2FyeSgpCi17Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAg
c3RkOjpjYWxsX29uY2UoCi0gICAgICAgIG9uY2UsCi0gICAgICAgIFtdIHsKLSAgICAgICAgICAg
IHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayhsYW5ndWFn
ZURpZENoYW5nZSk7Ci0gICAgICAgIH0pOwotfQotCi10eXBlZGVmIEhhc2hNYXA8dm9pZCosIExh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7Ci1zdGF0aWMgT2JzZXJ2
ZXJNYXAmIG9ic2VydmVyTWFwKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T2JzZXJ2
ZXJNYXA+IG1hcDsKLSAgICByZXR1cm4gbWFwLmdldCgpOwotfQotCi12b2lkIGFkZExhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0
aW9uIGN1c3RvbU9ic2VydmVyKQotewotICAgIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VDYWxs
YmFja0lmTmVjZXNzYXJ5KCk7Ci0gICAgb2JzZXJ2ZXJNYXAoKS5zZXQoY29udGV4dCwgY3VzdG9t
T2JzZXJ2ZXIpOwotfQotCi12b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCog
Y29udGV4dCkKLXsKLSAgICBBU1NFUlQob2JzZXJ2ZXJNYXAoKS5jb250YWlucyhjb250ZXh0KSk7
Ci0gICAgb2JzZXJ2ZXJNYXAoKS5yZW1vdmUoY29udGV4dCk7Ci19Ci0KLXZvaWQgbGFuZ3VhZ2VE
aWRDaGFuZ2UoKQotewotICAgIE9ic2VydmVyTWFwOjppdGVyYXRvciBlbmQgPSBvYnNlcnZlck1h
cCgpLmVuZCgpOwotICAgIGZvciAoT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBvYnNlcnZl
ck1hcCgpLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPnZhbHVl
KGl0ZXItPmtleSk7Ci19Ci0KLVN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQotewotICAgIFZlY3Rv
cjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSAgICBpZiAo
bGFuZ3VhZ2VzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1swXTsKLQotICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwotfQotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9y
PFN0cmluZz4+IG92ZXJyaWRlOwotICAgIHJldHVybiBvdmVycmlkZTsKLX0KLQotVmVjdG9yPFN0
cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCkKLXsKLSAgICByZXR1cm4gcHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLX0KLQotdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlKQotewotICAgIHByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCkgPSBvdmVycmlkZTsKLSAgICBsYW5ndWFnZURpZENoYW5n
ZSgpOwotfQotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzdHJpbmdzKQotewotICAgIFZlY3RvcjxTdHJpbmc+IGNvcHk7Ci0gICAgY29w
eS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0cmluZ3Muc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8m
IGxhbmd1YWdlIDogc3RyaW5ncykKLSAgICAgICAgY29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3Vh
Z2UuaXNvbGF0ZWRDb3B5KCkpOwotICAgIHJldHVybiBjb3B5OwotfQotCi1WZWN0b3I8U3RyaW5n
PiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNMb2NrPiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7Ci0gICAg
ICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
KCk7Ci0gICAgICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IGlzb2xhdGVkQ29weShvdmVycmlkZSk7Ci0gICAgfQotICAgIAotICAgIHJlZ2lzdGVyTGFuZ3Vh
Z2VEaWRDaGFuZ2VDYWxsYmFja0lmTmVjZXNzYXJ5KCk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcygpOwotfQotCi1zdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1
YWdlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKLXsKLSAgICBTdHJpbmcg
bG93ZXJjYXNlTGFuZ3VhZ2VDb2RlID0gbGFuZ3VhZ2VDb2RlLmNvbnZlcnRUb0FTQ0lJTG93ZXJj
YXNlKCk7Ci0gICAgCi0gICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlQ29kZS5sZW5ndGgoKSA+PSAz
ICYmIGxvd2VyY2FzZUxhbmd1YWdlQ29kZVsyXSA9PSAnXycpCi0gICAgICAgIGxvd2VyY2FzZUxh
bmd1YWdlQ29kZS5yZXBsYWNlKDIsIDEsICItIik7Ci0KLSAgICByZXR1cm4gbG93ZXJjYXNlTGFu
Z3VhZ2VDb2RlOwotfQotCi1zaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0
KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxp
c3QsIGJvb2wmIGV4YWN0TWF0Y2gpCi17Ci0gICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlID0g
bGFuZ3VhZ2UuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICBTdHJpbmcgbGFuZ3VhZ2VX
aXRob3V0TG9jYWxlTWF0Y2g7Ci0gICAgU3RyaW5nIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGU7
Ci0gICAgc2l6ZV90IGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSAwOwotICAgIHNp
emVfdCBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9IDA7Ci0gICAgYm9vbCBj
YW5NYXRjaExhbmd1YWdlT25seSA9IChsb3dlcmNhc2VMYW5ndWFnZS5sZW5ndGgoKSA9PSAyIHx8
IChsb3dlcmNhc2VMYW5ndWFnZS5sZW5ndGgoKSA+PSAzICYmIGxvd2VyY2FzZUxhbmd1YWdlWzJd
ID09ICctJykpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYW5ndWFnZUxpc3Quc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0
ID0gY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlmaWVyKGxhbmd1YWdlTGlzdFtpXSk7Ci0KLSAgICAg
ICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0
KSB7Ci0gICAgICAgICAgICBleGFjdE1hdGNoID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBp
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNhbk1hdGNoTGFuZ3VhZ2VPbmx5ICYmIGNhbm9u
aWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxlbmd0aCgpID49IDIpIHsKLSAgICAgICAgICAgIGlm
IChsb3dlcmNhc2VMYW5ndWFnZVswXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdFsw
XSAmJiBsb3dlcmNhc2VMYW5ndWFnZVsxXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlz
dFsxXSkgewotICAgICAgICAgICAgICAgIGlmICghbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2gu
bGVuZ3RoKCkgJiYgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPT0gMikg
ewotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaCA9IGxhbmd1
YWdlTGlzdFtpXTsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0
Y2hJbmRleCA9IGk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghbGFu
Z3VhZ2VNYXRjaEJ1dE5vdExvY2FsZS5sZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VG
cm9tTGlzdC5sZW5ndGgoKSA+PSAzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlTWF0
Y2hCdXROb3RMb2NhbGUgPSBsYW5ndWFnZUxpc3RbaV07Ci0gICAgICAgICAgICAgICAgICAgIGxh
bmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gaTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBleGFjdE1hdGNoID0gZmFs
c2U7Ci0KLSAgICAvLyBJZiB3ZSBoYXZlIGJvdGggYSBsYW5ndWFnZS1vbmx5IG1hdGNoIGFuZCBh
IGxhbmd1Z2UtYnV0LW5vdC1sb2NhbGUgbWF0Y2gsIHJldHVybiB0aGUKLSAgICAvLyBsYW5ndWdl
LW9ubHkgbWF0Y2ggYXMgaXMgY29uc2lkZXJlZCBhICJiZXR0ZXIiIG1hdGNoLiBGb3IgZXhhbXBs
ZSwgaWYgdGhlIGxpc3QKLSAgICAvLyBwcm92aWRlZCBoYXMgYm90aCAiZW4tR0IiIGFuZCAiZW4i
IGFuZCB0aGUgdXNlciBwcmVmZXJzICJlbi1VUyIgd2Ugd2lsbCByZXR1cm4gImVuIi4KLSAgICBp
ZiAobGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2gubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBs
YW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4OwotCi0gICAgaWYgKGxhbmd1YWdlTWF0Y2hC
dXROb3RMb2NhbGUubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBsYW5ndWFnZU1hdGNoQnV0Tm90
TG9jYWxlTWF0Y2hJbmRleDsKLQotICAgIHJldHVybiBsYW5ndWFnZUxpc3Quc2l6ZSgpOwotfQot
Ci1TdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmIGxvY2Fs
ZU5hbWUpCi17Ci0jaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQotICAgIGlmICghbG9jYWxl
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBhZG9wdENGKENGTG9jYWxlQ29weURpc3Bs
YXlOYW1lRm9yUHJvcGVydHlWYWx1ZShhZG9wdENGKENGTG9jYWxlQ29weUN1cnJlbnQoKSkuZ2V0
KCksIGtDRkxvY2FsZUlkZW50aWZpZXIsIGxvY2FsZU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSkpLmdldCgpOwotI2VuZGlmCi0gICAgcmV0dXJuIGxvY2FsZU5hbWU7Ci19Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDdl
NjY3YTI3MTEyNDk4OTUxMzYyNzNjOWVhYzNjYjQwOGYxNzZjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1
YWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA2LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBMYW5ndWFnZV9oCi0jZGVmaW5lIExhbmd1YWdlX2gKLQotI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsg
Ly8gVGhyZWFkLXNhZmUuCi1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKCk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0
YWdzLgotVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Ci1X
RUJDT1JFX0VYUE9SVCB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpOwotc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlz
dChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VM
aXN0LCBib29sJiBleGFjdE1hdGNoKTsKLQotLy8gVGhlIG9ic2VydmVyIGZ1bmN0aW9uIHdpbGwg
YmUgY2FsbGVkIHdoZW4gc3lzdGVtIGxhbmd1YWdlIGNoYW5nZXMuCi10eXBlZGVmIHZvaWQgKCpM
YW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rpb24pKHZvaWQqIGNvbnRleHQpOwotV0VCQ09SRV9F
WFBPUlQgdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7Ci0KLVN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYpOwotCi0vLyBDYWxsZWQgZnJvbSBwbGF0
Zm9ybSBzcGVjaWZpYyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Uocykg
Y2hhbmdlLgotV0VCQ09SRV9FWFBPUlQgdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpOwotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRH
ZW5lcmljRmFtaWxpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEdlbmVyaWNGYW1pbGllcy5jcHAKaW5kZXggODFkMTIwMDlhM2Y1MTljMDdlOTFjY2YwYmJiZTZm
MDgwZTg2MDYzZS4uNWViYWI5Yzk2ZDg4ZTFkY2NjZjJiNjIyNDM0NmQxYTRjMmNlMzI3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdlbmVyaWNGYW1p
bGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdlbmVy
aWNGYW1pbGllcy5jcHAKQEAgLTI1LDcgKzI1LDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZvbnRHZW5lcmljRmFtaWxpZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgor
CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IDA0
MmU1MzAxN2JhYmU2ZWZhNTY5MDI1MWNmMDZjY2UwZTNjNzQ0ZDguLmEyM2Q4MDlkM2E1ZGRmYWYz
NzExNjJkZjFmY2I2MDQyMmI3M2RjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTI4LDExICsyOCwxMSBAQAogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCi0jaW1wb3J0ICJMYW5ndWFnZS5oIgogI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQXNzZXQuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhU2VsZWN0aW9uR3Jv
dXAuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW0uaD4KICNpbXBvcnQgPG9i
amMvcnVudGltZS5oPgorI2ltcG9ydCA8d3RmL0xhbmd1YWdlLmg+CiAjaW1wb3J0IDx3dGYvU29m
dExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IDY0YWU5NzJk
ZmNmOTI5MDg2MDBkOWFjOGE3ZmI3Yzc1MDQ2MTM2YzguLjVkYzAzNWRmZjVjZDU1NDlmMjE1NzVh
Njk1Y2NkNGNjNWZjYTZmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNl
cnMuaCIKIAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaAppbmRleCA5MTE5OGYyNzE1NzVj
N2JmZmUxMmYzNmZlYjAyNTRhMzNiNDBmMGU2Li5hOTFmZTgzY2I3OTZmNGU4YzkyNTcxYWI1Yjlm
YjUxNjE4NzAxMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Bs
YXRmb3JtTG9jYWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9y
bUxvY2FsZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFBsYXRmb3JtTG9jYWxlX2gKIAog
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNs
dWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
Y2YvSHlwaGVuYXRpb25DRi5jcHAKaW5kZXggYjRiMGU1MWY0YWZkNmNhM2JjYzhhMGY4NzUyZDUz
NGNkOGI5NmE2My4uMWM3MGM0MTNkOGNjMjI1MDA0YjE3ZDdiMmE2NjlhNzM3MDU3ZjM2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSHlwaGVu
YXRpb24uaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaW55TFJVQ2Fj
aGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBAIC01Myw3ICs1Myw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIENGIGh5cGhlbmF0aW9uIGZ1bmN0aW9ucyB1c2Ug
bG9jYWxlIChyZWdpb25hbCBmb3JtYXRzKSBsYW5ndWFnZSwgd2hpY2ggZG9lc24ndCBuZWNlc3Nh
cmlseSBtYXRjaCBwcmltYXJ5IFVJIGxhbmd1YWdlLAogICAgICAgICAvLyBzbyB3ZSBjYW4ndCB1
c2UgZGVmYXVsdCBsb2NhbGUgaGVyZS4gU2VlIDxyZGFyOi8vcHJvYmxlbS8xNDg5NzY2ND4uCi0g
ICAgICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gbG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBXZWJDb3JlOjpkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gbG9j
YWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0
TGFuZ3VhZ2UoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgICAgIHJldHVybiBDRlN0
cmluZ0lzSHlwaGVuYXRpb25BdmFpbGFibGVGb3JMb2NhbGUobG9jYWxlLmdldCgpKSA/IGxvY2Fs
ZSA6IG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2VuY2hhbnQvVGV4dENoZWNrZXJFbmNoYW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCmluZGV4IDYzOGY3NmM0
NmNjNmQ4MTJlZTVlOTJjZTNhNTVmMzczZWY0MDhkNjIuLjhjZWUyYzk2ZDg4YTNhNzU2NjNkODdj
MTI0ZjZhZTY2Njc5YjZhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCkBAIC0yMiw5ICsyMiw5
IEBACiAKICNpZiBFTkFCTEUoU1BFTExDSEVDSykKIAotI2luY2x1ZGUgPExhbmd1YWdlLmg+CiAj
aW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgorI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvbWFjL0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFj
L0xvY2FsZU1hYy5tbQppbmRleCBkMTU1OTA1NWU2MGUyMDg3NmNlZGY4YmMyNmNiZDBmYTc3OGMz
Yzg5Li4wYWYxNzlmYTIzMzE2MzY1YjdjMDhjMDcyOTRmODNiOTRhZDMzYWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0zMSwxMiArMzEs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGVNYWMuaCIKIAorI2lt
cG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0RhdGVGb3Jt
YXR0ZXIuaD4KICNpbXBvcnQgPEZvdW5kYXRpb24vTlNMb2NhbGUuaD4KLSNpbmNsdWRlICJMYW5n
dWFnZS5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvRGF0
ZU1hdGguaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvRGF0ZU1h
dGguaD4KKyNpbXBvcnQgPHd0Zi9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiTG9jYWxpemVkRGF0ZUNhY2hlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCA2
Y2UxYmZhOTUyYjU4NjA2NmNhODE0OGFlNTIxZTNkMGQ0YTM2NzIxLi5kNzZhODE5ODkxNDM5ZTZi
MGI2N2JmZDZmOWQwN2M5ZTFmMTQ2MzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvd2luL0xvY2FsZVdpbi5jcHAKQEAgLTMzLDEzICszMywxMyBAQAogCiAjaW5jbHVkZSAi
RGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgPGxp
bWl0cz4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmNwcAppbmRleCBlNDRjMzM0ZjE2NTE5YjliYTcwYjJmMGYwZjQ5ZGNjMDM1YzkxOTBlLi44MzRj
MGUzZDk4ZThiMmRlNWQ5ODBhZmFmZTc2MzVmMjQzN2UxZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAKQEAgLTI0LDEwICsyNCwxMCBAQAogCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1
ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0
cmluZ0xpc3QuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA5Mzg5M2JkNTczOWMwZGQyMTY3NTkwMTQy
NmNkZmYwYjMxZWY4OGVhLi40YmYxZDBlODEyMTY4ZWQ5NWY1YTg5ZjYzNTViMzMxMjg0MTkxZTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCA1NmY5OTE1NjgzYTUzMGQ2M2E5NThmZDZlOTE5NzcyMDY1NDgwNjI4Li44N2UzOGJmZWFjYzc2
YWFhY2QxYTQ3MDJkODM4NDRlZGRhYTI5Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC04OCw3ICs4OCw2IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
IkludGVybmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJN
YWluRnJhbWUuaCIKICNpbmNsdWRlICJNYWxsb2NTdGF0aXN0aWNzLmgiCkBAIC0xNTQsNiArMTUz
LDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Cisj
aW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVmZmVyLmg+CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJl
c2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICB9CiAKICAgICBXZWJDb3JlOjpj
bGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKCk7Ci0gICAgV2ViQ29yZTo6
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkpOworICAgIG92
ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJD
b3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKICAgICBXZWJD
b3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcihmYWxzZSk7CiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQpAQCAtMTczNywxMiArMTczNywxMiBAQCBFeGNlcHRpb25PcjxpbnQ+
IEludGVybmFsczo6bGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZSgpCiAKIFZlY3RvcjxT
dHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICByZXR1cm4gV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRVc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZXMpCiB7Ci0g
ICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1YWdlcyk7Cisg
ICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1YWdlcyk7CiB9CiAKIFZlY3Rv
cjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViQ29udGV4dC5jcHAKaW5kZXggM2EwYjRmMzc3ZWFhZmFkNWQ0MDU3ZGE1ZWVjNjExOWFkZDJm
Y2U4Yi4uNzMwMTM0MWUwMTMzZjZiZmY3ZTk2NWEzMzA3OTI4ZTQ3ZTQyYmY4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5j
cHAKQEAgLTU1LDExICs1NSwxMSBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRl
IDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPGxpYmludGwuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTEyNTYsNyArMTI1Niw3IEBAIHZvaWQg
d2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxhbmd1YWdlcy5h
cHBlbmQoU3RyaW5nOjpmcm9tVVRGOChsYW5ndWFnZUxpc3RbaV0pLmNvbnZlcnRUb0FTQ0lJTG93
ZXJjYXNlKCkucmVwbGFjZSgiXyIsICItIikpOwogICAgIH0KLSAgICBXZWJDb3JlOjpvdmVycmlk
ZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKKyAgICBvdmVycmlkZVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggODExNjUzNmM0Zjg4ZmQzZmI1NjQxZWIwMjBi
ZGMxMTY1YmVkNGVlMi4uZDU5M2E4MzI0ZDg2Zjg3OWE1MDU2YWQzNWJmMTUwYjYyMGQwMGQ1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNzIsNyAr
NzIsNiBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtODAsNiArNzksNyBAQAog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKaW5kZXggNDhmZGIwODEzYzU3
ZWNjODdjNzJlNDRjM2Q3MWQxMWI3MzYyZTM3Yi4uZTkyNmRjM2MyZWM5OTk5OGI4MmQ0MzE5ZWE4
NzYyMzk3MjM3MzhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9X
ZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAv
V2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3Vh
Z2UuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAwYTRlZjhiY2M5ZGE2
YWEyOTAwNDk4NmY4NDI0ZTQ3MzA0YjcyNTJlLi43YjZjZDRmNzRkNjE2N2FlYjEwMDIyZDc0MGM4
ZjQxYWZlZTk1MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC05MSw3ICs5MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2lu
ZG93Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgpAQCAtMTEyLDYgKzExMSw3IEBACiAjaW5jbHVkZSA8
dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hDb3VudGVkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTQ5NSw3
ICs0OTUsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9v
bCB1c2VGb250U21vb3RoaW5nKQogdm9pZCBXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKSBjb25zdAogewogICAg
IG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhsYW5ndWFnZXMpOwotICAgIGxhbmd1YWdl
RGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNzTW9k
ZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMubW0KaW5k
ZXggOTdjMDU5NDNlMjlkYmE5MGExNzczMGUxM2U1YTg3MjVlNzZmYjNjZC4uODIyMzU4NGFiMTIy
ZWNjNDFiM2FlNTFhMTI5ZjQyZGEzMDhmYWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0cmFzLm1tCkBAIC0yOCwxMSAr
MjgsOSBAQAogCiAjaW1wb3J0ICJXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oIgogCi0jaW1wb3J0
IDxXZWJDb3JlL0xhbmd1YWdlLmg+CisjaW1wb3J0IDx3dGYvTGFuZ3VhZ2UuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogQGlt
cGxlbWVudGF0aW9uIE5TVXNlckRlZmF1bHRzIChXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcykKIAog
KyAoTlNTdHJpbmcgKilfd2Via2l0X3ByZWZlcnJlZExhbmd1YWdlQ29kZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320191</attachid>
            <date>2017-09-07 15:36:44 -0700</date>
            <delta_ts>2017-09-07 16:11:25 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-176561-20170907153643.patch</filename>
            <type>text/plain</type>
            <size>102378</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Yjg2NzljNTEwMGUwNDEyNjUyZmY5ODQ3NjdjMzJhMDE4NWM0NzJiLi4xMjAxMTJmYThlYThiNzI4
ZmJhMGJlODk3Y2ZmNjRjZTlkOGYwYzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hh
bS4KKworICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmRl
ZmF1bHRMb2NhbGUpOgorCiAyMDE3LTA5LTA2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSAibWFsbG9jIiBhbmQgImZyZWUiIGZy
b20gSlNDL0FQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBmYThiMWFkYjM5NmQ0OTdkMTg3MGZiZjU4YjhiZTZkYzMwZWNkZWJh
Li41ZDcwNGU1MDMzNzczZTYxZWMyNDE5ZmUxNTIwMzc3OGJiYjZmMGMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisyMDE3LTA5LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CisKKyAgICAgICAgW1BBTF0gVW5pZnkgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Lmggd2l0aCBMYW5ndWFnZS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzY1NjEKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgor
CisgICAgICAgIFdlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2Ugd2FzIHRoZSBvbmx5KiB1c2VyIG9m
IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyAod2l0aCAxIGV4Y2VwdGlvbikuCisgICAg
ICAgIFRoYXQgZXhjZXB0aW9uIGlzIHRoYXQgSmF2YVNjcmlwdENvcmUgbmVlZGVkIHRoZSBmdW5j
dGlvbmFsaXR5IG9mIFdlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UsIGJ1dCBpdAorICAgICAgICBj
b3VsZG4ndCBnZXQgaXQgYmVjYXVzZSBvZiB0aGUgbGF5ZXJpbmcgdmlvbGF0aW9uLCBzbyBpbnN0
ZWFkIGl0IGVycm9uZW91c2x5IGNhbGxlZCBpbnRvCisgICAgICAgIFBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlcyBpbnN0ZWFkLiBUaGlzIHBhdGNoIG1lcmdlcyB0aGVzZSB0d28gZmlsZXMg
aW50byBXVEYgc28gSlNDIGdldHMgdGhlCisgICAgICAgIHJpZ2h0IGZ1bmN0aW9uIGFuZCB0aGUg
UEFMIGVmZm9ydCBoYXMgb25lIGxlc3MgZmlsZSB0byBtb3ZlIGZyb20gV2ViQ29yZS9wbGF0Zm9y
bSBpbnRvIFBBTC4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwLgorICAg
ICAgICAoV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6dXNl
clByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL0xhbmd1YWdlLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oLgorICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtlOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL1BsYXRmb3Jt
V1BFLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiB3
dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0uCisgICAgICAgIChXVEY6Omh0dHBTdHlsZUxh
bmd1YWdlQ29kZSk6CisgICAgICAgIChXVEY6Omxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2Up
OgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAg
ICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcC4KKyAgICAgICAgKiB3dGYv
d2luL0xhbmd1YWdlV2luLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAuCisKIDIwMTctMDktMDYgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVxdWlyZSBMb2dnaW5nSGVs
cGVyIG92ZXJyaWRlcyB0byBwcm92aWRlIGlkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOGNmYmUx
MjQ5YWQwZTliMDZmYjNjNTc1NWYyNmZlNjZiMjBkNzExLi42OTA1NGY5Y2U3MjYzMDg5Y2ZiZjIx
ODdlNGFkOTUxOWVmMzEzZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMDkt
MDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBb
UEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1YWdl
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjU2
MQorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5j
cHA6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAgICAgICAq
IHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEdlbmVyaWNGYW1pbGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxhdGZv
cm1Mb2NhbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbToKKyAgICAgICAgKiBz
dmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCiAyMDE3LTA5LTA3ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FSTV0g
QnVpbGRpbmcgRkVMaWdodG5pbmdORU9OLmNwcCBmYWlscyBkdWUgdG8gbWlzc2luZyB7UG9pbnQs
U3BvdH1MaWdodFNvdXJjZSBkZWNsYXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODUzYjU4ODI1YzU0MmIy
NmFlZDRmMWNkM2FlZWUxYTQ1ODc2ZmJlMy4uMjEyYmY3YTk3OTU3MzMwNzg5YmM0NDUxOGY5OWU3
ZjM1Njc0OWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wOS0wNyAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtQQUxdIFVuaWZ5
IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIHdpdGggTGFuZ3VhZ2UuaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQg
Y29uc3QpOgorCiAyMDE3LTA5LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFdLVUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBv
ZiBXS1BhZ2VVSUNsaWVudCdzIHBhZ2VEaWRTY3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCA3ZTUxZWJhZjZiZmY4ZWZiMWZjY2NkODFkMjg0MGZmNzJiNDRjNWU4Li43ZmQxNWYy
ZmVlYjllN2EyMDlhNjE5NWZkNTNjNmIxOGU3NjI3NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDktMDcgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbUEFMXSBVbmlmeSBQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaCB3aXRoIExhbmd1YWdlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBNaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0cmFz
Lm1tOgorCiAyMDE3LTA5LTA1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBzb21lIHVudXNlZCBiaXRzIG9mIGNvZGUgYW5kIHJlc291cmNl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCA5
ZjE3NGQ2NDA1YzlmM2EwODZiMjYzNTZiZGNlZWJiY2YwNDg0MDg1Li4yNWQyMWYyZWU1Y2UzYzc2
NzIzMTZhYWY2ZjdhMDM1ZDZhMjFmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcApAQCAtNDgsOCArNDgsOCBAQAogI2luY2x1ZGUgPHVuaWNvZGUv
dWxvYy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdW51bXN5cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC01NzYsMTYgKzU3NiwxNCBAQCBTdHJpbmcgZGVmYXVsdExvY2FsZShFeGVjU3RhdGUm
IHN0YXRlKQogICAgIAogICAgIC8vIFdlYkNvcmUncyBnbG9iYWwgb2JqZWN0cyB3aWxsIGhhdmUg
dGhlaXIgb3duIGlkZWFzIG9mIGhvdyB0byBkZXRlcm1pbmUgdGhlIGxhbmd1YWdlLiBJdCBtYXkK
ICAgICAvLyBiZSBkZXRlcm1pbmVkIGJ5IFdlYkNvcmUtc3BlY2lmaWMgbG9naWMgbGlrZSBzb21l
IFdLIHNldHRpbmdzLiBVc3VhbGx5IHRoaXMgd2lsbCByZXR1cm4gdGhlCi0gICAgLy8gc2FtZSB0
aGluZyBhcyBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKVswXS4KKyAgICAvLyBzYW1l
IHRoaW5nIGFzIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKVswXS4KICAgICBpZiAoYXV0byBkZWZh
dWx0TGFuZ3VhZ2UgPSBzdGF0ZS5qc0NhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+ZGVmYXVsdExhbmd1YWdlKSB7CiAgICAgICAgIFN0cmluZyBsb2Nh
bGUgPSBkZWZhdWx0TGFuZ3VhZ2UoKTsKICAgICAgICAgaWYgKCFsb2NhbGUuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbGl6ZUxhbmd1YWdlVGFnKGxvY2FsZSk7CiAgICAg
fQotICAgIAotICAgIC8vIElmIFdlYkNvcmUgaXNuJ3QgYXJvdW5kIHRvIHRlbGwgdXMgaG93IHRv
IGdldCB0aGUgbGFuZ3VhZ2UgdGhlbiBmYWxsIGJhY2sgdG8gb3VyIG93biB3YXkgb2YKLSAgICAv
LyBkb2luZyBpdCwgd2hpY2ggbW9zdGx5IGZvbGxvd3Mgd2hhdCBXZWJDb3JlIHdvdWxkIGhhdmUg
ZG9uZS4KLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKICAgICBpZiAoIWxhbmd1YWdlcy5pc0VtcHR5KCkgJiYgIWxhbmd1
YWdlc1swXS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBjYW5vbmljYWxpemVMYW5ndWFnZVRh
ZyhsYW5ndWFnZXNbMF0pOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYjBhMTkwOGJhZGQ5MDI3ODdjY2I0NWUxMTdhZWUxMjgxYjI2N2JmNS4uMTI5
Yjk4NTM5NjY4ZmVmYzYwMjA0Yjc2YTgzNWU2NDc2Zjg4NmUxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzIsOSArMTMyLDEwIEBACiAJCUFEODlCNkI3
MUU2NDE1MDgwMDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4OUI2QjUxRTY0MTUwODAwOTA3
MDdGIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgKi87IH07CiAJCUFEODlCNkJBMUU2NDE1
MEYwMDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODlCNkI5MUU2NDE1MEYwMDkwNzA3
RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSAqLzsgfTsKIAkJQURGMkNFNjcxRTM5
RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERjJDRTY1MUUzOUYxMDYwMDY4ODlEQiAv
KiBNZW1vcnlGb290cHJpbnRDb2NvYS5jcHAgKi87IH07CisJCUMyQkNGQzQwMUY2MUQxMzAwMEM5
MjIyQyAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkJDRkMzRTFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovOyB9
OworCQlDMkJDRkM0MjFGNjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJDRkM0MTFGNjFENjE2MDBD
OTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07
CiAJCURDRUUyMjAxMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENFRTIxRkQxQ0VB
NzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gKi87IH07Ci0JCURDRUUyMjAz
MUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjFGRjFD
RUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tICov
OyB9OwogCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGll
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTU1
NTZGMzE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgKi87IH07
CiAJCUUzMTFGQjE3MUYwQTU2OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzExRkIxNTFGMEE1NjhCMDAz
QzA4REUgLyogVGhyZWFkR3JvdXAuY3BwICovOyB9OwogCQlFMzhDNDEyNTFFQjRFMDRDMDA0Mjk1
N0QgLyogQ1BVVGltZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM4QzQxMjQxRUI0RTA0QzAwNDI5NTdEIC8qIENQVVRpbWVDb2NvYS5tbSAq
LzsgfTsKQEAgLTU0Nyw2ICs1NDgsOSBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyog
TWVtb3J5Rm9vdHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9y
eUZvb3RwcmludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURl
ZmluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJD
IC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExh
bmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQ0ZDM0YxRjYxRDEz
MDAwQzkyMjJDIC8qIExhbmd1YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExhbmd1YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkNGQzQxMUY2MUQ2
MTYwMEM5MjIyQyAvKiBMYW5ndWFnZUNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExhbmd1YWdlQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
NEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDOEY1OTdDQTJBNTc0MTdGQkFCOTJGRDYgLyogUmFuZG9tRGV2aWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmRvbURldmljZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1Nyw4ICs1NjEsNiBAQAogCQlEQ0VFMjFG
QTFDRUE3NTM4MDAwQzIzOTYgLyogQ0ZCdW5kbGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQ0ZCdW5kbGVTUEkuaDsgcGF0aCA9IGNmL0NGQnVuZGxlU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMUZDMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9j
a09iakNFeGNlcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2Nr
T2JqQ0V4Y2VwdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIxRkQx
Q0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCbG9ja09iakNFeGNlcHRpb25zLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlEQ0VFMjFGRTFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlEQ0VFMjFGRjFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQ0VFMjIwNDFDRUI5ODY5MDAwQzIzOTYgLyogQmFja3dhcmRzR3JhcGgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja3dhcmRzR3JhcGguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREU1QTA5RkIxQkEzNjk5MjAwM0Q0NDI0IC8qIENv
bW1vbkNyeXB0b1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25D
cnlwdG9TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1NTU2RjMxOEEwQ0Mx
ODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDAsNiArNjQyLDcgQEAKIAkJMkNERUQwRjAxODExNUMz
RjAwNERCQTcwIC8qIGNmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlDMkJDRkM0MTFGNjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgKi8sCiAJ
CQkJMkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgKi8sCiAJCQkJMUFG
REU2NDcxOTUyMDFDMzAwQzQ4RkZBIC8qIFR5cGVDYXN0c0NGLmggKi8sCiAJCQkpOwpAQCAtODQ2
LDYgKzg0OSw4IEBACiAJCQkJNTE4MkMyMkMxRjJCQzdFNjAwNTlCQTdDIC8qIEluc3RhbmNlQ291
bnRlZC5oICovLAogCQkJCTdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0
b3JzLmggKi8sCiAJCQkJN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2Uu
aCAqLywKKwkJCQlDMkJDRkMzRTFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovLAor
CQkJCUMyQkNGQzNGMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovLAogCQkJCTUzOUVC
MDYyMUQ1NTI4NDIwMEM4MkVGNyAvKiBMRUJEZWNvZGVyLmggKi8sCiAJCQkJQTcwREEwODMxNzk5
RjA0RDAwNTI5QTlCIC8qIExpc3REdW1wLmggKi8sCiAJCQkJQThBNDcyQzExNTFBODI1QTAwNDEy
M0ZGIC8qIExpc3RIYXNoU2V0LmggKi8sCkBAIC05MTIsOCArOTE3LDYgQEAKIAkJCQkwRjgyNEE2
NTFCNzQ0M0EwMDAyRTM0NUQgLyogUGFya2luZ0xvdC5oICovLAogCQkJCUE4NzZEQkQ3MTUxODE2
RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovLAogCQkJCUUzMjAwQUI0MUU5QTUzNkQwMDNCNTlE
MiAvKiBQbGF0Zm9ybVJlZ2lzdGVycy5oICovLAotCQkJCURDRUUyMUZFMUNFQTc1NTEwMDBDMjM5
NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCAqLywKLQkJCQlEQ0VFMjFGRjFD
RUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tICov
LAogCQkJCTBGRjg2MDk0MUJDQ0JENzQwMDQ1MTI3RiAvKiBQb2ludGVyQ29tcGFyaXNvbi5oICov
LAogCQkJCTBGOUQzMzVEMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgKi8sCiAJ
CQkJMEY5RDMzNUUxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmggKi8sCkBAIC0xMzQ0
LDcgKzEzNDcsNiBAQAogCQkJCTUxNUY3OTRFMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVh
ZENvcGllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5QTE1MUE4MjVCMDA0MTIzRkYg
LyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYwRjUyNkIxRjQyMUZGODAwNEE0NTJDIC8qIFN0cmluZ01hbGxv
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQzOTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0
cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5QzE1MUE4MjVCMDA0MTIzRkYgLyog
Q3VycmVudFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEy
M0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMzY0LDYgKzEzNjYsOCBAQAog
CQkJCTBGMzBCQTkwMUU3ODcwOEUwMDJDQTg0NyAvKiBHbG9iYWxWZXJzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGlt
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNEODE1MUE4MjVCMDA0MTIzRkYgLyogSGFz
aFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkNGQzQwMUY2MUQxMzAwMEM5MjIyQyAv
KiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkJDRkM0MjFGNjFENjE2MDBDOTIy
MkMgLyogTGFuZ3VhZ2VDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUxNjQ2QTFCNkZGQzk2
MDA0MDBFN0MgLyogTG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYwRjMyRjFERkNCRDFC
MDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM1
MzRGMkExRUMwRTEwRTAwMTQxQjJGIC8qIE1hY2hFeGNlcHRpb25zLmRlZnMgaW4gU291cmNlcyAq
LywKQEAgLTEzODUsNyArMTM4OSw2IEBACiAJCQkJNTFGMTc1MkIxRjNENDg2MDAwQzc0OTUwIC8q
IFBlcnNpc3RlbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMTc1MkMxRjNENDg2
MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnREZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RjE3NTJEMUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RW5jb2Rlci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlEQ0VFMjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjIxNjVEQkE3MzAw
NUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0Y2MTFGMTU2
NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQjcyNUVD
OTg3NDQ2QUQ5M0YxQTQ0MCAvKiBSYW5kb21EZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0x
NDEyLDYgKzE0MTUsNyBAQAogCQkJCUE1QkExNUZDMTgyNDM1QTYwMEE4MkU2OSAvKiBTdHJpbmdJ
bXBsQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RjUxODI0MzQ4MDAwQTgyRTY5IC8q
IFN0cmluZ0ltcGxNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGMzE4MjQzM0E5MDBB
ODJFNjkgLyogU3RyaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEYwRjUyNkIxRjQyMUZG
ODAwNEE0NTJDIC8qIFN0cmluZ01hbGxvYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkREQkZB
NzE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNGMTk5M0UxOUQ3OTU4RDAwQzIzOTBCIC8qIFN0cmluZ1ZpZXcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM5MzRCRDUxOEExRjE2OTAwRDBENkExIC8qIFN0cmluZ1ZpZXdDRi5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggM2E2Y2U5ZTRlZGVhOTk4YTUz
ZWE0NGU1NDljNjM3NTcwZTc1NmE3Mi4uZGNhMzhiYmQ3NzRiYzFjZTQwZDYwOGVkODFkOTk1NzYy
MDhmOTUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTYwLDYgKzYwLDcgQEAgc2V0KFdURl9I
RUFERVJTCiAgICAgSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yLmgKICAgICBJdGVyYXRvckFkYXB0
b3JzLmgKICAgICBJdGVyYXRvclJhbmdlLmgKKyAgICBMYW5ndWFnZS5oCiAgICAgTGlzdEhhc2hT
ZXQuaAogICAgIExpdmVuZXNzLmgKICAgICBMb2NrLmgKQEAgLTIyOSw2ICsyMzAsNyBAQCBzZXQo
V1RGX1NPVVJDRVMKICAgICBHbG9iYWxWZXJzaW9uLmNwcAogICAgIEdyZWdvcmlhbkRhdGVUaW1l
LmNwcAogICAgIEhhc2hUYWJsZS5jcHAKKyAgICBMYW5ndWFnZS5jcHAKICAgICBMb2NrLmNwcAog
ICAgIExvY2tlZFByaW50U3RyZWFtLmNwcAogICAgIE1ENS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYTJlOGMxMDAzYzE1NTNjOGViMmMzOTUxOTVjMWM0NzgxYmY2ZjU3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0wLDAgKzEsMTc4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2LCAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFVTRShDRikgJiYgIVBMQVRGT1JNKFdJ
TikKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzTXV0ZXg7CisKK3R5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
ckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKK3N0YXRpYyBPYnNlcnZlck1hcCYgb2JzZXJ2ZXJNYXAo
KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPYnNlcnZlck1hcD4gbWFwOworICAgIHJl
dHVybiBtYXAuZ2V0KCk7Cit9CisKK3ZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lk
KiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rpb24gY3VzdG9tT2JzZXJ2ZXIp
Cit7CisgICAgb2JzZXJ2ZXJNYXAoKS5zZXQoY29udGV4dCwgY3VzdG9tT2JzZXJ2ZXIpOworfQor
Cit2b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCkKK3sKKyAg
ICBBU1NFUlQob2JzZXJ2ZXJNYXAoKS5jb250YWlucyhjb250ZXh0KSk7CisgICAgb2JzZXJ2ZXJN
YXAoKS5yZW1vdmUoY29udGV4dCk7Cit9CisKK3ZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKQorewor
ICAgIE9ic2VydmVyTWFwOjppdGVyYXRvciBlbmQgPSBvYnNlcnZlck1hcCgpLmVuZCgpOworICAg
IGZvciAoT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBvYnNlcnZlck1hcCgpLmJlZ2luKCk7
IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAgICAgIGl0ZXItPnZhbHVlKGl0ZXItPmtleSk7Cit9
CisKK1N0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1
YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBpZiAobGFuZ3VhZ2VzLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1swXTsKKworICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOworfQorCitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IG92ZXJy
aWRlOworICAgIHJldHVybiBvdmVycmlkZTsKK30KKworVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCkKK3sKKyAgICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKTsKK30KKwordm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlKQoreworICAgIHByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlKCkgPSBvdmVycmlkZTsKKyAgICBsYW5ndWFnZURpZENoYW5nZSgpOworfQorCitzdGF0
aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJp
bmdzKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGNvcHk7CisgICAgY29weS5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHN0cmluZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogc3Ry
aW5ncykKKyAgICAgICAgY29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5
KCkpOworICAgIHJldHVybiBjb3B5OworfQorCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCkKK3sKKyAgICB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2Nr
PiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIFZlY3RvcjxTdHJp
bmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CisgICAgICAgIGlm
ICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGlzb2xhdGVkQ29weShv
dmVycmlkZSk7CisgICAgfQorCisgICAgcmV0dXJuIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcygpOworfQorCitzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihj
b25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKK3sKKyAgICBTdHJpbmcgbG93ZXJjYXNlTGFuZ3Vh
Z2VDb2RlID0gbGFuZ3VhZ2VDb2RlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CisgICAgCisg
ICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlQ29kZS5sZW5ndGgoKSA+PSAzICYmIGxvd2VyY2FzZUxh
bmd1YWdlQ29kZVsyXSA9PSAnXycpCisgICAgICAgIGxvd2VyY2FzZUxhbmd1YWdlQ29kZS5yZXBs
YWNlKDIsIDEsICItIik7CisKKyAgICByZXR1cm4gbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlOworfQor
CitzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYg
bGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4YWN0
TWF0Y2gpCit7CisgICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlID0gbGFuZ3VhZ2UuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICBTdHJpbmcgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0
Y2g7CisgICAgU3RyaW5nIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGU7CisgICAgc2l6ZV90IGxh
bmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSAwOworICAgIHNpemVfdCBsYW5ndWFnZU1h
dGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9IDA7CisgICAgYm9vbCBjYW5NYXRjaExhbmd1YWdl
T25seSA9IChsb3dlcmNhc2VMYW5ndWFnZS5sZW5ndGgoKSA9PSAyIHx8IChsb3dlcmNhc2VMYW5n
dWFnZS5sZW5ndGgoKSA+PSAzICYmIGxvd2VyY2FzZUxhbmd1YWdlWzJdID09ICctJykpOworCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYW5ndWFnZUxpc3Quc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0ID0gY2Fub25pY2FsTGFu
Z3VhZ2VJZGVudGlmaWVyKGxhbmd1YWdlTGlzdFtpXSk7CisKKyAgICAgICAgaWYgKGxvd2VyY2Fz
ZUxhbmd1YWdlID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0KSB7CisgICAgICAgICAg
ICBleGFjdE1hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGNhbk1hdGNoTGFuZ3VhZ2VPbmx5ICYmIGNhbm9uaWNhbGl6ZWRMYW5ndWFn
ZUZyb21MaXN0Lmxlbmd0aCgpID49IDIpIHsKKyAgICAgICAgICAgIGlmIChsb3dlcmNhc2VMYW5n
dWFnZVswXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdFswXSAmJiBsb3dlcmNhc2VM
YW5ndWFnZVsxXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdFsxXSkgeworICAgICAg
ICAgICAgICAgIGlmICghbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2gubGVuZ3RoKCkgJiYgY2Fu
b25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPT0gMikgeworICAgICAgICAgICAg
ICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaCA9IGxhbmd1YWdlTGlzdFtpXTsKKyAg
ICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2hJbmRleCA9IGk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghbGFuZ3VhZ2VNYXRjaEJ1dE5v
dExvY2FsZS5sZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdC5sZW5ndGgo
KSA+PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUg
PSBsYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlTWF0Y2hCdXRO
b3RMb2NhbGVNYXRjaEluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBleGFjdE1hdGNoID0gZmFsc2U7CisKKyAgICAvLyBJ
ZiB3ZSBoYXZlIGJvdGggYSBsYW5ndWFnZS1vbmx5IG1hdGNoIGFuZCBhIGxhbmd1Z2UtYnV0LW5v
dC1sb2NhbGUgbWF0Y2gsIHJldHVybiB0aGUKKyAgICAvLyBsYW5ndWdlLW9ubHkgbWF0Y2ggYXMg
aXMgY29uc2lkZXJlZCBhICJiZXR0ZXIiIG1hdGNoLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGxpc3QK
KyAgICAvLyBwcm92aWRlZCBoYXMgYm90aCAiZW4tR0IiIGFuZCAiZW4iIGFuZCB0aGUgdXNlciBw
cmVmZXJzICJlbi1VUyIgd2Ugd2lsbCByZXR1cm4gImVuIi4KKyAgICBpZiAobGFuZ3VhZ2VXaXRo
b3V0TG9jYWxlTWF0Y2gubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBsYW5ndWFnZVdpdGhvdXRM
b2NhbGVNYXRjaEluZGV4OworCisgICAgaWYgKGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGUubGVu
Z3RoKCkpCisgICAgICAgIHJldHVybiBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRl
eDsKKworICAgIHJldHVybiBsYW5ndWFnZUxpc3Quc2l6ZSgpOworfQorCitTdHJpbmcgZGlzcGxh
eU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmIGxvY2FsZU5hbWUpCit7CisjaWYg
VVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQorICAgIGlmICghbG9jYWxlTmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBhZG9wdENGKENGTG9jYWxlQ29weURpc3BsYXlOYW1lRm9yUHJvcGVy
dHlWYWx1ZShhZG9wdENGKENGTG9jYWxlQ29weUN1cnJlbnQoKSkuZ2V0KCksIGtDRkxvY2FsZUlk
ZW50aWZpZXIsIGxvY2FsZU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpLmdldCgpOworI2Vu
ZGlmCisgICAgcmV0dXJuIGxvY2FsZU5hbWU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0xhbmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMwNWI5MTg5OWQ0Y2RlZmUwYmFmMDBiY2QwMjEzZmJiZDdjOGM0MmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMTAsIDIwMTMsIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworV1RGX0VYUE9SVCBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgor
V1RGX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7IC8vIFRo
cmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgorV1RGX0VYUE9SVCBWZWN0
b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKK1dURl9FWFBPUlQg
dm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKK1dURl9FWFBPUlQgc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChj
b25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0
LCBib29sJiBleGFjdE1hdGNoKTsKK1dURl9FWFBPUlQgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisvLyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZp
YyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgordm9p
ZCBsYW5ndWFnZURpZENoYW5nZSgpOworCisvLyBUaGUgb2JzZXJ2ZXIgZnVuY3Rpb24gd2lsbCBi
ZSBjYWxsZWQgd2hlbiBzeXN0ZW0gbGFuZ3VhZ2UgY2hhbmdlcy4KK3R5cGVkZWYgdm9pZCAoKkxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbikodm9pZCogY29udGV4dCk7CitXVEZfRVhQT1JU
IHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNo
YW5nZU9ic2VydmVyRnVuY3Rpb24pOworV1RGX0VYUE9SVCB2b2lkIHJlbW92ZUxhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CisKK1dURl9FWFBPUlQgU3RyaW5nIGRpc3BsYXlO
YW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7Cit9CisKK3VzaW5nIFdURjo6ZGVm
YXVsdExhbmd1YWdlOwordXNpbmcgV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwordXNpbmcg
V1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGU7Cit1c2luZyBXVEY6Om92ZXJyaWRl
VXNlclByZWZlcnJlZExhbmd1YWdlczsKK3VzaW5nIFdURjo6aW5kZXhPZkJlc3RNYXRjaGluZ0xh
bmd1YWdlSW5MaXN0OwordXNpbmcgV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
Cit1c2luZyBXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7Cit1c2luZyBXVEY6OnJlbW92
ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7Cit1c2luZyBXVEY6OmRpc3BsYXlOYW1lRm9yTGFuZ3Vh
Z2VMb2NhbGU7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggY2RhNWMyOTcyM2QzN2Fk
ZDViMDhjYmJlODYxZTM0NmI5NzkxY2Y1Ny4uZGEwMzhhMDFmYzMwYzNlNDgzOGZkMzc2YmM1NGEx
ZTU0YzNiZTc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEyLDggKzEyLDggQEAg
bGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICBsaW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJM
aW51eC5jcHAKIAogICAgIHVuaXgvQ1BVVGltZVVuaXguY3BwCisgICAgdW5peC9MYW5ndWFnZVVu
aXguY3BwCiAKLSAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAogICAg
IFVuaVN0ZEV4dHJhcy5jcHAKIAogICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVVW5peC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25s
eS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSlNDT25seS5jbWFrZQppbmRleCA0NGIy
MjAwYmJiNmY0ZjJhMTZhOTk0N2E0NDA3MjdhYWYxNzFkNTNmLi4zZTc3Y2M0YTQ4MjlkYmI3NjUz
NjRjYTAxYTQwYjlmOGI2NDg4MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUpTQ09ubHkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1KU0NPbmx5LmNtYWtl
CkBAIC0xLDUgKzEsNCBAQAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICBQbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAogCiAgICAgZ2VuZXJpYy9NYWluVGhyZWFkR2Vu
ZXJpYy5jcHAKICAgICBnZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC04LDExICs3LDEz
IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiBpZiAoV0lOMzIpCiAgICAgbGlzdChBUFBFTkQg
V1RGX1NPVVJDRVMKICAgICAgICAgd2luL0NQVVRpbWVXaW4uY3BwCisgICAgICAgIHdpbi9MYW5n
dWFnZVdpbi5jcHAKICAgICAgICAgdGV4dC93aW4vVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VVdpbi5jcHAKICAgICApCiBlbHNlICgpCiAgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAg
ICAgICAgdW5peC9DUFVUaW1lVW5peC5jcHAKKyAgICAgICAgdW5peC9MYW5ndWFnZVVuaXguY3Bw
CiAgICAgICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVVW5peC5jcHAK
ICAgICApCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMu
Y21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBiNGIxZGFmMzM5
NDU3OWUyZTgzNDNhMTJlMDAxMjQzZWI0ZDI5ODlhLi5mMDcxZDJmMGViYjA5NDFhYTc4MzJmNTlh
NDE2ODA5YzI1ZGEyYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5j
bWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMTAsMTUgKzEw
LDE1IEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VT
CiAgICAgQXV0b2RyYWluZWRQb29sTWFjLm1tCiAgICAgQmxvY2tPYmpDRXhjZXB0aW9ucy5tbQot
ICAgIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc01hYy5tbQogICAgIFJ1bkxvb3BUaW1l
ckNGLmNwcAogICAgIFNjaGVkdWxlUGFpckNGLmNwcAogICAgIFNjaGVkdWxlUGFpck1hYy5tbQog
Ci0gICAgdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQotCisgICAg
Y2YvTGFuZ3VhZ2VDRi5jcHAKICAgICBjZi9SdW5Mb29wQ0YuY3BwCiAKKyAgICB0ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisKICAgICBjb2NvYS9DUFVUaW1lQ29j
b2EubW0KICAgICBjb2NvYS9NZW1vcnlGb290cHJpbnRDb2NvYS5jcHAKICAgICBjb2NvYS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM1
ODBmYzc2MDlmZmRjM2FiM2I0NmRhMGRlYzg3YTkwMzRmZTc3Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0jZGVmaW5l
IFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc19oCi0KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewot
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCAoKikoKSk7Ci0KLS8vIFRoaXMgaXMgdGhyZWFkLXNhZmUu
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OnNldFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjazsKLXVzaW5nIFdURjo6cGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwotCi0jZW5kaWYgLy8gUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YWU3MWFlZmMzNmFlODk1YThhZmJlNzZhNjRjNTNjNjMwOTZlNDQwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlc01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE0NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDEwLCAyMDExLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29u
ZmlnLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaCIKLQotI2lt
cG9ydCAiQmxvY2tPYmpDRXhjZXB0aW9ucy5oIgotI2ltcG9ydCA8bXV0ZXg+Ci0jaW1wb3J0IDx1
bmljb2RlL3Vsb2MuaD4KLSNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW1wb3J0IDx3dGYv
TG9jay5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+Ci0jaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXN0YXRpYyB2b2lkICgq
Y2FsbGJhY2spKCk7Ci0KLXZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hh
bmdlZENhbGxiYWNrKHZvaWQgKCpwYXNzZWRDYWxsYmFjaykoKSkKLXsKLSAgICBjYWxsYmFjayA9
IHBhc3NlZENhbGxiYWNrOwotfQotCi1zdGF0aWMgU3RhdGljTG9jayBwcmVmZXJyZWRMYW5ndWFn
ZXNNdXRleDsKLQotc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKQot
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwot
ICAgIHJldHVybiBsYW5ndWFnZXM7Ci19Ci0KLX0KLQotQGludGVyZmFjZSBXVEZMYW5ndWFnZUNo
YW5nZU9ic2VydmVyIDogTlNPYmplY3QKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdURkxhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXIKLQotKyAodm9pZClsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdl
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwotCi0gICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4g
bG9jayhXVEY6OnByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKLSAgICAgICAgV1RGOjpwcmVmZXJy
ZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLSAgICAKLSAgICBpZiAoV1RGOjpjYWxsYmFj
aykKLSAgICAgICAgV1RGOjpjYWxsYmFjaygpOwotfQotCi1AZW5kCi0KLW5hbWVzcGFjZSBXVEYg
ewotCi1zdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShOU1N0cmluZyAqbGFuZ3Vh
Z2UpCi17Ci0gICAgU0ludDMyIGxhbmd1YWdlQ29kZTsKLSAgICBTSW50MzIgcmVnaW9uQ29kZTsK
LSAgICBTSW50MzIgc2NyaXB0Q29kZTsKLSAgICBDRlN0cmluZ0VuY29kaW5nIHN0cmluZ0VuY29k
aW5nOwotCi0gICAgLy8gRklYTUU6IFRoaXMgdHJhbnNmb3JtYXRpb24gaXMgdmVyeSB3cm9uZzoK
LSAgICAvLyAxLiBUaGVyZSBpcyBubyByZWFzb24gd2h5IENGQnVuZGxlIGxvY2FsaXphdGlvbiBu
YW1lcyB3b3VsZCBiZSBhdCBhbGwgcmVsYXRlZCB0byBsYW5ndWFnZSBuYW1lcyBhcyB1c2VkIG9u
IHRoZSBXZWIuCi0gICAgLy8gMi4gU2NyaXB0IE1hbmFnZXIgY29kZXMgY2Fubm90IHJlcHJlc2Vu
dCBhbGwgbGFuZ3VhZ2VzIHRoYXQgYXJlIG5vdyBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtLCBz
byB0aGUgY29udmVyc2lvbiBpcyBsb3NzeS4KLSAgICAvLyAzLiBUaGlzIHNob3VsZCBwcm9iYWJs
eSBtYXRjaCB3aGF0IGlzIHNlbnQgYnkgdGhlIG5ldHdvcmsgbGF5ZXIgYXMgQWNjZXB0LUxhbmd1
YWdlLCBidXQgY3VycmVudGx5LCB0aGF0J3MgaW1wbGVtZW50ZWQgc2VwYXJhdGVseS4KLSAgICBD
RkJ1bmRsZUdldExvY2FsaXphdGlvbkluZm9Gb3JMb2NhbGl6YXRpb24oKENGU3RyaW5nUmVmKWxh
bmd1YWdlLCAmbGFuZ3VhZ2VDb2RlLCAmcmVnaW9uQ29kZSwgJnNjcmlwdENvZGUsICZzdHJpbmdF
bmNvZGluZyk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNv
ZGUgPSBhZG9wdENGKENGQnVuZGxlQ29weUxvY2FsaXphdGlvbkZvckxvY2FsaXphdGlvbkluZm8o
bGFuZ3VhZ2VDb2RlLCByZWdpb25Db2RlLCBzY3JpcHRDb2RlLCBzdHJpbmdFbmNvZGluZykpOwot
ICAgIGlmIChwcmVmZXJyZWRMYW5ndWFnZUNvZGUpCi0gICAgICAgIGxhbmd1YWdlID0gKE5TU3Ry
aW5nICopcHJlZmVycmVkTGFuZ3VhZ2VDb2RlLmdldCgpOwotCi0gICAgLy8gVHVybiBhICdfJyBp
bnRvIGEgJy0nIGlmIGl0IGFwcGVhcnMgYWZ0ZXIgYSAyLWxldHRlciBsYW5ndWFnZSBjb2RlCi0g
ICAgaWYgKFtsYW5ndWFnZSBsZW5ndGhdID49IDMgJiYgW2xhbmd1YWdlIGNoYXJhY3RlckF0SW5k
ZXg6Ml0gPT0gJ18nKSB7Ci0gICAgICAgIFJldGFpblB0cjxOU011dGFibGVTdHJpbmc+IG11dGFi
bGVMYW5ndWFnZUNvZGUgPSBhZG9wdE5TKFtsYW5ndWFnZSBtdXRhYmxlQ29weV0pOwotICAgICAg
ICBbbXV0YWJsZUxhbmd1YWdlQ29kZS5nZXQoKSByZXBsYWNlQ2hhcmFjdGVyc0luUmFuZ2U6TlNN
YWtlUmFuZ2UoMiwgMSkgd2l0aFN0cmluZzpAIi0iXTsKLSAgICAgICAgcmV0dXJuIG11dGFibGVM
YW5ndWFnZUNvZGUuZ2V0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGxhbmd1YWdlOwotfQotCi1W
ZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBk
aXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIFtbTlNEaXN0cmlidXRlZE5vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpbV1RGTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlciBzZWxmXSBzZWxlY3RvcjpAc2VsZWN0b3IobGFuZ3VhZ2VQcmVmZXJlbmNlc0Rp
ZENoYW5nZTopIG5hbWU6QCJBcHBsZUxhbmd1YWdlUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0
aW9uIiBvYmplY3Q6bmlsXTsKLSAgICB9KTsKLSNlbmRpZgotCi0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwotCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socHJl
ZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwotICAgIFZlY3RvcjxTdHJpbmc+JiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBpZiAodXNlclByZWZlcnJl
ZExhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxh
bmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAg
ICAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdl
dCgpKTsKLSAgICAgICAgaWYgKCFsYW5ndWFnZUNvdW50KQotICAgICAgICAgICAgdXNlclByZWZl
cnJlZExhbmd1YWdlcy5hcHBlbmQoImVuIik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAg
Zm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICAgICAg
ICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZSgo
TlNTdHJpbmcgKilDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDb3B5OwotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOwotCi0gICAgZm9yIChhdXRv
JiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpCi0gICAgICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7
Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0KLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwotCi0gICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTE4NzJkODlhNTFiMmI2ZDQ4NDc4ODZmNzA3NzFjZTM3NjYyZjM4Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuaCIKLQotI2luY2x1ZGUgPGxvY2FsZS5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXZv
aWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQg
KCopKCkpIHsgfQotCi0vLyBVc2luZyBwYW5nb19sYW5ndWFnZV9nZXRfZGVmYXVsdCgpIGhlcmUg
aXMgbm90IGFuIG9wdGlvbiwgYmVjYXVzZQotLy8gaXQgZG9lc24ndCBzdXBwb3J0IGNoYW5naW5n
IHRoZSBsb2NhbGUgaW4gcnVudGltZSwgc28gaXQgcmV0dXJucwotLy8gYWx3YXlzIHRoZSBzYW1l
IHZhbHVlLgotc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKLXsKLSAgICBTdHJpbmcg
bG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKLSAgICBpZiAobG9j
YWxlRGVmYXVsdC5pc0VtcHR5KCkgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZh
dWx0LCAiQyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIlBPU0lY
IikpCi0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImVuLVVTIik7Ci0KLSAgICBTdHJpbmcg
bm9ybWFsaXplZERlZmF1bHQgPSBsb2NhbGVEZWZhdWx0OwotICAgIG5vcm1hbGl6ZWREZWZhdWx0
LnJlcGxhY2UoJ18nLCAnLScpOwotICAgIG5vcm1hbGl6ZWREZWZhdWx0LnRydW5jYXRlKG5vcm1h
bGl6ZWREZWZhdWx0LmZpbmQoJy4nKSk7Ci0gICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0Owot
fQotCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewot
ICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWFkMjNjNTQzOWNlMjMz
MjA4MDViMjlkOTgzMjEyNDE2NzYzYzZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCi0KLSNpbmNs
dWRlIDxtdXRleD4KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxhbmd1YWdl
TXV0ZXg7Ci0KLXZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZENh
bGxiYWNrKHZvaWQgKCopKCkpIHsgfQotCi1zdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBF
IGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCi17Ci0gICAgTEFOR0lEIGxhbmdJ
RCA9IEdldFVzZXJEZWZhdWx0VUlMYW5ndWFnZSgpOwotICAgIGludCBsb2NhbGVDaGFycyA9IEdl
dExvY2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBlLCAwLCAwKTsKLSAgICBpZiAoIWxvY2FsZUNo
YXJzKQotICAgICAgICByZXR1cm4gZmFsbGJhY2s7Ci0gICAgVUNoYXIqIGxvY2FsZU5hbWVCdWY7
Ci0gICAgU3RyaW5nIGxvY2FsZU5hbWUgPSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobG9j
YWxlQ2hhcnMsIGxvY2FsZU5hbWVCdWYpOwotICAgIGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5m
byhsYW5nSUQsIGxvY2FsZVR5cGUsIGxvY2FsZU5hbWVCdWYsIGxvY2FsZUNoYXJzKTsKLSAgICBp
ZiAoIWxvY2FsZUNoYXJzKQotICAgICAgICByZXR1cm4gZmFsbGJhY2s7Ci0gICAgaWYgKGxvY2Fs
ZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsbGJhY2s7Ci0KLSAgICBsb2NhbGVO
YW1lLnRydW5jYXRlKGxvY2FsZU5hbWUubGVuZ3RoKCkgLSAxKTsKLSAgICByZXR1cm4gbG9jYWxl
TmFtZTsKLX0KLQotc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKLXsKLSAgICBzdGQ6
OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwbGF0Zm9ybUxhbmd1YWdlTXV0ZXgpOwotCi0g
ICAgc3RhdGljIFN0cmluZyBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKLSAgICBpZiAoIWNvbXB1
dGVkRGVmYXVsdExhbmd1YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVm
YXVsdExhbmd1YWdlLmlzb2xhdGVkQ29weSgpOwotCi0gICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9
IGxvY2FsZUluZm8oTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7Ci0gICAgU3RyaW5nIGNv
dW50cnlOYW1lID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkp
OwotCi0gICAgaWYgKGNvdW50cnlOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgY29tcHV0ZWREZWZh
dWx0TGFuZ3VhZ2UgPSBsYW5ndWFnZU5hbWU7Ci0gICAgZWxzZQotICAgICAgICBjb21wdXRlZERl
ZmF1bHRMYW5ndWFnZSA9IGxhbmd1YWdlTmFtZSArICctJyArIGNvdW50cnlOYW1lOwotCi0gICAg
cmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwotfQotCi1WZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQotewotICAgIHJldHVybiB7IHBsYXRmb3JtTGFu
Z3VhZ2UoKSB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21h
a2UKaW5kZXggNGYxNWI2ZGRhOWY0Y2ZmOTQ2MjczYTI2ZGVhOTg1NGE1MjZmNmUxYS4uNGI0MTBl
NWZiNzJkZTU5MDI1NmU0MjliNmMxYmVlMjczYzg0ZTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUu
Y21ha2UKQEAgLTEsNSArMSw0IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCiAgICAgVW5pU3RkRXh0cmFzLmNwcAog
CiAgICAgZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAKQEAgLTE2LDYgKzE1LDcgQEAgbGlz
dChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB0ZXh0L3VuaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVVVuaXguY3BwCiAKICAgICB1bml4L0NQVVRpbWVVbml4LmNwcAorICAgIHVuaXgvTGFu
Z3VhZ2VVbml4LmNwcAogKQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtV2luLmNtYWtlCmluZGV4IDM2YmNlYzRiNjYzM2IyNWMzOWYxNGQ3OGUxYTU1ZWNkNDNkNDhk
MjIuLjVjZmVjMDc3YzRlNTMxYWViYTZhMWRkNjMzNmRiZDkyOGFiOGY5OTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtV2luLmNtYWtlCkBAIC0zLDExICszLDEwIEBAIGxpc3QoQVBQRU5EIFdURl9IRUFERVJT
CiApCiAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzV2luLmNwcAotCiAgICAgdGV4dC93aW4vVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVVdpbi5jcHAKIAogICAgIHdpbi9DUFVUaW1lV2luLmNwcAorICAgIHdpbi9MYW5ndWFnZVdp
bi5jcHAKICAgICB3aW4vTWFpblRocmVhZFdpbi5jcHAKICAgICB3aW4vTWVtb3J5Rm9vdHByaW50
V2luLmNwcAogICAgIHdpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL0xh
bmd1YWdlQ0YuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMjAzZDE3Y2Y4OWEyMDNiOWZhY2IxYzFhOGJhYjFi
Njg0MDljNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNG
LmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwg
MjAwNiwgMjAxMCwgMjAxMSwgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5o
IgorCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRl
IDxtdXRleD4KKyNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvY2Yv
Q0ZCdW5kbGVTUEkuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdURiB7CisKK3N0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExhbmd1YWdlc011dGV4Owor
CitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJu
IGxhbmd1YWdlczsKK30KKworc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZT
dHJpbmdSZWYgbGFuZ3VhZ2UpCit7CisgICAgU0ludDMyIGxhbmd1YWdlQ29kZTsKKyAgICBTSW50
MzIgcmVnaW9uQ29kZTsKKyAgICBTSW50MzIgc2NyaXB0Q29kZTsKKyAgICBDRlN0cmluZ0VuY29k
aW5nIHN0cmluZ0VuY29kaW5nOworCisgICAgLy8gRklYTUU6IFRoaXMgdHJhbnNmb3JtYXRpb24g
aXMgdmVyeSB3cm9uZzoKKyAgICAvLyAxLiBUaGVyZSBpcyBubyByZWFzb24gd2h5IENGQnVuZGxl
IGxvY2FsaXphdGlvbiBuYW1lcyB3b3VsZCBiZSBhdCBhbGwgcmVsYXRlZCB0byBsYW5ndWFnZSBu
YW1lcyBhcyB1c2VkIG9uIHRoZSBXZWIuCisgICAgLy8gMi4gU2NyaXB0IE1hbmFnZXIgY29kZXMg
Y2Fubm90IHJlcHJlc2VudCBhbGwgbGFuZ3VhZ2VzIHRoYXQgYXJlIG5vdyBzdXBwb3J0ZWQgYnkg
dGhlIHBsYXRmb3JtLCBzbyB0aGUgY29udmVyc2lvbiBpcyBsb3NzeS4KKyAgICAvLyAzLiBUaGlz
IHNob3VsZCBwcm9iYWJseSBtYXRjaCB3aGF0IGlzIHNlbnQgYnkgdGhlIG5ldHdvcmsgbGF5ZXIg
YXMgQWNjZXB0LUxhbmd1YWdlLCBidXQgY3VycmVudGx5LCB0aGF0J3MgaW1wbGVtZW50ZWQgc2Vw
YXJhdGVseS4KKyAgICBDRkJ1bmRsZUdldExvY2FsaXphdGlvbkluZm9Gb3JMb2NhbGl6YXRpb24o
bGFuZ3VhZ2UsICZsYW5ndWFnZUNvZGUsICZyZWdpb25Db2RlLCAmc2NyaXB0Q29kZSwgJnN0cmlu
Z0VuY29kaW5nKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExhbmd1YWdl
Q29kZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDb3B5TG9jYWxpemF0aW9uRm9yTG9jYWxpemF0aW9uSW5m
byhsYW5ndWFnZUNvZGUsIHJlZ2lvbkNvZGUsIHNjcmlwdENvZGUsIHN0cmluZ0VuY29kaW5nKSk7
CisgICAgaWYgKHByZWZlcnJlZExhbmd1YWdlQ29kZSkKKyAgICAgICAgbGFuZ3VhZ2UgPSBwcmVm
ZXJyZWRMYW5ndWFnZUNvZGUuZ2V0KCk7CisKKyAgICAvLyBUdXJuIGEgJ18nIGludG8gYSAnLScg
aWYgaXQgYXBwZWFycyBhZnRlciBhIDItbGV0dGVyIGxhbmd1YWdlIGNvZGUKKyAgICBpZiAoQ0ZT
dHJpbmdHZXRMZW5ndGgobGFuZ3VhZ2UpID49IDMgJiYgQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJBdElu
ZGV4KGxhbmd1YWdlLCAyKSA9PSAnXycpIHsKKyAgICAgICAgYXV0byBtdXRhYmxlTGFuZ3VhZ2VD
b2RlID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsIGxhbmd1YWdlKSk7CisgICAgICAgIENGU3RyaW5nUmVwbGFjZShtdXRhYmxlTGFuZ3Vh
Z2VDb2RlLmdldCgpLCBDRlJhbmdlTWFrZSgyLCAxKSwgQ0ZTVFIoIi0iKSk7CisgICAgICAgIHJl
dHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOworICAgIH0KKworICAgIHJldHVybiBsYW5n
dWFnZTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKK3N0YXRpYyB2b2lkIGxhbmd1YWdlUHJlZmVy
ZW5jZXNEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluZ1Jl
ZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAgICB7CisgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAg
ICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAgICB9CisgICAgCisgICAgbGFu
Z3VhZ2VEaWRDaGFuZ2UoKTsKK30KKyNlbmRpZgorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4s
IF4geworICAgICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGlzdHJpYnV0ZWRDZW50ZXIoKSwgbnVsbHB0ciwgJmxhbmd1YWdlUHJlZmVy
ZW5jZXNEaWRDaGFuZ2UsIENGU1RSKCJBcHBsZUxhbmd1YWdlUHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uIiksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29h
bGVzY2UpOworICAgIH0pOworI2VuZGlmCisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9j
az4gbG9jayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgVmVjdG9yPFN0cmluZz4mIHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKworICAgIGlmICh1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkgeworICAgICAgICBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFn
ZXMoKSk7CisgICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChs
YW5ndWFnZXMuZ2V0KCkpOworICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCisgICAgICAgICAg
ICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCisg
ICAgICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFu
Z3VhZ2VDb2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4
KGxhbmd1YWdlcy5nZXQoKSwgaSkpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBWZWN0b3I8
U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKKyAgICB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMu
c2l6ZSgpKTsKKworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKQorICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNoZWNrZWRBcHBlbmQo
bGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOworCisgICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNDb3B5OworCisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXgu
Y3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUw
MTZmYjJhZTM3MGIzMTgxMzU5YjhhZWYzOTNmM2U1N2Y1MmYzNTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDxs
b2NhbGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBVc2luZyBwYW5nb19sYW5ndWFnZV9n
ZXRfZGVmYXVsdCgpIGhlcmUgaXMgbm90IGFuIG9wdGlvbiwgYmVjYXVzZQorLy8gaXQgZG9lc24n
dCBzdXBwb3J0IGNoYW5naW5nIHRoZSBsb2NhbGUgaW4gcnVudGltZSwgc28gaXQgcmV0dXJucwor
Ly8gYWx3YXlzIHRoZSBzYW1lIHZhbHVlLgorc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdl
KCkKK3sKKyAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxw
dHIpKTsKKyAgICBpZiAobG9jYWxlRGVmYXVsdC5pc0VtcHR5KCkgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiQyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9j
YWxlRGVmYXVsdCwgIlBPU0lYIikpCisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImVuLVVT
Iik7CisKKyAgICBTdHJpbmcgbm9ybWFsaXplZERlZmF1bHQgPSBsb2NhbGVEZWZhdWx0OworICAg
IG5vcm1hbGl6ZWREZWZhdWx0LnJlcGxhY2UoJ18nLCAnLScpOworICAgIG5vcm1hbGl6ZWREZWZh
dWx0LnRydW5jYXRlKG5vcm1hbGl6ZWREZWZhdWx0LmZpbmQoJy4nKSk7CisgICAgcmV0dXJuIG5v
cm1hbGl6ZWREZWZhdWx0OworfQorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQoreworICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5n
dWFnZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc2MDEwOTg1NTAwM2RhMGMyZWIzMjc5OTYxNzliMTYzZDI5ODM4MjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCkBAIC0wLDAgKzEsODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgorCisjaW5j
bHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV1RGIHsKKworc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFn
ZU11dGV4OworCitzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUsIGNv
bnN0IFN0cmluZyYgZmFsbGJhY2spCit7CisgICAgTEFOR0lEIGxhbmdJRCA9IEdldFVzZXJEZWZh
dWx0VUlMYW5ndWFnZSgpOworICAgIGludCBsb2NhbGVDaGFycyA9IEdldExvY2FsZUluZm8obGFu
Z0lELCBsb2NhbGVUeXBlLCAwLCAwKTsKKyAgICBpZiAoIWxvY2FsZUNoYXJzKQorICAgICAgICBy
ZXR1cm4gZmFsbGJhY2s7CisgICAgVUNoYXIqIGxvY2FsZU5hbWVCdWY7CisgICAgU3RyaW5nIGxv
Y2FsZU5hbWUgPSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobG9jYWxlQ2hhcnMsIGxvY2Fs
ZU5hbWVCdWYpOworICAgIGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5mbyhsYW5nSUQsIGxvY2Fs
ZVR5cGUsIGxvY2FsZU5hbWVCdWYsIGxvY2FsZUNoYXJzKTsKKyAgICBpZiAoIWxvY2FsZUNoYXJz
KQorICAgICAgICByZXR1cm4gZmFsbGJhY2s7CisgICAgaWYgKGxvY2FsZU5hbWUuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gZmFsbGJhY2s7CisKKyAgICBsb2NhbGVOYW1lLnRydW5jYXRlKGxv
Y2FsZU5hbWUubGVuZ3RoKCkgLSAxKTsKKyAgICByZXR1cm4gbG9jYWxlTmFtZTsKK30KKworc3Rh
dGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayhwbGF0Zm9ybUxhbmd1YWdlTXV0ZXgpOworCisgICAgc3RhdGljIFN0cmlu
ZyBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKKyAgICBpZiAoIWNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlLmlz
b2xhdGVkQ29weSgpOworCisgICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9IGxvY2FsZUluZm8oTE9D
QUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7CisgICAgU3RyaW5nIGNvdW50cnlOYW1lID0gbG9j
YWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkpOworCisgICAgaWYgKGNv
dW50cnlOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UgPSBs
YW5ndWFnZU5hbWU7CisgICAgZWxzZQorICAgICAgICBjb21wdXRlZERlZmF1bHRMYW5ndWFnZSA9
IGxhbmd1YWdlTmFtZSArICctJyArIGNvdW50cnlOYW1lOworCisgICAgcmV0dXJuIGNvbXB1dGVk
RGVmYXVsdExhbmd1YWdlOworfQorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQoreworICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWQ5MDMyNTZjMzQx
OTZjODI0M2ViMTY3MjU3OWFkZTFhZDUzZTc2Yi4uOWFkMWNjMjdiZmRkNjdhYjEwYjBmZmJjNWQ5
MmZmZTRlN2I5MGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIyNzUsNyArMjI3NSw2IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCiAgICAgcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAK
LSAgICBwbGF0Zm9ybS9MYW5ndWFnZS5jcHAKICAgICBwbGF0Zm9ybS9MYXlvdXRVbml0LmNwcAog
ICAgIHBsYXRmb3JtL0xlbmd0aC5jcHAKICAgICBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGFjMGMwMzg1NzVkM2FmODkxZWJkNWNlZjZmYTEwOTRhNjYyMmRiNy4uMzIyMDdiMDNiZjAwZWFh
MDFlNzQ0OThmNGRhODEwZmM0ZGQyODg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY5Nyw3ICszNjk3LDYgQEAKIAkJODU0
RkU3MzcwQTIyOTdCRTAwNThEN0FEIC8qIFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MkQwQTIyOTdCRTAwNThEN0FEIC8qIFRy
YXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg1NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzJFMEEyMjk3QkUwMDU4
RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzkwQTIyOTdCRTAwNThEN0FE
IC8qIFRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODVFQzlBRkIwQTcxQTJD
NjAwRUVFQUVEIC8qIExhbmd1YWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjFDMkVBNDEz
RkI0RkREMDAwNjJBQkIgLyogTG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogTG9hZFRp
bWluZy5jcHAgKi87IH07CiAJCTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBDb3VudGVkVXNl
ckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MkYxMkEwMThD
MUREMDIwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBI
eXN0ZXJlc2lzQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMzg4OSw4ICszODg4LDYgQEAKIAkJOTM5MUE5OTExNjI3NDZDQjAwMjk3
MzMwIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxQTk5MDE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMuaCAqLzsgfTsKIAkJOTM5MUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8q
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgKi87IH07CiAJCTkzOTFBOTlEMTYyOUQ3MDAwMDI5NzMz
MCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJQTZENUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTZENUE5OUExNjI5RDZGRjAwMjk3MzMwIC8qIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwICovOyB9OwotCQlBNkQ1QTk5RDE2MjlENzAwMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTZENUE5OUIxNjI5RDcwMDAwMjk3
MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzkyMTQ2OTE4QTZENzkxMDAw
RUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRl
cmF0b3JCZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzOTIyNjJGMTAzMjEwODQwMDZFN0Q1RCAvKiBKU0NTU1J1bGVMaXN0Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIy
NjJFMTAzMjEwODQwMDZFN0Q1RCAvKiBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJ
OTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQxMEFEMTg1RjQwMDY5MUJE
NCAvKiBSZW5kZXJDb3VudGVyLmggKi87IH07CkBAIC00NjA0LDYgKzQ2MDEsOCBAQAogCQlBNjE0
OEE3OTEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYxNDhBNzcxMkU0MUUzQjAwNDRB
Nzg0IC8qIEpTSFRNTEtleWdlbkVsZW1lbnQuaCAqLzsgfTsKIAkJQTZEMTY5NjIxMzQ2QjQ5QjAw
MEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3Bw
ICovOyB9OwogCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTZEMTY5NjMxMzQ2QjRD
MTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlBNkQ1QTk5QzE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi87IH07CisJCUE2RDVBOTlEMTYyOUQ3MDAw
MDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQ1QTk5QjE2MjlENzAwMDAy
OTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTUxQkQ4MTJGMTU1OEYw
MDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVj
a2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTcxNUU2NTIxMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1
MDEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
QTcxNUU2NTMxMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTExMzRCQkJF
QzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovOyB9OwpAQCAtNjY3OSw3ICs2
Njc4LDYgQEAKIAkJRTE4MjU2OEYwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4
MjU2OEQwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuY3BwICovOyB9Owog
CQlFMTgyNTY5MDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4MjU2OEUwRUYyQjAy
RDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCAqLzsgfTsKIAkJRTE4MjU4QUMwRUYz
Q0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4MjU4QUIwRUYzQ0Q3MDAwOTMz
MjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovOyB9OwotCQlFMTg3NzJGMTEy
NkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdl
LmNwcCAqLzsgfTsKIAkJRTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMThERjMz
ODE4QUFGMTREMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThERjMzNjE4QUFGMTRE
MDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gKi87IH07CiAJCUUxOTcy
NzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyog
Q3J5cHRvS2V5VHlwZS5oICovOyB9OwpAQCAtMTE1MTYsOCArMTE1MTQsOCBAQAogCQk3Q0JBNUJB
NjFGMEI0QkRFMDAzNEQ3NDUgLyogSlNET01Db252ZXJ0V2ViR0wuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNET01Db252ZXJ0V2ViR0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Q0JCQkNDNDFGNTYwNTY3MDA1RUZBQUMgLyogRE9NTWF0cml4MkRJbml0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBET01NYXRyaXgyREluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0JCQkNDNjFGNTYwNTY4MDA1RUZBQUMgLyogRE9NTWF0cml4MkRJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1hdHJpeDJESW5pdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0JCQkNDODFGNTYxN0MwMDA1RUZBQUMgLyogSlNE
T01NYXRyaXgyREluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNET01NYXRyaXgyREluaXQu
Y3BwOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3Q0JCQkNDOTFGNTYxN0MwMDA1RUZBQUMgLyogSlNET01NYXRyaXgyREluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSlNET01NYXRyaXgyREluaXQuaDsgcGF0aCA9IEpTRE9NTWF0cml4MkRJ
bml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkJCQ0M4MUY1NjE3QzAwMDVF
RkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTU1h
dHJpeDJESW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkJCQ0M5MUY1
NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RP
TU1hdHJpeDJESW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERGODFF
Qzk0MTVBMDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDQzJEREZBMUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NDMkRERkUxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vdGlmaWNhdGlv
blBlcm1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE5ODgsNyAr
MTE5ODYsNiBAQAogCQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NVbmtub3duUnVsZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1REYyRjY5MEFBM0M3NDMwMEFENjRDNSAvKiBIVE1MQ29s
bGVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjJGOTIwQUEzQzlCNjAwQUQ2NEM1IC8q
IEhUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxP
cHRpb25zQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RUM5
QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYx
QzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZWRVc2VyQWN0aXZpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
MjE2LDggKzEyMjEzLDYgQEAKIAkJOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFB
OTlBMTYyOUQ2RkYwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFBOTlCMTYyOUQ3MDAw
MDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyogU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTZENUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJh
dG9yQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEl0ZXJh
dG9yQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MjI2MkUxMDMy
MTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJDb3Vu
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJDb3VudGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzA0MSw2ICsxMzAzNiw4IEBACiAJCUE2
MTQ4QTdGMTJFNDFFRDEwMDQ0QTc4NCAvKiBIVE1MS2V5Z2VuRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTEtleWdlbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dSb290LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRv
d1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93Um9vdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNkQ1QTk5QTE2MjlENkZGMDAyOTczMzAgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZENUE5OUIxNjI5RDcwMDAwMjk3MzMw
IC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyog
VGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4
dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNUU2NTAx
MzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
b2dyZXNzU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU0
MjksNyArMTU0MjYsNiBAQAogCQlFMTgyNTY4RDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJH
bG9iYWxTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dv
cmtlckdsb2JhbFNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4MjU2
OEUwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9i
YWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTE4REYzMzQxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM2MThBQUYx
NEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEg
LyogQ3J5cHRvS2V5VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlw
dG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjkyMiw4ICsxNjkx
OCw2IEBACiAJCQkJMEZDNEU0MEMxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVJT1MubW0gKi8sCiAJCQkJMEZDNEU0MDkxODdGODJFMTAwNDU4ODJDIC8q
IFNjcm9sbGluZ1RyZWVJT1MuY3BwICovLAogCQkJCTBGQzRFNDBBMTg3RjgyRTEwMDQ1ODgyQyAv
KiBTY3JvbGxpbmdUcmVlSU9TLmggKi8sCi0JCQkJMUI5NEU0MDkxODdGODJFMTAwNDU4ODJDIC8q
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuY3BwICovLAotCQkJCTFCOTRFNDBB
MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0yNDQ5Nyw4ICsyNDQ5MSw2IEBACiAJCQkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5
c3RlcmVzaXNBY3Rpdml0eS5oICovLAogCQkJCTFBRTAwRDU3MTgyREFDOEQwMDA4N0RENyAvKiBL
ZXllZENvZGluZy5oICovLAogCQkJCUUxNUZGN0Q0MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlwcmVz
c0NvbW1hbmQuaCAqLywKLQkJCQlFMTg3NzJGMDEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2Uu
Y3BwICovLAotCQkJCTg1RUM5QUY5MEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oICovLAog
CQkJCUEzRDQyQTg0MUYzM0JBMzYwMEE2NEI2MiAvKiBMYXlvdXRVbml0LmNwcCAqLywKIAkJCQkx
NDFEQzA0NzE2NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0VW5pdC5oICovLAogCQkJCUJDRTY1QkU4
MEVBQ0RGMTYwMDdFNDUzMyAvKiBMZW5ndGguY3BwICovLApAQCAtMjc3MTcsMTIgKzI3NzA5LDkg
QEAKIAkJCQk4NDczMEQ4NTEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZzZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0NzMwRDg5MTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1bGFyTGln
aHRpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBG
ZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOUM5OTcxRjU5Qjk2MzAw
OUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REIx
RjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2
RTZGRTgxQkJEMTJERjAwMEE2MDIzIC8qIEZldGNoSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTUxN0E1MzVBMUY1ODg5RUYwMERDREMwQSAvKiBGZXRjaExvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFENzUzQTFDRUY2QkQxMDBBMzE0ODYgLyog
RmV0Y2hPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0UxOTE0RDFGMkE5QUZCMDAyNzJG
NzggLyogRmV0Y2hSZWZlcnJlclBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFMTkxNUEx
RjJBOUIzNDAwMjcyRjc4IC8qIEZldGNoUmVxdWVzdENhY2hlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5MDEyLDcgKzI5MDAxLDYgQEAKIAkJCQlFMTVGRjdENTE4Qzk1NTM4MDBGRTRDODcgLyogS2V5
cHJlc3NDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTBDRUJGMTE1MDczQkJFMDAyQkIx
NDkgLyogTGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQ1NkZBMjcxMUFE
NEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUVD
OUFGQjBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5
MTdCNTYyMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyOTE3QjU2MzE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8q
IExheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODg4LDcgKzI5
ODc2LDYgQEAKIAkJCQkyRDkzQUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NUQxRjNFQkM4MzAwQzc0OTUw
IC8qIFNlcnZpY2VXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTVGMUYzRUJDODMw
MEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MTdBNTM1RDFGNTg5OUZFMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUYxNzU2MTFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2MzFGM0VCQzgzMDBDNzQ5
NTAgLyogU2VydmljZVdvcmtlckpvYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NjQxRjNF
QkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMzMwODgsNyArMzMwNzUsNiBAQAogCQkJCUJDNUVCQTEwMEU4MjNFNDcwMEIyNTk2NSAvKiBL
ZXlmcmFtZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDUwQ0VCRjAxNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NkZBMjYx
MUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyOTE3QjU2MTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyOTE3QjU2NjE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEzQTY5RjE5NEI1OUI2MDAx
Q0JEMjQgLyogTGF5ZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcAppbmRl
eCA3MDc1NmZmYWQ3YjMyNjdjNTc5MDhmZTg0NTVjY2ExYjY3NGMwNTAxLi4yZWJjMjI2Yjc1OWJk
YWQzYjU0Mzg0NmFiYmQ1NDBhZTg4YzQ2ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcApAQCAtMzEsNyAr
MzEsNiBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFbGVtZW50SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgog
I2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2lu
Y2x1ZGUgIlNWR0FFbGVtZW50LmgiCkBAIC00MCw2ICszOSw3IEBACiAjaW5jbHVkZSAiU1ZHVGl0
bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlhMaW5r
TmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApp
bmRleCBkY2NkMjgzMzhlM2U4MGZkM2E0OGYzODU1MmEzZWYyYTAzMzU3YTk1Li42YWU1ODcxYzZm
YmIyZGE5OGZjNWVhMjVmZDhjMWNmNGU4ZTkxZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRl
ICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5o
IgogI2luY2x1ZGUgIkpTTm9kZS5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VU
cmFja2VyLmgiCkBAIC01MSw2ICs1MCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFs
UHJvbWlzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcAppbmRleCA5ZTg1NGEzOGM1M2U1MDg5YTMzMjMwMDA5MzhmYmMzZTFhM2YwMGQwLi4z
NGE1MWE1NzA4NzM5OGYzOTFhZTY3N2NjYjdjOGVjYTA5YzZmYjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBA
IC0zMywxMiArMzMsMTIgQEAKICNpbmNsdWRlICJKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmgiCiAjaW5jbHVkZSAiSlNEeW5hbWljRG93bmNhc3QuaCIKICNpbmNsdWRlICJKU1dvcmtlckds
b2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNp
bmNsdWRlIDxydW50aW1lL01pY3JvdGFzay5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgog
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiOTFhNWZhMjBiNDdiOTBl
OWU2NTRhYTQxZWMyMzFkN2E5OTMxOTNhLi5kZTJmM2JhNmVjNmM3ZjNmMTZjMzk0ZDQ5NGRlMGMx
MzBjZjQ2YTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwNSw3ICsxMDUsNiBAQAog
I2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2
ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKICNpbmNsdWRlICJMYXlvdXREaXNhbGxvd2VkU2NvcGUuaCIKICNpbmNsdWRlICJM
b2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTIwNiw2ICsyMDUsNyBA
QAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxwYWwv
TG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xh
bmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGMwOGNmMzM3MGMyYTMxYWQzMDMz
YjlmNjE4ZmE5NWQwMDIzMDZjYzEuLjM4YjEyNTQ5MTVmYWRjYjI5ZTRkNTNlNGQyYjJiNjI5N2Q5
NGFjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNDks
NyArNDksNiBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZFRh
cmdldE9ic2VydmVyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKQEAgLTU5LDYgKzU4LDcg
QEAKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGYzMmZlNGRiNGE5MWM2OTRi
NDVmY2M3ODVlYTVmNzYyMDA1ZmNlZS4uOWUwYTlhMmZlODdmYTYzYWQzNTI4NTYzODBlOGYzYTZm
NDQ3NTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01
NCw3ICs1NCw2IEBACiAjaW5jbHVkZSAiSlNET01FcnJvci5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNIVE1MTWVkaWFFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgpAQCAtOTQsNiArOTMsNyBAQAogI2lu
Y2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDU0M2Y2MWY5ZTg3
MzUwZDU3ODZkZGQ2NmU0Nzc0ZTc1MzU0YmU2MTYuLjY0ZjJjMWFlNDgyZTdlYmMwMjBjOWJmYWNm
OWE3MWJhNjUyYjdkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJIVE1M
VUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJv
bHMuaCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiVGV4dFRyYWNrTGlzdC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKKyNpbmNsdWRl
IDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggN2VhNGUwNTZiM2NiZjQyZTRiMmM3MWQ1MGIz
NDhiNjgyN2E4MDhkYy4uODY4MTlmNTdiMmI5MmY3NWZiMTZkNTQ3ZTA1MGZlYWE5NjA1ZmVkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgogCi0jaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAppbmRleCA3ZDVhYjFl
MTUxODk1OWU0NWM0NGU2OGEyOWQyNDMwNjM3OTA0MjM2Li5iYWUwYjNiYWFjZTU5ODA3NTdhYWI2
ZGQ0Zjc5MGFhMGRjM2U5MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkF1ZGlvVHJh
Y2tMaXN0LmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCi0jaW5jbHVkZSAiTGFuZ3Vh
Z2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NCw2ICs0Myw3IEBACiAjaW5j
bHVkZSA8aGVhcC9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKaW5kZXggZjBi
OGY3ZjI3ZDBkYTk2OWJiNmQxNDMwYzA0Zjg3MGU1NjdhM2Y2Yy4uMjNkN2UwYmY0ZTdkYTZhMDIw
YWE1ZTk3ZDFhZjE2YzI1YjFmNDMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNl
bmRpZgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmlu
Z3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVu
dHMuaCIKQEAgLTQ2LDggKzQ1LDggQEAKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldFR5cGVzLmgi
CiAjaW5jbHVkZSAiVlRUQ3VlLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUg
PHd0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGIyMzljOGFmZTQ5
MDA4Mzk5MGMzYjQwNWJhNzQ3YjlkOTE1MWViMDcuLmNiMTYzOTg2YzgzNmI1NWQwOGU1ZDM4OGFk
YTg5OWIwMzFhOTNlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTY2LDcgKzY2
LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAi
TGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5o
IgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCkBAIC0xMTAsNiArMTA5LDcgQEAKICNpbmNs
dWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ci5jcHAKaW5kZXggYjZkNTU4Zjc1YjFmODBlZmEyMGFlMTE1ZDRjMzFkOWM2M2UyMTVlNC4uNDFk
MDg3NmNkNWVlZjFlYjA1ZTU0ZTM4NTcwYThmM2UzYzlmMDI1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmNwcApAQCAtMzEsMTIgKzMxLDEyIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgi
Ci0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luRGF0YS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1
YWdlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggOTdmZjk1M2E2ZjNi
ZGZkMDk2ZWFlZDZkYzViZmY4OTJjNGM3MmU5NS4uMjIyYThlZjRjNjhmMWIyNjJhZmRmODEyMmQ4
YWM5NGNkOGI4MjNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC0y
NywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JC
YXNlLmgiCiAKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNvbnRhaW5lci5oIgogI2luY2x1ZGUg
PG11dGV4PgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjNGIzNDkyNDZhYzdlOWU3NjAwNmFlN2IwNDgzMDQ5
NjJmYTgwMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcy5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIFVTRShDRikgJiYgIVBMQVRGT1JNKFdJTikK
LSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2VuZGlmCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1
YWdlc011dGV4OwotCi1zdGF0aWMgdm9pZCByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2FsbGJh
Y2tJZk5lY2Vzc2FyeSgpCi17Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAg
c3RkOjpjYWxsX29uY2UoCi0gICAgICAgIG9uY2UsCi0gICAgICAgIFtdIHsKLSAgICAgICAgICAg
IHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayhsYW5ndWFn
ZURpZENoYW5nZSk7Ci0gICAgICAgIH0pOwotfQotCi10eXBlZGVmIEhhc2hNYXA8dm9pZCosIExh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7Ci1zdGF0aWMgT2JzZXJ2
ZXJNYXAmIG9ic2VydmVyTWFwKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T2JzZXJ2
ZXJNYXA+IG1hcDsKLSAgICByZXR1cm4gbWFwLmdldCgpOwotfQotCi12b2lkIGFkZExhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0
aW9uIGN1c3RvbU9ic2VydmVyKQotewotICAgIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VDYWxs
YmFja0lmTmVjZXNzYXJ5KCk7Ci0gICAgb2JzZXJ2ZXJNYXAoKS5zZXQoY29udGV4dCwgY3VzdG9t
T2JzZXJ2ZXIpOwotfQotCi12b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCog
Y29udGV4dCkKLXsKLSAgICBBU1NFUlQob2JzZXJ2ZXJNYXAoKS5jb250YWlucyhjb250ZXh0KSk7
Ci0gICAgb2JzZXJ2ZXJNYXAoKS5yZW1vdmUoY29udGV4dCk7Ci19Ci0KLXZvaWQgbGFuZ3VhZ2VE
aWRDaGFuZ2UoKQotewotICAgIE9ic2VydmVyTWFwOjppdGVyYXRvciBlbmQgPSBvYnNlcnZlck1h
cCgpLmVuZCgpOwotICAgIGZvciAoT2JzZXJ2ZXJNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBvYnNlcnZl
ck1hcCgpLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPnZhbHVl
KGl0ZXItPmtleSk7Ci19Ci0KLVN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQotewotICAgIFZlY3Rv
cjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSAgICBpZiAo
bGFuZ3VhZ2VzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1swXTsKLQotICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwotfQotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9y
PFN0cmluZz4+IG92ZXJyaWRlOwotICAgIHJldHVybiBvdmVycmlkZTsKLX0KLQotVmVjdG9yPFN0
cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCkKLXsKLSAgICByZXR1cm4gcHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLX0KLQotdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlKQotewotICAgIHByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCkgPSBvdmVycmlkZTsKLSAgICBsYW5ndWFnZURpZENoYW5n
ZSgpOwotfQotCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzdHJpbmdzKQotewotICAgIFZlY3RvcjxTdHJpbmc+IGNvcHk7Ci0gICAgY29w
eS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0cmluZ3Muc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8m
IGxhbmd1YWdlIDogc3RyaW5ncykKLSAgICAgICAgY29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3Vh
Z2UuaXNvbGF0ZWRDb3B5KCkpOwotICAgIHJldHVybiBjb3B5OwotfQotCi1WZWN0b3I8U3RyaW5n
PiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKLXsKLSAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNMb2NrPiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7Ci0gICAg
ICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
KCk7Ci0gICAgICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IGlzb2xhdGVkQ29weShvdmVycmlkZSk7Ci0gICAgfQotICAgIAotICAgIHJlZ2lzdGVyTGFuZ3Vh
Z2VEaWRDaGFuZ2VDYWxsYmFja0lmTmVjZXNzYXJ5KCk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcygpOwotfQotCi1zdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1
YWdlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKLXsKLSAgICBTdHJpbmcg
bG93ZXJjYXNlTGFuZ3VhZ2VDb2RlID0gbGFuZ3VhZ2VDb2RlLmNvbnZlcnRUb0FTQ0lJTG93ZXJj
YXNlKCk7Ci0gICAgCi0gICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlQ29kZS5sZW5ndGgoKSA+PSAz
ICYmIGxvd2VyY2FzZUxhbmd1YWdlQ29kZVsyXSA9PSAnXycpCi0gICAgICAgIGxvd2VyY2FzZUxh
bmd1YWdlQ29kZS5yZXBsYWNlKDIsIDEsICItIik7Ci0KLSAgICByZXR1cm4gbG93ZXJjYXNlTGFu
Z3VhZ2VDb2RlOwotfQotCi1zaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0
KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxp
c3QsIGJvb2wmIGV4YWN0TWF0Y2gpCi17Ci0gICAgU3RyaW5nIGxvd2VyY2FzZUxhbmd1YWdlID0g
bGFuZ3VhZ2UuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICBTdHJpbmcgbGFuZ3VhZ2VX
aXRob3V0TG9jYWxlTWF0Y2g7Ci0gICAgU3RyaW5nIGxhbmd1YWdlTWF0Y2hCdXROb3RMb2NhbGU7
Ci0gICAgc2l6ZV90IGxhbmd1YWdlV2l0aG91dExvY2FsZU1hdGNoSW5kZXggPSAwOwotICAgIHNp
emVfdCBsYW5ndWFnZU1hdGNoQnV0Tm90TG9jYWxlTWF0Y2hJbmRleCA9IDA7Ci0gICAgYm9vbCBj
YW5NYXRjaExhbmd1YWdlT25seSA9IChsb3dlcmNhc2VMYW5ndWFnZS5sZW5ndGgoKSA9PSAyIHx8
IChsb3dlcmNhc2VMYW5ndWFnZS5sZW5ndGgoKSA+PSAzICYmIGxvd2VyY2FzZUxhbmd1YWdlWzJd
ID09ICctJykpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYW5ndWFnZUxpc3Quc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0
ID0gY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlmaWVyKGxhbmd1YWdlTGlzdFtpXSk7Ci0KLSAgICAg
ICAgaWYgKGxvd2VyY2FzZUxhbmd1YWdlID09IGNhbm9uaWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0
KSB7Ci0gICAgICAgICAgICBleGFjdE1hdGNoID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBp
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNhbk1hdGNoTGFuZ3VhZ2VPbmx5ICYmIGNhbm9u
aWNhbGl6ZWRMYW5ndWFnZUZyb21MaXN0Lmxlbmd0aCgpID49IDIpIHsKLSAgICAgICAgICAgIGlm
IChsb3dlcmNhc2VMYW5ndWFnZVswXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlzdFsw
XSAmJiBsb3dlcmNhc2VMYW5ndWFnZVsxXSA9PSBjYW5vbmljYWxpemVkTGFuZ3VhZ2VGcm9tTGlz
dFsxXSkgewotICAgICAgICAgICAgICAgIGlmICghbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2gu
bGVuZ3RoKCkgJiYgY2Fub25pY2FsaXplZExhbmd1YWdlRnJvbUxpc3QubGVuZ3RoKCkgPT0gMikg
ewotICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaCA9IGxhbmd1
YWdlTGlzdFtpXTsKLSAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0
Y2hJbmRleCA9IGk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghbGFu
Z3VhZ2VNYXRjaEJ1dE5vdExvY2FsZS5sZW5ndGgoKSAmJiBjYW5vbmljYWxpemVkTGFuZ3VhZ2VG
cm9tTGlzdC5sZW5ndGgoKSA+PSAzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlTWF0
Y2hCdXROb3RMb2NhbGUgPSBsYW5ndWFnZUxpc3RbaV07Ci0gICAgICAgICAgICAgICAgICAgIGxh
bmd1YWdlTWF0Y2hCdXROb3RMb2NhbGVNYXRjaEluZGV4ID0gaTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBleGFjdE1hdGNoID0gZmFs
c2U7Ci0KLSAgICAvLyBJZiB3ZSBoYXZlIGJvdGggYSBsYW5ndWFnZS1vbmx5IG1hdGNoIGFuZCBh
IGxhbmd1Z2UtYnV0LW5vdC1sb2NhbGUgbWF0Y2gsIHJldHVybiB0aGUKLSAgICAvLyBsYW5ndWdl
LW9ubHkgbWF0Y2ggYXMgaXMgY29uc2lkZXJlZCBhICJiZXR0ZXIiIG1hdGNoLiBGb3IgZXhhbXBs
ZSwgaWYgdGhlIGxpc3QKLSAgICAvLyBwcm92aWRlZCBoYXMgYm90aCAiZW4tR0IiIGFuZCAiZW4i
IGFuZCB0aGUgdXNlciBwcmVmZXJzICJlbi1VUyIgd2Ugd2lsbCByZXR1cm4gImVuIi4KLSAgICBp
ZiAobGFuZ3VhZ2VXaXRob3V0TG9jYWxlTWF0Y2gubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBs
YW5ndWFnZVdpdGhvdXRMb2NhbGVNYXRjaEluZGV4OwotCi0gICAgaWYgKGxhbmd1YWdlTWF0Y2hC
dXROb3RMb2NhbGUubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBsYW5ndWFnZU1hdGNoQnV0Tm90
TG9jYWxlTWF0Y2hJbmRleDsKLQotICAgIHJldHVybiBsYW5ndWFnZUxpc3Quc2l6ZSgpOwotfQot
Ci1TdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmIGxvY2Fs
ZU5hbWUpCi17Ci0jaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQotICAgIGlmICghbG9jYWxl
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBhZG9wdENGKENGTG9jYWxlQ29weURpc3Bs
YXlOYW1lRm9yUHJvcGVydHlWYWx1ZShhZG9wdENGKENGTG9jYWxlQ29weUN1cnJlbnQoKSkuZ2V0
KCksIGtDRkxvY2FsZUlkZW50aWZpZXIsIGxvY2FsZU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSkpLmdldCgpOwotI2VuZGlmCi0gICAgcmV0dXJuIGxvY2FsZU5hbWU7Ci19Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDdl
NjY3YTI3MTEyNDk4OTUxMzYyNzNjOWVhYzNjYjQwOGYxNzZjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1
YWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA2LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBMYW5ndWFnZV9oCi0jZGVmaW5lIExhbmd1YWdlX2gKLQotI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsg
Ly8gVGhyZWFkLXNhZmUuCi1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKCk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0
YWdzLgotVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Ci1X
RUJDT1JFX0VYUE9SVCB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpOwotc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlz
dChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VM
aXN0LCBib29sJiBleGFjdE1hdGNoKTsKLQotLy8gVGhlIG9ic2VydmVyIGZ1bmN0aW9uIHdpbGwg
YmUgY2FsbGVkIHdoZW4gc3lzdGVtIGxhbmd1YWdlIGNoYW5nZXMuCi10eXBlZGVmIHZvaWQgKCpM
YW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rpb24pKHZvaWQqIGNvbnRleHQpOwotV0VCQ09SRV9F
WFBPUlQgdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7Ci0KLVN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYpOwotCi0vLyBDYWxsZWQgZnJvbSBwbGF0
Zm9ybSBzcGVjaWZpYyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Uocykg
Y2hhbmdlLgotV0VCQ09SRV9FWFBPUlQgdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpOwotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRH
ZW5lcmljRmFtaWxpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEdlbmVyaWNGYW1pbGllcy5jcHAKaW5kZXggODFkMTIwMDlhM2Y1MTljMDdlOTFjY2YwYmJiZTZm
MDgwZTg2MDYzZS4uNWViYWI5Yzk2ZDg4ZTFkY2NjZjJiNjIyNDM0NmQxYTRjMmNlMzI3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdlbmVyaWNGYW1p
bGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdlbmVy
aWNGYW1pbGllcy5jcHAKQEAgLTI1LDcgKzI1LDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZvbnRHZW5lcmljRmFtaWxpZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgor
CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IDA0
MmU1MzAxN2JhYmU2ZWZhNTY5MDI1MWNmMDZjY2UwZTNjNzQ0ZDguLmEyM2Q4MDlkM2E1ZGRmYWYz
NzExNjJkZjFmY2I2MDQyMmI3M2RjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTI4LDExICsyOCwxMSBAQAogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCi0jaW1wb3J0ICJMYW5ndWFnZS5oIgogI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQXNzZXQuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhU2VsZWN0aW9uR3Jv
dXAuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW0uaD4KICNpbXBvcnQgPG9i
amMvcnVudGltZS5oPgorI2ltcG9ydCA8d3RmL0xhbmd1YWdlLmg+CiAjaW1wb3J0IDx3dGYvU29m
dExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IDY0YWU5NzJk
ZmNmOTI5MDg2MDBkOWFjOGE3ZmI3Yzc1MDQ2MTM2YzguLjVkYzAzNWRmZjVjZDU1NDlmMjE1NzVh
Njk1Y2NkNGNjNWZjYTZmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNl
cnMuaCIKIAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgotI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaAppbmRleCA5MTE5OGYyNzE1NzVj
N2JmZmUxMmYzNmZlYjAyNTRhMzNiNDBmMGU2Li5hOTFmZTgzY2I3OTZmNGU4YzkyNTcxYWI1Yjlm
YjUxNjE4NzAxMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Bs
YXRmb3JtTG9jYWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9y
bUxvY2FsZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFBsYXRmb3JtTG9jYWxlX2gKIAog
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNs
dWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
Y2YvSHlwaGVuYXRpb25DRi5jcHAKaW5kZXggYjRiMGU1MWY0YWZkNmNhM2JjYzhhMGY4NzUyZDUz
NGNkOGI5NmE2My4uMWM3MGM0MTNkOGNjMjI1MDA0YjE3ZDdiMmE2NjlhNzM3MDU3ZjM2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSHlwaGVu
YXRpb24uaCIKIAotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaW55TFJVQ2Fj
aGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBAIC01Myw3ICs1Myw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIENGIGh5cGhlbmF0aW9uIGZ1bmN0aW9ucyB1c2Ug
bG9jYWxlIChyZWdpb25hbCBmb3JtYXRzKSBsYW5ndWFnZSwgd2hpY2ggZG9lc24ndCBuZWNlc3Nh
cmlseSBtYXRjaCBwcmltYXJ5IFVJIGxhbmd1YWdlLAogICAgICAgICAvLyBzbyB3ZSBjYW4ndCB1
c2UgZGVmYXVsdCBsb2NhbGUgaGVyZS4gU2VlIDxyZGFyOi8vcHJvYmxlbS8xNDg5NzY2ND4uCi0g
ICAgICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gbG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBXZWJDb3JlOjpkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gbG9j
YWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0
TGFuZ3VhZ2UoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgICAgIHJldHVybiBDRlN0
cmluZ0lzSHlwaGVuYXRpb25BdmFpbGFibGVGb3JMb2NhbGUobG9jYWxlLmdldCgpKSA/IGxvY2Fs
ZSA6IG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2VuY2hhbnQvVGV4dENoZWNrZXJFbmNoYW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCmluZGV4IDYzOGY3NmM0
NmNjNmQ4MTJlZTVlOTJjZTNhNTVmMzczZWY0MDhkNjIuLjhjZWUyYzk2ZDg4YTNhNzU2NjNkODdj
MTI0ZjZhZTY2Njc5YjZhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCkBAIC0yMiw5ICsyMiw5
IEBACiAKICNpZiBFTkFCTEUoU1BFTExDSEVDSykKIAotI2luY2x1ZGUgPExhbmd1YWdlLmg+CiAj
aW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgorI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvbWFjL0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFj
L0xvY2FsZU1hYy5tbQppbmRleCBkMTU1OTA1NWU2MGUyMDg3NmNlZGY4YmMyNmNiZDBmYTc3OGMz
Yzg5Li4wYWYxNzlmYTIzMzE2MzY1YjdjMDhjMDcyOTRmODNiOTRhZDMzYWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0zMSwxMiArMzEs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGVNYWMuaCIKIAorI2lt
cG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0RhdGVGb3Jt
YXR0ZXIuaD4KICNpbXBvcnQgPEZvdW5kYXRpb24vTlNMb2NhbGUuaD4KLSNpbmNsdWRlICJMYW5n
dWFnZS5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvRGF0
ZU1hdGguaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvRGF0ZU1h
dGguaD4KKyNpbXBvcnQgPHd0Zi9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiTG9jYWxpemVkRGF0ZUNhY2hlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCA2
Y2UxYmZhOTUyYjU4NjA2NmNhODE0OGFlNTIxZTNkMGQ0YTM2NzIxLi5kNzZhODE5ODkxNDM5ZTZi
MGI2N2JmZDZmOWQwN2M5ZTFmMTQ2MzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvd2luL0xvY2FsZVdpbi5jcHAKQEAgLTMzLDEzICszMywxMyBAQAogCiAjaW5jbHVkZSAi
RGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgPGxp
bWl0cz4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmNwcAppbmRleCBlNDRjMzM0ZjE2NTE5YjliYTcwYjJmMGYwZjQ5ZGNjMDM1YzkxOTBlLi44MzRj
MGUzZDk4ZThiMmRlNWQ5ODBhZmFmZTc2MzVmMjQzN2UxZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAKQEAgLTI0LDEwICsyNCwxMCBAQAogCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1
ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0
cmluZ0xpc3QuaCIKKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA5Mzg5M2JkNTczOWMwZGQyMTY3NTkwMTQy
NmNkZmYwYjMxZWY4OGVhLi40YmYxZDBlODEyMTY4ZWQ5NWY1YTg5ZjYzNTViMzMxMjg0MTkxZTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCA1NmY5OTE1NjgzYTUzMGQ2M2E5NThmZDZlOTE5NzcyMDY1NDgwNjI4Li44N2UzOGJmZWFjYzc2
YWFhY2QxYTQ3MDJkODM4NDRlZGRhYTI5Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC04OCw3ICs4OCw2IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
IkludGVybmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgotI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJN
YWluRnJhbWUuaCIKICNpbmNsdWRlICJNYWxsb2NTdGF0aXN0aWNzLmgiCkBAIC0xNTQsNiArMTUz
LDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Cisj
aW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVmZmVyLmg+CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJl
c2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICB9CiAKICAgICBXZWJDb3JlOjpj
bGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKCk7Ci0gICAgV2ViQ29yZTo6
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkpOworICAgIG92
ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJD
b3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKICAgICBXZWJD
b3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcihmYWxzZSk7CiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQpAQCAtMTczNywxMiArMTczNywxMiBAQCBFeGNlcHRpb25PcjxpbnQ+
IEludGVybmFsczo6bGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZSgpCiAKIFZlY3RvcjxT
dHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICByZXR1cm4gV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRVc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZXMpCiB7Ci0g
ICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1YWdlcyk7Cisg
ICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGxhbmd1YWdlcyk7CiB9CiAKIFZlY3Rv
cjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViQ29udGV4dC5jcHAKaW5kZXggM2EwYjRmMzc3ZWFhZmFkNWQ0MDU3ZGE1ZWVjNjExOWFkZDJm
Y2U4Yi4uNzMwMTM0MWUwMTMzZjZiZmY3ZTk2NWEzMzA3OTI4ZTQ3ZTQyYmY4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5j
cHAKQEAgLTU1LDExICs1NSwxMSBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRl
IDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPGxpYmludGwuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTEyNTYsNyArMTI1Niw3IEBAIHZvaWQg
d2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxhbmd1YWdlcy5h
cHBlbmQoU3RyaW5nOjpmcm9tVVRGOChsYW5ndWFnZUxpc3RbaV0pLmNvbnZlcnRUb0FTQ0lJTG93
ZXJjYXNlKCkucmVwbGFjZSgiXyIsICItIikpOwogICAgIH0KLSAgICBXZWJDb3JlOjpvdmVycmlk
ZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKKyAgICBvdmVycmlkZVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggODExNjUzNmM0Zjg4ZmQzZmI1NjQxZWIwMjBi
ZGMxMTY1YmVkNGVlMi4uZDU5M2E4MzI0ZDg2Zjg3OWE1MDU2YWQzNWJmMTUwYjYyMGQwMGQ1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNzIsNyAr
NzIsNiBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtODAsNiArNzksNyBAQAog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKaW5kZXggNDhmZGIwODEzYzU3
ZWNjODdjNzJlNDRjM2Q3MWQxMWI3MzYyZTM3Yi4uYzczMmExOTE5ZTFjNTZkMDNhYzRmZDEzMjAx
ZmE1ZGJkZDFlYjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9X
ZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAv
V2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3Vh
Z2UuaD4KKyNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTQxLDcgKzQxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKICAgICBzdXBwbGVtZW50
PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UocGFy
YW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgsIHBhcmFtZXRlcnMuY29va2llUGVy
c2lzdGVudFN0b3JhZ2VUeXBlKTsKICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9
IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVU
TFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKLSAgICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9
IFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmxhbmd1
YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNI
RSkKICAgICBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZUVmZmljYWN5TG9nZ2lu
ZyA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggMGE0ZWY4YmNjOWRhNmFhMjkwMDQ5ODZmODQyNGU0NzMwNGI3MjUyZS4uN2I2Y2Q0Zjc0
ZDYxNjdhZWIxMDAyMmQ3NDBjOGY0MWFmZWU5NTI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtOTEsNyArOTEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR2x5
cGhQYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9KU0RPTVdpbmRvdy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5
Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KQEAgLTExMiw2ICsx
MTEsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9MYW5ndWFn
ZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogCkBAIC00OTUsNyArNDk1LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91bGRV
c2VGb250U21vb3RoaW5nKGJvb2wgdXNlRm9udFNtb290aGluZykKIHZvaWQgV2ViUHJvY2Vzczo6
dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1
YWdlcykgY29uc3QKIHsKICAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3Vh
Z2VzKTsKLSAgICBsYW5ndWFnZURpZENoYW5nZSgpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmZ1
bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNVc2VyRGVm
YXVsdHNFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TVXNlckRl
ZmF1bHRzRXh0cmFzLm1tCmluZGV4IDk3YzA1OTQzZTI5ZGJhOTBhMTc3MzBlMTNlNWE4NzI1ZTc2
ZmIzY2QuLjgyMjM1ODRhYjEyMmVjYzQxYjNhZTUxYTEyOWY0MmRhMzA4ZmFkM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4
dHJhcy5tbQpAQCAtMjgsMTEgKzI4LDkgQEAKIAogI2ltcG9ydCAiV2ViTlNVc2VyRGVmYXVsdHNF
eHRyYXMuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9MYW5ndWFnZS5oPgorI2ltcG9ydCA8d3RmL0xh
bmd1YWdlLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KIEBpbXBsZW1lbnRhdGlvbiBOU1VzZXJEZWZhdWx0cyAoV2ViTlNVc2Vy
RGVmYXVsdHNFeHRyYXMpCiAKICsgKE5TU3RyaW5nICopX3dlYmtpdF9wcmVmZXJyZWRMYW5ndWFn
ZUNvZGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>