<?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>215503</bug_id>
          
          <creation_ts>2020-08-14 08:03:08 -0700</creation_ts>
          <short_desc>[GTK][WPE] Remove support for NPAPI plugins</short_desc>
          <delta_ts>2020-08-17 06:27:04 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=215565</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1680273</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-14 08:03:08 -0700</bug_when>
    <thetext>Now that we have branched for 2.30 it&apos;s a good moment to finally remove the plugins support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680279</commentid>
    <comment_count>1</comment_count>
      <attachid>406594</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-14 08:41:48 -0700</bug_when>
    <thetext>Created attachment 406594
Patch

I hope I caught all tests using plugins, I&apos;ll watch the bots once the patch lands. I&apos;ll also close all bug reports about plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680282</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-08-14 08:43:18 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680332</commentid>
    <comment_count>3</comment_count>
      <attachid>406594</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-14 10:42:01 -0700</bug_when>
    <thetext>Comment on attachment 406594
Patch

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

&gt; LayoutTests/platform/glib/TestExpectations:956
&gt; +# Plugins

Here’s a follow-up task that’s helpful for clarity and the future, but is a little extra work because of the platforms that still do have the plug-in support around.

Seems like it’s worthwhile to *move* these tests all into the plugins and http/tests/plugins directories.

Except for the tests that just *happen* to use plug-ins that could be redone to test the same thing without a plug-in. Those we could *copy* into the plugins or http/tests/plugins directory and modify (and possibly rename) the original to not use plug-ins any more.

It could be a little bit of a pain to do those moves, but I think it’s good for the health of the project. And it would also make this skipping only two lines long.

The alternative is to wait until we can delete plug-in support on all platforms, then we can delete instead of moving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680767</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-17 05:41:16 -0700</bug_when>
    <thetext>Committed r265753: &lt;https://trac.webkit.org/changeset/265753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406594</attachid>
            <date>2020-08-14 08:41:48 -0700</date>
            <delta_ts>2020-08-14 10:42:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-kill-plugins.diff</filename>
            <type>text/plain</type>
            <size>206937</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1M2VkZDJjYzFkMzAuLjMz
ZDk3NjllOGM3MCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIwLTA4LTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFJlbW92ZSBzdXBwb3J0IGZvciBOUEFQSSBw
bHVnaW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTU1MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorCiAyMDIwLTA4LTEyICBLZWl0aCBSb2xs
aW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIG5lZWQgZm9yIGRl
ZmluaW5nIFVTRV9ORVdfQlVJTERfU1lTVEVNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGJiMGJiOTM0MTU5Li5iODlmNjI3
NzkyN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wOC0xNCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBSZW1vdmUg
c3VwcG9ydCBmb3IgTlBBUEkgcGx1Z2lucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2tpcCB0ZXN0cyB1c2luZyBwbHVnaW5zIGFuZCByZW1vdmUgZXhw
ZWN0YXRpb25zLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3BsdWdpbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvcGx1Z2lucy9wbHVnaW4tamF2YXNjcmlwdC1h
Y2Nlc3MtYWxsb3ctYWxsLXBsdWdpbnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9wbHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUt
ZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9wbHVnaW5zL2Vt
YmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9wbHVnaW5zL2lmcmFtZS1wbHVnaW4tYmdjb2xvci1leHBlY3RlZC5wbmc6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3BsdWdpbnMvaW52YWxpZGF0ZS1yZWN0LXdp
dGgtbnVsbC1ucHAtYXJndW1lbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9wbHVnaW5zL2ludmFsaWRhdGUtcmVjdC13aXRoLW51bGwtbnBwLWFyZ3VtZW50
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbW91c2UtY2xp
Y2stcGx1Z2luLWNsZWFycy1zZWxlY3Rpb24tZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9wbHVnaW5zL21vdXNlLWNsaWNrLXBsdWdpbi1jbGVhcnMtc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvcGx1Z2lu
cy9uZXN0ZWQtcGx1Z2luLW9iamVjdHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9wbHVnaW5zL25ldHNjYXBlLWRlc3Ryb3ktcGx1Z2luLXNjcmlwdC1vYmpl
Y3RzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvcGx1Z2lu
cy9uZXRzY2FwZS1kb20tYWNjZXNzLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvcGx1Z2lucy9uZXRzY2FwZS1kb20tYWNjZXNzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvcGx1Z2lucy9ucHJ1bnRpbWUvb2JqZWN0LWZy
b20tZGVzdHJveWVkLXBsdWdpbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL3BsdWdpbnMvbnBydW50aW1lL29iamVjdC1mcm9tLWRlc3Ryb3llZC1wbHVnaW4t
aW4tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9wbHVnaW5zL3BsdWdpbi1jbGlwLXN1YmZyYW1lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvcGx1Z2lucy9wbHVnaW4taW5pdGlhdGUtcG9wdXAtd2luZG93
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvcGx1Z2lucy9w
bHVnaW4tamF2YXNjcmlwdC1hY2Nlc3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9wbHVnaW5zL3Jlc2l6ZS1mcm9tLXBsdWdpbi1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAt
MDgtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1dlYlhSXSBJbXBsZW1lbnQgV2ViWFJTZXNzaW9uOjp1cGRhdGVSZW5kZXJTdGF0ZSgpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjdjMjEyZjQ0
NTA0Li42YjUzMzcyZjg5OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTk1Myw2ICs5NTMsNzYgQEAgd2Via2l0Lm9yZy9iLzE5MzYyMyBhY2Nlc3Np
YmlsaXR5L3NldC1zZWxlY3RlZC1lZGl0YWJsZS5odG1sIFsgU2tpcCBdCiAjIFBheW1lbnQgUmVx
dWVzdAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QgWyBT
a2lwIF0KIAorIyBQbHVnaW5zCitwbHVnaW5zLyBbIFNraXAgXQoraHR0cC90ZXN0cy9wbHVnaW5z
IFsgU2tpcCBdCitodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL3BsdWdpbi1kb2VzbnQtY3Jh
c2guaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2lu
Lmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1h
bGxvd2VkLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBs
dWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9nZ2xlZC1hbGxv
d2VkLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9wbHVnaW50eXBlcy1hZmZlY3RzLWNoaWxkLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9wbHVnaW50eXBlcy1pbnZhbGlk
Lmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
LzEuMS9wbHVnaW50eXBlcy1taXNtYXRjaGVkLWRhdGEuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3BsdWdpbnR5cGVzLW1pc21hdGNo
ZWQtdXJsLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5LzEuMS9wbHVnaW50eXBlcy1ub3R5cGUtZGF0YS5odG1sIFsgU2tpcCBdCitodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvcGx1Z2ludHlwZXMtbm90eXBl
LXVybC5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS8xLjEvcGx1Z2ludHlwZXMtbm91cmwtYWxsb3dlZC5odG1sIFsgU2tpcCBdCitodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvcGx1Z2ludHlwZXMtbm91cmwt
YmxvY2tlZC5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS8xLjEvcGx1Z2ludHlwZXMtdXJsLTAxLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9wbHVnaW50eXBlcy11cmwtMDIuaHRt
bCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxv
Y2stYWxsLW1peGVkLWNvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtcGx1Z2lu
Lmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2VtYmVkLXdpdGgtbm8tdXJsLWFsbG93ZWQtYnktZGVmYXVsdC1zcmMtc3Rhci5odG1sIFsgU2tp
cCBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9lbWJlZC13aXRo
LW5vLXVybC1hbGxvd2VkLWJ5LXN0YXIuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1kb2VzLW5vdC1hZmZlY3QtY2hpbGQu
aHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
b2JqZWN0LXNyYy1uby11cmwtYWxsb3dlZC5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLW5vLXVybC1ibG9ja2VkLmh0bWwg
WyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVj
dC1zcmMtbm9uZS1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja2VkLmh0bWwgWyBTa2lwIF0K
K2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtcGFy
YW0tY29kZS1ibG9ja2VkLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtcGFyYW0tbW92aWUtYmxvY2tlZC5odG1sIFsgU2tp
cCBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3Jj
LXBhcmFtLXNyYy1ibG9ja2VkLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtcGFyYW0tdXJsLWJsb2NrZWQuaHRtbCBbIFNr
aXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXdp
dGgtbm8tdXJsLWFsbG93ZWQtYnktZGVmYXVsdC1zcmMtc3Rhci5odG1sIFsgU2tpcCBdCitodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtd2l0aC1uby11cmwt
YWxsb3dlZC1ieS1zdGFyLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3BsdWdpbi1ibG9ja2VkLWluLWFib3V0LWJsYW5rLXdpbmRvdy5odG1s
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3Vy
Y2UtbGlzdC1wYXJzaW5nLW5vLXNlbWljb2xvbi5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vYWxsb3ctZW1i
ZWQtcGx1Z2luLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9hbGxvdy1vYmplY3QtcGx1Z2luLmh0bWwgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvc3RvcmFnZS1ibG9ja2luZy1sb29zZW5lZC1wbHVn
aW4uaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLWxv
b3NlbmVkLXByaXZhdGUtYnJvd3NpbmctcGx1Z2luLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMv
c2VjdXJpdHkvc3RvcmFnZS1ibG9ja2luZy1zdHJlbmd0aGVuZWQtcGx1Z2luLmh0bWwgWyBTa2lw
IF0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvc3RvcmFnZS1ibG9ja2luZy1zdHJlbmd0aGVuZWQtcHJp
dmF0ZS1icm93c2luZy1wbHVnaW4uaHRtbCBbIFNraXAgXQorY29tcG9zaXRpbmcvcGx1Z2lucyBb
IFNraXAgXQorY29tcG9zaXRpbmcvZ2VvbWV0cnkvZW1wdHktZW1iZWQtcmVjdHMuaHRtbCBbIFNr
aXAgXQorYWNjZXNzaWJpbGl0eS9wbHVnaW4uaHRtbCBbIFNraXAgXQorZWRpdGluZy9zZWxlY3Rp
b24vc2VsZWN0aW9uLXBsdWdpbi1jbGVhci1jcmFzaC5odG1sIFsgU2tpcCBdCitmYXN0L2ZyYW1l
cy9pZnJhbWUtcGx1Z2luLWxvYWQtcmVtb3ZlLWRvY3VtZW50LWNyYXNoLmh0bWwgWyBTa2lwIF0K
K2Zhc3QvaGlzdG9yeS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sIFsgU2tpcCBd
CitmYXN0L2ltYWdlcy9lbWJlZC1kb2VzLW5vdC1wcm9wYWdhdGUtZGltZW5zaW9ucy10by1vYmpl
Y3QtYW5jZXN0b3IuaHRtbCBbIFNraXAgXQorZmFzdC9sYXllcnMvY2xpcC1yZWN0cy10cmFuc2Zv
cm1lZC0yLmh0bWwgWyBTa2lwIF0KK2Zhc3QvbGF5ZXJzL2NsaXAtcmVjdHMtdHJhbnNmb3JtZWQu
aHRtbCBbIFNraXAgXQorZmFzdC9sb2FkZXIvbG9hZEluUHJvZ3Jlc3MuaHRtbCBbIFNraXAgXQor
ZmFzdC9sb2FkZXIvcmVsb2FkLXplcm8tYnl0ZS1wbHVnaW4uaHRtbCBbIFNraXAgXQorZmFzdC9y
ZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAuaHRtbCBbIFNraXAgXQorZmFzdC9yZXBsYWNlZC9l
bWJlZC1kaXNwbGF5LW5vbmUuaHRtbCBbIFNraXAgXQorZmFzdC9yZXBsYWNlZC9pbnZhbGlkLW9i
amVjdC13aXRoLWZhbGxiYWNrLmh0bWwgWyBTa2lwIF0KK2Zhc3QvcmVwbGFjZWQvbm8tZm9jdXMt
cmluZy1lbWJlZC5odG1sIFsgU2tpcCBdCitmYXN0L3JlcGxhY2VkL25vLWZvY3VzLXJpbmctb2Jq
ZWN0Lmh0bWwgWyBTa2lwIF0KK2Zhc3QvcmVwbGFjZWQvb2JqZWN0LXdpdGgtbm9uLWVtcHR5LWNs
YXNzaWQtdHJpZ2dlcnMtZmFsbGJhY2suaHRtbCBbIFNraXAgXQorZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1wbHVnaW4uaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9wbHVn
aW5zIFsgU2tpcCBdCitpbXBvcnRlZC9ibGluay9wbHVnaW5zIFsgU2tpcCBdCitqcy9kb20vcmVm
bGVjdC1zZXQtb250by1kb20uaHRtbCBbIFNraXAgXQorc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MtcXVpY2t0aW1lLXBsdWdpbi1yZXBsYWNlbWVu
dC5odG1sIFsgU2tpcCBdCitzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNy
Yy1ub25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCitz
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MtcXVpY2t0
aW1lLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCitzZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1l
bnQuaHRtbCBbIFNraXAgXQorc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMt
dHlwZXMtYmxvY2tzLXF1aWNrdGltZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1taW1lLXR5
cGUuaHRtbCBbIFNraXAgXQorc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMt
dHlwZXMtYmxvY2tzLXF1aWNrdGltZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQor
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLmh0bWwgWyBTa2lwIF0KK3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJl
LXBsdWdpbi1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCisKICMgV2ViQXJjaGl2ZQogd2ViYXJj
aGl2ZSBbIFdvbnRGaXggXQogaHR0cC90ZXN0cy93ZWJhcmNoaXZlIFsgV29udEZpeCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMyMTM5NmM3MmJlMS4u
YTM3YmQzNGExYmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMzQ1LDggKzM0NSw2IEBAIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvb3Zl
cmZsb3cvY2xpcHBpbmctYmVoYXZpb3VyLWNoYW5nZS1pcy1ub3QtcHJvcGFnCiB3ZWJraXQub3Jn
L2IvMTY5OTE4IGNvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LWF1dG8td2l0aC10b3VjaC10
b2dnbGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9v
dmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL292ZXJmbG93L3VwZGF0aW5nLXNjcm9sbGluZy1j
b250ZW50Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcv
cGx1Z2lucy9uby1iYWNraW5nLXN0b3JlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
Njk5MTggY29tcG9zaXRpbmcvcGx1Z2lucy9zbWFsbC10by1sYXJnZS1jb21wb3NpdGVkLXBsdWdp
bi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3JlcGFp
bnQvaW52YWxpZGF0aW9ucy1vbi1jb21wb3NpdGVkLWxheWVycy5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3JlcGFpbnQvcG9zaXRpb25lZC1tb3ZlbWVu
dC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3JlcGFp
bnQvcmVzaXplLXJlcGFpbnQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDAxLDcgKzM5OSw2IEBAIHdl
YmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5LWNvbXBv
c2l0ZWQtdHJhbnNmb3Jtcy5odG1sCiB3ZWJraXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3Zp
c2liaWxpdHkvdmlzaWJpbGl0eS1jb21wb3NpdGVkLmh0bWwgWyBNaXNzaW5nIEZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1uby1hbHBoYS5odG1s
IFsgTWlzc2luZyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvd2Vi
Z2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sIFsgTWlzc2luZyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xNjk5MTggY29tcG9zaXRpbmcvcGx1Z2lucy9jb21wb3NpdGVkLXBsdWdpbi5odG1sIFsgTWlz
c2luZyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvZml4ZWQtd2l0
aC1maXhlZC1sYXlvdXQuaHRtbCBbIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9z
aXRpbmcvdmlkZW8vdmlkZW8tYmFja2dyb3VuZC1jb2xvci5odG1sIFsgQ3Jhc2ggUGFzcyBdCiB3
ZWJraXQub3JnL2IvMjE0ODY4IGNvbXBvc2l0aW5nL2NsaXBwaW5nL2JvcmRlci1yYWRpdXMtc3Rh
Y2tpbmctY29udGV4dC1jbGlwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KQEAgLTU2OCw5ICs1
NjUsNiBAQCB3ZWJraXQub3JnL2IvMTMxNTQ2IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtbW9k
ZS5odG1sIFsgU2tpcCBdCiAjIERhdGFDdWUudmFsdWUgbm90IGVuYWJsZWQKIEJ1ZyhHVEspIGh0
dHAvdGVzdHMvbWVkaWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEuaHRtbCBbIFNraXAgXQog
Ci0jIFNuYXBzaG90dGVkIHBsdWdpbnMgbm90IGVuYWJsZWQKLXdlYmtpdC5vcmcvYi85ODY5NiBw
bHVnaW5zL3NuYXBzaG90dGluZyBbIFNraXAgXQotCiAjIE1pc3NpbmcgV2ViU3BlZWNoIGltcGxl
bWVudGF0aW9uCiB3ZWJraXQub3JnL2IvMTM2MjI0IGZhc3Qvc3BlZWNoc3ludGhlc2lzIFsgU2tp
cCBdCiAKQEAgLTYxMCw5ICs2MDQsNiBAQCBlZGl0aW5nL2luc2VydGluZy9zbWFydC1saW5rLXdo
ZW4tY2FyZXQtaXMtbW92ZWQtYmVmb3JlLVVSTC5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL2luc2Vy
dGluZy9zbWFydC1xdW90ZS13aXRoLWFsbC1jb25maWd1cmF0aW9ucy5odG1sIFsgU2tpcCBdCiBm
YXN0L2V2ZW50cy9pbnB1dC1ldmVudC1pbnNlcnQtbGluay5odG1sIFsgU2tpcCBdCiAKLSMgUXVp
Y2tUaW1lIHBsdWctaW4gbm90IHJlbGV2YW50IHRvIHRoaXMgcG9ydAotQnVnKEdUSykgcGx1Z2lu
cy9xdWlja3RpbWUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KLQogIyBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKSBpcyBkaXNhYmxlZC4KIGNzczMvc2Nyb2xsLXNuYXAgWyBTa2lwIF0K
IApAQCAtODU3LDE2ICs4NDgsNiBAQCB3ZWJraXQub3JnL2IvMTYwMTIwIGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLWVtb2ppLTkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2MDEyMCBmYXN0
L3RleHQvZW1vamktc2luZ2xlLXBhcmVudC1mYW1pbHkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzE2MDEyMCBlZGl0aW5nL2NhcmV0L2Vtb2ppLmh0bWwgWyBTa2lwIF0KIAotIyBObyBzdXBw
b3J0IGZvciBRdWlja1RpbWUvWW91VHViZSBwbHVnaW4gcmVwbGFjZW1lbnQuCi1zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy1xdWlja3RpbWUtcGx1
Z2luLXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KLXNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0
bWwgWyBTa2lwIF0KLXNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVz
LWFsbG93cy1xdWlja3RpbWUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KLXNlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCi1zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MtcXVpY2t0aW1lLXBsdWdpbi1yZXBsYWNlbWVudC13
aXRob3V0LW1pbWUtdHlwZS5odG1sIFsgU2tpcCBdCi1zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MtcXVpY2t0aW1lLXBsdWdpbi1yZXBsYWNlbWVudC5o
dG1sIFsgU2tpcCBdCi1zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBl
cy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1taW1lLXR5cGUuaHRt
bCBbIFNraXAgXQotc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMt
YmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KLQogIyBObyBz
dXBwb3J0IGZvciBkZXNjcmlwdGl2ZSBhdWRpbyB0cmFja3MgaW4gSExTIGZpbGUKIGh0dHAvdGVz
dHMvbWVkaWEvaGxzL2hscy1hY2Nlc3NpYmxpdHktZGVzY3JpYmVzLXZpZGVvLW1lbnUuaHRtbCBb
IFNraXAgXQogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWFjY2Vzc2libGl0eS1kZXNjcmliZXMt
dmlkZW8uaHRtbCBbIFNraXAgXQpAQCAtOTAwLDkgKzg4MSw2IEBAIGZhc3QvaW1hZ2VzL2ltYWdl
LW1hcC1vdXRsaW5lLXdpdGgtc2NhbGUtdHJhbnNmb3JtLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIAogd2Via2l0Lm9yZy9iLzE2ODQzMyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGly
ZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBXZWJLaXQyIHBs
dWctaW5zOiBObyBzdXBwb3J0IGZvciBnZXR0aW5nIHRoZSBmb3JtIHZhbHVlLgotcGx1Z2lucy9m
b3JtLXZhbHVlLmh0bWwgWyBTa2lwIF0KLQogIyBSZXF1aXJlIEZJTEVfUkVQTEFDRU1FTlQuCiBm
YXN0L2ZpbGVzL2ZpbGVyZWFkZXItemlwLWJ1bmRsZS11c2luZy1vcGVuLXBhbmVsLmh0bWwgWyBT
a2lwIF0KIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS91cGxvYWQtemlwLWJ1bmRsZS1hcy1ibG9i
LXVzaW5nLW9wZW4tcGFuZWwuaHRtbCBbIFNraXAgXQpAQCAtOTcyLDkgKzk1MCw2IEBAIHdlYmtp
dC5vcmcvYi8xODcwNDQgd2ViYW5pbWF0aW9ucy9vcGFjaXR5LWFuaW1hdGlvbi15aWVsZHMtY29t
cG9zaXRpbmctc3Bhbi5odG1sCiAjIFJlcXVpcmVzIHN1cHBvcnQgZm9yIHRlc3RpbmcgdGV4dCBy
ZXBsYWNlbWVudAogZWRpdGluZy9zcGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGlu
Zy10by13b3JkLmh0bWwgWyBTa2lwIF0KIAotIyBEZXBlbmRzIG9uIG1hYy1zcGVjaWZpYyBjb2Rl
IGluIFRlc3RDb250cm9sbGVyLgotd2Via2l0Lm9yZy9iLzE4NzU1MCBodHRwL3Rlc3RzL3BsdWdp
bnMvcGx1Z2luLWFsbG93LXRoZW4tcmVsb2FkLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBNZWRpYVJl
Y29yZGVyIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQKIGh0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXJlY29yZCBbIFNraXAgXQpAQCAtMTIyMywxNCArMTE5OCw4IEBAIHdlYmtpdC5vcmcvYi8yMTQ0
NzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3Qt
cmF0aW8vCiAKIHdlYmtpdC5vcmcvYi85MDk1NyBbIFJlbGVhc2UgXSBqcy9kb20vcmFuZG9tLWFy
cmF5LWdjLXN0cmVzcy5odG1sIFsgVGltZW91dCBDcmFzaCBQYXNzIF0KIAotd2Via2l0Lm9yZy9i
LzEwNTY4OSBbIERlYnVnIF0gcGx1Z2lucy9ucHJ1bnRpbWUvZW1iZWQtcHJvcGVydHktaWZyYW1l
LWVxdWFsaXR5Lmh0bWwgWyBDcmFzaCBdCi0KIHdlYmtpdC5vcmcvYi8xMjAyMDAgWyBEZWJ1ZyBd
IGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtYWxsb3dh
bGwuaHRtbCBbIENyYXNoIFBhc3MgXQogCi1CdWcoR1RLKSBwbHVnaW5zL2RvY3VtZW50LW9wZW4u
aHRtbCBbIENyYXNoIFRpbWVvdXQgXQotCi13ZWJraXQub3JnL2IvODIwMjAgcGx1Z2lucy9uZXRz
Y2FwZS1kb20tYWNjZXNzLWFuZC1yZWxvYWQuaHRtbCBbIEZhaWx1cmUgQ3Jhc2ggUGFzcyBdCi0K
IHdlYmtpdC5vcmcvYi8xNjM4MjYgc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5
LWF0dHJpYnV0ZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzE1MjY0MiBo
dHRwL3Rlc3RzL21pc2MvZGV0YWNoZWQtZnJhbWUtY29uc29sZS5odG1sIFsgQ3Jhc2ggUGFzcyBU
aW1lb3V0IEZhaWx1cmUgXQpAQCAtMTMwNiw4ICsxMjc1LDYgQEAgd2Via2l0Lm9yZy9iLzU1MTI2
IG1lZGlhL3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sIFsgRmFpbHVyZSBDcmFzaCBUaW1lb3V0IFBh
c3MgXQogd2Via2l0Lm9yZy9iLzEyMjQ4MSBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGhsaXN0LWFu
aW1hdGlvbi0zLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzYyMjA0IHN2Zy9j
dXN0b20vY2lyY3VsYXItbWFya2VyLXJlZmVyZW5jZS00LnN2ZyBbIEZhaWx1cmUgUGFzcyBdCiAK
LXdlYmtpdC5vcmcvYi8xMTk3MzUgWyBEZWJ1ZyBdIHBsdWdpbnMvdW5hdmFpbGFibGUtcGx1Z2lu
LWluZGljYXRvci1vYnNjdXJpdHkuaHRtbCBbIFNraXAgXQotCiB3ZWJraXQub3JnL2IvNzE3Nzcg
ZmFzdC9saXN0cy9pbmxpbmVCb3hXcmFwcGVyTnVsbENoZWNrLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQogCiB3ZWJraXQub3JnL2IvODAxMjkgZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxh
dHRlbmluZy1maXhlZC13aWR0aC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KQEAgLTEzNzEsOCArMTMz
OCw2IEBAIHdlYmtpdC5vcmcvYi8xMTkyNTMgWyBEZWJ1ZyBdIGZhc3QvbWVkaWEvdXBkYXRlLW1l
ZGlhLXF1ZXJ5LWNzcy1wYXJzZXIuaHRtbCBbIFRpCiAKIHdlYmtpdC5vcmcvYi8xMjQ1MTEgbWVk
aWEvdmlkZW8tcGxheWVkLXJlc2V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgQ3Jhc2ggXQogCi13ZWJr
aXQub3JnL2IvMTI1NDA3IHBsdWdpbnMvcGx1Z2luLWNsaXAtc3ViZnJhbWUuaHRtbCBbIEZhaWx1
cmUgUGFzcyBdCi0KIHdlYmtpdC5vcmcvYi8xMjY0MjAgZmFzdC90YWJsZS9keW5hbWljLWNhcHRp
b24tYWRkLWJlZm9yZS1jaGlsZC54aHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcv
Yi8xMjY0MzIgZmFzdC9jc3MvYWNpZDItcGl4ZWwuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCkBAIC0x
NDM5LDggKzE0MDQsNiBAQCB3ZWJraXQub3JnL2IvMTM0NTc2IFsgRGVidWcgXSBtZWRpYS90cmFj
ay90cmFjay1jdWUtcmVuZGVyaW5nLmh0bWwgWyBGYWlsdXJlIFRpbQogd2Via2l0Lm9yZy9iLzEz
NDU3NiBtZWRpYS90cmFjay92aWRlby92aWRlby10cmFjay1ta3YtdGhlb3JhLXNlbGVjdGVkLmh0
bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBDcmFzaCBdCiB3ZWJraXQub3JnL2IvMTM0NTc2IHdl
YmtpdC5vcmcvYi8xOTg4MzAgbWVkaWEvdHJhY2svdmlkZW8vdmlkZW8tdHJhY2stbWt2LXRoZW9y
YS1sYW5ndWFnZS5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgQ3Jhc2ggXQogCi13ZWJraXQu
b3JnL2IvMTM0NzYwIHBsdWdpbnMvbGF5b3V0LWluLWJlZm9yZWxvYWQtbGlzdGVuZXItYWZmZWN0
cy1wbHVnaW4tbG9hZGluZy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzEz
NTU4MyBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktcHJvZ3Jlc3MuaHRtbCBbIENyYXNoIFRp
bWVvdXQgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9maWxsLW1vZGUt
aXRlcmF0aW9uLWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQpAQCAtMTQ3
Miw5ICsxNDM1LDYgQEAgd2Via2l0Lm9yZy9iLzUzOTU5IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cmVzaXplLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xNTM3
NzEgYW5pbWF0aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sIFsgVGltZW91dCBGYWls
dXJlIFBhc3MgXQogCi13ZWJraXQub3JnL2IvMTUzOTQyIHBsdWdpbnMvcHJpdmF0ZS1icm93c2lu
Zy1tb2RlLTIuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMTUzOTQyIHBsdWdp
bnMvcHJpdmF0ZS1icm93c2luZy1tb2RlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQu
b3JnL2IvMTUzOTQzIHdlYmF1ZGlvL2NvbnZvbHV0aW9uLW1vbm8tbW9uby5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzE1NjQzNiBmYXN0L2hhcm5lc3Mvc2FtcGxlLWZhaWwt
bWlzbWF0Y2gtcmVmdGVzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KQEAgLTE1MDYs
MTAgKzE0NjYsNiBAQCB3ZWJraXQub3JnL2IvMTUzOTQxIGZhc3QvdGV4dC9jb250cm9sLWNoYXJh
Y3RlcnMvdmlzaWJsZS1jb250cm9sLWNoYXJhY3RlcnMtMi54aAogd2Via2l0Lm9yZy9iLzE1Mzk0
MSBmYXN0L3RleHQvY29udHJvbC1jaGFyYWN0ZXJzL3Zpc2libGUtY29udHJvbC1jaGFyYWN0ZXJz
LTMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTUzOTQxIGZh
c3QvdGV4dC9jb250cm9sLWNoYXJhY3RlcnMvdmlzaWJsZS1jb250cm9sLWNoYXJhY3RlcnMtMy54
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xNjAxMzYgaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9n
Z2xlZC1hbGxvd2VkLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCi13ZWJraXQub3JnL2IvMTYzNTMy
IHBsdWdpbnMvanMtZnJvbS1kZXN0cm95Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQu
b3JnL2IvMTY4NzgwIGZhc3QvZm9ybXMvaW5wdXQtZmlyc3QtbGV0dGVyLWVkaXQuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xMTYyNzcgd2Via2l0Lm9yZy9i
LzE5ODgzMCBtZWRpYS92aWRlby1idWZmZXJlZC5odG1sIFsgUGFzcyBGYWlsdXJlIENyYXNoIF0K
QEAgLTE2MTUsOCArMTU3MSw2IEBAIHdlYmtpdC5vcmcvYi8xODc1ODkgaW5zcGVjdG9yL3VuaXQt
dGVzdHMvZGVib3VuY2VyLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBdCiAKIHdlYmtpdC5v
cmcvYi8xODc1OTAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9u
cy90aW1pbmctbW9kZWwvdGltZWxpbmVzL2RvY3VtZW50LXRpbWVsaW5lcy5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KIAotd2Via2l0Lm9yZy9iLzE4Nzc2MSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS8xLjEvcGx1Z2ludHlwZXMtYWZmZWN0cy1jaGlsZC5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE4Nzc2MCBmYXN0L21lZGlhc3RyZWFtL2dldC11
c2VyLW1lZGlhLW9uLWxvYWRlZG1ldGFkYXRhLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJr
aXQub3JnL2IvMTY4MzU3IGh0dHAvd3B0L3Jlc291cmNlLXRpbWluZy9ydC1pbml0aWF0b3JUeXBl
LW1lZGlhLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMTY0Myw4ICsxNTk3LDYgQEAgd2Via2l0
Lm9yZy9iLzE5MTY4MCBlZGl0aW5nL3Bhc3RlYm9hcmQvZGlzcGxheS1ibG9jay1vbi1zcGFucy5o
dG1sIFsgRmFpbHVyZSBQYXMKIAogd2Via2l0Lm9yZy9iLzE5MTY4NSBodHRwL3dwdC9jc3MvY3Nz
LWFuaW1hdGlvbnMvc2V0LWFuaW1hdGlvbi1wbGF5LXN0YXRlLXRvLXBhdXNlZC0wMDEuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgUGFzcyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzE5MTY4NyBp
bXBvcnRlZC9ibGluay9odHRwL3Rlc3RzL3BsdWdpbnMvZ2V0LXVybC1ub3RpZnktb24tcmVtb3Zh
bC5odG1sIFsgVGltZW91dCBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzE5MjE0OSBpbXBvcnRlZC9i
bGluay9hbmltYXRpb25zL2FuaW1hdGlvbi1ldmVudHMtcHJlZml4ZWQtMDEuaHRtbCBbIFRpbWVv
dXQgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xOTI5MDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRp
cmVjdC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KQEAgLTIyOTAsOCArMjI0Miw2IEBAIHdl
YmtpdC5vcmcvYi8xMDg5MjUgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXN0YWxsLmh0bWwg
WyBGYWlsdXJlIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci9kZWJ1
Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sIFsgVGltZW91dCBdCiAKLUJ1ZyhHVEspIHBsdWdp
bnMvcmVsb2FkcGx1Z2lucy1hbmQtcGFnZXMuaHRtbCBbIFRpbWVvdXQgXQotCiB3ZWJraXQub3Jn
L2IvMTM1MDUzIGh0bWw1bGliL3dlYmtpdC1yZXN1bWVyLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQog
CiB3ZWJraXQub3JnL2IvMTM1MDg2IG1lZGlhL3ZpZGVvLXNlZWstd2l0aC1uZWdhdGl2ZS1wbGF5
YmFjay5odG1sIFsgVGltZW91dCBQYXNzIF0KQEAgLTI0MDUsOCArMjM1NSw2IEBAIHdlYmtpdC5v
cmcvYi8yMDYxNDcgaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBb
IFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzIwMjczNiBodHRwL3Rlc3RzL2FwcGNhY2hlL3JlbW92
ZS1jYWNoZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjAyNzM2IFsgUmVsZWFzZSBd
IGh0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvcXVvdGEtdGhpcmQtcGFydHkuaHR0cHMuaHRtbCBbIEZh
aWx1cmUgUGFzcyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzIwNjg3NiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3N0b3JhZ2UtYmxvY2tpbmctc3RyZW5ndGhlbmVkLXByaXZhdGUtYnJvd3NpbmctcGx1
Z2luLmh0bWwgWyBUaW1lb3V0IF0KLQogd2Via2l0Lm9yZy9iLzIwNzcxMSBmYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQogd2Via2l0Lm9yZy9iLzIwNzcxMSBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvbWVkaWFxdWVyaWVzL3Rlc3RfbWVkaWFfcXVlcmllcy5odG1sIFsg
VGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjA3NzExIFsgRGVidWcgXSBmYXN0L3NlbGVjdG9ycy9z
bG93LXN0eWxlLXNoYXJpbmctd2l0aC1sb25nLWNvdXNpbi1saXN0Lmh0bWwgWyBUaW1lb3V0IF0K
QEAgLTI1NDIsOCArMjQ5MCw2IEBAIHdlYmtpdC5vcmcvYi8xNTcxNzkgZmFzdC9mb3Jtcy9kcmFn
LW91dC1vZi10ZXh0YXJlYS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU3MTc5IGZh
c3QvZm9ybXMvcmFuZ2Uvc2xpZGVyLWRlbGV0ZS13aGlsZS1kcmFnZ2luZy10aHVtYi5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU3MTc5IGZhc3QvbGlzdHMvZHJhZy1pbnRvLW1hcmtl
ci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU3MTc5IGh0dHAvdGVzdHMvc2VjdXJp
dHkvcmVzb3VyY2VzL2RyYWctZHJvcC1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcv
Yi8xNTcxNzkgcGx1Z2lucy9tb3VzZS1ldmVudHMtZml4ZWRwb3MuaHRtbCBbIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzE1NzE3OSBwbHVnaW5zL21vdXNlLWV2ZW50cy5odG1sIFsgRmFpbHVyZSBU
aW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNTcxNzkgZWRpdGluZy9wYXN0ZWJvYXJkL2NsZWFudXAt
b24tbW92ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU3MTc5IGVkaXRpbmcvcGFz
dGVib2FyZC9kcmFnLWxpc3QtaXRlbS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU3
MTc5IGZhc3QvZXZlbnRzL29uZHJhZ2VudGVyLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTI1ODAsMTAg
KzI1MjYsNiBAQCBCdWcoR1RLKSBzdmcvdGV4dC9zZWxlY3QtdGV4dExlbmd0aC1zcGFjaW5nLXN0
cmV0Y2gtMS5zdmcgWyBGYWlsdXJlIFBhc3MgXQogQnVnKEdUSykgc3ZnL3RleHQvc2VsZWN0LXgt
bGlzdC0xLnN2ZyBbIEZhaWx1cmUgUGFzcyBdCiBCdWcoR1RLKSBzdmcvdGV4dC9zZWxlY3QteC1s
aXN0LXdpdGgtdHNwYW5zLTEuc3ZnIFsgRmFpbHVyZSBQYXNzIF0KIAotIyBbUXRdW1dLMl0gTmV3
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbiogdGVzdHMgZmFpbAotIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5MzUKLXdlYmtpdC5vcmcv
Yi85NTkzNSBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4uaHRtbCBbIEZh
aWx1cmUgXQotCiAjIE1pc3Npbmcgc3VwcG9ydCBmb3IgdGhlIG1vZGlmaWVyQXJyYXkgYXJndW1l
bnQgdG8gRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VNb3ZlVG8oKS4KIEJ1ZyhHVEspIHBs
YXRmb3JtL2d0ay9mYXN0L2V2ZW50cy9ldmVudC1zZW5kZXItbWV0YWtleS5odG1sIFsgRmFpbHVy
ZSBdCiAKQEAgLTI2MTQsMTMgKzI1NTYsNiBAQCBCdWcoR1RLKSBmYXN0L3J1YnkvcnVieS10cmFp
bGluZy5odG1sIFsgRmFpbHVyZSBdCiBCdWcoR1RLKSBmYXN0L3dyaXRpbmctbW9kZS9LdXNhLU1h
a3VyYS1iYWNrZ3JvdW5kLWNhbnZhcy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQogQnVn
KEdUSykgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4teHNsLUJMT0NLRUQuaHRtbCBb
IEZhaWx1cmUgXQogQnVnKEdUSykgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4teHNs
LXJlZGlyZWN0LUJMT0NLRUQuaHRtbCBbIEZhaWx1cmUgXQotQnVnKEdUSykgaHR0cC90ZXN0cy9z
ZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLXN0cmVuZ3RoZW5lZC1wbHVnaW4uaHRtbCBbIEZhaWx1
cmUgXQotQnVnKEdUSykgcGx1Z2lucy9rZXlib2FyZC1ldmVudHMuaHRtbCBbIEZhaWx1cmUgXQot
QnVnKEdUSykgcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tc2V0d2luZG93LXNpemUtMi5odG1sIFsg
RmFpbHVyZSBdCi1CdWcoR1RLKSBwbHVnaW5zL25wcC1zZXQtd2luZG93LWNhbGxlZC1kdXJpbmct
ZGVzdHJ1Y3Rpb24uaHRtbCBbIEZhaWx1cmUgXQotQnVnKEdUSykgcGx1Z2lucy9ucHJ1bnRpbWUv
YnJvd3Nlci1vYmplY3QtaWRlbnRpdHkuaHRtbCBbIEZhaWx1cmUgXQotQnVnKEdUSykgcGx1Z2lu
cy9ucHJ1bnRpbWUvZW1iZWQtcHJvcGVydHktZXF1YWxpdHkuaHRtbCBbIEZhaWx1cmUgXQotQnVn
KEdUSykgcGx1Z2lucy9yZXNpemUtZnJvbS1wbHVnaW4uaHRtbCBbIEZhaWx1cmUgXQogCiAjIFNl
bGVjdGlvbiBkb2Vzbid0IHdvcmsgcHJvcGVybHkuCiBCdWcoR1RLKSBlZGl0aW5nL3NlbGVjdGlv
bi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQpAQCAtMjY2NCw5ICsyNTk5LDYgQEAgd2Via2l0Lm9yZy9iLzEyMTk5NSB3ZWJraXQub3JnL2Iv
MTk4ODMwIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS0KIAogQnVnKEdU
SykgaHR0cC90ZXN0cy9taXNjL2FjaWQzLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBldmVudFNlbmRl
ci5rZXlEb3duIGNhbGwgZG9lcyBub3QgZ2V0IGV4ZWN1dGVkIGZyb20gdGhlIFRlc3ROZXRzY2Fw
ZVBsdWdpbgotd2Via2l0Lm9yZy9iLzkwMzgzIGh0dHAvdGVzdHMvcGx1Z2lucy9wbHVnaW4tZG9j
dW1lbnQtaGFzLWZvY3VzLmh0bWwgWyBTa2lwIF0KLQogd2Via2l0Lm9yZy9iLzMwNjIwIGZhc3Qv
eHNsL3NvcnQtbG9jYWxlLnhtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvNTM5ODYgc3Zn
L3RleHQvY2FyZXQtaW4tc3ZnLXRleHQueGh0bWwgWyBGYWlsdXJlIF0KQEAgLTI3NTAsMTIgKzI2
ODIsNiBAQCB3ZWJraXQub3JnL2IvODU2ODkgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZGlzYWJsZWQuaHRtbCBbIFNraXAgXQogIyBTdGFydGVkIGZhaWxpbmcgYWZ0ZXIg
aXQgd2FzIGFkZGVkIGluIHIxMTY0NzMKIHdlYmtpdC5vcmcvYi84NTk2OSBodHRwL3Rlc3RzL2xv
YWRpbmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbCBbIEZhaWx1cmUg
XQogCi13ZWJraXQub3JnL2IvODY0NDMgcGx1Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13
aXRoaW4taGFzUHJvcGVydHktcmV0dXJuLWZhbHNlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi84NjQ0MyBwbHVnaW5zL25wcnVudGltZS9kZWxldGUtcGx1Z2luLXdpdGhpbi1oYXNQcm9w
ZXJ0eS1yZXR1cm4tdHJ1ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODY0NDMgcGx1
Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13aXRoaW4tc2V0UHJvcGVydHkuaHRtbCBbIEZh
aWx1cmUgXQotCi13ZWJraXQub3JnL2IvNTEwMjcgWyBSZWxlYXNlIF0gcGx1Z2lucy9yZWZjb3Vu
dC1sZWFrcy5odG1sIFsgRmFpbHVyZSBdCi0KICMgRmFpbGluZyBhZnRlciByMTIxMTIxIG9uIGJv
dGggR1RLIGFuZCBFRkwKIHdlYmtpdC5vcmcvYi84OTg0NSBmYXN0L2Zvcm1zL2lucHV0LXNldC1j
b21wb3NpdGlvbi1zY3JvbGwuaHRtbCBbIEZhaWx1cmUgXQogCkBAIC0yODg2LDEyICsyODEyLDYg
QEAgd2Via2l0Lm9yZy9iLzEzMjkxMCBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLXBhcmFn
cmFwaC1jcmFzaGVyLmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzEzMjkxNCBodHRwL3Rl
c3RzL3NlY3VyaXR5L2RyYWctZHJvcC1sb2NhbC1maWxlLmh0bWwgWyBGYWlsdXJlIF0KIAotd2Vi
a2l0Lm9yZy9iLzEzMjkxOSBwbGF0Zm9ybS9ndGsvcGx1Z2lucy9pbnZhbGlkYXRlLXJlY3Qtd2l0
aC1udWxsLW5wcC1hcmd1bWVudC5odG1sIFsgRmFpbHVyZSBdCi0KLXdlYmtpdC5vcmcvYi8xMzI5
MjEgcGx1Z2lucy9ldmFsdWF0ZS1qcy1hZnRlci1yZW1vdmluZy1wbHVnaW4tZWxlbWVudC5odG1s
IFsgRmFpbHVyZSBdCi0KLXdlYmtpdC5vcmcvYi8xMzI5MjMgaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9nZ2xlZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzEzMzE0NiBmYXN0L3N1Yi1waXhlbC9pbmxpbmUtYmxv
Y2std2l0aC1wYWRkaW5nLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzEzMzgwMyBl
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1ieS13b3JkLTAwMS5odG1sIFsgRmFpbHVyZSBdCkBAIC0z
MjI3LDggKzMxNDcsNiBAQCB3ZWJraXQub3JnL2IvMTgyNzYzIGFjY2Vzc2liaWxpdHkvZ3RrL2Nh
cmV0LW9mZnNldHMuaHRtbCBbIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTgyNzY1IGZhc3Qv
dGV4dC9lbXBoYXNpcy1vdmVybGFwLmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQog
Ci13ZWJraXQub3JnL2IvMTgzMDMzIGh0dHAvdGVzdHMvcGx1Z2lucy9zdXBwb3J0ZWQtcGx1Z2lu
LW9yaWdpbi1zcGVjaWZpYy12aXNpYmlsaXR5Lmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9y
Zy9iLzE5ODgzMCBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIFsgUGFzcyBDcmFzaCBd
CiAKIHdlYmtpdC5vcmcvYi8xODM5MDIgZmFzdC9kb20vZnJhbWUtbG9hZGluZy12aWEtZG9jdW1l
bnQtd3JpdGUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvcGx1Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3BsdWdpbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGY0MDk5MGMxZWM1Yi4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3BsdWdpbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0gCi1BWFJvbGU6IEFYR3JvdXAKLUFYUGFyZW50
OiBBWFdlYkFyZWEKLUFYQ2hpbGRyZW46IDAKLUFYUG9zaXRpb246IHsgOC4wMDAwMDAsIDguMDAw
MDAwIH0KLUFYU2l6ZTogeyA3ODQuMDAwMDAwLCAxNTAuMDAwMDAwIH0KLUFYVGl0bGU6IAotQVhE
ZXNjcmlwdGlvbjogCi1BWFZhbHVlOiA8b2JqPgotQVhGb2N1c2FibGU6IDAKLUFYRm9jdXNlZDog
MAotQVhTZWxlY3RhYmxlOiAwCi1BWFNlbGVjdGVkOiAwCi1BWE11bHRpU2VsZWN0YWJsZTogMAot
QVhFbmFibGVkOiAxCi1BWEV4cGFuZGVkOiAwCi1BWFJlcXVpcmVkOiAwCi1BWENoZWNrZWQ6IDAK
LUFYUGxhdGZvcm1BdHRyaWJ1dGVzOiB0b29sa2l0OldlYktpdEd0awotLS0tLS0tLS0tLS0tCi0K
LQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9wbHVn
aW5zL3BsdWdpbi1qYXZhc2NyaXB0LWFjY2Vzcy1hbGxvdy1hbGwtcGx1Z2lucy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9wbHVnaW5zL3BsdWdpbi1q
YXZhc2NyaXB0LWFjY2Vzcy1hbGxvdy1hbGwtcGx1Z2lucy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNzk5ZmUyMzI5YS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWphdmFzY3Jp
cHQtYWNjZXNzLWFsbG93LWFsbC1wbHVnaW5zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLVRlc3Q6IENvbmZpcm0gdGhlIHBsdWdpbiBpcyBwcmVzZW50LgotCi1O
YW1lOiBXZWJLaXQgVGVzdCBQbHVnSW4KLQotRGVzY3JpcHRpb246IFNpbXBsZSBOZXRzY2FwZcKu
IHBsdWctaW4gdGhhdCBoYW5kbGVzIHRlc3QgY29udGVudCBmb3IgV2ViS2l0Ci0KLUZpbGVuYW1l
OiBsaWJUZXN0TmV0c2NhcGVQbHVnSW4uc28KLQotTWltZSBUeXBlczoKLQotVHlwZTogYXBwbGlj
YXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZQotCi1EZXNjcmlwdGlvbjogdGVzdCBuZXRzY2Fw
ZSBjb250ZW50Ci0KLVN1ZmZpeGVzOiB0ZXN0bmV0c2NhcGUKLQotCi1QbHVnaW4uaXRlbSgpIHdv
cmtzLgotCi1QbHVnaW4ubmFtZWRJdGVtKCkgd29ya3MuCi0KLVR5cGU6IGltYWdlL3BuZwotCi1E
ZXNjcmlwdGlvbjogcG5nIGltYWdlCi0KLVN1ZmZpeGVzOiBwbmcKLQotCi1QbHVnaW4uaXRlbSgp
IHdvcmtzLgotCi1QbHVnaW4ubmFtZWRJdGVtKCkgd29ya3MuCi0KLVBsdWdpbkFycmF5Lml0ZW0o
KSB3b3Jrcy4KLQotUGx1Z2luQXJyYXkubmFtZWRJdGVtKCkgd29ya3MuCi0KLVBBU1MhIChGb3Vu
ZCB0aGUgbmV0c2NhcGUgdGVzdCBwbHVnaW4gb24gYSBub24tbG9jYWwgZmlsZSEpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9kb2N1bWVudC1vcGVuLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2RvY3VtZW50LW9wZW4t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTNiZmJmZWZlNmIu
LjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9kb2N1
bWVudC1vcGVuLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotQ09O
U09MRSBNRVNTQUdFOiBQTFVHSU46IERPQ1VNRU5UIE9QRU4gU1VDQ0VTUwotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9lbWJlZC1hdHRyaWJ1dGVzLXN0eWxl
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2VtYmVkLWF0
dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyYjFlZGNiOWVkZDk0ZmY1ZTc5YzEwMjBjODFiMDQ5ZGE5ODEyZGM1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpsaXRlcmFsIDE4OTc3CnpjbWVIdmN7dFZrezshNHxySl9QNSEmVztLTFotfCtr
fHZ9fkVufntHT3FyKzlFKmdrWm5Me0QtTFJqVkBPezk9ewp6clY/VkFxR2NaTFlxaWZnY21JQ0Ji
TUMjKmVlUUdie29+bEBzcTtrTl81RlVuQDZZQEZubSprKnRGRjNiNlo8QVEKekk9VT88UGFIYyhO
NE1AKkk9WiFiM35UV3h0U3FkMmAwYXFSaWt8WiZPUzRQWFBBO318VnA4SCNXfHlTSUZDOUw3CnpR
OXtnSV52SURUQkdUZWdxTCZYI251fClDaWhqMjxjIXxIWCFTdUIxRn1oWFNlXjFKaUFKV25OTl9Y
PHVRNyFrIQp6cWRpXipTfWlNY3RIMGQxUj9XWTY2R0s0IW9kYktYSkJydnhheUUoUTkrcyVoK25P
NEFsZG5HYytgWWFfQmcyRXcKejl3dlEjQ2cmKzwpTzNiTDx2Oz85cnNtPTcod20yYDFebHwhJGgy
XkBrOSU9OHZnKWUySW56MnBkI2RMT2A5a2gmCno9TEVVNnl0RV5DbVd4a0NiM058bnQzIUYpOHZN
VDBkKjF9VnBFIVF+N3U/YkFqY2p5dSpEbjkyaHduVEhgQiZkNAp6WVBOZVdwcXUkOUplKSNaSTND
M1FaVlE5a1FGWmxUPTlnVnZVOVZwQzgmeEAwNnVPUmVsSnBBPDM9RWMqbWQwSEsKel5JSlRkMHxF
bDxkUGBIQWhMQEk/KF9galdDZ3s4TWk7OVhhVCk2UTBeWEomdSpxbzhDdz1aV05tKDIpVUImeE8m
CnpMdFo8Q0goRTdYQCM7bE8rUkF2JVdZcGdDcT5nQ289dHoxQGVkU1RVRFg1cUk7ITlKUipRfmpq
bk9jTyVRUyU2PAp6XjJNazZYRzlZZDZIQkxSMW1iKWFoNl4zfiQxbHB3aEd0fUJfJXJUSU49ITU7
eXo8JG8lMmMxRURrTGxHKWV4XzgKej1neXNRVmRHNUshTm0lMHR2PXQ/PD1IO3BFT20tPXYzWUhq
ezdtfkxKVmQ1Zj9kKz99az10SXxobXp4YnFHRHNtCnp6a1VAcmQyI0xIdERDOSorJiomYEp2QHEt
VSVxKVdGam1tIz5nYnJHY1RofWhudnp3YSF9NngxVzQ+MFomKUxuYgp6QW1YVFhtbjhRPGM2SyZ5
b3E/eChZM2x2P1djN19hQGQqanN6RG98QEtXJmJATENrd2FlQkteMVZZfTBjZUJ3KncKemlCcmsl
a31jZ0FoTGQrfS1AY1Z3O3ApPHlnUmslRUFNNUQzNnN7aFRtWShtd3J4K3trbG9aZUp6Mz9NYShs
Jn5FCnp6NWlfeDxIbjUqWCowMVlYPSVsYmYkZVV8QzIhPFJOU3xzaVN2RHJWOCktP21FKDsqcz98
bWpnJUl9bTg3cmR+WQp6Zys7NkYrSVMtMlpXTTgjQ2JZYn5kfjRsUmpmSk9kKE4helVpfmhgYnl3
Qnl7aS1XYiVMJkwtS3BLbyF1JTBGMH4KeldINHspeGleaEpeZWpgNWxgVG4wYDQoPk1CTn1SNDta
dF88QUA4ZU9PajdKWU5pWHBwX05mTCh0T3k9QlYxPD5vCnp2Jis7T0FhdiErKVUyK3xSO2NNJCpE
SjFhWX0qelI4RUYrJjYpIU9VQG9DYUgyVTc7I0tpZjN0ZTVgIzdLYDR6WAp6VEtpcVFUUkJRTW5+
LWxLZWRXe2RFfWJuY0VuUXUqMk0/Wk5YbjNsOFl5YXU2X0lLPyVCIWFmNENYWDA+LVpRLUUKenc2
cnZ6PCVPMklCSE9PfigkZG0qNUJYJGBKY1FVJWIlY3RheCFVSUtDe0B7OVMwXz1wRS1UcEVrKl8l
S2N1Vmg3Cnp5NzYtTXB3MWlkdF9sNEUxTjszZitjSkJ3eEdRdTBfZn1gUj84VkdLeFgleFNxWU1l
KkNnWE02R1JEViE5OzBsWgp6SiR2Ul4qOEJlYj45TVFZM0NEd0N5fmN9QkU+WHJNZ2k/MmhUPVV2
dTdmUkJLJEhJQHtMeCNvVF9QeVFlJWFSNFEKekUtRkZuNjZYWElAeT1lfiotPkVNKkJoX0cqZCNZ
LT0rSE1sSlMhPDhzfl8wVTdiV31FJkV3MkApUENTajtydDhaCnp7ciVKOUJAPH4pR0JKbmI8LU99
Ozw/WmIzTGA2bG4/MihsN1VVMnNHRVdVTj9tWndtZ2lISj5pO3ElMUEtJFg8dgp6cE1ASjg9Nj4x
Uyt8MFExUEBZeE87TjE4QW94KDwmblY3Z0daNloxd18ldmVBc0gtMzE9YnhPTjwoNzYjR3xKTjUK
eipAMyhIe09Yb35mQj5afXRLdzJzdXYpYV9GWURKY0BORDApZ05hKlZiWU1Xans2b2FzcGdxeTVV
TmZUfDlAQiZWCnp3e0Y+WTdkbXxWXztoQEh5ajR0cGVkTlEzbSYmVksoc2p2RV9hOG1kSSh6b3h2
KHdAQ0A4OGVNJVgxcDReWUhTVAp6byNeVzt0e1dZLUliWG5tRCNtOUMzVnlIQD1sJChCY1gjKkt1
VXwpdW58fnhHKztKSS1EMHElTE5FJUwzaSM5NnIKemwpejg1d1lqMGJJYzF5KzlSfnVlRWQ3fEB5
bUBtdntFKDJLO045RHxjZ2VZRCRGUX07QDJRb29AJTtZaShXNzxyCnpUbG9WVGIxbXcqPFVSSDUl
X1hnS14tXjhQZ3V2KX5za2QlYjtYVX49K2ppeSt4MDFTZyVlPUEtTzluP3E3RGpYSAp6MzluNW9P
M3F5PGMpOVlhR2otfFhRKVN3c1pQYE1+JG1rfHBoYkpjd01UbE9xPm5yRXY9OGcqd20lM2JpenE8
TWEKek5pJWxgX1AkVF88SHJXdCtBaU99czhEdXMqcUQ9KSQkRHFnb2RuLUQpTnhyRDU3b3VzVmU0
YUwtM0NBR3pFTnE/CnpJVGh6STc+UFpremRxTll8Rn16UGIjP1ZFRT5DeyE+JjlvTm0yUlZFQkRn
RFVmXisoMSVSTUZ1KSpOX0FGMjxhNAp6P2pQZWZoSzdhYFpuMlAjak0pVWFlclpsNHJLREoqQ1h7
Wlk7NjI+a0A5cStQREhwPm8/ZjVsLVJpSiErRnEkdmMKelU1VVlBeE4qTnI1WHduTXBidiNQYFQ1
bkR5JGlQRUpLPjZAISZaJW5zSEYlIzt2Z1NxKXhDfU1Pazg9PXcrVmNfCnp2VjROa0ohWWNVcEZW
eHMhbGs2KkJBWEdUYzdsPjwpdVRlWkwlcVl4JDUkMHtEViFRRyVLZHt3ZGM5U1U3cjg4TAp6eXB4
Y2c7dUBDfEh+Iyl9d09RdHFDcj1zQFJQfFlBaE1TVm45fEdCZzIqdTc7PXtoNn5qJVdNPDRWRzdE
ZCkoSG8KelVDV3xVPFQhQlpfdXFlYWJlemhuU1hvJF91RDM4Vml4ZjZHY1coUms/TmhJSlhrNWg+
I010PlVKTEB8fVpmbX0wCno8VFhhZFljd2kjfEwodWpYeEVWfFBZODJeKGU/QHAteDc4bkdCe2gy
di1CPEQta0FhNG1GWU4qNyNWN28/e1lkUwp6X0xwQ044TUhvbT5KJDwwSzBUe15wKyhudDhDeDgr
T0soK3YhcXFpRGhTIzlQbTg2fW5HZCl6ViVRNyVDKjdmfVAKel5OXjRiJHZ0K3hMUTswIS0jVzxA
Xm9EWkZoV0l5dUpFaVA8bXFLLW9wNyRNaFlLXihYSEpORXhhOzZFTlZPWmtvCnp7aTh1dV4mU0B8
RTMzPWI+VFR5WTJnSGs4SEN9RWAoZDtVKUh6cEljZkIqZjMtXkx4SWNgMGw/bUtIMyUtbV5XaQp6
QD9Obj05S0wqT05aN1YqK2VHPGRycGd9TVJgYXJSZnk2T0VKSkJSR1hTQ0p8N2ZNKD5LVDV4Kypo
U1dOckY2PFMKekUyWFAxbFNTb3UkMHBldSleKXtHamc1YHB6SjBAe3NmYHBIeTF9Rz85blFxV3dB
JDZUbDdIcCUlY0QwbzN7d31kCnohTDVVJGJuKyVqcmAyejU8PWwjMF80JWQkZzxTS0ZRZz1KMnFs
P1IqT2oyNElpN3Z0WVVYVDVNe0JZKVp0IXdRNAp6WS1ONXBJV0F6ZXRqNHJfQVVRYyVwWjtOMyp4
PX5zKCZ8ZHpzKGBTdEY4ejNlRHp9PU5ubmEmQWBGT3s3Jk9TSzsKek5yTEUtPEZOeEJXUV5rK3V+
PyQ+LXVkKT1XMXNuZnZmMTdwTipWZUU8OUdgPmJOVDV4SWdOZE5lUjxASClzO296Cnp2TDZwKmF0
VnpeUEQya0tZP3N4S1kwYkF+QUdtdz5ab1h9b1FMKiM4eUBjdF5EQHplaUI+cX5YakJKQTB6Nnt6
Tgp6P0g5KnZscTVCeGt+bGp8dClGfHVKNTA4bG1GPDtmbHlQS2VXT3F+Ymwjcko8dn1TRD9LUi1N
PysqKX07SCtsVmcKelhRbyFaeFR+ZnpkI20yT05uTipfbnxwI24oYnY+YCUzbXxeS0Q9Yyp2WnlY
YjdDVG9yclo+a2RGZml+bXopbjI+Cno/JWxoSXBLb3MyXlRWPyZvP2x5QTh3ZSlKVFl7SDIzMXVE
LXppYWJgNzxJUUYtIXhzZyY/P057aGgzbnJ4Y3FLQQp6RGJqWD42KE87YypVISV7cjZlVnVBNi0k
fk8qOHMqV2J2RExPMFZ5I0gjT2FYQnVVNX49YXt9R2wleXRiYy1ROW4KemBUMFQ3MjtYVitvUWJi
cm9vN1pia2wwIT5fdCp3MlZXZyZ+UXp+IUp3QGk2MiZKLTBGNlNeWlc4Yi1KTjl4Y15jCnpfbDM9
PUU8KkhHUmFKNkUjdT8yPSM9Z3JmZEE4QlBzeDVaOXU3cnpEUzhBPWFkJFd1eStTflA5VnBSZyFC
Mz0yWgp6djktIyN3cHM7NilveVpmYk9jeF5LPSpWcGs5T207UjVAcD5zSUAxcF4qU01AZX4hemRQ
T2hAfSU0ZWsjKlJoNCEKemk3Y1BYPHBiUGBLSGNVYjhqOCEjJEJ5fE9tfEMtTExyUE9wJis5c1Yr
NEJEQStAaU97I1RwWmx0S1otM2Jsck1ECnpxS0FFfiR8XllAO05tRVFyazIpYXJ6NUBZe2FmdHE/
V3ZMKD5NPTZkSlM1eCoyNXtsZVd2KjlQJSNleEpAZ2ZKRwp6N34hdjI5NTNPTmIhQWJhO1hsdW9L
fitnS0VKQnFHWH4pQV9NXnpiUGBLMy1wS2JmM1kyUnJ3V1lOeE55YDxfWlYKemw7YWVpSUBBNyl5
Zj5PcnJoUlg4fEZ9dDNRZ1UqYWYmYWNtRWd6cTk3bT4hNkRUeXM/YSZtRyRpKF51T0ZNLW1xCnpp
ND9wUyZPe3pJISpJajJidFQ+bzQkZSRUTDY+STAqT28ydkUrZnNEWkhFc1p6SSF+dUdnM3tTR2Zo
bGFPRG08Iwp6TjleJDdnOH5CaHdWOGZAY1RkbGwhTDI7JD1fZn5UaklPX3N6fXN3aEt0bkA9T3Ym
ckN0U29sbyp0VG56PHhtcVEKemtVK3FMJGpBPVZIIShkO01KajZYZGxoI091QTlONDxhZ2BWb31q
bG9ffHprZU4jeVl0PnwzMTQlWmZmcmI0Jl96CnpwTVd4YlJfMkc9R0E+TmwyeEp7O2Q+ZlVvNnRU
ckY9LV5KSlomYzV3PnMjMnhuVShhfkYwbzVVTmw4JlEtUSR1Ywp6NyNWU0thKnxxMzJPbTJ9SW0+
ekJxeG4jPz5BbDR2I250KERkfnd+eUY0bDlDcFBRMDMzZypOYE05dkNDcUBHVmsKejN6WFd3ZTtg
RGFZeUx+MUBZe1JiX1Jsa0pCI2dSR08xQTBROHZuOWshd2pYWlVjTDZgVGZOWXY2T0gqfWB1KXFC
CnojaEVlZGs1NyYhdEgtY1EqfiFeOzdyT08mQGJVM2tibWlNN1AwKHw4Tk1fdFNRNURRNz4tX0Jf
YGUzaWVQejsoVQp6I3pkOG0ycGlHdXgxRm9BdVBeNzgwP2MpZT1Od3Q7OTleVThzYHM/NExCX31F
JUgqKzJQUDVMSlJnISs7djxaPUoKekRsOTIzbVQ2NDR2YSp1WXthbWR1O0k4SDNLeVFEQHgrQk1v
TkYtamxhXj1qS0diY198JnJjN0hlYVBeIUZkel5KCnoxX3BxaCYpdlUmWD4yXlZHa2pIWCl5ZFY+
MmkyKllwJSlTd2lpUkUxUXt0QXNOOVd8cEpIOzYjdkBiNk1nWU5kewp6bSZpSTdveS1ASHd4KD0h
Rip1YlRHLSVfaC1qbkxLe1pWTUJea0ZCVjspWlQyck9scj9ZMkQrNmcmcExOdVojMCgKekAyaGhD
RlRaVHJDR3UmeVVRdzUyfE5pflk/RUFgdF5QVlM+S0F1YStaQDxWYzV6V2ZSIVU5TyY7ajNteTRy
IUtZCnpDSjVeVmRScSpCaCtMZVZQYG8tZio8SXZoVGR0LW01VFZOTE8rISo2RCptcnVBOFEmcnok
P0t5SylnezxiWDt8egp6Izs0WT9LWkJhejE1U2pvVE5eRXZNSWVzfGBfMmI0bnxfRThSYWFOSDJD
bUp1eEhzSSh1Ryhxc2Vhc1VSbUZsQCUKejZEclV9d3c1d3xlWT9CNm83bkdBYHB6eyV7UzBBJXs0
SjkoayojIVRNX1BrTld5cEA4Rm1fVVBDRUpEOXluZyV3CnowIzRid1dFfiNMRWA3SH5eflAyZm1F
cT5wcmNTYW84Y0pgdlprQzNeezR2VH40PDVnVDBWUUJTUjhVTCRmKWN+QAp6ZFhLa3ZjWjJzQm1V
KzRXRitYX2xLdUtCSXBMcy19ZEdGcjYqS2djTjUyX21jRm1vZUFiSF87R0JiYDA5Unhhd0MKenNq
MzM+ZUxQeCRjSChWMFd+WF9NWD07V24kUF9MdVR8TklhclcyVDNuaTVLTV8kfWhqNG5Fb3ghJkYy
b0I+VUtFCnpraD88bihIMXpVYiEkXmZQcX13anVAV15pMlhxdzd1MGBlbjtURDFOaSo/eVZeUCEw
TF9WJGZDY3J6fks0JkxGNQp6e1ckRSo3VDQ8aGg7dzdGWEhmOHUoQi1Jc3ctK2UzVUdMc21WUF4+
RldINDtyT2hYOHJkNE5eNEl0UCV+JSg5YmQKekh6TXNqY1Zva3JlN2hjWVIjcXpUM3lRckJZdGZt
KVZVQCN+d0J3O3BrdGF1e3JkITkpTilEeStZQmZ6T2tAP3QjCnpCblRtS2FkOV88NHZQa3IrJGMq
VVpATiZgVVItaVJIeWY5VmlpJGV1SCNzIzA/d25JMFg0NisqaE5uWSspTWp+Twp6RFcwfWs1Xj9q
YTx8N09Nd341fjY0dlY8NHd5WmV5PG50Tl9IOG5LPi1WTzZAQjRlVGBFJEoyKD1GdnheKmkhUjEK
ejhXfGIyUEYleytlNUhtQ0J6Z314bzhDcnI+PE5DQDw9ZS1qLWNMSHMxQ05vNEhMYnNjUTtxZU89
P25FZXpvZEhRCnpPN19BQVc/OGI7bWJ9YHhvIXNZSjklP0E7V0BaKkt0Nl87MkU9K2VWYVpGQCY0
SXtaR3hjRkgkK3Z2MD5zNHxycQp6YXFyeHo4LTlZd05tU2RKUzVZTm9SOWJrKkRsRW5YeFVVN1k5
RFV7Tz4ofWlEWFJSTXVtLVh2c0hINEpzNygxeUkKejk0e2hBP3ZaeDk/Qk1YZEklSj5QWVRuJkZR
c2IhNSFGbmN7TXgqSXs1QnlPfnpVWDtDRWVqT21SaWV7e0tse0phCnombFQ/UEY8V0lHc290OE4p
OWFVNCQwI1o3ODI+eXNxaEcrV1JFMmwyTj9nQGIrblJNTm0jPXchRU5PLUIzVmxhfgp6M1QxSmtB
YGF2Xklob2QoRWIxUTVxcDdBMVl9fmp9Tkkhb1JvJXooTW5uKkU9U2Z+amJ3eS1iRlI7PjFiQ1pW
MG4KeiQ7JUpiJEVeOzg4ezw3Syohd1BhSnZ3a2NLMGJjKWg4cnBhZmNaWE9Mc1lTVyNUPnI4TXdl
VXAoV0RVJlomMm4qCnoxe042V0QmUTZ8cH17fEFuVnpZRV9wQjxCOyNMbmwrVk9Kd3lrfSRMYER3
a2d3eyQqazx3cjc5aDlFQmEmVkBTPgp6cHd7enFiRE95cDxiO0gzSnFOTT5EWmk9KG1kXkhpJXx1
Vm01NTwpZjdDTWkwKHN+IVJVdChOYkFFcnFMTVNMTyoKenY+PnYwZD8/UEJPV2dBOHREOVMtWSYk
T30ybDJZZlI1YyVPYGhuSj5wS3I0cExxVyVtT1pudTxjYl9WNnRTJHtICnpSc2FfWm1yZzIkQTJQ
JkB2NSp4P0duNjYqeSRzbz54Xzk1Y1dLMmRwNylUMC10bV85O15Kc0RoaHZoVkpPeFI5LQp6PSZg
aVomQ1I8XyViUT5QdjJLcn5PYCVFVV4qdkh7U3x4QFpIZ0JMTTxaV25zPkBvbFhZMU5YWnQpPGxy
KUVtc0wKenJ+b1IzXiVXJUtyNmVYXnU2ciE0YlFfNDF7TiV+KyozQ0FAT0kjP2U7R01JaDluKGNh
djNuRyp4P2BzUypzcDVzCnpJWjZII3Q5QX1eRVA4Yi1HcyFuNnNxRzFAWmZhfmlldmVEWTU0Xy0k
KkY+NGNOe0ZaUFZjVTdhYXpkMVpidF8yUgp6MmllekdyNVpZUUlKPntJPkk9NDdpcGQ0P3drc3hE
ekRhSFEtMTYyY0h5P24+MSNNSTVIY0hpSng+aWF1SSpHc0wKejZfY1drKFAjVUw8eVEyZnp7UEwy
VFd7NmMlMVRSbjBNeyRzMjhlWFRMbld+JXNtQzFqcWlGYGQzJlZWWUtlNEp5CnpNeWBpeCZVdzRz
a187KU8jYW4wSkptK2ozPGg/dnlZRXIlcjxEZSUjRmhmSDtuNGBvZHYlMm5qYU5ZP0AjR3B3UQp6
a3JkelFvZHl4WnN3b014SmlGc24mWEZIMTdmQiQxRl5hd2AqY1h6RCtUMW1CKUhZKmJxZipQMmtN
PHJPXkg5MikKel9rN21eQiZFR1JPaDYxcWQ+dVZuZDJQK1E9QUZ2PzBwfjdVQGM4YGw3d1M8YT5r
KjNSODRVKmdkSz1FZmBNb3BJCnpQeHd6QUokZSolN3tzMipuajlrO3JSTnJgQGA3IVF0aH1ZTXhY
Jmo0Q3N9YiYoYVokQjgwKForZTE0JUIxY2dMdgp6M2ZkVHV6eyV2YiorbndlR3kwbFVITVdoayQp
PTtEIUBoWH5fMzFjNG00LU5zS2R4fU8mNzxoVWgxO0NSd3IrNW0Kejkjb14yWkZnPHc3JDhpe3tl
JT9LPVdfZT82U19NOzcjM2M2K1BQZ05wXlZWdzhnI194JXZ0ZGJudn5heCtMPndqCnpDMjhgMDJa
UDc1MTR3R3NnQzBpKEhtajxPNkY3YFJZQ19tTGNEdCFjRHZgOWNOO0klWTxycF9KMCRCO04oSXk9
aAp6RTZ3VE4qa09pZjl2QEMwNTlYTSFsYnpefUVGMkZ+Uk42Ql5LZUEjaiZLfkRJKTNHP2lDcWRV
TzAwTGE0cCpKaDAKekV9bis1MFVjP2d0NihCSGI2eylsU0clfGRPRj5+X1ZJZChYMTl8MFQlfVVz
XnIlI18mVHBaMXs+blpMamJieHJsCnpYO0J8YlVKYUNJZGk/WTk1WD19RThCZD0mPCspNjRCaVk7
MlBwVCVsbjVII3NyMS1xT2F+eFlpOUhUXmJgTEcrYAp6Zk4kUnxodyVOc3tkVT5IZnt8eksrT0BI
c0JkTnE4ZTQ1JmM2TlMjaDUyQjs+RWlHeEItYENmb2lneGokdVYyNT8KejFXKWo8Ri0rcEo7OXAp
V3Q1OUJSSFNLNiF6UHFFPSg1WmdBQWYoO0NiUXkwSWNMO3FgUTt1YXUjdEdxZlQxK2ReCnp2IWJR
IU4xU0QtcStSNkxBKzl0Ujt+dmRmPD5WZjZZfCVldCt+JEpCP2xgWDd6bTdlV2N0UzlJTl5UaFpg
anZzRgp6dzUtZ3crXiVgc0tWKTE8LT8qLUFJbChyd3VZeHh8Ml9BVzU1XzgxQ2JuNUZuPChyIT9X
U2ppKU0lOE99eXRidyQKek81fnl2Iz0/UHJYc3shYzl2ZEF5KFIqckd2TDQ3KUFjWjNvM1o+ZH16
aG1NJTVIJkUzYklKTXpjMEtWYmZmRSgwCnp5YEs1I2kpOHlncWY9VWhtPkd6KykrOEI0I2ZsX05u
eC0/X2t0P1lQYGwxVnNFPWNrdztlQWFGcTQzSlpRPlJYbQp6Zyk1MkBNa207M1B1X1JZWSUwP2Ep
WH14SCV7eUA1S28lNVpoYFlxOzlgbHczd0NiaiZya0taJUgqRFN8ViQrX0AKekVAVWx9LVRkUXpO
KC1CNnV6OWVtJVBmLXstNyF2TUB5LWZnVXl8MnJOdF5hYjtQcDFzcXRQO008SzV9SCFpJUIkCnpB
MTxCODM8SWIqPDlsaz12c3Y5Z1NpQV5vKXhQNipCUDZXRGEmeEJ7Zy1idHt4Snt0XylrUjZYWil1
Xzg1LTJlSAp6KzN9dCVnQ2VrajB8RilfXzF4U00hWjkpKTdRX1JKRUVCdTlDMTVTP2NwMXBCcj0k
Umk2blpNTFNoU2dOYFNSQyYKel92OVJSPlJnVW5IdGJpfWNySXtYJD0hQEtFaEMjcUw5VzBxbERe
dXQrcHZVRHFMPCFjaUZPTD1lVlBqLXNoeXpACnppe2pjJj8pKn5TQFpvejNVSDE7Umtwbk5HZjFu
X3s/TCtiTm92JlVnRlo8ZUlJKG0zYEpta3t8Vi0wPEAyXzBSfgp6JiQyIUg9fGNKJHY8cyElc0ZY
O2JgZzU4cl51RSlYIUpgPylOdCRHdjQjIVV+e3VzJGlQZnNyPkN8RlNNMXd2YXwKejZLN1BFUTFY
XkB6anRgaWolTG99cUAwfGJRPlJaO0o8R3p3ITszeElacU5Vcl4xZ0BMTypNWSlsXzUqMHw1RW11
CnpYPSZTKW9KWlJtbU9ScGRRR2ZFclpFUzM8UG5HRjt7TTNfQVlpUlRWKT8hbHQ9d3JUViMze3I7
clRfZi07PSp6Pgp6QjxROGRTND9mMGhTbiR6JShqLWs2OXE7ZVckdlBoT0ctOyRASyVXP20+TCNR
PCEmKT8qVldXKVZxX0YhNTVufjQKejteS25CM1IxNVlDQkJpN2FmaX1sY2B3KUFRVikwKWN5PG1N
PWFnYVlLQ28yN1FnPX50QHd9V0lNfD1jK3tMPFVJCnpNYyN8OVNGY18qR1V+bjBxbHt0YyYtYEUy
KWBIQ0pSPChTPFdncDNgeT9WRDJUUShBNmJTVDxndDB4JHFRZjJ1Ugp6NmNsSXprUE45czM9UmN1
WkR3a1VVQ2pKJGxzRG5UJCYqbVJ1Zl9BclZ9Pj4pLTFeQW5KXmdIRXl2R2F1bkNCUW8Kej5ZdVhu
QFNrI0tSSzI7I0U9anY/SjstUmdjRmlATzdSSEFCXjN0Q1hgJFFUZjUpIyZ7U0ZkaHUqPCZ0fig2
emI2CnpSNGdTVUwlaCRFcV5nJEFNN2ttRUs1MnErMDBmfDxxeSRFY19DN1E9KT5HbFQrVDUlYWVV
dW4jP2F+a014bithMAp6bz9iKiYpJnhlaHZhKyk2X35GKCtUQyRBJD5hRyM4X3p4VS1YUmUmI14m
JXVGenAmN0t4YmQwNHpkeil5QjxAfFUKej8zX15UOD9YV1Zte0RCUWxhbkJoZWgoaj5DdiM0SDVV
WTxrcSFZUFNAU3k2fUl8U1E/ZzlXJHlMVn4qWTk7OT1OCno5UTVAOXl2NTdHcyYzeDZhaHVYKF5x
QSFac3VGeyp1a1gmQzthRThKK0ZnRmtYdSF9NENmRnMyZDYoWmtYZnlJcwp6Vzd4KlFhVFc0dyk4
ZEBzK0B+ODVtPSZnfl91KSEtYnpNYkgkKnRHZmwyQU5tSElIRGowR3tSJVRUVGgockYwTDwKeks+
JnIwZW01dXg0X3slRjZ7cU95VmBHIUMoMH5jLSYpbV9gQXVUT149K0dnRTtEWl98dHxRSUUwTFh4
SmpXbHtJCnooP2lkRmIrWX1eSkAyTE9SblFDTlR1MWYjJUR0ZkBgN0AmLVBeWUkrUHU8d3RzJnt1
P0dgdldQdyZ7enVGQ1lIOwp6XzQyZkBHdilyTV5ZdlF3VD5GWE1HUlRVT3kwJTA2c3lhcF5mZF89
KFd4Yys9RWc7X1M9MW4jPkhpRG84eiQ7V30KenVOVCtXVV5UcUBnUVN8e2h8aW1ASmUtYElxK3U5
cGl8KXdtKFQwV3doX0lXT241NSRQJkBzYEVlSFdWSWo2NFFICno/ViVPcGNfNk4hKU13RFNQe1pK
NEFuP1RFJEN0I2tENzd6NERQJTRRcTFNVnskQihQV0RhYjEqN30rYCFpNmVKKwp6aX1eN1ZqJl5T
QkhKNVQ3PypfSztobGNCRVY+MWQkMnFiMWh0QjgpPlhRS3JnaU1NfkRtK0ZLcUAjNGpjWXVCIVUK
endXJldvKG9wdjshbDF9ZVclKGphcjt1PVBQRT5CQGVqPWdDQnVLRHpgPGh+dyslNG15RChNKUE/
cXVzfnFfaEFUCnoweFVvYGhXMURwM1ooTSsxPmNuKy0oVzhKdzZOTFhDWDNFSXRDMWY3VntvPzsp
dUhMWiNOWkVqNUZXMFpXbUdtZAp6PVQwdW8mYzU8S092c2ZAe04xfkVzayZMY3NLSTdNLUFzZEYz
ZExIcEQ4fU9oaDJ7aCpEPTcoJUZtMmpJJGhteVMKekM0R0BmKnx9Iz15MUZuU3ViTCZvdnRTdFo2
Tn0yYj5ndXpNUWEwXlIrOSpOP0doODBCc3VYIXIpMGtoZj0pc2o/CnotaDElaTJxYVNzPTQ2XnRO
S3cmfVJMPCR4PXFna0R4T2ZFNXt1Vm0hbj5TUT1CMG1gSVRvdXhFSyRhb0AzVD84VAp6eG0jJWhE
bW9JVHFwZHlBLT1BeUthZGBUZnFtekBOcCY9OE9UKl53M2VWPkFeWmQtU14wcUxlZEtufHFFXjlB
KWsKejx2IUtyK0ZMWlNQYkxrSVlIWnZXNVVAIV9eTj98USMhNzZ8ZUFuWHdufnBERXpDM19XQmM/
XkZlVVYyISRldiklCnptQUd0ekVrME51bXNLWiU1ZThHa3JQS1VBVkliSCFxMCokZnpQX083ZWYj
RFFnViNEUWd5PC1yRzVxfUxjdnNAZAp6aFp3UVpZYXRjRm93WHRGY0BXUChxQ0ZvVXpqeDdyO0Mk
UEtqJG9fSGFmRTBVWVc+RHxqQSFlTUdQNFA7NDIrKTUKejk3alppaDNtVno3UXNsK2FUbmshZGRg
azdIKSR4K0I9Z3AzRkwoRFBOYitwe21+c09IMTQoQDx2b2thS0sxeC1DCnoqUCo4aTJANmEwM3x4
QStaPD5KejZwVGMxXkUxa2w1XjheUGJSRmFkM3JvdnlzQ0RwP008RjI+bWxNOF8/USs3Zgp6RGZF
fWtLZmw+JisjRlRxYksrJmo0dnRaQT9UNVQtWXVCeXdYS3c4P0AwP0ZMYlZtTVJOUW1aejN5fm9x
UFpmPzAKemoqcmBZZkEkVSVxQF81IXRtfG1YJTVFKyRKOF5jNiQ0NCRZZ2c8Wm5jOF48ZTE9ey1E
MHdwVUJiUUdMfDx+ZyY4CnpgVDZeWWhKYGBLdlojNDwwT1BeTSR0Z0YyTUBGVk5LMystZkw1OHgr
V3c4fDNXKTd5fmZke0l1VTg5UlckKSFCPwp6X2JrOHdBYlgyemczTCFVO3xLOTRUWjY7WkJzd2ol
cTJ9blk+PXpTanM7I1lFeHB9IVY8ajkhdz9JTCMwaj1ZLW0Kem9eOGlDdz5yPmBiOWZuM2VuNXFU
TWI/ejBYNiNMRSFRMWhpOEJPJiRlPlVPTzxLbkthaWxXeV4qUlFYSUNiNXxICnooQlUlSWE2bist
elApP2RncERBRmplSWZQciVaQnJOSW44THd+K1JnVnl4WX5fY3Rlcmt2eGNVVGU7LWlDcUdwSgp6
TlJ2K19qJFp2dTEqI2FjUWRaa2ZVOTFIQUR+TUNKXzM4I3t6R3VeSkwrezBxZWhzPlJCNnpXaDwp
TWZyQnFSYCEKejtOXndrX2pQSDBub1RUNDg4PClfWWJId0ZVPUpkWUQ9a0hUTiEyIzB2VThUcEYz
dzB7XkQxNzVhUkg3KWRBJlp1CnpgTHU8TkchXnhoPjY2MDZpUntkI1ZUY0syYyloSjh7VmI/QT1t
fmlHPV5zRERkcnA0M3twODg3SmpZeUpVRGI/eAp6ejc3b35eUGxxWkBxc0JqYWA+SnpQP3ByTCV+
a2lmY1BoMSlqK358Tj5aVV9lUU13SG95Yk9NcyNITSEhVj1gKUcKel4jd2BYRSZkQ2g/ezQzfHtw
cGlRSDA9Uy0oRkUobl4xR1U0ZTgre0hLZj1OVm1uYTcwMk1ReXM+aU5hPCRIPSU0CnowOVQ7e2RR
bkhINUxOWk1ObSlNRDk0c3UoaSEtKkF2bl9rUE17UERwdSM8XjU4Y2E4eE9FKWxkQShiP0llPSV+
ewp6aH0+QEo8bUJZZjN8bEstVEU/fjZ5Q2c+PVVDNmJAbm5tJjI7eFAjKy1palpNciRPWmF4TnZ6
UzBeRVZmaHtRQ3sKekQ3VWxEJmR5aF5PaFV7cyMlZCowZDthK0x3MmpqTDw7JSNDZHR0fjtxXmtC
dG91aTNIVldGWFNSPXRlR3dlPXt4Cnp2ZWlFaEh4aVh8UVYrJUdrTl5jXy1NP2glWGxaRi02fmwk
fSVgSTtKTyQxdFkhWXIrPHRRPXdkbUUqX1BoWi1CIQp6dUx1OHNHbmpzVzF9RmMhTTN0dFM3NWlw
MFJ1X2NVOCNDNFJDU2xDe1k9VU8pP3o/RWQ8Y1dPfXpnWTNQKTBaPzEKejl5KUk7OU5CKEJsZXtK
TSZHOGFVR24jZnNYKGVAVGRINE91dnlhMzs5U15uc0BJdDF3RFNeY0Qybk8mYk0jZXFCCnpLZVYh
PWFWKjFQWEhvQkI0NmxwfiFHczMpWnkkTiF2T3NqezFAWGYwdEJzUHRKaHVQPHp5MXAmQDBvfmZO
RmJRQAp6dUF9WTFZRmU2KXcoVUMoZUxSe21tfGRicSVMQV9SPmhncWQpJDc7ND9jWURZdXJUNldq
RkFqKXM7PDdpelNOUUEKemFmYSZVO1c1XmNuKyY1QkVSR2clWHoycUF4fkgoZkZDO1daRChGM0RU
PmgpeWk4RSo5ZHs/Z0cxKH0rZnFTVV9oCnpfcm8zazRxVDUqRkZ+eEB1OU59NWh2fGVEMnBtWndr
VC00R2wkTWdCX3VUWGl7UHxqZTQ4dz1NS25iaEBJdClEZAp6SFhWJkFuaDgqSCFJYz8jUl81entH
WVJCVjM+VUBPYW4qfjxCMFYmcj1LRFFnSndGeD5qKk9PI2xDcmYrOD93TVYKelEteEl3b3x+JGVu
LUEqU21rb0BKNVhNeE1ab2BfJU9HX0lHbElxUnc0TVZFcTdBQUNZY0o/SFVWQmdpbnpTWEpsCnpp
YWNRYkktTnUjY3xkP3NBUnQxWDw+JGRjTmtFb3FSZ3xlQSZGdCo3JlJSdyswKH17djZuNUNAR0VY
WEdUcFAqbQp6X3dOT0djJUVXfkYjUiNyWjlZRXZMcHw5RzZQZ0E5Uig/R1JWNkdhKFBWSUs4aGs5
WFZaakw/RWxHZyM+QlJxVlQKekNhZCg4MCFJfkxIJWxzJGRwQ253c185UVMpeXJGeUBzTm92SEc1
Q1VSXkVsbF53TXU1S0ExKkVQTSRuelhFelIhCnpoemhYU3pXSlBoSklQTH4zSVVLMGRId0MoVypP
XnAjaHlzJkNick9JcjNnMF9AKldhJUpQSFFScj1yVjxtYUZSdwp6PF4qQ21yX21CZzRXZEgwc2J9
TUV6PmVlUkhSUCMpWXRycEp0c0hXezV5PmopLTcraUMrXnhvWFR4WDhieHQqc2YKeiZSbV9KR0JZ
K2RyWlBVbF4tN0EwUVlWVTFRejI+ZW0zcmkmaXdxOSs2VmM0RU4tKnlfaWNZPT5AeUl3M1VARWM7
CnpSKXw0aF5zfEVwNGBQLXRGRTdgMm5IcFhraSF6Vn1FPVh7VihHajheQFYreDRpM3wmaktPam9C
Uzw3ZXZldHNZVQp6JC1XMkxCJF5ZMyVSfklpbk5NeDd7UDZER2NYVF4lPng2T3o7KlcwKUdCS0k3
ND51TWhgViVlMFFXe2ImKENfbygKejdaZW17NGBTT0d1WEVxXmBwJkorMzlXfU5pSFhRVVhFSWs3
SmQpRnBSI31KOyo0XnYtX0JgMDxQIXIkNkNPZmU4Cnp0KnwldWBtP2V2ZTBuYj9Hfmo7MG14cihm
TEFIZyR2R3F7T0FVfn5TQ00/fXU1P1F+bCthXmMxcXxsdWpTRj5pXgp6O3ktOHtvYntQXms2JUtJ
IWozUkFkIzBYVGxDWjVjTzZOWSl1fVFrZ2wxZiY9ckVVQjlfKk94O3Y1YHtkPnduaXEKejFAWHdy
Pk45TChXfWErNXVoSH1UK3NIQTJZV2x0SWJhT3F3Unc5Q1RLU1JCT247IThyPjtGa2U/TyYkWHte
ZDd7CnpFV05XRzJXbT1vPE1KPFZuNituTDRCOGA9S09nY2lvP2xYdHxLUCNtaGRmQmkkeFJYOyh9
SG5OVG5wKEw+RjlueAp6T3coMjkta3IkQ3VmT2c0ZDVkP358TjkmTlVYdVRmVnNJKklUaHFOQ2F9
I29SODJCTTF7SWNLeWIjUm56TzczMT4Kenp7VEFaTF5KMTw3WlZJQllpZXBkRFduNEEyVWA+JjhJ
XzxUZEZePjFuM1J2JFU3bWZQNHxkfEwldzlVV20yV0hqCno4K0hFRmhEO1puKDFucFZlRXVra1JW
Q3p7MjA3SDRSTldrZyY9O149bjs5eiNJemFLJWIrZTA1dXxkcVQ9SytYMgp6Ozh0KkUoOTk5QSl6
Rj5jPF4hJWVtbUFuRGhTPXs4YXxVdEtUfmllN2Z0KW5xdllETGMoRXMpVz9keXpgUX58R0EKeilO
ZyF6JHdeNyg9SEBxVi1pKCM9bjBoWjwoRzU1WUl8YU9PWG1GNiU/fSsycTZFSWtzUV9xOFVGQyF9
biNxJD1UCno1ISgxcmQpekN7eyZmNlc0STJmU3EkVGApanc0cklmTm8xayU/MWpXOXw0dU52YG00
IzxVdDRGJj5OSCZJVT1ZcAp6eExIRjNnTENLM0w3S2JyPkJTbntOMF5aUUNaMlFXJm9raSkmfXhB
ZEZob2NnZlNAMD0pVFUqaSVadEhLZnEqR3cKemh8LSRDMShCYitvbEU8Z2hMbVV6PCVnRXkoV2t8
V2tnaD9WNElLR1ZTWGpQd24+c190cWVzckxUPiFJUyY/Ryo0Cno8Xys/UXdnLSpuZDliM1dyfj9v
UVJ1aWQwTDtTeXFtJXB3PmB9O3Y+VDxRN2s9YEZZdiVYbHUjVUlJZXsqfTR0Rwp6S0UzSWA9bU83
ODBQZTdFU2slTjdYPFFodGszSE44PSZKSz02KVJOcVEyTz1qcCMmVDxDPWAqRGJYe0ZwX0FLKlIK
elMoLTw5aUgoWHk5czJyfWhVLWc4VXs9c19MQ0M5ZGlKMUllO2pAaEJNVWJAOUFPbncjPip4X2tO
KGNlckRifn18CnpCUUBtJD45KkRPYFBUTVFNP31gNXdsWG1wQlJ+cy1qQkMjeFV8YSZDNEFjMXh2
fUlqfnVlRUQ9TEZPSTQ5T0Y1TAp6ZGl5Y2wpWmdGbCZrWDQjSDhtOSglSXNpWUtwKTVgOUZUZTlg
U0l0RmYqanYmTDxSamlhQzhRYnBuQnxCTil6SV4KenhVKnxBRig2ezxQK3lOYHdQOFdSMVVHS2xi
U0BjeTdJSFg/TkBgbCMpUT13cTEkSHE2dHtwcD92V3lqN2ljdnVUCnp1SUgyY3p9QGZQWFF0M3l6
a1dTVEBJcE5Rc3NFQ2I4NXxydTcoan5gO2VUbFp1KWlEfTlJKHh2ciZPODBOVUF+Wgp6PTh4VCpa
XytHZ2VISW1EPDdtT3ptU05DbylEYVNlMkxsakVJfURecHpCPUFyZ2xyZ0YzbWxGPTwzM34hczN4
ZDIKel5ZciY/PXpnYmlqa2J4T2lJSVUpVEBFJlRQajBHdXJ9MCUkcEN4eSlvVmZUOGxzJll5bihB
czFfOD9je1NyJmtvCnpHeEwzVyReO0dgd0NVdj1OOCt+MnpNPjtfc0VYU2NCT0l0cVlaVT1iZ2xs
UWwpTFU5S1p2IT1sbTZhN3lxJX57Uwp6Mz1SYS0rWistUmBCPDB5Y2d+bSMrfW9sUGBnZGFNME1t
IVp1Y1R4VlNmNndBSXl5USVfaUdoPFMoTX5aKVl1UkAKelMoVSU+QF4wT0lfIXh1Y2UrKTx2NTEm
OEA7bnA0QTFoOWYlczBNUiVsejl+I0lHcjg+e0tMcjg5OWB6ZUpRQUpLCnp0bU5jYlgyaFRnTXJX
aiNhRSZ2JGNnI3BmWFIhSk1MSnZmRCRZYzF6UVVqeGd2VG1mS15BJV5CVkhNOyMyQjhSRQp6WGUm
fUkkb1lNOW1mPzh+RHp8MEJ0TUMwKXs+O0chVFdFP2spKFl9WDQtaGRMK3tjZH0zNFR2fDg7IUtJ
ekRgVUMKemAkM19RVnZSeCUld2dXayZ0Rn1kb3dQPWxVcklgcztjNCQ5VjU7U0dEMzBKU0lZMURm
bT8pTHkqWjJHRmt8MWdVCnpffHhKa0o5Wj81QGR1Y1N2JHFJSHdHMFhiI0JiKTNEK0UqbytPb2sw
YWg4ZWNwUmk8QllFSVhNcD4qKEk4cExyMwp6X2Q0KDBNJXk3TWE8SDxSaUxUOz8oWHNsLSoxQ2Jh
WSZPYFdiKD9rYGclJiU0MVN2UkBBMlNnRGg/fXFMN2tofSUKekljRCNQY3twS1Uoekk/VllDfFhq
V21aPEhrV2JPa1FvYDE2Kmcoc3tBU3l6OzcjNTJfaD5EOWR6SWdGN0V5KlptCnpRQ0M9ODRELSF9
Y0pDVC10fVpUSDcjU0RnfDB6UHtya1FIUzx5UnJIcUpoQUBVcXBGaFJuTm5qZ0lFUGxeWkwhMwp6
N3pPV1F4Y3h+YjhDdi1KTXFuTndNcUtEYkBFQkBpPHo+YWhYaz9HSnh2e3hDPz1AUypkQWxPejAx
cHl5PXh0Uk0KejlebD1WQXkxblA5Sl9hMHJPNiNSUWthLXtFSm1tQVhPfX05aj5mU05fI1cjZDZa
S19XTXJlSHoxTHluS2NNcHZiCnp7e3BMIXdDIXhwdnBVYj9odDcoKmZnWFdPdXJGRV9ve2JoJU1u
OUckI2U8SW48d25XNmpiayQqSnhFKllaUURLJQp6NDdlMkIreSoweW0yYVRaSClJd314I3M9Kkpy
Y3lyMlU4S3dzOyNCWSZLOV5rZy1XUHNxT28jOXVRT0xTR2N5d3wKenBObFVqbTw0SnpSQEVXIzJV
TUNeQX1IPFk2dmBZQWhkSEBQIW1oaHJUKktYY0Y4a3N1ezU/fEJGdTJkZjw/VnVgCnpZcWJJZU1q
Pm5vNEd8OT9fNzR1NEo4KmtueSFmPWlRbWRrfUlpTW1mNFhITT9SWHNzS0tIfUZ1RChGdXlPPmhu
agp6O0BwR2F4S3JhNGpIeCZATD1FNENoWUpXeUNkMSpObVlwWUA1b1ZHMnt7OCFOPkV2YXZyPkdY
QUI1RlYkLWZMJisKenkpP018dF5SQitHUDFJPT9lOypUIUZ8ZnR3UmQ3MSF1P3hES3BFPTNEPWh+
N1E+QXIlX2g1Z3sycFImSTJHWiFACnpGZUNERnNCeVE2Ki02JW1vS1R7bXZsdCpUU3o5WHZsTDlr
UnZmQHA4NDhuJjxWRGxWOTFRbGR3ZT4jRFY/dXoxewp6O0MxdjVVb3x2Xzd0MSZRamJpQHw/RWUj
YDNIUmRzZVFlLXcjOz80Yis9dzJ7eihMVD1NSkFAQXFUPXF5QHR4YUMKejgwaEdaaklTeGI5e1Mp
eEJTYk5MeDItSH5iYVdLeCNUQXsmSFA5Wl5EbURgTng7Rlg1OyZ5YVdnYVExVTUxfV4pCnpkdEtY
K0BoMkVQb3RnJjk0UklsamBlaFo7JEpQakd4QURpMVFmd2UlNGR4WGd0JHIwa05xb0x4cVA3c0tf
djUtSAp6KX43V2NeU3dqMj4rMCVZLT8/Mj4wU0o4bXsoWkVaTjZ3byh8MzN9UWgrRGNQK1ZIX1VK
d0VOb2ZERGQ0M0czd2UKenYxOTE/P09MJTk5PkF8JHFvTjdydjshRj9wNGIxJC0xPUskLSo8N1cw
QjhYT0FCT3xQdm1gfUR6ZTdicWhsbHJQCnpnfXpkMkhVPntNJGBlOGVuakh0aW5xU0BvTGhre2RN
YSluRXdqMCpNan5PQnIxKWJXfEdAY3BoSChKTFY0MitaVwp6STRtdCleeUpCbHpDSz9YcSUyIU9r
RUYzYENaQGhXTGpgSjBYeTNHaklnaygwNDdTT2VTRmJLci17JkQxOz8lPngKeklCe3s2bF9ve3c3
fTdXVGpxNWhoejJKVVBSPFUkbTZ9YXE9S21HdThgMDJ0cCMxb0dFN1loanFyaFJfanh7SWRhCno4
TnlZZEF9YUB3SXlmezB3Qi0kbjhePGl9LW5vTSlQaVNpMEtRWDAqdCslfkpANF9yYzlqTlg5QypE
JDs1Z1cwdQp6ZD5NeFhYdEZoQVIkPHtSK3p5aGM9P01MPnV8bXBrdUNKJF5HNjVJaDI2QU5IaWBJ
eWYyZWIlJFBtaFU2TD1xZyMKeitEbmpxPCh2alRLPSZTWCo4SGROUV91aDUhLXA9NCkkOV48YlVz
Nm09cjZ6bCg4KTMpc2FJODEwVHN1e2RyMy0zCnp3WlZ2b3UxMV9rPXxiez85THVWTHFZTCR6T2Vg
dip5RVk/Pktwa282ZzU1MEIxKyZjQytxPmwrRUkhO20+cllWbgp6e3JkJWs/JXcza0xmYVFWSmVI
bkRKfWVlaDA0MXZwbSY1fDMoODZKe3ZUbTYmV29HWiQ7OCM5PSUlUCRRSWB7SkIKeiVlVFJ0VWVJ
dz89aV5xTmNqVm9AeVY9RFFNRlU2YHYtTTlLaWtoY0YhPlZ7P3VFaSViQUtfI1RRbXlGJiplWEdI
CnpAOCtmR3E7ckc5ay02cnc3fVZnWWtvWnJUbjxzJURIQ1Q/ZUtUamFRKUJjLT52R1VCdyNLWihh
U2tNJF89UjZnOAp6S3VBbXZ7RUQqXiV1MykxYGQ3Vm5BKU5mWXkzfUwoT2NRZDlUcCZjaTZOMF5T
JSQlSHROTVZNQUsmSlVMR0V4bGQKektQNHB2WEVYMzJ1Z3NrZz43LUV5Pn4lYXFMYz0hYEtEe2RR
eEBIdyVRQnI7eWFTYGY/PF4xdypkTHlLNmpBbyN0Cno/TWhJZlFVXnVeb0A1JFYqb3BjY0peQlkr
VkJ8dnVZbWs9bFc1KUEpdVJzalRNQnhZRGBjQkkjTC1CX2ZCKzt8Pgp6U3RFdDJiUT52TllDVGZo
NWI5fVc4JjFfPUg/b0RZP0EkcXZAVW8xSUNwXihaaFpeNWpIPig3SEZzU211aGBjdkMKemBfTj15
YUJ2ZTNmRFh4TTs9c1ghPWR5VEdYSE8ldyZ9aXpUc0htdS1JVzt7VUVuI2kwZEJfaEpYNHR5Yl4+
UF5vCnpaRGVGKmxBOSRDQjV2WHRZMEkofj9FPnViWE5GSGM1KGxIVjVAelRNUk4yPlctKTNJT2VR
UD8xXjUzKWhXYEVUXgp6TWpub2V0SipeNmNPb2dRTXE3bWx4azsmX1hxKFF3UlAwVSFSfDVrQWh9
Y05Pd3NGdjNAb35XamVNVkheSWRSUEgKeig0bzNgSWJjdWhGKnVoX1NJWTNWQE0oVngqSkdIJjJF
a3NiSE88Rm8wZmQkIz1je3haaTY5X1NNUVpiVG5uQVRkCnpyTkd5LTYzdmIwS2MxamopX2doRTFu
JTdnVX42bUIqMjY5IyVyOXx7WkYjKUBkVE05WDM7PSpnMUhqOy1RUG8qNQp6OG5BPjk8Xzs8ZDgx
KTZBS0h5cCRwR2ozdXJaZ2x9cCpATC1pMjxISCRFVl5oa092PH1ZNyZwcm1TcyQ5XisxIzAKejI7
NSp5KnEkaFRBZDxed1ctKH5YTko2NUJBbXZCP0N6eXU9V2p4Ym53VUAzcUlOKTMoMFMrXn5RVUtZ
OV93USVoCnpefmd8VDctPWFqa2VLUElEVEV0I2FkVEgjSFN4bUQjXioyTnE+dU0hfERDOHBJRnMt
PkR7I35qMT5yVyp7NyVjbAp6I04tcEMyZ1RLO1h8ITlgb2phNENKO1AyX0lldDc9IVBedHUxfjwj
TmI/YyE2MlEmZVdlK20qMnJsPilocEBTe30Kel5IdWdJcX1AaDJ2fFJ+aTg0XzVzM0pOfTgrbFlj
SEl0YHd8KHMwNChaOTBmZ2srU153WW9KZnxpc1RMdUV2SXVfCnpsV25kREA/KkN7OUQoJjBjbnso
fnhXI2dUKUlYJSszKjk1Zz9Veyt9MClXZyZDbStCZzw+Zld3VCtFWDBZT3xYJAp6Zn1uKXRDYkRK
Mk9OXmgtPTY4P15oNT9NIWdSWlhiYEtSJng4KlYmPjB5RTt8cEpjVkRaUk1pKjZSR0FFPyhVMksK
el5RQUlaKypuV1hOI2ZQfURjYCNNaWZ4ZCZ1LXR2YXI5JC1ZNU9UekpnMD94N3IjRlFTRkE2cW9v
O2BXVHtkYj9CCnpCbVlVNXJDYjM8PzcxWGRTKiRvNnVfITQ1c0tvalhsOyt5eT9pK3RPTmdUQ05D
JjtNTlMqb1l0NTdjYH47YV5Wfgp6JWMlZTx7SkxCQnVnWW1NMUFncWN7IU0+NWhXd3B7aGp2K216
ZT1tSWR2UypPeyN9ODtvS3Q+Iy1WZ1dpen5Qc18KelhzXy04JXJ1MkleUkVZKUhNUmp+b09zTG43
dUJ9XmZEI1Nxe3JsITxpfWswUntyX18xSmA1UHFwVmZyYGNSKk9VCnpqWTdwflM7eHlPfEh2cSEq
aX55TD9xQz0zXyNzbjxxbnlZKCgkT2B5dVVscFBqNHJ8REhUb1A9aXJ8fXZOSVYqfAp6Szh2fTlN
ZzMjeFRybEZUVlNRPnoqVXEwaSpJOGcrZndPPkt5RWRhSkMySDRHJURzeX0/IylJOTJOcVpOO0E1
bmcKej1Ve1JQWjktcTcjcllfYTxRZytrQ2pFNEt3S1heaGkkZ3RTaHRnM3F2bWYhUFBkUmEjNWho
Kz9uPGZMI1loPHBjCnpybHhvYFZyQGlpRUJCZn1Ce2VZNEl9ZUNqX30rKGFXN3oqN3RSe01TWE02
PTEtXk0kJWU7MSZkKihMVlJnanh8Pwp6SkspRWBfcnk+PlVTMXNpWmgheVk4cXkhPXhXZClCRH5R
KTNlQVFyeTZFNFg0K2BlLU1qISsoJnxHUzZpNXJfPH0KenRnSWpjKkchPjt7S1pKdzgtZTVecmlC
NHg4RCQ0ODB6PUB7JWE+UVp5XiVwYGhlJmBhOXpsPXBRfGRoMjJ0YjBsCnoyTW8tfTFCKHljc0BR
b0wlR1pPaUZvYi1oP2Q+UDlWOXtCb2YxZHRqdEwjaGxmcHdDPHEjbkIkOEstdSlLSlBaRAp6SDhg
UE5JQDQqYjFQQT5TODIqX2tAc2x3WmFWR2tGKHdXXnl1OXpVUGh2aHJOTkRTM0w/Knc4LUs9TGZo
ZXZzQWQKelkhUHZCK05uZkhuMUZzTDEpUnZkN1pnTWV6NkB2cUdhb0Z0M251TENaVHROR0xqLUhY
allARyZGME9KTWM1RX5ECnptNF9NJUYjXmZGIThNSGt0NGlnY1A7dF5fIWorRWg/N0R5cnZmTXJU
dCQkR2VXd1ohejE8QGlYIVlLb15CZFN5Pwp6YE1qT1R1NzgzSDE4fkllciNMeEBnSmFFaUt4NSFU
eVU2aEtUWXx+QUhZSUlCbUpUUDw0dyRIRE11fVZIY3Y2V2oKekc3MVg0QDd+Y3V0JSFSMGBGKTV9
RyF9fTNkVlRxRnE2KFEleHNMOHkkKU1YNT4oZXtmMyNiQCNPP016ailabipvCnptaHx1Y2FUWDFf
QFVNUFh6eVJpRSZONiUrOT0wbW0lWDkyTWdrezlwSVhCRHg2WkxUNSMzVXZ7YU8wV21Nfmw+dQp6
Smk+Wn1scytNeXdqM2A9biFAbys5XmBMeXhkLTReU1RgakY/R3JlTjkyfGckdi0xemMlPyU2Xl9o
Kmd0ajA1TmEKemN1X3ZCcH1RdG5RNlFpdmlLJS1hLX5rK3RqMDxBKUBCTndvNnpDKWY0UyFZc2pM
WHc+cHhyWFpXM0s8PnVRTSRMCno5X0l3IXtffXsqa2NyMVgwdC00I3RUMCgyPERGSTsrXjdTSmdv
RTApQF8jP3ZAKVN1aUI/ZUArc1U/YnhOa25ULQp6SW17M2grTUsmNi09eW5eS3tyPj93O2s5O1J6
VHBycjh0KzJiOUdnZjEmKGNGWFhzVjxjKkQ+fio8Wmxjejx+eXcKejdnfmE4OSg/QngmSnNeaXNW
JjNLdj55WVFySE9kajwqPjE3dktrSTAhO3BvNjNJPk4+XjRMbFJ4RCo7WXotQXxLCnpIQ1Vyc0M4
Kn5kX3YpTX4mYzk8UEsobUg5dGRwUyFrJDRYSyVOTE8tKnIpYm8pRyhgSkJ5Yj9VVmw5ZEw7ZUhS
VQp6TDV1VC1xV30lRnJtanVfMk5Mbm1Gcj8xQkskTCoqT3ZEdkxlJGtEPjl6RlV4STdteSUpeXF4
YW9qO2d5TCgyRX0Kej9SMGVBUl9lMjNXamMrMiE1KjlsK1duTlgpfntjR3EmKTBAaCVSPmo0YXJD
YShqaFg3cWwkMHJjP253akNBMnJwCno7YEBYcTkoQHwwUX5ycXR1MU5oJClBaXJxX3pQUDRLVz1J
TmR2KlVXdUl7emZ0UjVLdlMzMF5+VSt2fVojSGVoZQp6NjlaX0N6YHY+VTt0VzhwSWwhO1Q0bmV3
V2stKCFMdXQ3fENmbldkcUJtZSlkJVVUaCY1KjBPS0AoYkVhSipsRjgKS0VLfHdrYGhOcXUzbV94
XwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2VtYmVkLWF0
dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Bs
dWdpbnMvZW1iZWQtYXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM0ZDJmYWYwNmRjOS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM0Ci0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDc2MngzNAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM5NTogIlRoaXMgcGFnZSB0ZXN0cyB1c2luZyBhdHRyaWJ1dGVzIHRvIHNldCBzdHlsZSBv
biBlbWJlZCBlbGVtZW50cy4gIgotICAgICAgICAgIHRleHQgcnVuIGF0ICgzOTUsMCkgd2lkdGgg
MzY3OiAiUHJldmlvdXMgdmVyc2lvbnMgb2YgV2ViS2l0IHN1cHBvcnRlZCB2YWxpZ24gYW5kIGJv
cmRlciwiCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTcpIHdpZHRoIDQzOiAid2hpY2ggIgot
ICAgICAgICAgIHRleHQgcnVuIGF0ICg0MywxNykgd2lkdGggNDUyOiAiZGlkbid0IG1hdGNoIElF
IGFuZCBGRi4gVGhlIG9ubHkgc3BlY2lhbCBzdXBwb3J0IHNob3VsZCBiZSBmb3IgJ2hpZGRlbi4n
IgotICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw1MCkgc2l6ZSA3ODR4MiBbYm9yZGVyOiAo
MXB4IGluc2V0ICMwMDAwMDApXQotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNjApIHNp
emUgNzg0eDAKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDYwKSBzaXplIDc4NHgxMDMK
LSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MCw4Nikgc2l6ZSAxMjJ4MTcKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTAsODYpIHdpZHRoIDQ6ICIgIgotICAgICAgICAgIHRleHQgcnVu
IGF0ICg1NCw4Nikgd2lkdGggMTE4OiAidmFsaWduIHRvcCBhdHRyaWJ1dGUiCi0gICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwxNjMpIHNpemUgNzg0eDEwMwotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDUwLDg2KSBzaXplIDEyOHgxNwotICAgICAgICAgIHRleHQgcnVuIGF0ICg1
MCw4Nikgd2lkdGggNDogIiAiCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDU0LDg2KSB3aWR0aCAx
MjQ6ICJib3JkZXIgNXB4IGF0dHJpYnV0ZSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDI2Nikgc2l6ZSA3ODR4MTA1Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTIsODgp
IHNpemUgMTAyeDE3Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDUyLDg4KSB3aWR0aCA0OiAiICIK
LSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTYsODgpIHdpZHRoIDk4OiAiaGlkZGVuIGF0dHJpYnV0
ZSIKLWxheWVyIGF0ICg4LDY4KSBzaXplIDUweDEwMAotICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7
RU1CRUR9IGF0ICgwLDApIHNpemUgNTB4MTAwCi1sYXllciBhdCAoOCwxNzEpIHNpemUgNTB4MTAw
Ci0gIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSA1MHgxMDAKLWxh
eWVyIGF0ICg4LDI3NCkgc2l6ZSA1MngxMDIKLSAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVE
fSBhdCAoMCwwKSBzaXplIDUyeDEwMiBbYm9yZGVyOiAoMXB4IGRhc2hlZCAjMDAwMDAwKV0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2lmcmFtZS1wbHVnaW4t
Ymdjb2xvci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9p
ZnJhbWUtcGx1Z2luLWJnY29sb3ItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlNjhjNDY4NmMwY2JiNDIyOTg4YmE2YjQ3MTNhNWE3ZGEzMTVjY2RiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDI4NzkKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlV
eyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RuNXUqCnpRd3ZMQExeSVIwV01rODAl
Y05BcHF7SX05V1liakJsdz4yTGwrLTshN2docmB1X2J4Q3lEPEMqITNCR2xQaUExPwp6K1ZBUCY3
KmE5az9IeG18IXd2IzBqX1dWfS1Ab1MrPm5TUGo/cDBxVmFuOXo9RUJuc087UEN3UzdZMnJnP1Nj
XnUKejQyRiVZMzxBTyE0Q3tBdFkwc3V4SCpuV3FWZj4+bnVFV3FVO3tYI3cyaj9oYkchTzxgTzFT
YW4tRFBQOGhQYjF3CnoremJrODh5RmFwbV9gfCtmaVJqOU1zdll2RSpRLVBxcSQoSDxicEQkKTBj
VHlmNzd8fDN+YnlvYylJJHp0YUQwZQpGMHMhczlKN1dMPAoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2ludmFsaWRhdGUtcmVjdC13aXRoLW51bGwtbnBwLWFy
Z3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2lu
dmFsaWRhdGUtcmVjdC13aXRoLW51bGwtbnBwLWFyZ3VtZW50LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWZhMzcyMWIzM2Y0Li4wMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvaW52YWxpZGF0ZS1yZWN0LXdpdGgtbnVs
bC1ucHAtYXJndW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IFBMVUdJTjogU1VDQ0VTUyEKLQotVGhpcyB0ZXN0cyB0aGF0IHdo
ZW4gdGhlIHBsdWdpbiBjYWxscyBOUE5fSW52bGlkYXRlUmVjdCB3ZSBkbyBub3QgY3Jhc2guCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9pbnZhbGlkYXRlLXJl
Y3Qtd2l0aC1udWxsLW5wcC1hcmd1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L3BsdWdpbnMvaW52YWxpZGF0ZS1yZWN0LXdpdGgtbnVsbC1ucHAtYXJndW1lbnQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZkNDEzYjk4ZTI0Li4wMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvaW52YWxpZGF0ZS1yZWN0LXdpdGgt
bnVsbC1ucHAtYXJndW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0PgotICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXY+Ci0gICAgICAgIDxlbWJl
ZCBpZD10ZXN0UGx1Z2luIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUi
IHRlc3Q9ImNhbGwtaW52YWxpZGF0ZS1yZWN0LXdpdGgtbnVsbC1ucHAtYXJndW1lbnQiPjwvZW1i
ZWQ+Ci0gICAgPC9kaXY+Ci0gICAgPHA+VGhpcyB0ZXN0cyB0aGF0IHdoZW4gdGhlIHBsdWdpbiBj
YWxscyBOUE5fSW52bGlkYXRlUmVjdCB3ZSBkbyBub3QgY3Jhc2guPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbW91c2Ut
Y2xpY2stcGx1Z2luLWNsZWFycy1zZWxlY3Rpb24tZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL3BsdWdpbnMvbW91c2UtY2xpY2stcGx1Z2luLWNsZWFycy1zZWxlY3Rpb24t
ZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjgyNGQyYzcyMjU4
OTcwOGY4YWE5NDRkMGQyYTFjODU2NDM4YzE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRl
cmFsIDM4NDcKemNtZUhLWDs5Tmc2a2s5SzZ7dEUkUU5wMjlFN012ZUNJVEt2IzZxYzRrfEAhQDZp
YFM2Z2tWc15PJTZjOGEqeU1QCnomNGZlUzVqKzl9d0k9MEFrWFFxUmdoUWJhanNVUkBINC0yc0Jw
ZjBBK3BwXjlifj9RTXUpQTtHb0E+dGpqQGB7YQp6anRSOGc7SjUoKlYwLUxhfDZsK3R3Z1hAdVlH
bj5fPzY9c3ZMRExzVzBpajk2YkowVytDSFh3P0k8T1o+ajNGWG8Kemg7U2tpZiQtV0ZqcXJxZj92
Rmt8Sm5RWEFLKX56I2xzNiF5anxrcmRgVUJKM2FqVGB+SXNsKHNKPzhJc0dPY2BpCno2aWJSb2NG
Q0glOXZXQk8qS3ghVGhDNlpiez9YdyV4JUtmMmNrczE4MWhkRDMhX1JyPTd8Y2dfVGFxVDg3dnp2
Zgp6dTRMRFo7UDJ2WlNEeUBYYU5sfWsofmpVQ3xERFckMkhaPXBaKEpRPXNIKi15TSM/RHlobGdv
flEzQG1WWTxoWSsKejBKbzVoMH5QP1Z6MEl3YF9GV3RSMj02WG5kJGlCbSt1UUd5RDt+eXA+Oz5h
Z3tRS3FKKW0tRGU3dG50Zm1lMGd1CnpHM2xAY1hsKjJ7aGwyaU9WaU4xJj9xMT11eFkqVG92I194
NlgzWHxJc1c5Jm5HekxTSyk1VE1Gc2d+bzNAd3VmfAp6REFTNjhpSHVFQXVYR08lNHR+emM3dDdr
KCtPKm5VM0NvbCZjSVZkVno1Kk9DZD9AaXBDaTZySHlBdStVUnk0KUwKekBXV01wQVgzOEs2azFx
bHtrb3Z2NXc8THZvTlc2WllYKFRxQk08O0lvTFY8Zj0pdkZiPkdfTXlBI0hWMHh6V1lQCnpwYmBP
fj5pXlBRUm0mWWFOSHhzSHBCWm4+d2dAYjdUR1NDaW1hYTRLM1ohVmlATl9BK3gzXmF6RGlzKFBo
VWUkIQp6UXtePGhxNyszfS0/TVlXMWZrSXR6TylQaVZLVSNYa35maEQhI0IlbnNfMDgmbktLZnA2
Y1pIV3ZvSntIaj1jXnUKemc0UFU5cWRsN19EdyFWVUNkUzNaKGRxUD12NmxLflAzTXBUaHI+MGNP
ZG17fD5VbmEwKnctK0ErNCllNDZTU1NZCnpuVzN5bVJyM0Bqa1h7N0NzQj5rayUrKkNTdCt2e3Ay
N3V4QkFuZlR8JnR0MS1EZ0NFSFk9ditYJUF7X1pAenN3fAp6UCk2K3dXVmdAIU9CfVhrYng5P0pI
X3hfTm0tPVloU0I9WjRtMDYqNmdpXz9ucGVfdT5MaGsrKmEpemRSYkZDIykKenVhKmw7UGMyPVl3
cnlMcU9TQS0kKTN4T0ZCKXhoeFJ1I1dCNUF3V1FCQyE9LSZgJE4lXk94ZX5kPllEXyZ8UGBoCnpt
OFJ8MCVOZE5ARHlwVyNPLV41KXs8K2pRTCl8WGloQCFySmNASX5FRjwkZEYxRzZDeUFxZD5Wb34p
UjxZKys/KAp6V3FERENCfnxeXkQ0dyExbFJoVXhCOVJhX0NXKHFWRll5K18hem1JXldsMTxxKkRy
KjNOdV5fSGlzQT4zQUF8QXcKem5COzY3T0c/KFF0fWY1VykwR3VVUzl4PiNkQGcyKWNUb1lpUUpT
KX1MIXkqb09FOGNmJDt5TUVFR2pDWiZpJj9LCnpTe2o7fm55TjsjPlVmZ3toMjtudjtiSkRpYE17
LURveEFJc2RrUCN0WXhHVmxjNU44ZlNLSVRvTX5rKmt0SlQ3Nwp6OXpBLUx4JHFgXkpsa141ck94
RXZCVGBMOXk8a05udUVBRWg8Vl9nbjYhazMmdmc9c2lVKmxkPnFmaT9gdDFSQmoKemspfG0yUnlW
NVpoNyQhZURzQEZocyZ8SUxHTkRzPiZeeG0mRVhuLUVLVXc2KUlCfVVmY1FqP1ZNTCg4RmVxamwr
CnojSWttY01pV3Ihbj5IKVprOCtuJlBwaTZeTkQ3NXdYSjtvYztxVEF6bSZwKlIyNU9jM143Ylhw
ZVVsUmlqbT0/PQp6YlBxdVExZHRPPFh2SUc/VkZMaDNuei0yPEpYYGxFSUZnWHREJnQqRGg+RHUl
RHs1PE87TEtpam1qSl98dXBPTFQKelpkXjNoSDZxazcoSEE1PCRsPVRpcD5wZiFJOFFvazE9dmhg
ZWdOPEI8MFE/aWQ/d1N3IUooRW8qSGx6b2pLK3xjCnpeQDJuZlhQd3pUemAqVD5FUHd+bSNiekp1
QEJlTilUQ0BIaXlkJjB2dktFdk5KcU9vdlY9WHQ8YV53RzgxcSYhQwpYMGUkcVJoUmQ2d1BieFNU
ZmJwKzg4a3pHcUAmUHhiCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Bs
dWdpbnMvbW91c2UtY2xpY2stcGx1Z2luLWNsZWFycy1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbW91c2UtY2xpY2stcGx1Z2luLWNsZWFy
cy1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
OGQ0YzQyNDNkODEuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
cGx1Z2lucy9tb3VzZS1jbGljay1wbHVnaW4tY2xlYXJzLXNlbGVjdGlvbi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0g
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJC
bG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxMjgKLSAgICAgICAgUmVuZGVyRW1i
ZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDEwMHgxMDAKLSAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoMTAwLDEwMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wg
e0lOUFVUfSBhdCAoMiwxMDIpIHNpemUgMTkyeDI0IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6
ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTI4KSBzaXplIDc4NHgw
Ci1sYXllciBhdCAoMTMsMTEzKSBzaXplIDE4NngxOAotICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MywzKSBzaXplIDE4NngxOAotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1
eDE3Ci0gICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNTogImhlbGxvIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbmVzdGVkLXBsdWdpbi1vYmplY3Rz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL25lc3RlZC1w
bHVnaW4tb2JqZWN0cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRhNDAxM2IzNWU4MC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9wbHVnaW5zL25lc3RlZC1wbHVnaW4tb2JqZWN0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHRlc3RzIHRoYXQgb2JqZWN0cyBmcm9tIHBsdWdpbiBv
YmplY3RzIGFyZSBwcm9wZXJseSBjbGVhbmVkIHVwLgotCi1FeGFtcGxlOgotICAgcGx1Z2luCi0g
ICAgIC0tLS0tLS0gKENyZWF0ZXMpIC0tLS0tLSBPYmplY3QxCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0tLS0tLSAoQ3JlYXRlcykgLS0tLS0tIE9iamVjdDIKLQotSXQgaXMg
aW1wb3J0YW50IHRoYXQgYm90aCBPYmplY3QxIGFuZCBPYmplY3QyIGNsZWFudXAgYXMgYSByZXN1
bHQgb2YKLWNsZWFuaW5nIHVwIHRoZSBwbHVnaW4uCi0KLVNVQ0NFU1MKLQotCi0KLQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9uZXRzY2FwZS1kZXN0cm95
LXBsdWdpbi1zY3JpcHQtb2JqZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvcGx1Z2lucy9uZXRzY2FwZS1kZXN0cm95LXBsdWdpbi1zY3JpcHQtb2JqZWN0cy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2YWMzOTU5ZDhjMi4uMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL25ldHNjYXBl
LWRlc3Ryb3ktcGx1Z2luLXNjcmlwdC1vYmplY3RzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0IGFjY2Vzc2luZyBwbHVnLWluIHNjcmlw
dCBvYmplY3RzIGZyb20gYSBkZXN0cm95ZWQgcGx1Z2luIGNhdXNlIHRocm93cyB0aGUgcmlnaHQg
ZXhjZXB0aW9ucy4KLVNVQ0NFU1MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL3BsdWdpbnMvbmV0c2NhcGUtZG9tLWFjY2Vzcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9uZXRzY2FwZS1kb20tYWNjZXNzLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdmNjY2OThkMzE3MTc5OWU0MmEzM2JhYjBl
NTA0NjY1NWY1OWVhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA5NjIzCnpjbWVI
dGNUbSYkeF80RjxRQ01hN0Q2JEkzc3RCdG41bTAocjU0c3FuQ3ttP0tTMUEhZkNsRSFed1ghNTRB
U0pyZQp6MVNLaiRzRUw0cnc0ZkJ9Z2F7I283RF54bExVTnolZEc4OzAtaDFBZV9udGQ8PUZhU19H
bil3enpUZkJod0NETTgKemA7NHt1N1VeQm0ybjFwYT5lTEJhMVZaOGAxWSgySnJWYTNwKzsleE5f
fV91QmxUS21ZN2sjfTBGeVRRNiY3OzEkCnokTXAxY2UyKTAoPiswKWtkZ14oNT4qKUNEZDs0ZXxK
RjRzSGNNRnxXNExgS2U+JExkXmdoPjN+bGJVPTIwYFVfOQp6Yj5nXlBST1pha3I4R05jKSpQZEx1
aT5VJGQrJk5gOV5BQWs7bmVxTWUjcmQhXjApVXhvSyZMcGVeazZMRnsody0KejRCM3ZsPWlPQ017
eXlrJFUqQksqKzJaS0k2SSM7RXNeNmFZNilFeGFNfiVQaklrZmxtSW5GSHR5S0JKQi1mYyo1Cnp7
M3ZoeitTfjUlR0x7akdPRFpaZD9BQSlSKzxeRWNiQ1M1VTZAa0VoLWdGM1lefStAaiM3fUFPSFh0
XnN6Q3NgcAp6SHZpdm1iLShFTVFqVDk/V0U7b3MoZ309T1ZjY3Eqe1VtUmhCR3RUIXdLKDZYajlY
fEBJfk1SSUBYTCFue35EeW4KejY7O3BRa1BZez81V2w8Q18zRElAOHw4WGBiQGJ1YENCd15JMSl0
JVMjT29wQ1Jqaz10enFaRkpzMFZzcWV+VmR+CnpSQzsyaXMyNDJ9KDI7e2BkMzNtaXxHZC1NRnNQ
XjRqbE1uYGk3WCNVRnl2STF3RUUrQ1JySHJtdWY0aG8mTCZzIQp6REB2cDB6aFdpQXVrSllISj5I
dEc/Tjc3Qj1ReC02P0s2TDFzZj1CbEE/STdCPEN9YTY/VGVQUElOMUQ0b3ExfnwKengzMzMmeEZa
KWk2eTd1NFNLP1VnU3xKTTFjOVNXWFJ4I1NYdV9VWjZmMi1tMnQ5P21FWnZ1TFgpcmk8b3pGSz5o
CnpBdXErei1JKkY2SGA4Qmc3JXtEUEB6YXhyYHdGU2ZIV0BsVzhhM1B3RWc4IUNAPDYtRVN8REJ9
WHJOMzxDKHchRQp6Ynw+cSNseXdTK1o7dl9VX1ZGeGwwNHI1YHh4Mjg2THk3SHdkcjNoalExQVBK
QSlKbHpRcjkwUkAwSkEoTTBBfXMKei19Mio7cElBJHd6YzNhND1xdkh9aTAzblRiZXphSCloKih4
UDYpeng7WVluSUJYXk0kSkBqeU9xS3YhX2RLbWxlCno+Tmt0eVo1ZiowNEt9I2RQN1k0QW1Ub3pJ
UG4lWGdUUkdLP2pPejFFRWUrXz1wa0ZyS3d6ZlFEeGFzWn4wc1o5UQp6VjNAQ2JEK3tpS3E4ZExv
aVZrSTgmKEtBaUZtN3hzTCh8PklYb3xLQ055X3hmQFR1U0psQGRDYSZZVVNsTWc4e08KenhIX3BD
dWhON1FHfiZkQ3A2cSZWeTgxY2tKVU12aXdSZllXJSNNZDl7KjRjbVNWVVlyKEluMHR4NHZ9UHJS
O0BVCnopdnxEbjFJT2k7dzQxcDI4Tio/T2JNPis8Zm5PNzNHKjAyaSV1UUYlcUVJTiFzX2xCLWNP
Q29nbEFDI2dnTjhYOAp6VitHR3pCRmBrNXRXS09ZUnwrMn50MEdvTCVvdCRDVFYraUpiR2ZQUlZp
PmlARlBCYFclSk9lY2VCNzVMO0o0JUEKemY2KSFPSXU8OGNXTUFZVXZHS2M4cnA1TH1VdyR4R3tR
UyYzTmQ7dlBIZ1AwZ3UoSUw5YTw2eU4ldXRuWEYjPENICno9Yl4te09ANFhsIXE2czBrRWUlRWVU
ZjVyOWdiKChKRT01Wj5rUylpeEclTDt1XmUhRV9TdnNYbGlsaVpHbkZCdQp6NGRQQ0VQPSZ7Yik3
dmQ1bj14MU5yZFgjXytTbTRJckxsfDcwMntGRip+U0RGe2s3PjU1dH1HdjRgU01scihUb3sKeiQ0
dEU+VlZVWUV7TlI9UEVvY2dWOU1GKkF6VHAteXRKfjRUanBTYWwkTCFgSV92KTNFKElsSW1QQl4j
amFNV25CCnpgRUd1I1oyWHhAVmRRWU1LWDN6dUtNRG5pU3UqMVd5fENCMlpCSm4tVFdYOStfXml3
Xl4wT2smPDVnSWg3K1J2ZAp6YF5xT1hTdFZRMmw9MigtXlBiVFhRPFN5WTdYQ15xZ197ZDQlVHcr
dElQM2xTa0NXJX10elNaKUp8XiF8SUNoIWEKelhldGJXSHtxKE1zcjQ+M0Yten1uWi1YQWthNmc7
bCkmfVNfJUU1NzNSI2htb25IMFpOQnFPaWszU1Rec3BCWENUCnp2K3t7Q3omUVdid0FhOGgwSHk0
MXFqSnlzbzlzfn1Saj5mMHgzSTgpTzBRK20xPi0kYlZLYGlicHB2Yz1Cdnl1OQp6eTFfPStse3I8
YiQzQzJ5SEArP0xFQWA2UlZJOFAjWVN4TkpGUF9PVjJ5WnM2WHRnZU9FPlZxNTIzWSh8LXk+TTwK
enAkP1BMOShXWmMhdzk0S191RWJAZHNJY3QxZHdWVHNpMFcyRVdAeWctIVZAKnsyJXFEWXNJPDw1
PSM4cSZlejAqCnohJmowRkNKU3pGUSopMUVCcHlFaF9UJW5iKDlIRihAPkQoZTVEYE9KJGJpeSlq
UHtlXlNrZ2tBcy14eik+YHFoUgp6JTRuV2RNbUEyIVpgPlVsJGozTzJvUkJ3KE9xOTJAMDw/R0xT
LURrM2ZMMEE5TlhrNHlkYz9vfiE1cTZqPCQqTnYKendEN2cqaUMhRUIjcmd4b3FFJHQ1O14jbGVQ
andnUmhLX3lReE1rUCY/MXR4RjROdT4jbU19OH1PeDxLb3QrYXBDCnpQLVZEYDtASzI2JipjamFk
VkJvYXYpNU9yTmQ4KnNDVUw5VyomKUxOdnpQbkpmP1BEY28hcVopK19GMjRgKzBlMAp6ZkY5b0Mj
c2lxYU9KJHMzOXc0OH0te3tAQCVHMSMhWmI/R2M9bkFLWG16UmB6ckVjXjZVQl9aM3A1Q0pIWUI9
MzUKel9eRE0pck8zZn5xLVgpelhacVdyWFlYRm5fJjQtMTxKaEBjRFg5OXYwfCVtXjlKYEtRSk9U
Iz5Nak1GKWkmSX0tCnpSKmZYY1NtNH54YFBFX3hnPXUlbSlyQ1dnPlBCTmB0aVJKOUUmbENlV0Vl
OSlmVDJYdzBtamxyTExPKzNPWCsyTQp6OGwjT292X01YUDteKCFTXjJaMkNoT15+NndmJGFyUCkk
KHkrVXJ2Q0NYKUkrNCYkM2VmXzlQWFk2eig5WCR1U0sKeiVxa0UmNFkkZ3BDX0VDIVotRyowPT4h
NEZwLSFpJSs5K29BPUNRI2h1YlVJP0lOPjUoYnVRbUB7a2FQe3hOazlFCnpAVnUjRjIlQXdiP2J1
PFZLSkhyI0plTzZfZENfe15LUXJXNGsjTDtAakY4JExefjVTZSRMIVlESFhraSQmfkMkcwp6SyFC
IXBkTW5WZjdxQUVpdFFIQl49Jk43STRsa1VOWWdYVj5Lc1h8b2B9fEdVeHQpTjxpeSo7YF9qVkhF
Q3pWQz4KeiU0IzsqKXhaeTZAXj5LVGFkWjZ2cT9yTFNyI1ZIdkduSz9DQUFRaSNENE9MNlhOTXhg
SExVRXxeS1VQVGA3LV58CnpsNHchYEZDMU0lSzdkJVJ2R2ErS2FIMElIUihHSDdMVkwtcm8/dSFf
USN+UzNmPiZUb21hMj42OEVFMDhCZW1IXwp6WXliWkpWazBSeWA+ZGw4dig9N2ZqNFVDNEskZTNR
JT8/JVpXKEZidzIqeHA3cj8oZitGMmAlWVorIXBUNTh4Qj4KeilSbUtYbTBaJCMxaUtAYnREaExE
JUY/XjFZKWJLTmR7RS13OXhxendwKTEqV0w/Smd7enVvUUhIbil7UUlqMnxMCnpsUGdLNCFnNDU/
RFpqfV5FND53e1d9ZFY9NGchRkRfTDA2ZmBCUSpGRzA/dl9gd3p3T2hJbTdmOShRKmYpJkxFVgp6
JkpVUiV7VDtwVEpDLVRYKkcqb21fNDEyaT4/PlNRWTJEcGd3PUh6S19qT0d5Jm05O2k7NGNEfDRJ
LXZ7RWtoajcKekMzfX0me1FRUnM+SjY/cF4pZHRrMH5UbVp2UHUofXZ+N0d9Izd1dlJeOzIjZ3pZ
UUh2UC16MFc+WGRTUGN8SUl8CnpKeTYzT2cle3NRdXElYHtJanlYfnRkNVVlb3tzTG5sc15Qb09z
Mj1qTGhIbmJVMD49RVE7M3huPjBXPHgzcHViNAp6a0V6ODwqYjF4OzV4O1d5e0greVRkcVZnNHc/
dUNxR3B4KylFUGMxdHBFJWAkdHw8bEIwTEdtd0xZWT4mTGt+SVQKekh9dUlhTFdqOXFyaD15c1gr
JVBmaHluIVdvKVd1bjxte2xkJjJkXk92am9vazN+PEFeckwxdmY3SCUwYlFgKTAqCnpAelZ1bmF8
KFJwK0F4cDgwfCZeRHdKI0p7e2x2MX5wPyQpOWNsNmsmcilDZ203UW50cjFOJWF1K21oQit7Rig4
QQp6NlRWY3VMdjZnSTFLWntTKDBtdnFIQW1UJGBeayliMGAhVXttT0g0Y3BIfSk3MXN5RTMkQGp+
cit8I014ViE2dHUKek9JX3o2d3otITBTKmE0Ny19czxiTXtwdEBQQiphazIlJXx1Zkp7MW1lV1Bm
fUx6SDQtMHtremI4S0BKUVVieHAoCnp7KDY3Y0JDRmtveFJ7SEtXN2tTNEFFR1hAPEJxVGhte31r
OFViKT9NVjlfei0+SGN9ajl3OHMoMEVTans5eXAkRQp6anpZOFU4VUF2MFNaOWpjRHtmUGZCV2J1
aSNDekhMKE1BVlZMZDlJMiV2MkFGOHJiKjcoJjIpQXhpKylXYkE1RzUKell7X3RvJlNMXyQ0SzhO
I2Q0NmJpNjtgYj40VT53Iz18aXZVRkFZYz85dFJrZmhtM1gleEtjS3NiN3pNZykqZGt4CnomTDw2
IShadDJ4NV93WFctazIrSENzViQpOyYhSSY0KmghZCV4P1NhOH5SY3V0djZnanhMPSt4MSVwbyF2
UmFULQp6KkNMMFBrUDc/YDsqSyNEPmFvfGxOZ2g9MkdMWVlWViFRIWdNOGBXNys3TH1WX3wxK01K
PSRMSGY1WVNQa2x2UVgKeihjbFZxO3htJTY7emZEYXRnRHIpdHdaMG8lSHg+RWEze2p7TjdDYVcq
PDVTLWVNNWcqclppSFpeKFZJUzBiOWdXCno4R1JSO1c+YSpTV0xeTUdpRHBzJjROOzhmXiNvdEdR
YnZ2JkpOMD4+RnZEZ1d3PGA5KyFNTE4pTVgtMU1ec20tewp6ckloKEt4YD18TlF8PkcxaWp8OTxB
K3dsTzFyaXl+PyhoWWNMemskR24rbD1ETjdodGRVMThLTTcmPyFBP0BOYE0KenMkZ1pxUDVWTExx
JSQ4KyZ3d2NXJXUrMyFPTDszQHhaPU83eGQyKU4jQk1RNHF2WVRrY0tXK3crS3okUzZ2OEs4CnpK
STA7diEqR1VjUENxKHlzcWMrJXpJRTB4QEVvKVcyPypsTjR6WEpUKn1QSVYwYlhWbDJRfWVBbyVY
fWBxSHc7Pwp6dGd7VDF2Mih7TVIlNihPWGpZY3YxdlBifTg7dHJ9dk9nWlYwQ0h9dzgxaH5tXlN3
VVk+MlomcDtkYXtLZlRncGIKem5Id2JScEJ0MDk2M210MyFtY2VEM0Zoai1vcHphRVNFZmkqX2I0
Q2ZxPFlCMzx6VFZydG84VEQpantlRDBpI3R6CnoqJE18ISZjXihxb288PT8+cmImYXc/fn5uTlda
fSFSVGsrJUFHbyM5X0FJQyt8STRRKiRGR09JbFdEJk8hLUlYMAp6cUQ3QyN1WTVeTnUtQyNeNkhe
KD4mUH4wTyZQYl58UWVxI3B7MyFpKmFkWlBeZzs1fCkkVT49UXleWkN+ZXorQDcKejJBTyl9YyNm
ams+TXQmWE8jKn51ZihuWX1FQX4yV05wN0pkZ2VDfWo1UlNwbjB6MzJDNnd1V24/WiYqb3s8akJN
Cnpzc3xPKnk+MXBtVmp7K2BVUm4pVkhFWHBvVTROUzxpUD9IOCNVfDN6b3t8I2hBUmsmTC1JJjlq
a2hiaVJqKkoleQp6XyNrSH1gWDtCR1g7T3xwWE9ETm9KXmpVMlpJR05IQWVZIWkxKysqQ1ZTQStY
IVJtZWNRNV52MGAxUkdHO3AqdEkKemtJQ3o2SlAwb181RDRCN2V+KzdtNm0tbjk/IzZFODclWXI7
YTRKe0VzS00mUUd2S3RgJT53dkhhMTYwSDFiYGhlCnpwNmtPYDxQU09oakBoPXhQa0RQdllWTilf
KEM5SVVvTXhrPEhpIWtkMEZeZiFFMThgc0pRWCFpNzZqJUB0T31vcwp6cHZVbio1TUZZdldWPyRU
c29haiElRiQhVmFfU0QlXjk+NWY4bV9JdT4kMmRYI35MbUdEfShTIUJhcEZ1enV4O3UKenpNV35L
UUI5RUJ7ZGNmIXY3KF59cz5UcW45b0BxMTtTJCtWVXZJKzxWeUVZUXUjfmsmQ2h4SU0mPz9Mczs+
b1JTCnpBWHEmPGlgbHFtZVohZT9ETHkjYSZSbigxSCZWOGg3Y182QnF3QjxSbjxtbn0pUkUpbVU+
fipCRT9QMFB4Izl2MQp6NWM9eGxQV1JfQitXRzcwSGBvTDlyPlF4KXhCPUM7U0l5dV47KmVMalN4
cDZuciNKX31qS0N6OEs7TmMkJHZJLTUKejFMZVEzWXpvODFKZnlHaVlnVHI4VDJpN3F4fk5tQiVB
NDRvbkU3JT1eU31gfF58Iz5tUDt+bmxTeXlKJkVpUXpGCnopMlNObDAwUDl4KUFUNzwjKHt6XnJS
USlAUXZwTDNRZH5FZWU2YmAmS1FhcXl7Tj80cSpBSThlRnM/Q3ZVPUI3Tgp6e087X2thWXdPUiln
N1pfZTRXPXM1N2djNWlfIzkoKDZSVTFZeT9hc3ReemA2QyV8YnFtZWE7bFpCe3tiSU16VyUKekdX
S25MJFlzNjxaIzckTVAoVWtjYD9aUXdSSzJWemM5cU05MjNYKSMpKVVLdmhib21ZdCh0UFBIWihR
KTtVO08+CnpyKGdoSmVQWXZ4KSoxcUE7OGdBflEtY2FuQ2t1LVRVdWwwUlNWK2kpaDxnKz82MSlh
ZFgyezluNWBtcztYdyFaYQp6ez5BeXkhbm4yTlQkYDUyKio3V0s2SV9NVHVkK0V8d1I+Zj9Tdk0t
aUBUV1ZCaz9zdXItKUMqKTh1c0w4JThVPTUKenBoP30kV0J7VmpeWVZWeVl1Y00zUUtxT2dmaWB6
aW1yQDw5UzErV0heMU5DZjl9NTVqaHdPI0k9WVV1IzhIQkNPCnpwbTc9TjRhMEVmJGJ8PEF5Mlko
O3RSNWUmME9ZQXpyaFM0KjJ1ZFRAWW12QVFHbHZ2ZDRCYVl2XjJUdTQrM2pRQgp6OWM5OVgmZUZm
UEp3RGRycW90cjVFTGNkVHk3bjAjeCsxJDEhVzR1cFJtLSQxa09LMmJOOT8xLTFQZEIwcEN7T3UK
ekt3R1U9aUkrfkw7RnpTPWlZbkwpcGFJKyZYaTlXem4mdmlEJWImMyleZGxGKnNFZWsqaHNqRl5C
e3E7ZURPPCsjCnpycE8pM0JLMXB9VFN3SEwyI19OVUJaS2lPYTlILXxYTntoPmxwSUV5JmdFSE5m
KFFpaTBzJDJ5Qz0kfC1rNSFfagp6RGg1MX4yPSp4TjdJcWRXNjN8dFVvVl5CSUp7cmB8NiZ2KWNA
JXBXWGhoRncpK1IhUXB4cCVpP0hxbkw0V01KP28KekZpeDJELUp2YUBDRiRAaGBSSWd9azdRUEVN
KTduKU4rfEk0NzwkLWYtOGs3UkIyUzxQK1B8M1F7ZVZCOGdtYk9MCnp0RHdNKndKZERIZTh0VnZP
NDFEO0VFZ3lyWX1OSEZkQGBxNHUlSXtnNUwyNihAc1dRYVMtWk48SXFueFZNaHw3Vgp6UjZPKVN7
bjxEWm17fVNYRl94PD0xaXNNU083NDdGVT5gSHBCbVZQQWA3S0hZTjhAfmVMbk53amxAcmdhPlI/
U24Kem4wQDNEJTxlQWdmbjhZKGlTYW1+eERQeEw3OTxXVWwyQGg4XlAwXlpgeV4lUD9gTDdLRUAp
az9jNy1tQWB0MkBNCnpqdD8+ZEFwYH5Zekc5Zms4cnZvUSorcWt9aXYoNHhoST4yRHQ9QFgzWlhf
dTtvYyFnNUdye2VZU2NpYnM7IUxlJgp6KF8jX3t3Q0p0Q3V5aVQmX2hHbWZHXnI1PDA0a1QyLSRL
Uk9jbzg7TWZVfTk9bnBsUCpEbHl+ZChCV0I1aXRXbmIKel5SU1BxaEQ4akZQZ2thMkheeihCVjRK
aGY+dW1KRSZWTyl0Y3xIc0oxd3FAckdLfkgxbmduRFlRSVdeYEI7NFBHCnpRQHNkM0cpRXVgIyRY
Tno5dz9oeD5oWnZ9OXFXT0Y7U0lDN3VmczR6SVFOPHVhZzIzemtNQFB0M21zbTxSUGZuYwp6Uy1o
UDlhKjRNOWZLcGYkQm51NzkobTdzWTN7TXUzQVBHVz1EXkF8cztqen09cWR7NXUzZmgkLVFjNW8+
dUFCdGIKenFeXjl1MyYxIWRZeXUjd1F2b2Y1NWQlU3F2VXxGcjJDKHtwUjJSZH0xK3FKYF5CMTwq
UUgrczhUbWFEPmswVjFDCnp1PWh+MmRUaSVNX1hEaGxPPyg9S1NwaXl4cUlhZFE1PURJQ0hmejE3
VCs9XkM+IWAmeC1Lc0VsMll+O1lncF87Twp6PWFiTms9RSZMNT48S1RMOCU7N0ZNdk0jWnU3YzdH
S34jViZobDNoa2g2TiteNW9TZVY+fSY7NEdadGN8dn1JYWcKelUqfVN+ZkEjXlRJb09lfnN1eVdN
ZlhfSzdMTVpMYHo+XlFeQT1xVk4qODdUQGIrNyg4V3k5YytYbF9ARU47NklxCnp8NUR2T3okVVI1
Z1B3VW4oaCprX1NTRXJUP31JQ1EqS09ET1c4Tzl4UTklYm0mP2YzK2tWZkZMdX1oT25CaUNnZwp6
QHQtfGA8LSVrU2k5UyskOWJMaEVxITMqRzZmej0ybT5AUUJfJU0jKTNqS3ojQFg8I0xoSn1pU1df
OCNOIVJRRlgKenRqOG13OW48RmNeMVp7TjhfJjw+bXd8U2BGYV49aXReNWlAUXJgNnBfX2NVdDJz
MVolSTNAdEVBfDRONjZBfTYjCnpuKTF5Nz9FRyQhKWp1fjk9THBYUSMtXi0yc21gcFlTTjhhdVFV
JnxaajclKDhePCl+bGp6M1lnJHNVQWl6eTwtawp6bV9lQHdlVEN6U3ojRHV4RDlYJXVtMFY2Uk9u
TU4rPGc+JjNoPTs0bzA3JFU3NkVBKlhzVSUpUCFQUldebkdmTWsKekZXKihmZSFaPnNLen1AcT5s
aT9mOG9kdXp1WnRjUSk4WXtCVnhSN3tPaGFlSl9yNi1gaXx3WU9ERyQqcVJYOWM2Cnp4PklXYGho
UXo8NU9wP1V2TDchRHcyXk9uUVNkdjtaU1MxekxqVH48MmxmVC1SSWBBUyhvWWVfKVU5IS1BYG1W
Zwp6KFB4SG4/RDdsTzNhdlBfX2htWEk0endMcVk4R0g0e3MjcXYwR0g0MGFmVmZhTCRQYlJAVW1J
N2M7NWdjODRUKSsKeiN1V2w8S2N3eC1fcU08PDxkQ1E+THN5PDNZb0gmUSpFK218SXdEbEIqNSle
ZT1adXpBQit9VEsrM3V6KXg/TWM/CnppfWF6aUFiPnlBeShLPHA/I0E7TWRzKTlFai1JKTxMRlE1
NDM1d0wrYlZnIyojRTR+YGN0OzUhKkFQWDR7UkJifAp6Z3VkRnFyMDJ7eSY8bT9ZeERYa3B5PzNJ
e2duITdCQVIhU3MzPXV4Q190biFrRX5KR0FOXyEjR2QxKmByPmdOYVcKemx7ODI+SVgrXjczdlYz
UGxwZDZaO1ZAYXFlNHdScEBRVT1FM2JEaDRARTRmQThpS3Y7WnBvbE5ucjA4UE50eCFVCno5QmJR
RilxfllmbUtRRGJVdFAwelRJUyQoRUNiZ2dDTysrMU9Rd3B9czNKME1qVnd7KEB2WFk+ZyEkbyVi
Pz1fbQp6Q2twdVhPcExrZVdjeUxPU30rcUhFWDFMdEZ3dG1IV3pNQHA3MEVFIWxufmRhQUQqLUJn
V0pGd2xaQHByaCs4dTwKemVRQG9XdCh0KlA/ZlY8byV4PW8/N1h4cktCXjJKU01MO00xc1EqI0NV
NHd3OWhVJFAzMUMxUzNrVGIhLTJTUTA5CnpjRE1tPzRafG45VkRmSGZpfVhMIUEyKC1EdGF9e3Nn
O1R3UVE8Vn1+NTg0bUdxWDxkP1J2bSUoLXR4alhoO08kIQp6QXJRNlM/bSt4PDxlS0ZGfDY3O0cq
RFhzZ09OSHBKQ19ITXlldTsoOHMhc1UjJnVKMHVzfXFmP0JgUik7KlZ5ejwKektGI3I7Sk8la3I5
KnEzJmUjPjZiPWBndCE3VitoekdNbklScVI/PXhQcDY0MlR0SWBoK3M9P2dMVDBrdntrajE2Cnpo
P1IkOTxJXm0pKClLbng1Ky0pWmZiOVNCblUhdGE2OzN9ezZ5QTJNQTBwJmlgcilSdyNuZmRSZDxG
fFMhQENeMQp6RDk5en1pWE5iWHYjSCMmIUBnZXhzb3M1cDQwenhacHMhYUU5blkhSDZOcUFFNVpe
eUx1UyNmSU91dmxkKTMxfVkKejF6WSUyWihEUkZ6OFMlXkJ5SVpVS1lia2F6cXspSEAkP2FNODtZ
MThmKFI8P3haYTBqRXtqUzNzN14oYFVDWE1qCnolbHwzOVJ6T2kpYTkmSy1LdjdTSGFlel9+ZSk0
KjM1NTxgT01MOyNkdERJZ04hVmVuWkV7UmtzcUo8c3RCdnN2Wgp6an5KSSNQVEpUd3wxXjM0QTdE
eSZNMkJabnNGPn5TQUxORzM1Rj09ZFFjRzA9T0I9VTJZb1NKQmpZSTB4cG52ITYKeiklTEB0ZCV5
a1hQWFlocSFUO0hfIW9SLWp8TTRMOGY0KEB+RlhuY3BVdzxXIUt6UkoqVWk8R3lWflQkOFktciMz
Cno0V2g3NHthK0grfEZSPGdeQElOfndYNEhMQFlleTdHVUM0bF8ha1dCdVg2cyY4UjQlSXsjQztO
VER0clRJc2JqZwpkbkhHSVJUa2RRZC0+YiFrS2JrX0lQRmtOUntgLVo1ZSo7KHZ7dlFBVQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL25ldHNjYXBlLWRvbS1h
Y2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbmV0
c2NhcGUtZG9tLWFjY2Vzcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVhYTVlN2NlODdjNC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9wbHVnaW5zL25ldHNjYXBlLWRvbS1hY2Nlc3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTIgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDc3NHgxNwotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUwODogIlRoaXMg
cGFnZSB0ZXN0cyB3aGV0aGVyIE5ldHNjYXBlIHBsdWctaW5zIGNhbiBhY2Nlc3MgdGhlaXIgb3du
IERPTSBlbGVtZW50cy4gIgotICAgICAgICAgIHRleHQgcnVuIGF0ICg1MDgsMCkgd2lkdGggMjY2
OiAiVGhlIHBsdWctaW4gc2hvdWxkIGhhdmUgYSAzcHggcmVkIGJvcmRlci4iCi0gICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzNCkgc2l6ZSA3ODR4MjA2Ci0gICAgICAgIFJlbmRl
ckVtYmVkZGVkT2JqZWN0IHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSAyMDZ4MjA2IFtib3JkZXI6ICgz
cHggc29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbnBy
dW50aW1lL29iamVjdC1mcm9tLWRlc3Ryb3llZC1wbHVnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbnBydW50aW1lL29iamVjdC1mcm9tLWRlc3Ryb3ll
ZC1wbHVnaW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODhi
Y2FlYjE1NTQuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1
Z2lucy9ucHJ1bnRpbWUvb2JqZWN0LWZyb20tZGVzdHJveWVkLXBsdWdpbi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UZXN0IHZhcmlvdXMgb3BlcmF0aW9uIG9u
IGFuIE5QT2JqZWN0IHdob3NlIHBsdWctaW4gaGFzIGJlZW4gZGVzdHJveWVkCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHRlc3RPYmplY3QuZ2V0dGluZ1Byb3BlcnR5IHRo
cmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJv
bSBkZXN0cm95ZWQgcGx1Zy1pbi4uCi1QQVNTIHRlc3RPYmplY3Quc2V0dGluZ1Byb3BlcnR5ID0g
MTAgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBUcnlpbmcgdG8gYWNjZXNzIG9iamVj
dCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLi4KLVBBU1MgdGVzdE9iamVjdCgpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IHRlc3RPYmplY3QgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGVzdE9i
amVjdCgpJywgJ3Rlc3RPYmplY3QnIGlzIGFuIGluc3RhbmNlIG9mIE5QT2JqZWN0KS4KLVBBU1Mg
bmV3IHRlc3RPYmplY3QoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTlBPYmplY3QgaXMg
bm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyB0ZXN0T2JqZWN0KCknKS4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbnBydW50aW1lL29iamVj
dC1mcm9tLWRlc3Ryb3llZC1wbHVnaW4taW4tc3ViZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvbnBydW50aW1lL29iamVjdC1mcm9tLWRlc3Ryb3ll
ZC1wbHVnaW4taW4tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NDI0NDBjZGFhMjkuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvcGx1Z2lucy9ucHJ1bnRpbWUvb2JqZWN0LWZyb20tZGVzdHJveWVkLXBsdWdpbi1p
bi1zdWJmcmFtZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1U
ZXN0IHZhcmlvdXMgb3BlcmF0aW9uIG9uIGFuIE5QT2JqZWN0IHdob3NlIHBsdWctaW4gKHRoYXQg
bGl2ZXMgaW4gYSBzdWJmcmFtZSkgaGFzIGJlZW4gZGVzdHJveWVkCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi0gUEFTUyB0ZXN0T2JqZWN0LmdldHRpbmdQcm9wZXJ0eSB0aHJldyBl
eGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVz
dHJveWVkIHBsdWctaW4uLgotUEFTUyB0ZXN0T2JqZWN0LnNldHRpbmdQcm9wZXJ0eSA9IDEwIHRo
cmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJv
bSBkZXN0cm95ZWQgcGx1Zy1pbi4uCi1QQVNTIHRlc3RPYmplY3QoKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiB0ZXN0T2JqZWN0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Rlc3RPYmplY3Qo
KScsICd0ZXN0T2JqZWN0JyBpcyBhbiBpbnN0YW5jZSBvZiBOUE9iamVjdCkuCi1QQVNTIG5ldyB0
ZXN0T2JqZWN0KCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5QT2JqZWN0IGlzIG5vdCBh
IGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgdGVzdE9iamVjdCgpJykuCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL3BsdWdpbi1jbGlwLXN1YmZyYW1l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL3BsdWdpbi1j
bGlwLXN1YmZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWE5NTQ2ZTk5NDRiLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L3BsdWdpbnMvcGx1Z2luLWNsaXAtc3ViZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IE5QUF9TZXRXaW5kb3c6IE5VTEwgd2lu
ZG93LCBSZWN0IHswLCAwLCAwLCAwfSwgQ2xpcCBSZWN0IHswLCAwLCAwLCAwfSwgVHlwZSAyCi1D
T05TT0xFIE1FU1NBR0U6IE5QUF9TZXRXaW5kb3c6IE5VTEwgd2luZG93LCBSZWN0IHswLCAwLCAz
MDAsIDE1MH0sIENsaXAgUmVjdCB7MCwgMCwgMCwgMH0sIFR5cGUgMgotQ09OU09MRSBNRVNTQUdF
OiBOUFBfU2V0V2luZG93OiBOVUxMIHdpbmRvdywgUmVjdCB7MCwgMCwgMzAwLCAxNTB9LCBDbGlw
IFJlY3QgezAsIDAsIDMwMCwgMTUwfSwgVHlwZSAyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9wbHVnaW5zL3BsdWdpbi1pbml0aWF0ZS1wb3B1cC13aW5kb3ctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3BsdWdpbnMvcGx1Z2luLWluaXRpYXRl
LXBvcHVwLXdpbmRvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY5MGE3MTBjYzFiMi4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9wbHVnaW5zL3BsdWdpbi1pbml0aWF0ZS1wb3B1cC13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQTFVHSU46IHVwZGF0
ZUV2dAotQ09OU09MRSBNRVNTQUdFOiBQTFVHSU46IHVwZGF0ZUV2dAotQ09OU09MRSBNRVNTQUdF
OiB3aW5kb3cgY291bnQ6IDEKLUNPTlNPTEUgTUVTU0FHRTogUExVR0lOOiBnZXRGb2N1c0V2ZW50
Ci1DT05TT0xFIE1FU1NBR0U6IFBMVUdJTjogbW91c2VEb3duIGF0ICgxMiwgMTIpCi1DT05TT0xF
IE1FU1NBR0U6IHdpbmRvdyBjb3VudDogMgotQ09OU09MRSBNRVNTQUdFOiBQTFVHSU46IGxvc2VG
b2N1c0V2ZW50Ci1DT05TT0xFIE1FU1NBR0U6IFBMVUdJTjogZ2V0Rm9jdXNFdmVudAotQ09OU09M
RSBNRVNTQUdFOiBQTFVHSU46IG1vdXNlRG93biBhdCAoNTIsIDEyKQotQ09OU09MRSBNRVNTQUdF
OiBQTFVHSU46IG1vdXNlVXAgYXQgKDUyLCAxMikKLUNPTlNPTEUgTUVTU0FHRTogUExVR0lOOiBr
ZXlEb3duICdwJwotQ09OU09MRSBNRVNTQUdFOiB3aW5kb3cgY291bnQ6IDMKLUNPTlNPTEUgTUVT
U0FHRTogUExVR0lOOiBrZXlVcCAncCcKLQotCi1TcGVjaWZ5IGEgc2NyaXB0IGFuZCBhIG1vdXNl
L2tleWJvYXJkIGV2ZW50IHRvIHRoZSBwbHVnaW4uIFRoZSBzcGVjaWZpZWQgc2NyaXB0IHdpbGwg
YmUgZXZhbHVhdGVkIGluIHRoZSBicm93c2VyIHdoZW4gdGhlIHNwZWNpZmllZCBldmVudCBpcyBy
ZWNlaXZlZCBieSB0aGUgcGx1Z2luLiBUaGUgdGVzdCBpcyBmb3IgYnVnIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTI5Mi4KLU9wZW5pbmcgd2luZG93IGJ5IG1vdXNl
IGRvd24gaXMgUEFTU0VECi1PcGVuaW5nIHdpbmRvdyBieSBrZXkgZG93biBpcyBQQVNTRUQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL3BsdWdpbi1qYXZhc2Ny
aXB0LWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lu
cy9wbHVnaW4tamF2YXNjcmlwdC1hY2Nlc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiYmU2NjVhNGM0YmUuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9wbHVnaW4tamF2YXNjcmlwdC1hY2Nlc3MtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotTmFtZTogV2ViS2l0IFRlc3QgUGx1
Z0luCi0KLURlc2NyaXB0aW9uOiBTaW1wbGUgTmV0c2NhcGXCriBwbHVnLWluIHRoYXQgaGFuZGxl
cyB0ZXN0IGNvbnRlbnQgZm9yIFdlYktpdAotCi1GaWxlbmFtZTogbGliVGVzdE5ldHNjYXBlUGx1
Z0luLnNvCi0KLU1pbWUgVHlwZXM6Ci0KLVR5cGU6IGFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qt
bmV0c2NhcGUKLQotRGVzY3JpcHRpb246IHRlc3QgbmV0c2NhcGUgY29udGVudAotCi1TdWZmaXhl
czogdGVzdG5ldHNjYXBlCi0KLQotUGx1Z2luLml0ZW0oKSB3b3Jrcy4KLQotUGx1Z2luLm5hbWVk
SXRlbSgpIHdvcmtzLgotCi1UeXBlOiBpbWFnZS9wbmcKLQotRGVzY3JpcHRpb246IHBuZyBpbWFn
ZQotCi1TdWZmaXhlczogcG5nCi0KLQotUGx1Z2luLml0ZW0oKSB3b3Jrcy4KLQotUGx1Z2luLm5h
bWVkSXRlbSgpIHdvcmtzLgotCi1QbHVnaW5BcnJheS5pdGVtKCkgd29ya3MuCi0KLVBsdWdpbkFy
cmF5Lm5hbWVkSXRlbSgpIHdvcmtzLgotCi1UeXBlOiBhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0
LW5ldHNjYXBlCi0KLURlc2NyaXB0aW9uOiB0ZXN0IG5ldHNjYXBlIGNvbnRlbnQKLQotU3VmZml4
ZXM6IHRlc3RuZXRzY2FwZQotCi1NaW1lVHlwZUFycmF5Lml0ZW0oKSB3b3Jrcy4KLQotTWltZVR5
cGVBcnJheS5uYW1lZEl0ZW0oKSB3b3Jrcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9wbHVnaW5zL3Jlc2l6ZS1mcm9tLXBsdWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9yZXNpemUtZnJvbS1wbHVnaW4tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDgxYzFiOWNiNGQuLjAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9yZXNpemUtZnJvbS1wbHVn
aW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotCi1QbGVhc2Ug
Zm9sbG93IHRoaXMgbGluayBmb3IgYSBtYW51YWwgdGVzdC4KLQotLS0tLS0tLS0KLUZyYW1lOiAn
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCi0tLS0tLS0tLQotCi1UZXN0IGZvciBO
UFBfU2V0V2luZG93IGNhbGxzIHNlbnQgd2hpbGUgYSBwbHVnLWluIHJlc2l6ZXMgaXRzZWxmLgot
Ci14OiAwLCB5OiAwLCB3aWR0aDogMjAwLCBoZWlnaHQ6IDIwMCwgY2xpcFJlY3Q6ICgwLCAwLCAy
MDAsIDE0MikKLUhlaWdodCBhbmQgd2lkdGggc2hvdWxkIGVxdWFsIDIwMCwgYW5kIHRoZSBwbHVn
LWluIHNpemUgc2hvdWxkIG5vdCBjaGFuZ2Ugb24gc2Nyb2xsLgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE2NDQ3NmZiMmE5NC4uOTE2MGJlOGU0M2M3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjcxLDEx
ICs2NzEsNiBAQCB3ZWJraXQub3JnL2IvMjEzMTMxIGVkaXRpbmcvIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMjEzMTMxIGluc3BlY3Rvci8gWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMTMxMzEgbWVk
aWEvIFsgU2tpcCBdCiAKLXBsdWdpbnMvIFsgU2tpcCBdCi1odHRwL3Rlc3RzL3BsdWdpbnMgWyBT
a2lwIF0KLWltcG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMvcGx1Z2lucy9nZXQtdXJsLW5vdGlmeS1v
bi1yZW1vdmFsLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL2JsaW5rL3BsdWdpbnMvZW1wdHktcGVy
LWNvbnRleHQtZGF0YS5odG1sIFsgU2tpcCBdCi0KIEJ1ZyhXUEUpIGZhc3QvYXV0b3Jlc2l6ZSBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzIxMzEzMSBmYXN0L2ZpbGVzIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMjEzMTMxIGZhc3QvZm9ybXMgWyBTa2lwIF0KQEAgLTEzMzIsOCArMTMyNyw2IEBAIGZh
c3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sIFsgVGltZW91dCBd
CiBCdWcoV1BFKSBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1hZ2Utd2l0aC1ibG9i
LXVybC1hbGxvd2VkLWJ5LWltZy1zcmMtc3Rhci13aXRoLUFsbG93Q29udGVudFNlY3VyaXR5UG9s
aWN5U291cmNlU3RhclRvTWF0Y2hBbnlQcm90b2NvbC1lbmFibGVkLmh0bWwgWyBTa2lwIF0KIEJ1
ZyhXUEUpIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWFnZS13aXRoLWJsb2ItdXJs
LWJsb2NrZWQtYnktaW1nLXNyYy1zdGFyLmh0bWwgWyBTa2lwIF0KIEJ1ZyhXUEUpIHNlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWJsb2ItdXJsLWFsbG93ZWQtYnktbWVk
aWEtc3JjLXN0YXIuaHRtbCBbIFNraXAgXQotIyBSZXF1aXJlIFF1aWNrVGltZSBzdXBwb3J0Ci1C
dWcoV1BFKSBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxv
d3MtcXVpY2t0aW1lLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCiAKICMgYWNjZXNz
aWJpbGl0eS8KIHdlYmtpdC5vcmcvYi82ODUxMiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXVw
ZGF0ZXMtYWxsZGVzY2VuZGFudHMuaHRtbCBbIEZhaWx1cmUgXQpAQCAtMTY0NCw3ICsxNjM3LDYg
QEAgd2Via2l0Lm9yZy9iLzE4NDI5NSBodHRwL3dwdC9sb2FkaW5nL3JlZGlyZWN0LWhlYWRlcnMu
aHRtbCBbIFNraXAgXQogIyBUaGlzIDMgZnVsbHNjcmVlbiB0ZXN0cyBhcmUgc3RpbGwgbm90IHBh
c3NpbmcuCiB3ZWJraXQub3JnL2IvMTg1Njc2IGZ1bGxzY3JlZW4vcmVxdWVzdEZ1bGxzY3JlZW4t
ZXNjYXBlLWtleS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTg1Njc2IGZ1bGxzY3Jl
ZW4vdmlkZW8tY29udHJvbHMtcnRsLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODU2
NzYgZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1wbHVnaW4uaHRtbCBbIFRpbWVvdXQgXQogCiB3ZWJr
aXQub3JnL2IvMTg1MjU0IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9yZWRpcmVjdC1jaGFp
bi1saW1pdHMuaHRtbCBbIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVjOGM0N2Q4ZmQyZi4uMDMz
ODE0OTBhZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTA4LTE0ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVd
IFJlbW92ZSBzdXBwb3J0IGZvciBOUEFQSSBwbHVnaW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU1MDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc1Vu
aXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgv
TmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy91bml4L1BsdWdpblNlYXJjaFBhdGguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFNo
YXJlZC9QbHVnaW5zL3VuaXgvUGx1Z2luU2VhcmNoUGF0aC5oOiBSZW1vdmVkLgorICAgICAgICAq
IFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNaW1lSW5mby5jcHA6CisgICAgICAgICh3ZWJraXRfbWlt
ZV9pbmZvX3JlZik6CisgICAgICAgICh3ZWJraXRfbWltZV9pbmZvX3VucmVmKToKKyAgICAgICAg
KHdlYmtpdF9taW1lX2luZm9fZ2V0X21pbWVfdHlwZSk6CisgICAgICAgICh3ZWJraXRfbWltZV9p
bmZvX2dldF9kZXNjcmlwdGlvbik6CisgICAgICAgICh3ZWJraXRfbWltZV9pbmZvX2dldF9leHRl
bnNpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWltZUluZm9Qcml2
YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFBsdWdp
bi5jcHA6CisgICAgICAgICh3ZWJraXRfcGx1Z2luX2dldF9uYW1lKToKKyAgICAgICAgKHdlYmtp
dF9wbHVnaW5fZ2V0X2Rlc2NyaXB0aW9uKToKKyAgICAgICAgKHdlYmtpdF9wbHVnaW5fZ2V0X3Bh
dGgpOgorICAgICAgICAod2Via2l0X3BsdWdpbl9nZXRfbWltZV9pbmZvX2xpc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQbHVnaW5Qcml2YXRlLmg6IFJlbW92ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAg
KHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQ
cm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAg
ICh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9wbHVnaW5zKToKKyAgICAgICAgKHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX3BsdWdpbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRf
YWRkaXRpb25hbF9wbHVnaW5zX2RpcmVjdG9yeSk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X3BsdWdpbnMpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5z
X2ZpbmlzaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
OgorICAgICAgICAod2Via2l0V2ViVmlld0xvYWRGYWlsKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGEuY3BwOgorICAgICAgICAocmVjb3JkQ29udGFpbnNT
dXBwb3J0ZWREYXRhVHlwZXMpOgorICAgICAgICAodG9XZWJLaXRXZWJzaXRlRGF0YVR5cGVzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKHRvV2Vic2l0ZURhdGFUeXBlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RXJyb3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRN
aW1lSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBsdWdpbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0RXJyb3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNaW1l
SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFBsdWdpbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFdlYnNpdGVEYXRhLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YnViYmxld3Jh
cFNwYXduKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNo
ZXJHTGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9ndGsvUGx1Z2luSW5mb0NhY2hlLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9ndGsvUGx1Z2luSW5mb0Nh
Y2hlLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5J
bmZvU3RvcmVVbml4LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy91
bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdp
blVuaXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS91bml4L05ldHNjYXBlUGx1Z2luVW5peC5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS91bml4L1BsdWdpblByb3h5VW5peC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgx
MS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gx
MS9OZXRzY2FwZVBsdWdpblgxMS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6
CisKIDIwMjAtMDgtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEs0XSBOb3RpZnkgdGhlIHdlYiBwcm9jZXNzIG9uIGRyYWcgbGVhdmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDZjYjNkZjFhNjBhZC4uODVlY2VlYTdjOTRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQsNyArNCw2IEBAIHNldChXZWJLaXRfT1VUUFVU
X05BTUUgd2Via2l0Mmd0ay0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0pCiBzZXQoV2ViUHJvY2Vz
c19PVVRQVVRfTkFNRSBXZWJLaXRXZWJQcm9jZXNzKQogc2V0KE5ldHdvcmtQcm9jZXNzX09VVFBV
VF9OQU1FIFdlYktpdE5ldHdvcmtQcm9jZXNzKQogc2V0KEdQVVByb2Nlc3NfT1VUUFVUX05BTUUg
V2ViS2l0R1BVUHJvY2VzcykKLXNldChQbHVnaW5Qcm9jZXNzX09VVFBVVF9OQU1FIFdlYktpdFBs
dWdpblByb2Nlc3MpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMkdUS19BUElfRElSfSkKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtGT1JXQVJESU5HX0hFQURF
UlNfV0VCS0lUMkdUS19ESVJ9KQpAQCAtNDA0LDcgKzQwMyw2IEBAIGxpc3QoQVBQRU5EIFdlYktp
dF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL0FQSS9nbGli
IgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzIgogICAgICIk
e1dFQktJVF9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ciIKLSAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy91bml4IgogICAgICIke1dFQktJ
VF9ESVJ9L1NoYXJlZC9nbGliIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9ndGsiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL2xpbnV4IgpAQCAtNDE3LDcgKzQxNSw2IEBAIGxpc3QoQVBQ
RU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0lu
c3BlY3Rvci9nbGliIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3Rr
IgotICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QbHVnaW5zL2d0ayIKICAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvZ2VvY2x1ZSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
Z2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvZ3N0cmVhbWVyIgpAQCAtNDI5LDgg
KzQyNiw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00iCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrIgotICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS91bml4IgotICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9ndGsiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9zb3VwIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrIgpAQCAtNTkyLDExICs1ODcs
NiBAQCBpZiAoRU5BQkxFX1dBWUxBTkRfVEFSR0VUKQogICAgICkKIGVuZGlmICgpCiAKLSMgR1RL
MyBQbHVnaW5Qcm9jZXNzCi1saXN0KEFQUEVORCBQbHVnaW5Qcm9jZXNzX1NPVVJDRVMKLSAgICBQ
bHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9QbHVnaW5Qcm9jZXNzTWFpbi5jcHAKLSkKLQog
IyBDb21tYW5kcyBmb3IgYnVpbGRpbmcgdGhlIGJ1aWx0LWluIGluamVjdGVkIGJ1bmRsZS4KIGFk
ZF9saWJyYXJ5KHdlYmtpdDJndGtpbmplY3RlZGJ1bmRsZSBNT0RVTEUgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZU1h
aW4uY3BwIikKIEFERF9XRUJLSVRfUFJFRklYX0hFQURFUih3ZWJraXQyZ3RraW5qZWN0ZWRidW5k
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5D
b250cm9sbGVyUHJveHlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy91bml4
L1BsdWdpbkNvbnRyb2xsZXJQcm94eVVuaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzZmY1NjI2ZjMxNTcuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdp
blByb2Nlc3MvdW5peC9QbHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xs
ZXJQcm94eS5oIgotCi0jaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0KLSNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJikKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1E
ZXN0cm95KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6cGxhdGZvcm1HZW9tZXRyeURpZENoYW5nZSgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsdWdp
blByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkNDUzM2Q0YTYzMDIuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQg
SWdhbGlhIFMuTC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01haW4uaCIKLQotI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLQotI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NNYWlu
LmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCi0j
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUg
PHd0Zi9GaWxlU3lzdGVtLmg+Ci0KLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8Z3RrL2d0
ay5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShYMTEpCi0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybURpc3BsYXlYMTEuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1hFcnJvclRyYXBwZXIuaD4KLSNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotI2lmIFBMQVRGT1JNKFgxMSkKLXN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2ViQ29y
ZTo6WEVycm9yVHJhcHBlcj4geEVycm9yVHJhcHBlcjsKLSNlbmRpZgotCi1jbGFzcyBQbHVnaW5Q
cm9jZXNzTWFpblVuaXggZmluYWw6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzTWFpbkJhc2Ugewot
cHVibGljOgotICAgIGJvb2wgcGxhdGZvcm1Jbml0aWFsaXplKCkgb3ZlcnJpZGUKLSAgICB7Ci0j
aWYgUExBVEZPUk0oR1RLKQotICAgICAgICBndGtfaW5pdChudWxscHRyLCBudWxscHRyKTsKLSNl
bmRpZgotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGJvb2wgcGFyc2VDb21t
YW5kTGluZShpbnQgYXJnYywgY2hhcioqIGFyZ3YpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBB
U1NFUlQoYXJnYyA+IDIpOwotICAgICAgICBpZiAoYXJnYyA8IDMpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgIi1zY2FuUGx1Z2luIikp
IHsKLSAgICAgICAgICAgIEFTU0VSVChhcmdjID09IDMpOwotI2lmIFBMVUdJTl9BUkNISVRFQ1RV
UkUoVU5JWCkKLSAgICAgICAgICAgIEluaXRpYWxpemVXZWJLaXQyKCk7Ci0gICAgICAgICAgICBl
eGl0KE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpzY2FuUGx1Z2luKGFyZ3ZbMl0pID8gRVhJVF9TVUND
RVNTIDogRVhJVF9GQUlMVVJFKTsKLSNlbHNlCi0gICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVS
RSk7Ci0jZW5kaWYKLSAgICAgICAgfQotCi0gICAgICAgIEFTU0VSVChhcmdjID09IDQpOwotI2lm
IFBMQVRGT1JNKFgxMSkKLSAgICAgICAgaWYgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6c2hh
cmVkRGlzcGxheSgpLnR5cGUoKSA9PSBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OlR5cGU6Olgx
MSkgewotICAgICAgICAgICAgYXV0byogZGlzcGxheSA9IGRvd25jYXN0PFdlYkNvcmU6OlBsYXRm
b3JtRGlzcGxheVgxMT4oV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkp
Lm5hdGl2ZSgpOwotICAgICAgICAgICAgeEVycm9yVHJhcHBlci5jb25zdHJ1Y3QoZGlzcGxheSwg
V2ViQ29yZTo6WEVycm9yVHJhcHBlcjo6UG9saWN5OjpXYXJuKTsKLSAgICAgICAgfQotI2VuZGlm
Ci0KLSAgICAgICAgbV9wYXJhbWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgicGx1
Z2luLXBhdGgiLCBhcmd2WzNdKTsKLSAgICAgICAgcmV0dXJuIEF1eGlsaWFyeVByb2Nlc3NNYWlu
QmFzZTo6cGFyc2VDb21tYW5kTGluZShhcmdjLCBhcmd2KTsKLSAgICB9Ci19OwotCi1pbnQgUGx1
Z2luUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIHJldHVybiBBdXhp
bGlhcnlQcm9jZXNzTWFpbjxQbHVnaW5Qcm9jZXNzLCBQbHVnaW5Qcm9jZXNzTWFpblVuaXg+KGFy
Z2MsIGFyZ3YpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzVW5peC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzVW5peC5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NmRmZjVhNmQwNy4uMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NV
bml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKLQotI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLQot
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi12b2lkIFBs
dWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQXV4aWxpYXJ5UHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCi17Ci19Ci0KLXZvaWQgUGx1Z2luUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVn
aW5Nb2R1bGVVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
dW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0NjBlZTRlZThiMTUuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDI0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCi0KLSNpZiBQTFVHSU5f
QVJDSElURUNUVVJFKFVOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotCi0jaW5j
bHVkZSAiTmV0c2NhcGVCcm93c2VyRnVuY3MuaCIKLSNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJv
eHkuaCIKLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8
c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4K
LSNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotY2xhc3MgU3Rkb3V0RGV2TnVsbFJlZGlyZWN0b3IgewotcHVibGljOgotICAgIFN0ZG91dERl
dk51bGxSZWRpcmVjdG9yKCk7Ci0gICAgflN0ZG91dERldk51bGxSZWRpcmVjdG9yKCk7Ci0KLXBy
aXZhdGU6Ci0gICAgaW50IG1fc2F2ZWRTdGRvdXQ7Ci19OwotCi1TdGRvdXREZXZOdWxsUmVkaXJl
Y3Rvcjo6U3Rkb3V0RGV2TnVsbFJlZGlyZWN0b3IoKQotICAgIDogbV9zYXZlZFN0ZG91dCgtMSkK
LXsKLSAgICBpbnQgbmV3U3Rkb3V0ID0gb3BlbigiL2Rldi9udWxsIiwgT19XUk9OTFkpOwotICAg
IGlmIChuZXdTdGRvdXQgPT0gLTEpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3NhdmVkU3Rkb3V0
ID0gZHVwKFNURE9VVF9GSUxFTk8pOwotICAgIGR1cDIobmV3U3Rkb3V0LCBTVERPVVRfRklMRU5P
KTsKLSAgICBjbG9zZShuZXdTdGRvdXQpOwotfQotCi1TdGRvdXREZXZOdWxsUmVkaXJlY3Rvcjo6
flN0ZG91dERldk51bGxSZWRpcmVjdG9yKCkKLXsKLSAgICBpZiAobV9zYXZlZFN0ZG91dCAhPSAt
MSkgewotICAgICAgICBkdXAyKG1fc2F2ZWRTdGRvdXQsIFNURE9VVF9GSUxFTk8pOwotICAgICAg
ICBjbG9zZShtX3NhdmVkU3Rkb3V0KTsKLSAgICB9Ci19Ci0KLQotdm9pZCBOZXRzY2FwZVBsdWdp
bk1vZHVsZTo6cGFyc2VNSU1FRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBtaW1lRGVzY3JpcHRp
b24sIFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgcmVzdWx0KQotewotICAgIEFTU0VSVF9BUkcocmVz
dWx0LCByZXN1bHQuaXNFbXB0eSgpKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gbWlt
ZURlc2NyaXB0aW9uLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkuc3BsaXQoJzsnKTsKLSAgICBy
ZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0eXBlcy5zaXplKCkpOwotCi0gICAgc2l6ZV90
IG1pbWVJbmZvQ291bnQgPSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHlwZXMuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gbWltZVR5cGVQYXJ0cyA9IHR5cGVz
W2ldLnNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoJzonKTsKLSAgICAgICAgaWYgKG1pbWVUeXBl
UGFydHMuc2l6ZSgpIDw9IDApCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICByZXN1
bHQudW5jaGVja2VkQXBwZW5kKE1pbWVDbGFzc0luZm8oKSk7Ci0gICAgICAgIE1pbWVDbGFzc0lu
Zm8mIG1pbWVJbmZvID0gcmVzdWx0W21pbWVJbmZvQ291bnQrK107Ci0gICAgICAgIG1pbWVJbmZv
LnR5cGUgPSBtaW1lVHlwZVBhcnRzWzBdOwotCi0gICAgICAgIGlmIChtaW1lVHlwZVBhcnRzLnNp
emUoKSA+IDEpCi0gICAgICAgICAgICBtaW1lSW5mby5leHRlbnNpb25zID0gbWltZVR5cGVQYXJ0
c1sxXS5zcGxpdCgnLCcpOwotCi0gICAgICAgIGlmIChtaW1lVHlwZVBhcnRzLnNpemUoKSA+IDIp
Ci0gICAgICAgICAgICBtaW1lSW5mby5kZXNjID0gbWltZVR5cGVQYXJ0c1syXTsKLSAgICB9Ci19
Ci0KLVN0cmluZyBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6YnVpbGRNSU1FRGVzY3JpcHRpb24oY29u
c3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtaW1lRGVzY3JpcHRpb24pCi17Ci0gICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotCi0gICAgc2l6ZV90IG1pbWVJbmZvQ291bnQgPSBtaW1lRGVzY3Jp
cHRpb24uc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWltZUluZm9Db3VudDsg
KytpKSB7Ci0gICAgICAgIGNvbnN0IE1pbWVDbGFzc0luZm8mIG1pbWVJbmZvID0gbWltZURlc2Ny
aXB0aW9uW2ldOwotICAgICAgICBidWlsZGVyLmFwcGVuZChtaW1lSW5mby50eXBlKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJzonKTsKLQotICAgICAgICBzaXplX3QgZXh0ZW5zaW9uc0NvdW50
ID0gbWltZUluZm8uZXh0ZW5zaW9ucy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGogPSAw
OyBqIDwgZXh0ZW5zaW9uc0NvdW50OyArK2opIHsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KG1pbWVJbmZvLmV4dGVuc2lvbnNbal0pOwotICAgICAgICAgICAgaWYgKGogIT0gZXh0ZW5zaW9u
c0NvdW50IC0gMSkKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwotICAgICAg
ICB9Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7Ci0KLSAgICAgICAgYnVpbGRlci5hcHBl
bmQobWltZUluZm8uZGVzYyk7Ci0gICAgICAgIGlmIChpICE9IG1pbWVJbmZvQ291bnQgLSAxKQot
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVn
aW5JbmZvRm9yTG9hZGVkUGx1Z2luKFJhd1BsdWdpbk1ldGFEYXRhJiBtZXRhRGF0YSkKLXsKLSAg
ICBBU1NFUlQobV9pc0luaXRpYWxpemVkKTsKLQotICAgIE1vZHVsZSogbW9kdWxlID0gbV9tb2R1
bGUuZ2V0KCk7Ci0gICAgTlBQX0dldFZhbHVlUHJvY1B0ciBOUFBfR2V0VmFsdWUgPSBtb2R1bGUt
PmZ1bmN0aW9uUG9pbnRlcjxOUFBfR2V0VmFsdWVQcm9jUHRyPigiTlBfR2V0VmFsdWUiKTsKLSAg
ICBpZiAoIU5QUF9HZXRWYWx1ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgTlBfR2V0
TUlNRURlc2NyaXB0aW9uRnVuY1B0ciBOUF9HZXRNSU1FRGVzY3JpcHRpb24gPSBtb2R1bGUtPmZ1
bmN0aW9uUG9pbnRlcjxOUF9HZXRNSU1FRGVzY3JpcHRpb25GdW5jUHRyPigiTlBfR2V0TUlNRURl
c2NyaXB0aW9uIik7Ci0gICAgaWYgKCFOUF9HZXRNSU1FRGVzY3JpcHRpb24pCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGNoYXIqIGJ1ZmZlcjsKLSAgICBOUEVycm9yIGVycm9yID0gTlBQ
X0dldFZhbHVlKDAsIE5QUFZwbHVnaW5OYW1lU3RyaW5nLCAmYnVmZmVyKTsKLSAgICBpZiAoZXJy
b3IgPT0gTlBFUlJfTk9fRVJST1IpCi0gICAgICAgIG1ldGFEYXRhLm5hbWUgPSBTdHJpbmc6OmZy
b21VVEY4KGJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IE5QUF9HZXRWYWx1ZSgwLCBOUFBWcGx1Z2lu
RGVzY3JpcHRpb25TdHJpbmcsICZidWZmZXIpOwotICAgIGlmIChlcnJvciA9PSBOUEVSUl9OT19F
UlJPUikKLSAgICAgICAgbWV0YURhdGEuZGVzY3JpcHRpb24gPSBTdHJpbmc6OmZyb21VVEY4KGJ1
ZmZlcik7Ci0KLSAgICBTdHJpbmcgbWltZURlc2NyaXB0aW9uID0gU3RyaW5nOjpmcm9tVVRGOChO
UF9HZXRNSU1FRGVzY3JpcHRpb24oKSk7Ci0gICAgaWYgKG1pbWVEZXNjcmlwdGlvbi5pc051bGwo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbWV0YURhdGEubWltZURlc2NyaXB0aW9u
ID0gbWltZURlc2NyaXB0aW9uOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgTmV0c2Nh
cGVQbHVnaW5Nb2R1bGU6OmdldFBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBQ
bHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCi17Ci0gICAgUmF3UGx1Z2luTWV0YURhdGEgbWV0YURh
dGE7Ci0gICAgaWYgKCFQbHVnaW5Qcm9jZXNzUHJveHk6OnNjYW5QbHVnaW4ocGx1Z2luUGF0aCwg
bWV0YURhdGEpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBwbHVnaW4ucGF0aCA9IHBs
dWdpblBhdGg7Ci0gICAgcGx1Z2luLmluZm8uZmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhHZXRGaWxl
TmFtZShwbHVnaW5QYXRoKTsKLSAgICBwbHVnaW4uaW5mby5uYW1lID0gbWV0YURhdGEubmFtZTsK
LSAgICBwbHVnaW4uaW5mby5kZXNjID0gbWV0YURhdGEuZGVzY3JpcHRpb247Ci0gICAgcGFyc2VN
SU1FRGVzY3JpcHRpb24obWV0YURhdGEubWltZURlc2NyaXB0aW9uLCBwbHVnaW4uaW5mby5taW1l
cyk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6
ZGV0ZXJtaW5lUXVpcmtzKCkKLXsKLSAgICBSYXdQbHVnaW5NZXRhRGF0YSBtZXRhRGF0YTsKLSAg
ICBpZiAoIWdldFBsdWdpbkluZm9Gb3JMb2FkZWRQbHVnaW4obWV0YURhdGEpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBWZWN0b3I8TWltZUNsYXNzSW5mbz4gbWltZVR5cGVzOwotICAgIHBhcnNl
TUlNRURlc2NyaXB0aW9uKG1ldGFEYXRhLm1pbWVEZXNjcmlwdGlvbiwgbWltZVR5cGVzKTsKLQot
I2lmIFBMQVRGT1JNKFgxMSkKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1pbWVUeXBlcy5z
aXplKCk7ICsraSkgewotICAgICAgICBpZiAobWltZVR5cGVzW2ldLnR5cGUgPT0gImFwcGxpY2F0
aW9uL3gtc2hvY2t3YXZlLWZsYXNoIikgewotI2lmIENQVShYODZfNjQpCi0gICAgICAgICAgICBt
X3BsdWdpblF1aXJrcy5hZGQoUGx1Z2luUXVpcmtzOjpJZ25vcmVSaWdodENsaWNrSW5XaW5kb3ds
ZXNzTW9kZSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIG1fcGx1Z2luUXVpcmtzLmFkZChQbHVnaW5R
dWlya3M6OkRvTm90Q2FuY2VsU3JjU3RyZWFtSW5XaW5kb3dlZE1vZGUpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oWDExKQotfQotCi1z
dGF0aWMgdm9pZCB3cml0ZUNoYXJhY3RlcihjaGFyIGJ5dGUpCi17Ci0gICAgaW50IHJlc3VsdDsK
LSAgICB3aGlsZSAoKHJlc3VsdCA9IGZwdXRjKGJ5dGUsIHN0ZG91dCkpID09IEVPRiAmJiBlcnJu
byA9PSBFSU5UUikgeyB9Ci0gICAgQVNTRVJUKHJlc3VsdCAhPSBFT0YpOwotfQotCi1zdGF0aWMg
dm9pZCB3cml0ZUxpbmUoY29uc3QgU3RyaW5nJiBsaW5lKQotewotICAgIENTdHJpbmcgdXRmOFN0
cmluZyA9IGxpbmUudXRmOCgpOwotICAgIGNvbnN0IGNoYXIqIHV0ZjhEYXRhID0gdXRmOFN0cmlu
Zy5kYXRhKCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdXRmOFN0cmluZy5sZW5n
dGgoKTsgaSsrKSB7Ci0gICAgICAgIGNoYXIgY2hhcmFjdGVyID0gdXRmOERhdGFbaV07Ci0gICAg
ICAgIGlmIChjaGFyYWN0ZXIgIT0gJ1xuJykKLSAgICAgICAgICAgIHdyaXRlQ2hhcmFjdGVyKGNo
YXJhY3Rlcik7Ci0gICAgfQotICAgIHdyaXRlQ2hhcmFjdGVyKCdcbicpOwotfQotCi1ib29sIE5l
dHNjYXBlUGx1Z2luTW9kdWxlOjpzY2FuUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCkK
LXsKLSAgICBSYXdQbHVnaW5NZXRhRGF0YSBtZXRhRGF0YTsKLQotICAgIHsKLSAgICAgICAgLy8g
RG9uJ3QgYWxsb3cgdGhlIHBsdWdpbiB0byBwb2xsdXRlIHRoZSBzdGFuZGFyZCBvdXRwdXQuCi0g
ICAgICAgIFN0ZG91dERldk51bGxSZWRpcmVjdG9yIHN0ZE91dFJlZGlyZWN0b3I7Ci0KLSAgICAg
ICAgLy8gV2UgYXJlIGxvYWRpbmcgdGhlIHBsdWdpbiBoZXJlIHNpbmNlIGl0IGRvZXMgbm90IHNl
ZW0gdG8gYmUgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvCi0gICAgICAgIC8vIGdldCB0aGUgbmVlZGVk
IGluZm9ybWF0aW9ucyBmcm9tIGEgVU5JWCBwbHVnaW4gd2l0aG91dCBsb2FkaW5nIGl0LgotICAg
ICAgICBSZWZQdHI8TmV0c2NhcGVQbHVnaW5Nb2R1bGU+IHBsdWdpbk1vZHVsZSA9IE5ldHNjYXBl
UGx1Z2luTW9kdWxlOjpnZXRPckNyZWF0ZShwbHVnaW5QYXRoKTsKLSAgICAgICAgaWYgKCFwbHVn
aW5Nb2R1bGUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcGx1Z2luTW9k
dWxlLT5pbmNyZW1lbnRMb2FkQ291bnQoKTsKLSAgICAgICAgYm9vbCBzdWNjZXNzID0gcGx1Z2lu
TW9kdWxlLT5nZXRQbHVnaW5JbmZvRm9yTG9hZGVkUGx1Z2luKG1ldGFEYXRhKTsKLSAgICAgICAg
cGx1Z2luTW9kdWxlLT5kZWNyZW1lbnRMb2FkQ291bnQoKTsKLQotICAgICAgICBpZiAoIXN1Y2Nl
c3MpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLy8gV3JpdGUgZGF0
YSB0byBzdGFuZGFyZCBvdXRwdXQgZm9yIHRoZSBVSSBwcm9jZXNzLgotICAgIHdyaXRlTGluZSht
ZXRhRGF0YS5uYW1lKTsKLSAgICB3cml0ZUxpbmUobWV0YURhdGEuZGVzY3JpcHRpb24pOwotICAg
IHdyaXRlTGluZShtZXRhRGF0YS5taW1lRGVzY3JpcHRpb24pOwotCi0gICAgZmZsdXNoKHN0ZG91
dCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBQTFVHSU5fQVJDSElURUNUVVJFKFVOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy91bml4L1Bs
dWdpblNlYXJjaFBhdGguY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy91bml4L1Bs
dWdpblNlYXJjaFBhdGguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDg1M2Vh
MmIzODkuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL3Vu
aXgvUGx1Z2luU2VhcmNoUGF0aC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQbHVnaW5TZWFyY2hQYXRoLmgiCi0KLSNpbmNsdWRlIDx3
dGYvRmlsZVN5c3RlbS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotVmVjdG9yPFN0cmluZz4g
cGx1Z2luc0RpcmVjdG9yaWVzKCkKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7Ci0KLSNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBTdHJpbmcgbW96aWxsYVBhdGhzKGdl
dGVudigiTU9aX1BMVUdJTl9QQVRIIikpOwotICAgIGlmICghbW96aWxsYVBhdGhzLmlzRW1wdHko
KSkgewotICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXRocyA9IG1vemlsbGFQYXRocy5zcGxpdCgn
OicpOwotICAgICAgICByZXN1bHQuYXBwZW5kVmVjdG9yKHBhdGhzKTsKLSAgICB9Ci0KLSAgICBT
dHJpbmcgbW96aWxsYUhvbWUoZ2V0ZW52KCJNT1pJTExBX0hPTUUiKSk7Ci0gICAgaWYgKCFtb3pp
bGxhSG9tZS5pc0VtcHR5KCkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQobW96aWxsYUhvbWUgKyAi
L3BsdWdpbnMiKTsKLQotICAgIHJlc3VsdC5hcHBlbmQoRmlsZVN5c3RlbTo6aG9tZURpcmVjdG9y
eVBhdGgoKSArICIvLm1vemlsbGEvcGx1Z2lucyIpOwotICAgIHJlc3VsdC5hcHBlbmQoRmlsZVN5
c3RlbTo6aG9tZURpcmVjdG9yeVBhdGgoKSArICIvLm5ldHNjYXBlL3BsdWdpbnMiKTsKLSAgICBy
ZXN1bHQuYXBwZW5kKCIvdXNyL2xpYi9icm93c2VyL3BsdWdpbnMiKTsKLSAgICByZXN1bHQuYXBw
ZW5kKCIvdXNyL2xvY2FsL2xpYi9tb3ppbGxhL3BsdWdpbnMiKTsKLSAgICByZXN1bHQuYXBwZW5k
KCIvdXNyL2xpYi9maXJlZm94L3BsdWdpbnMiKTsKLSAgICByZXN1bHQuYXBwZW5kKCIvdXNyL2xp
YjY0L2Jyb3dzZXItcGx1Z2lucyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIi91c3IvbGliL2Jyb3dz
ZXItcGx1Z2lucyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIi91c3IvbGliL21vemlsbGEvcGx1Z2lu
cyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIi91c3IvbG9jYWwvbmV0c2NhcGUvcGx1Z2lucyIpOwot
ICAgIHJlc3VsdC5hcHBlbmQoIi9vcHQvbW96aWxsYS9wbHVnaW5zIik7Ci0gICAgcmVzdWx0LmFw
cGVuZCgiL29wdC9tb3ppbGxhL2xpYi9wbHVnaW5zIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiL29w
dC9uZXRzY2FwZS9wbHVnaW5zIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiL29wdC9uZXRzY2FwZS9j
b21tdW5pY2F0b3IvcGx1Z2lucyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIi91c3IvbGliL25ldHNj
YXBlL3BsdWdpbnMiKTsKLSAgICByZXN1bHQuYXBwZW5kKCIvdXNyL2xpYi9uZXRzY2FwZS9wbHVn
aW5zLWxpYmM1Iik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiL3Vzci9saWIvbmV0c2NhcGUvcGx1Z2lu
cy1saWJjNiIpOwotICAgIHJlc3VsdC5hcHBlbmQoIi91c3IvbGliNjQvbmV0c2NhcGUvcGx1Z2lu
cyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIi91c3IvbGliNjQvbW96aWxsYS9wbHVnaW5zIik7Ci0g
ICAgcmVzdWx0LmFwcGVuZCgiL3Vzci9saWIvbnNicm93c2VyL3BsdWdpbnMiKTsKLSAgICByZXN1
bHQuYXBwZW5kKCIvdXNyL2xpYjY0L25zYnJvd3Nlci9wbHVnaW5zIik7Ci0jZW5kaWYKLQotICAg
IHJldHVybiByZXN1bHQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy91bml4L1BsdWdpblNlYXJjaFBhdGguaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvdW5peC9QbHVnaW5TZWFyY2hQYXRoLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1YTEzZWM4ZTcyNC4uMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvdW5peC9QbHVnaW5TZWFyY2hQYXRoLmgKKysr
IC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEln
YWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGx1Z2luU2VhcmNoUGF0aF9oCi0jZGVmaW5l
IFBsdWdpblNlYXJjaFBhdGhfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1WZWN0b3I8U3RyaW5nPiBw
bHVnaW5zRGlyZWN0b3JpZXMoKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBQbHVnaW5TYW5kYm94UHJvZmlsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBiMjA3OTVhZjIw
OGIuLmZjODg2MWMyMjFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC02MCwxMCArNjAsNiBAQCBQ
bGF0Zm9ybS9nbGliL01vZHVsZUdsaWIuY3BwCiBQbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNw
cAogUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAogCi1QbHVnaW5Qcm9jZXNzL3Vu
aXgvUGx1Z2luQ29udHJvbGxlclByb3h5VW5peC5jcHAKLVBsdWdpblByb2Nlc3MvdW5peC9QbHVn
aW5Qcm9jZXNzTWFpblVuaXguY3BwCi1QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc1Vu
aXguY3BwCi0KIFNoYXJlZC9BUEkvYy9jYWlyby9XS0ltYWdlQ2Fpcm8uY3BwCiAKIFNoYXJlZC9B
UEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudS5jcHAgQG5vLXVuaWZ5CkBAIC04MSwxMSArNzcsNiBA
QCBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRp
bmdSdW5Mb29wLmNwcAogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAogU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKIAotU2hh
cmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGVOb25lLmNwcAotU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCi0KLVNo
YXJlZC9QbHVnaW5zL3VuaXgvUGx1Z2luU2VhcmNoUGF0aC5jcHAKLQogU2hhcmVkL2NhaXJvL1No
YXJlYWJsZUJpdG1hcENhaXJvLmNwcAogCiBTaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIu
Y3BwCkBAIC0yNDAsMTEgKzIzMSw2IEBAIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtM
YXVuY2hlci5jcHAgQG5vLXVuaWZ5CiAKIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1v
bml0b3IuY3BwCiAKLVVJUHJvY2Vzcy9QbHVnaW5zL2d0ay9QbHVnaW5JbmZvQ2FjaGUuY3BwCi0K
LVVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKLVVJUHJvY2Vz
cy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKLQogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURhdGFTdG9yZVNvdXAuY3BwCiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3JlVW5peC5jcHAKIApAQCAtNDE1LDExICs0MDEsNiBA
QCBXZWJQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwCiAKIFdlYlBy
b2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAogCi1XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpblVuaXguY3BwIEBuby11bmlm
eQotV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvUGx1Z2luUHJveHlVbml4LmNwcCBA
bm8tdW5pZnkKLQotV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdp
blgxMS5jcHAgQG5vLXVuaWZ5Ci0KIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ2xpYi9XZWJF
ZGl0b3JDbGllbnRHTGliLmNwcAogCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJD
b250ZXh0TWVudUNsaWVudEd0ay5jcHAKQEAgLTQ1Miw1ICs0MzMsMyBAQCBXZWJQcm9jZXNzL2ds
aWIvV2ViUHJvY2Vzc0dMaWIuY3BwCiAKIFdlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
RGlzcGxheS5jcHAKIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAotCi1XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Ob25lLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQ
RS50eHQKaW5kZXggYTk0MGIzZGEwNTFlLi42ZTAxZjA0MTRlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4
dApAQCAtNjAsMTAgKzYwLDYgQEAgUGxhdGZvcm0vZ2xpYi9Nb2R1bGVHbGliLmNwcAogUGxhdGZv
cm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5j
cHAKIAotUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpbkNvbnRyb2xsZXJQcm94eVVuaXguY3BwCi1Q
bHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcAotUGx1Z2luUHJvY2Vz
cy91bml4L1BsdWdpblByb2Nlc3NVbml4LmNwcAotCiBTaGFyZWQvQVBJL2MvY2Fpcm8vV0tJbWFn
ZUNhaXJvLmNwcAogCiBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnUuY3BwIEBuby11
bmlmeQpAQCAtODEsOSArNzcsNiBAQCBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAogU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZy
ZXNoTW9uaXRvci5jcHAKIAotU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5N
b2R1bGVOb25lLmNwcAotU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdp
bk1vZHVsZVVuaXguY3BwCi0KIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAK
IAogU2hhcmVkL2dsaWIvQXJndW1lbnRDb2RlcnNHTGliLmNwcApAQCAtMjEwLDkgKzIwMyw2IEBA
IFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwCiBVSVByb2Nl
c3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCiBVSVByb2Nlc3MvTGF1bmNo
ZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwCiAKLVVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1
Z2luSW5mb1N0b3JlVW5peC5jcHAKLVVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vz
c1Byb3h5VW5peC5jcHAKLQogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURhdGFT
dG9yZVNvdXAuY3BwCiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3Jl
VW5peC5jcHAKIApAQCAtMjUwLDggKzI0MCw2IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
Z2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAogCi1XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW5Ob25lLmNwcCBAbm8tdW5pZnkKLQogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9nbGliL1dlYkVkaXRvckNsaWVudEdMaWIuY3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWltZUluZm8uY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWltZUluZm8uY3BwCmluZGV4IDg3ZjMw
ZWU0M2QyOS4uYzE4ZjNhMGM5MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNaW1lSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0TWltZUluZm8uY3BwCkBAIC0yMCwzMiArMjAsMTIgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRNaW1lSW5mby5oIgogCi0jaW5jbHVkZSAi
V2ViS2l0TWltZUluZm9Qcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQogc3RydWN0IF9XZWJLaXRNaW1lSW5mbyB7
Ci0gICAgX1dlYktpdE1pbWVJbmZvKGNvbnN0IFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8mIG1pbWVJ
bmZvKQotICAgICAgICA6IG1pbWVJbmZvKG1pbWVJbmZvKQotICAgIHsKLSAgICB9Ci0KLSAgICBX
ZWJDb3JlOjpNaW1lQ2xhc3NJbmZvIG1pbWVJbmZvOwotICAgIENTdHJpbmcgbWltZVR5cGU7Ci0g
ICAgQ1N0cmluZyBkZXNjcmlwdGlvbjsKLSAgICBHUmVmUHRyPEdQdHJBcnJheT4gZXh0ZW5zaW9u
czsKLQotICAgIGludCByZWZlcmVuY2VDb3VudCB7IDAgfTsKIH07CiAKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiBHX0RFRklORV9CT1hFRF9UWVBFKFdlYktpdE1pbWVJbmZv
LCB3ZWJraXRfbWltZV9pbmZvLCB3ZWJraXRfbWltZV9pbmZvX3JlZiwgd2Via2l0X21pbWVfaW5m
b191bnJlZikKLQotV2ViS2l0TWltZUluZm8qIHdlYmtpdE1pbWVJbmZvQ3JlYXRlKGNvbnN0IFdl
YkNvcmU6Ok1pbWVDbGFzc0luZm8mIG1pbWVJbmZvKQotewotICAgIFdlYktpdE1pbWVJbmZvKiBp
bmZvID0gc3RhdGljX2Nhc3Q8V2ViS2l0TWltZUluZm8qPihmYXN0TWFsbG9jKHNpemVvZihXZWJL
aXRNaW1lSW5mbykpKTsKLSAgICBuZXcgKGluZm8pIFdlYktpdE1pbWVJbmZvKG1pbWVJbmZvKTsK
LSAgICByZXR1cm4gaW5mbzsKLX0KK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAvKioKICAqIHdlYmtpdF9taW1lX2luZm9fcmVmOgpAQCAtNTUsMTEgKzM1LDEyIEBAIFdlYktp
dE1pbWVJbmZvKiB3ZWJraXRNaW1lSW5mb0NyZWF0ZShjb25zdCBXZWJDb3JlOjpNaW1lQ2xhc3NJ
bmZvJiBtaW1lSW5mbykKICAqIGZ1bmN0aW9uIGlzIE1ULXNhZmUgYW5kIG1heSBiZSBjYWxsZWQg
ZnJvbSBhbnkgdGhyZWFkLgogICoKICAqIFJldHVybnM6IFRoZSBwYXNzZWQgaW4gI1dlYktpdE1p
bWVJbmZvCisgKgorICogRGVwcmVjYXRlZDogMi4zMgogICovCi1XZWJLaXRNaW1lSW5mbyogd2Vi
a2l0X21pbWVfaW5mb19yZWYoV2ViS2l0TWltZUluZm8qIGluZm8pCitXZWJLaXRNaW1lSW5mbyog
d2Via2l0X21pbWVfaW5mb19yZWYoV2ViS2l0TWltZUluZm8qKQogewotICAgIGdfYXRvbWljX2lu
dF9pbmMoJmluZm8tPnJlZmVyZW5jZUNvdW50KTsKLSAgICByZXR1cm4gaW5mbzsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogLyoqCkBAIC03MCwxMyArNTEsMTEgQEAgV2ViS2l0TWltZUluZm8q
IHdlYmtpdF9taW1lX2luZm9fcmVmKFdlYktpdE1pbWVJbmZvKiBpbmZvKQogICogcmVmZXJlbmNl
IGNvdW50IGRyb3BzIHRvIDAsIGFsbCBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSAjV2ViS2l0TWlt
ZUluZm8gaXMKICAqIHJlbGVhc2VkLiBUaGlzIGZ1bmN0aW9uIGlzIE1ULXNhZmUgYW5kIG1heSBi
ZSBjYWxsZWQgZnJvbSBhbnkKICAqIHRocmVhZC4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjMyCiAg
Ki8KLXZvaWQgd2Via2l0X21pbWVfaW5mb191bnJlZihXZWJLaXRNaW1lSW5mbyogaW5mbykKK3Zv
aWQgd2Via2l0X21pbWVfaW5mb191bnJlZihXZWJLaXRNaW1lSW5mbyopCiB7Ci0gICAgaWYgKGdf
YXRvbWljX2ludF9kZWNfYW5kX3Rlc3QoJmluZm8tPnJlZmVyZW5jZUNvdW50KSkgewotICAgICAg
ICBpbmZvLT5+V2ViS2l0TWltZUluZm8oKTsKLSAgICAgICAgZmFzdEZyZWUoaW5mbyk7Ci0gICAg
fQogfQogCiAvKioKQEAgLTg0LDE3ICs2MywxMiBAQCB2b2lkIHdlYmtpdF9taW1lX2luZm9fdW5y
ZWYoV2ViS2l0TWltZUluZm8qIGluZm8pCiAgKiBAaW5mbzogYSAjV2ViS2l0TWltZUluZm8KICAq
CiAgKiBSZXR1cm5zOiB0aGUgTUlNRSB0eXBlIG9mIEBpbmZvCisgKgorICogRGVwcmVjYXRlZDog
Mi4zMgogICovCi1jb25zdCBjaGFyKiB3ZWJraXRfbWltZV9pbmZvX2dldF9taW1lX3R5cGUoV2Vi
S2l0TWltZUluZm8qIGluZm8pCitjb25zdCBjaGFyKiB3ZWJraXRfbWltZV9pbmZvX2dldF9taW1l
X3R5cGUoV2ViS2l0TWltZUluZm8qKQogewotICAgIGlmICghaW5mby0+bWltZVR5cGUuaXNOdWxs
KCkpCi0gICAgICAgIHJldHVybiBpbmZvLT5taW1lVHlwZS5kYXRhKCk7Ci0KLSAgICBpZiAoaW5m
by0+bWltZUluZm8udHlwZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgaW5m
by0+bWltZVR5cGUgPSBpbmZvLT5taW1lSW5mby50eXBlLnV0ZjgoKTsKLSAgICByZXR1cm4gaW5m
by0+bWltZVR5cGUuZGF0YSgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiAvKioKQEAgLTEw
MiwxNyArNzYsMTIgQEAgY29uc3QgY2hhciogd2Via2l0X21pbWVfaW5mb19nZXRfbWltZV90eXBl
KFdlYktpdE1pbWVJbmZvKiBpbmZvKQogICogQGluZm86IGEgI1dlYktpdE1pbWVJbmZvCiAgKgog
ICogUmV0dXJuczogdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBNSU1FIHR5cGUgb2YgQGluZm8KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjMyCiAgKi8KLWNvbnN0IGNoYXIqIHdlYmtpdF9taW1lX2luZm9f
Z2V0X2Rlc2NyaXB0aW9uKFdlYktpdE1pbWVJbmZvKiBpbmZvKQorY29uc3QgY2hhciogd2Via2l0
X21pbWVfaW5mb19nZXRfZGVzY3JpcHRpb24oV2ViS2l0TWltZUluZm8qKQogewotICAgIGlmICgh
aW5mby0+ZGVzY3JpcHRpb24uaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBpbmZvLT5kZXNjcmlw
dGlvbi5kYXRhKCk7Ci0KLSAgICBpZiAoaW5mby0+bWltZUluZm8uZGVzYy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgaW5mby0+ZGVzY3JpcHRpb24gPSBpbmZvLT5taW1lSW5m
by5kZXNjLnV0ZjgoKTsKLSAgICByZXR1cm4gaW5mby0+ZGVzY3JpcHRpb24uZGF0YSgpOworICAg
IHJldHVybiBudWxscHRyOwogfQogCiAvKioKQEAgLTEyNCwyMiArOTMsMTAgQEAgY29uc3QgY2hh
ciogd2Via2l0X21pbWVfaW5mb19nZXRfZGVzY3JpcHRpb24oV2ViS2l0TWltZUluZm8qIGluZm8p
CiAgKgogICogUmV0dXJuczogKGFycmF5IHplcm8tdGVybWluYXRlZD0xKSAodHJhbnNmZXIgbm9u
ZSk6IGEKICAqICAgICAlTlVMTC10ZXJtaW5hdGVkIGFycmF5IG9mIHN0cmluZ3MKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjMyCiAgKi8KLWNvbnN0IGNoYXIqIGNvbnN0KiB3ZWJraXRfbWltZV9pbmZv
X2dldF9leHRlbnNpb25zKFdlYktpdE1pbWVJbmZvKiBpbmZvKQorY29uc3QgY2hhciogY29uc3Qq
IHdlYmtpdF9taW1lX2luZm9fZ2V0X2V4dGVuc2lvbnMoV2ViS2l0TWltZUluZm8qKQogewotICAg
IGlmIChpbmZvLT5leHRlbnNpb25zKQotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxn
Y2hhcioqPihpbmZvLT5leHRlbnNpb25zLT5wZGF0YSk7Ci0KLSAgICBpZiAoaW5mby0+bWltZUlu
Zm8uZXh0ZW5zaW9ucy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgaW5mby0+
ZXh0ZW5zaW9ucyA9IGFkb3B0R1JlZihnX3B0cl9hcnJheV9uZXdfd2l0aF9mcmVlX2Z1bmMoZ19m
cmVlKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmZvLT5taW1lSW5mby5leHRlbnNp
b25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChpbmZvLT5taW1lSW5mby5leHRlbnNpb25z
W2ldLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBnX3B0cl9hcnJh
eV9hZGQoaW5mby0+ZXh0ZW5zaW9ucy5nZXQoKSwgZ19zdHJkdXAoaW5mby0+bWltZUluZm8uZXh0
ZW5zaW9uc1tpXS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgfQotICAgIGdfcHRyX2FycmF5X2FkZChp
bmZvLT5leHRlbnNpb25zLmdldCgpLCAwKTsKLQotICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGdjaGFyKio+KGluZm8tPmV4dGVuc2lvbnMtPnBkYXRhKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1p
bWVJbmZvUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
TWltZUluZm9Qcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwODllMDAw
YzBjMS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE1pbWVJbmZvUHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIldlYktpdE1pbWVJbmZvLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+
Ci0KLVdlYktpdE1pbWVJbmZvKiB3ZWJraXRNaW1lSW5mb0NyZWF0ZShjb25zdCBXZWJDb3JlOjpN
aW1lQ2xhc3NJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRQbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0UGx1Z2luLmNwcAppbmRleCA0MjFlMGI4ZTgwNGQuLjI2YWEwMDczYTk2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UGx1Z2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQbHVnaW4uY3BwCkBA
IC0yMCwxMiArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFBs
dWdpbi5oIgogCi0jaW5jbHVkZSAiV2ViS2l0TWltZUluZm9Qcml2YXRlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0UGx1Z2luUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
CiAvKioKICAqIFNFQ1RJT046IFdlYktpdFBsdWdpbgpAQCAtMzksNTIgKzM0LDMxIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAgKiBiZSBvYnRhaW5lZCBmcm9tIHRoZSAjV2ViS2l0V2ViQ29u
dGV4dCwgd2l0aAogICogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zKCkuCiAgKgorICog
RGVwcmVjYXRlZDogMi4zMgogICovCiAKIHN0cnVjdCBfV2ViS2l0UGx1Z2luUHJpdmF0ZSB7Ci0g
ICAgfl9XZWJLaXRQbHVnaW5Qcml2YXRlKCkKLSAgICB7Ci0gICAgICAgIGdfbGlzdF9mcmVlX2Z1
bGwobWltZUluZm9MaXN0LCByZWludGVycHJldF9jYXN0PEdEZXN0cm95Tm90aWZ5Pih3ZWJraXRf
bWltZV9pbmZvX3VucmVmKSk7Ci0gICAgfQotCi0gICAgUGx1Z2luTW9kdWxlSW5mbyBwbHVnaW5J
bmZvOwotICAgIENTdHJpbmcgbmFtZTsKLSAgICBDU3RyaW5nIGRlc2NyaXB0aW9uOwotICAgIENT
dHJpbmcgcGF0aDsKLSAgICBHTGlzdCogbWltZUluZm9MaXN0OwogfTsKIAorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRQbHVnaW4s
IHdlYmtpdF9wbHVnaW4sIEdfVFlQRV9PQkpFQ1QpCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogc3RhdGljIHZvaWQgd2Via2l0X3BsdWdpbl9jbGFzc19pbml0KFdlYktpdFBs
dWdpbkNsYXNzKikKIHsKIH0KIAotV2ViS2l0UGx1Z2luKiB3ZWJraXRQbHVnaW5DcmVhdGUoY29u
c3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luSW5mbykKLXsKLSAgICBXZWJLaXRQbHVnaW4qIHBs
dWdpbiA9IFdFQktJVF9QTFVHSU4oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1BMVUdJTiwgTlVM
TCkpOwotICAgIHBsdWdpbi0+cHJpdi0+cGx1Z2luSW5mbyA9IHBsdWdpbkluZm87Ci0gICAgcmV0
dXJuIHBsdWdpbjsKLX0KLQogLyoqCiAgKiB3ZWJraXRfcGx1Z2luX2dldF9uYW1lOgogICogQHBs
dWdpbjogYSAjV2ViS2l0UGx1Z2luCiAgKgogICogUmV0dXJuczogdGhlIG5hbWUgb2YgdGhlIHBs
dWdpbi4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjMyCiAgKi8KLWNvbnN0IGNoYXIqIHdlYmtpdF9w
bHVnaW5fZ2V0X25hbWUoV2ViS2l0UGx1Z2luKiBwbHVnaW4pCitjb25zdCBjaGFyKiB3ZWJraXRf
cGx1Z2luX2dldF9uYW1lKFdlYktpdFBsdWdpbiopCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1BMVUdJTihwbHVnaW4pLCAwKTsKLQotICAgIGlmICghcGx1Z2luLT5wcml2
LT5uYW1lLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gcGx1Z2luLT5wcml2LT5uYW1lLmRhdGEo
KTsKLQotICAgIGlmIChwbHVnaW4tPnByaXYtPnBsdWdpbkluZm8uaW5mby5uYW1lLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBwbHVnaW4tPnByaXYtPm5hbWUgPSBwbHVnaW4t
PnByaXYtPnBsdWdpbkluZm8uaW5mby5uYW1lLnV0ZjgoKTsKLSAgICByZXR1cm4gcGx1Z2luLT5w
cml2LT5uYW1lLmRhdGEoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogLyoqCkBAIC05Miwx
OSArNjYsMTIgQEAgY29uc3QgY2hhciogd2Via2l0X3BsdWdpbl9nZXRfbmFtZShXZWJLaXRQbHVn
aW4qIHBsdWdpbikKICAqIEBwbHVnaW46IGEgI1dlYktpdFBsdWdpbgogICoKICAqIFJldHVybnM6
IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcGx1Z2luLgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMzIK
ICAqLwotY29uc3QgY2hhciogd2Via2l0X3BsdWdpbl9nZXRfZGVzY3JpcHRpb24oV2ViS2l0UGx1
Z2luKiBwbHVnaW4pCitjb25zdCBjaGFyKiB3ZWJraXRfcGx1Z2luX2dldF9kZXNjcmlwdGlvbihX
ZWJLaXRQbHVnaW4qKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19QTFVH
SU4ocGx1Z2luKSwgMCk7Ci0KLSAgICBpZiAoIXBsdWdpbi0+cHJpdi0+ZGVzY3JpcHRpb24uaXNO
dWxsKCkpCi0gICAgICAgIHJldHVybiBwbHVnaW4tPnByaXYtPmRlc2NyaXB0aW9uLmRhdGEoKTsK
LQotICAgIGlmIChwbHVnaW4tPnByaXYtPnBsdWdpbkluZm8uaW5mby5kZXNjLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBwbHVnaW4tPnByaXYtPmRlc2NyaXB0aW9uID0gcGx1
Z2luLT5wcml2LT5wbHVnaW5JbmZvLmluZm8uZGVzYy51dGY4KCk7Ci0gICAgcmV0dXJuIHBsdWdp
bi0+cHJpdi0+ZGVzY3JpcHRpb24uZGF0YSgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiAv
KioKQEAgLTExMiwxOSArNzksMTIgQEAgY29uc3QgY2hhciogd2Via2l0X3BsdWdpbl9nZXRfZGVz
Y3JpcHRpb24oV2ViS2l0UGx1Z2luKiBwbHVnaW4pCiAgKiBAcGx1Z2luOiBhICNXZWJLaXRQbHVn
aW4KICAqCiAgKiBSZXR1cm5zOiB0aGUgYWJzb2x1dGUgcGF0aCB3aGVyZSB0aGUgcGx1Z2luIGlz
IGluc3RhbGxlZC4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjMyCiAgKi8KLWNvbnN0IGNoYXIqIHdl
YmtpdF9wbHVnaW5fZ2V0X3BhdGgoV2ViS2l0UGx1Z2luKiBwbHVnaW4pCitjb25zdCBjaGFyKiB3
ZWJraXRfcGx1Z2luX2dldF9wYXRoKFdlYktpdFBsdWdpbiopCiB7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1BMVUdJTihwbHVnaW4pLCAwKTsKLQotICAgIGlmICghcGx1Z2lu
LT5wcml2LT5wYXRoLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gcGx1Z2luLT5wcml2LT5wYXRo
LmRhdGEoKTsKLQotICAgIGlmIChwbHVnaW4tPnByaXYtPnBsdWdpbkluZm8ucGF0aC5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcGx1Z2luLT5wcml2LT5wYXRoID0gcGx1Z2lu
LT5wcml2LT5wbHVnaW5JbmZvLnBhdGgudXRmOCgpOwotICAgIHJldHVybiBwbHVnaW4tPnByaXYt
PnBhdGguZGF0YSgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiAvKioKQEAgLTEzNSwxOCAr
OTUsMTAgQEAgY29uc3QgY2hhciogd2Via2l0X3BsdWdpbl9nZXRfcGF0aChXZWJLaXRQbHVnaW4q
IHBsdWdpbikKICAqIGFzIGEgbGlzdCBvZiAjV2ViS2l0TWltZUluZm8uCiAgKgogICogUmV0dXJu
czogKGVsZW1lbnQtdHlwZSBXZWJLaXRNaW1lSW5mbykgKHRyYW5zZmVyIG5vbmUpOiBhICNHTGlz
dCBvZiAjV2ViS2l0TWltZUluZm8uCisgKgorICogRGVwcmVjYXRlZDogMi4zMgogICovCi1HTGlz
dCogd2Via2l0X3BsdWdpbl9nZXRfbWltZV9pbmZvX2xpc3QoV2ViS2l0UGx1Z2luKiBwbHVnaW4p
CitHTGlzdCogd2Via2l0X3BsdWdpbl9nZXRfbWltZV9pbmZvX2xpc3QoV2ViS2l0UGx1Z2luKikK
IHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfUExVR0lOKHBsdWdpbiksIDAp
OwotCi0gICAgaWYgKHBsdWdpbi0+cHJpdi0+bWltZUluZm9MaXN0KQotICAgICAgICByZXR1cm4g
cGx1Z2luLT5wcml2LT5taW1lSW5mb0xpc3Q7Ci0KLSAgICBpZiAocGx1Z2luLT5wcml2LT5wbHVn
aW5JbmZvLmluZm8ubWltZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcGx1Z2luLT5wcml2LT5wbHVnaW5JbmZvLmluZm8ubWltZXMu
c2l6ZSgpOyArK2kpCi0gICAgICAgIHBsdWdpbi0+cHJpdi0+bWltZUluZm9MaXN0ID0gZ19saXN0
X3ByZXBlbmQocGx1Z2luLT5wcml2LT5taW1lSW5mb0xpc3QsIHdlYmtpdE1pbWVJbmZvQ3JlYXRl
KHBsdWdpbi0+cHJpdi0+cGx1Z2luSW5mby5pbmZvLm1pbWVzW2ldKSk7Ci0gICAgcmV0dXJuIHBs
dWdpbi0+cHJpdi0+bWltZUluZm9MaXN0OworICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UGx1Z2luUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UGx1Z2luUHJpdmF0
ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWMzM2VlZjJiMDAuLjAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQbHVnaW5Q
cml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiUGx1Z2luTW9k
dWxlSW5mby5oIgotI2luY2x1ZGUgIldlYktpdFBsdWdpbi5oIgotCi1XZWJLaXRQbHVnaW4qIHdl
YmtpdFBsdWdpbkNyZWF0ZShjb25zdCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUluZm8mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApp
bmRleCBiN2Y5YTA5YmMxNGIuLjEwODM5NTNmNWQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMjQwLDcgKzI0MCw2
IEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0
LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFs
dWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0VOQUJMRV9QTFVHSU5TOgotICAg
ICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9wbHVnaW5zKHNldHRpbmdzLCBnX3ZhbHVl
X2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9FTkFC
TEVfSkFWQToKICAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfamF2YShzZXR0aW5n
cywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwpAQCAtNDQxLDcgKzQ0MCw3IEBAIHN0YXRp
YyB2b2lkIHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wSWQsIEdWYWx1ZSogdmFsCiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdl
YmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcoc2V0dGluZ3MpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0VOQUJMRV9QTFVHSU5TOgotICAgICAgICBnX3Zh
bHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9wbHVnaW5z
KHNldHRpbmdzKSk7CisgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIEZBTFNFKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0VOQUJMRV9KQVZBOgogICAgICAgICBnX3Zh
bHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9qYXZhKHNl
dHRpbmdzKSk7CkBAIC03MzksMTMgKzczOCwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGlu
Z3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBXZWJLaXRT
ZXR0aW5nczplbmFibGUtcGx1Z2luczoKICAgICAgKgogICAgICAqIERldGVybWluZXMgd2hldGhl
ciBvciBub3QgcGx1Z2lucyBvbiB0aGUgcGFnZSBhcmUgZW5hYmxlZC4KKyAgICAgKgorICAgICAq
IERlcHJlY2F0ZWQ6IDIuMzIKICAgICAgKi8KICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KGdPYmplY3RDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfRU5BQkxFX1BMVUdJTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLXBsdWdpbnMiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIHBsdWdp
bnMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIkVuYWJsZSBlbWJlZGRlZCBwbHVnaW4gb2JqZWN0cy4iKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxT
RSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKIAogICAgIC8qKgpAQCAtMTg4OSwx
MiArMTg5MCwxNiBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0
ZW5pbmcoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbAogICogR2V0IHRoZSAjV2ViS2l0
U2V0dGluZ3M6ZW5hYmxlLXBsdWdpbnMgcHJvcGVydHkuCiAgKgogICogUmV0dXJuczogJVRSVUUg
SWYgcGx1Z2lucyBhcmUgZW5hYmxlZCBvciAlRkFMU0Ugb3RoZXJ3aXNlLgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMzIKICAqLwogZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGx1
Z2lucyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgRkFMU0UpOwogCi0gICAgcmV0dXJuIHNl
dHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+cGx1Z2luc0VuYWJsZWQoKTsKKyAgICBnX3dhcm5p
bmcoIndlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BsdWdpbnMgaXMgZGVwcmVjYXRlZCBhbmQg
YWx3YXlzIHJldHVybnMgRkFMU0UuIFBsdWdpbnMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuIik7
CisKKyAgICByZXR1cm4gRkFMU0U7CiB9CiAKIC8qKgpAQCAtMTkwMywxOCArMTkwOCwxNCBAQCBn
Ym9vbGVhbiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9wbHVnaW5zKFdlYktpdFNldHRpbmdz
KiBzZXR0aW5ncykKICAqIEBlbmFibGVkOiBWYWx1ZSB0byBiZSBzZXQKICAqCiAgKiBTZXQgdGhl
ICNXZWJLaXRTZXR0aW5nczplbmFibGUtcGx1Z2lucyBwcm9wZXJ0eS4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjMyCiAgKi8KLXZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfcGx1Z2lucyhX
ZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGVuYWJsZWQpCit2b2lkIHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX3BsdWdpbnMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9v
bGVhbikKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5n
cykpOwogCi0gICAgV2ViS2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7
Ci0gICAgYm9vbCBjdXJyZW50VmFsdWUgPSBwcml2LT5wcmVmZXJlbmNlcy0+cGx1Z2luc0VuYWJs
ZWQoKTsKLSAgICBpZiAoY3VycmVudFZhbHVlID09IGVuYWJsZWQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGVkKTsKLSAg
ICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXBsdWdpbnMiKTsK
KyAgICBnX3dhcm5pbmcoIndlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3BsdWdpbnMgaXMgZGVw
cmVjYXRlZCBhbmQgZG9lcyBub3RoaW5nLiBQbHVnaW5zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVk
LiIpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggZDAzNzkzOWViZGRkLi5lOGQyNWY4YmNmMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YkNvbnRleHQuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc1ByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIgotI2luY2x1ZGUg
IldlYktpdFBsdWdpblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0U2VjdXJpdHlN
YW5hZ2VyUHJpdmF0ZS5oIgpAQCAtMTE1MiwzMSArMTE1MSwxMiBAQCBXZWJLaXRTZWN1cml0eU1h
bmFnZXIqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfbWFuYWdlcihXZWJLaXRXZWJD
b250ZXh0KgogICogQGRpcmVjdG9yeTogdGhlIGRpcmVjdG9yeSB0byBhZGQKICAqCiAgKiBTZXQg
YW4gYWRkaXRpb25hbCBkaXJlY3Rvcnkgd2hlcmUgV2ViS2l0IHdpbGwgbG9vayBmb3IgcGx1Z2lu
cy4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjMyCiAgKi8KLXZvaWQgd2Via2l0X3dlYl9jb250ZXh0
X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5KFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IGNoYXIqIGRpcmVjdG9yeSkKK3ZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9h
ZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5KFdlYktpdFdlYkNvbnRleHQqLCBjb25zdCBjaGFy
KikKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0
KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChkaXJlY3RvcnkpOwotCi0jaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCi0gICAgY29udGV4dC0+cHJpdi0+cHJvY2Vzc1Bvb2wtPnNldEFkZGl0
aW9uYWxQbHVnaW5zRGlyZWN0b3J5KEZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24oZGlyZWN0b3J5KSk7Ci0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgZGVzdHJv
eVBsdWdpbkxpc3QoR0xpc3QqIHBsdWdpbnMpCi17Ci0gICAgZ19saXN0X2ZyZWVfZnVsbChwbHVn
aW5zLCBnX29iamVjdF91bnJlZik7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdFdlYkNvbnRleHRH
ZXRQbHVnaW5UaHJlYWQoR1Rhc2sqIHRhc2ssIGdwb2ludGVyIG9iamVjdCwgZ3BvaW50ZXIgLyog
dGFza0RhdGEgKi8sIEdDYW5jZWxsYWJsZSopCi17Ci0gICAgR0xpc3QqIHJldHVyblZhbHVlID0g
MDsKLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBWZWN0b3I8UGx1Z2luTW9k
dWxlSW5mbz4gcGx1Z2lucyA9IFdFQktJVF9XRUJfQ09OVEVYVChvYmplY3QpLT5wcml2LT5wcm9j
ZXNzUG9vbC0+cGx1Z2luSW5mb1N0b3JlKCkucGx1Z2lucygpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcGx1Z2lucy5zaXplKCk7ICsraSkKLSAgICAgICAgcmV0dXJuVmFsdWUgPSBnX2xp
c3RfcHJlcGVuZChyZXR1cm5WYWx1ZSwgd2Via2l0UGx1Z2luQ3JlYXRlKHBsdWdpbnNbaV0pKTsK
LSNlbmRpZgotICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLCByZXR1cm5WYWx1ZSwgcmVp
bnRlcnByZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4oZGVzdHJveVBsdWdpbkxpc3QpKTsKKyAgICBn
X3dhcm5pbmcoIndlYmtpdF93ZWJfY29udGV4dF9zZXRfYWRkaXRpb25hbF9wbHVnaW5zX2RpcmVj
dG9yeSBpcyBkZXByZWNhdGVkIGFuZCBkb2VzIG5vdGhpbmcuIE5ldHNjYXBlIHBsdWdpbnMgYXJl
IG5vIGxvbmdlciBzdXBwb3J0ZWQuIik7CiB9CiAKIC8qKgpAQCAtMTE5MCwxMyArMTE3MCwxNyBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0R2V0UGx1Z2luVGhyZWFkKEdUYXNrKiB0YXNr
LCBncG9pbnRlciBvYmplY3QsIGdwb2ludAogICoKICAqIFdoZW4gdGhlIG9wZXJhdGlvbiBpcyBm
aW5pc2hlZCwgQGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkLiBZb3UgY2FuIHRoZW4gY2FsbAogICog
d2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zX2ZpbmlzaCgpIHRvIGdldCB0aGUgcmVzdWx0
IG9mIHRoZSBvcGVyYXRpb24uCisgKgorICogRGVwcmVjYXRlZDogMi4zMgogICovCiB2b2lkIHdl
YmtpdF93ZWJfY29udGV4dF9nZXRfcGx1Z2lucyhXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBH
Q2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNrLCBn
cG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
Q09OVEVYVChjb250ZXh0KSk7CiAKKyAgICBnX3dhcm5pbmcoIndlYmtpdF93ZWJfY29udGV4dF9n
ZXRfcGx1Z2lucyBpcyBkZXByZWNhdGVkIGFuZCBhbHdheXMgcmV0dXJucyBhbiBlbXB0eSBsaXN0
LiBOZXRzY2FwZSBwbHVnaW5zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLiIpOworCiAgICAgR1Jl
ZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tfbmV3KGNvbnRleHQsIGNhbmNlbGxh
YmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKLSAgICBnX3Rhc2tfcnVuX2luX3RocmVhZCh0YXNr
LmdldCgpLCB3ZWJraXRXZWJDb250ZXh0R2V0UGx1Z2luVGhyZWFkKTsKKyAgICBnX3Rhc2tfcmV0
dXJuX3BvaW50ZXIodGFzay5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKIC8qKgpAQCAt
MTIwOSwxMSArMTE5MywxMyBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcGx1Z2lucyhX
ZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBHQ2FuY2VsbGFibGUqIGNhbgogICoKICAqIFJldHVy
bnM6IChlbGVtZW50LXR5cGUgV2ViS2l0UGx1Z2luKSAodHJhbnNmZXIgZnVsbCk6IGEgI0dMaXN0
IG9mICNXZWJLaXRQbHVnaW4uIFlvdSBtdXN0IGZyZWUgdGhlICNHTGlzdCB3aXRoCiAgKiAgICBn
X2xpc3RfZnJlZSgpIGFuZCB1bnJlZiB0aGUgI1dlYktpdFBsdWdpbjwhLS0gLS0+cyB3aXRoIGdf
b2JqZWN0X3VucmVmKCkgd2hlbiB5b3UncmUgZG9uZSB3aXRoIHRoZW0uCisgKgorICogRGVwcmVj
YXRlZDogMi4zMgogICovCiBHTGlzdCogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zX2Zp
bmlzaChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgR0Vy
cm9yKiogZXJyb3IpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9D
T05URVhUKGNvbnRleHQpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChnX3Rhc2tfaXNf
dmFsaWQocmVzdWx0LCBjb250ZXh0KSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpLCBudWxscHRyKTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChnX3Rhc2tfaXNfdmFsaWQocmVzdWx0LCBjb250ZXh0KSwgbnVsbHB0cik7CiAKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8R0xpc3QqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIoR19U
QVNLKHJlc3VsdCksIGVycm9yKSk7CiB9CkBAIC0xMjQ0LDkgKzEyMzAsNyBAQCBHTGlzdCogd2Vi
a2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zX2ZpbmlzaChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0LCBHQXN5bmNSZQogICogICAgIGNvbnN0IGdjaGFyICAqcGF0aDsKICAqCiAgKiAgICAgcGF0
aCA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGggKHJlcXVlc3QpOwotICogICAg
IGlmICghZ19zdHJjbXAwIChwYXRoLCAicGx1Z2lucyIpKSB7Ci0gKiAgICAgICAgIC88IS0tIC0t
PiogQ3JlYXRlIGEgR0lucHV0U3RyZWFtIHdpdGggdGhlIGNvbnRlbnRzIG9mIHBsdWdpbnMgYWJv
dXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIHN0cmVhbV9sZW5ndGggKjwhLS0gLS0+Lwot
ICogICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMCAocGF0aCwgIm1lbW9yeSIpKSB7CisgKiAgICAg
aWYgKCFnX3N0cmNtcDAgKHBhdGgsICJtZW1vcnkiKSkgewogICogICAgICAgICAvPCEtLSAtLT4q
IENyZWF0ZSBhIEdJbnB1dFN0cmVhbSB3aXRoIHRoZSBjb250ZW50cyBvZiBtZW1vcnkgYWJvdXQg
cGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIHN0cmVhbV9sZW5ndGggKjwhLS0gLS0+LwogICog
ICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMCAocGF0aCwgImFwcGxpY2F0aW9ucyIpKSB7CiAgKiAg
ICAgICAgIC88IS0tIC0tPiogQ3JlYXRlIGEgR0lucHV0U3RyZWFtIHdpdGggdGhlIGNvbnRlbnRz
IG9mIGFwcGxpY2F0aW9ucyBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gc3RyZWFt
X2xlbmd0aCAqPCEtLSAtLT4vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDMwMjA3MDZhMDliYy4uMTkxMDA3YjZiYjY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3
LmNwcApAQCAtNDcwLDggKzQ3MCw3IEBAIHZvaWQgV2ViS2l0V2ViVmlld0NsaWVudDo6ZGlkUmVj
ZWl2ZVVzZXJNZXNzYWdlKFdLV1BFOjpWaWV3JiwgVXNlck1lc3NhZ2UmJiBtZXNzCiBzdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0V2ViVmlld0xvYWRGYWlsKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YktpdExvYWRFdmVudCwgY29uc3QgY2hhciogZmFpbGluZ1VSSSwgR0Vycm9yKiBlcnJvcikKIHsK
ICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVycm9yLCBXRUJLSVRfTkVUV09SS19FUlJPUiwgV0VC
S0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEKQotICAgICAgICB8fCBnX2Vycm9yX21hdGNoZXMo
ZXJyb3IsIFdFQktJVF9QT0xJQ1lfRVJST1IsIFdFQktJVF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9B
RF9JTlRFUlJVUFRFRF9CWV9QT0xJQ1lfQ0hBTkdFKQotICAgICAgICB8fCBnX2Vycm9yX21hdGNo
ZXMoZXJyb3IsIFdFQktJVF9QTFVHSU5fRVJST1IsIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9I
QU5ETEVfTE9BRCkpCisgICAgICAgIHx8IGdfZXJyb3JfbWF0Y2hlcyhlcnJvciwgV0VCS0lUX1BP
TElDWV9FUlJPUiwgV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZ
X1BPTElDWV9DSEFOR0UpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKICAgICBHVW5pcXVlUHRy
PGNoYXI+IGh0bWxTdHJpbmcoZ19zdHJkdXBfcHJpbnRmKCI8aHRtbD48Ym9keT4lczwvYm9keT48
L2h0bWw+IiwgZXJyb3ItPm1lc3NhZ2UpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhLmNwcAppbmRleCA1YjJjNjNhMTRmMDgu
LjJmN2U0NGZlNjQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2Vic2l0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYnNpdGVEYXRhLmNwcApAQCAtNzQsOSArNzQsNiBAQCBzdGF0aWMgYm9v
bCByZWNvcmRDb250YWluc1N1cHBvcnRlZERhdGFUeXBlcyhjb25zdCBXZWJzaXRlRGF0YVJlY29y
ZCYgcmVjb3JkKQogICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OldlYlNRTERhdGFiYXNlcywKICAg
ICAgICAgV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMsCiAgICAgICAgIFdlYnNp
dGVEYXRhVHlwZTo6SFNUU0NhY2hlLAotI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQot
ICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OlBsdWdJbkRhdGEsCi0jZW5kaWYKICAgICAgICAgV2Vi
c2l0ZURhdGFUeXBlOjpDb29raWVzLAogICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OkRldmljZUlk
SGFzaFNhbHQsCiAgICAgICAgIFdlYnNpdGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cywKQEAgLTEwNCwxMCArMTAxLDYgQEAgc3RhdGljIFdlYktpdFdlYnNpdGVEYXRhVHlwZXMgdG9X
ZWJLaXRXZWJzaXRlRGF0YVR5cGVzKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGUKICAgICAgICAg
cmV0dXJuVmFsdWUgfD0gV0VCS0lUX1dFQlNJVEVfREFUQV9JTkRFWEVEREJfREFUQUJBU0VTOwog
ICAgIGlmICh0eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkhTVFNDYWNoZSkpCiAgICAg
ICAgIHJldHVyblZhbHVlIHw9IFdFQktJVF9XRUJTSVRFX0RBVEFfSFNUU19DQUNIRTsKLSNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBpZiAodHlwZXMuY29udGFpbnMoV2Vic2l0
ZURhdGFUeXBlOjpQbHVnSW5EYXRhKSkKLSAgICAgICAgcmV0dXJuVmFsdWUgfD0gV0VCS0lUX1dF
QlNJVEVfREFUQV9QTFVHSU5fREFUQTsKLSNlbmRpZgogICAgIGlmICh0eXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkNvb2tpZXMpKQogICAgICAgICByZXR1cm5WYWx1ZSB8PSBXRUJLSVRf
V0VCU0lURV9EQVRBX0NPT0tJRVM7CiAgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRh
VHlwZTo6RGV2aWNlSWRIYXNoU2FsdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCBj
Yjg2YzY1ZWI1MDMuLjEzYjBmZTIwNzczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBA
IC05MjUsMTAgKzkyNSw2IEBAIHN0YXRpYyBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB0b1dl
YnNpdGVEYXRhVHlwZXMoV2ViS2l0V2Vic2l0ZURhdGFUeXBlcyB0eXBlCiAgICAgICAgIHJldHVy
blZhbHVlLmFkZChXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcyk7CiAgICAgaWYg
KHR5cGVzICYgV0VCS0lUX1dFQlNJVEVfREFUQV9IU1RTX0NBQ0hFKQogICAgICAgICByZXR1cm5W
YWx1ZS5hZGQoV2Vic2l0ZURhdGFUeXBlOjpIU1RTQ2FjaGUpOwotI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotICAgIGlmICh0eXBlcyAmIFdFQktJVF9XRUJTSVRFX0RBVEFfUExVR0lO
X0RBVEEpCi0gICAgICAgIHJldHVyblZhbHVlLmFkZChXZWJzaXRlRGF0YVR5cGU6OlBsdWdJbkRh
dGEpOwotI2VuZGlmCiAgICAgaWYgKHR5cGVzICYgV0VCS0lUX1dFQlNJVEVfREFUQV9DT09LSUVT
KQogICAgICAgICByZXR1cm5WYWx1ZS5hZGQoV2Vic2l0ZURhdGFUeXBlOjpDb29raWVzKTsKICAg
ICBpZiAodHlwZXMgJiBXRUJLSVRfV0VCU0lURV9EQVRBX0RFVklDRV9JRF9IQVNIX1NBTFQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmgKaW5kZXggMjlk
NGY3YzdmYWM4Li43OTk5NDZkYzg2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVycm9yLmgKQEAgLTc2LDEyICs3NiwxMiBAQCB0eXBlZGVmIGVudW0gewog
CiAvKioKICAqIFdlYktpdFBsdWdpbkVycm9yOgotICogQFdFQktJVF9QTFVHSU5fRVJST1JfRkFJ
TEVEOiBHZW5lcmljIHBsdWdpbiBsb2FkIGZhaWx1cmUKLSAqIEBXRUJLSVRfUExVR0lOX0VSUk9S
X0NBTk5PVF9GSU5EX1BMVUdJTjogTG9hZCBmYWlsdXJlIGR1ZSB0byBtaXNzaW5nIHBsdWdpbgot
ICogQFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOiBMb2FkIGZhaWx1cmUg
ZHVlIHRvIGluYWJpbGl0eSB0byBsb2FkIHBsdWdpbgotICogQFdFQktJVF9QTFVHSU5fRVJST1Jf
SkFWQV9VTkFWQUlMQUJMRTogTG9hZCBmYWlsdXJlIGR1ZSB0byBtaXNzaW5nIEphdmEgc3VwcG9y
dCB0aGF0IGlzIHJlcXVpcmVkIHRvIGxvYWQgcGx1Z2luCi0gKiBAV0VCS0lUX1BMVUdJTl9FUlJP
Ul9DT05ORUNUSU9OX0NBTkNFTExFRDogTG9hZCBmYWlsdXJlIGR1ZSB0byBjb25uZWN0aW9uIGNh
bmNlbGxhdGlvbgotICogQFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDogTG9h
ZCBmYWlsdXJlIHNpbmNlIHBsdWdpbiBoYW5kbGVzIHRoZSBsb2FkCisgKiBAV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9GQUlMRUQ6IEdlbmVyaWMgcGx1Z2luIGxvYWQgZmFpbHVyZS4gRGVwcmVjYXRlZCAy
LjMyCisgKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU46IExvYWQgZmFp
bHVyZSBkdWUgdG8gbWlzc2luZyBwbHVnaW4uIERlcHJlY2F0ZWQgMi4zMgorICogQFdFQktJVF9Q
TFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOiBMb2FkIGZhaWx1cmUgZHVlIHRvIGluYWJp
bGl0eSB0byBsb2FkIHBsdWdpbi4gRGVwcmVjYXRlZCAyLjMyCisgKiBAV0VCS0lUX1BMVUdJTl9F
UlJPUl9KQVZBX1VOQVZBSUxBQkxFOiBMb2FkIGZhaWx1cmUgZHVlIHRvIG1pc3NpbmcgSmF2YSBz
dXBwb3J0IHRoYXQgaXMgcmVxdWlyZWQgdG8gbG9hZCBwbHVnaW4uIERlcHJlY2F0ZWQgMi4zMgor
ICogQFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ6IExvYWQgZmFpbHVy
ZSBkdWUgdG8gY29ubmVjdGlvbiBjYW5jZWxsYXRpb24uIERlcHJlY2F0ZWQgMi4zMgorICogQFdF
QktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDogTG9hZCBmYWlsdXJlIHNpbmNlIHBs
dWdpbiBoYW5kbGVzIHRoZSBsb2FkLiBEZXByZWNhdGVkIDIuMzIKICAqCiAgKiBFbnVtIHZhbHVl
cyB1c2VkIHRvIGRlbm90ZSB0aGUgdmFyaW91cyBwbHVnaW4gZXJyb3JzLgogICoqLwpAQCAtMTYw
LDcgKzE2MCw3IEBAIHdlYmtpdF9uZXR3b3JrX2Vycm9yX3F1YXJrICAgICAgICAgICAgICh2b2lk
KTsKIFdFQktJVF9BUEkgR1F1YXJrCiB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrICAgICAgICAg
ICAgICAodm9pZCk7CiAKLVdFQktJVF9BUEkgR1F1YXJrCitXRUJLSVRfREVQUkVDQVRFRCBHUXVh
cmsKIHdlYmtpdF9wbHVnaW5fZXJyb3JfcXVhcmsgICAgICAgICAgICAgICh2b2lkKTsKIAogV0VC
S0lUX0FQSSBHUXVhcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TWltZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0TWltZUluZm8uaAppbmRleCA3ZWM4ZTY5YzU0OTguLjhiZjU3YjlmYjI5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNaW1lSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWltZUluZm8uaApAQCAtMzQs
MjIgKzM0LDIyIEBAIEdfQkVHSU5fREVDTFMKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRNaW1lSW5m
byBXZWJLaXRNaW1lSW5mbzsKIAogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X21pbWVfaW5mb19nZXRfdHlwZSAgICAgICAgKHZvaWQpOwogCi1XRUJL
SVRfQVBJIFdlYktpdE1pbWVJbmZvICoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdE1pbWVJbmZv
ICoKIHdlYmtpdF9taW1lX2luZm9fcmVmICAgICAgICAgICAgIChXZWJLaXRNaW1lSW5mbyAqaW5m
byk7CiAKLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X21p
bWVfaW5mb191bnJlZiAgICAgICAgICAgKFdlYktpdE1pbWVJbmZvICppbmZvKTsKIAotV0VCS0lU
X0FQSSBjb25zdCBnY2hhciAqCitXRUJLSVRfREVQUkVDQVRFRCBjb25zdCBnY2hhciAqCiB3ZWJr
aXRfbWltZV9pbmZvX2dldF9taW1lX3R5cGUgICAoV2ViS2l0TWltZUluZm8gKmluZm8pOwogCi1X
RUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK1dFQktJVF9ERVBSRUNBVEVEIGNvbnN0IGdjaGFyICoK
IHdlYmtpdF9taW1lX2luZm9fZ2V0X2Rlc2NyaXB0aW9uIChXZWJLaXRNaW1lSW5mbyAqaW5mbyk7
CiAKLVdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKiBjb25zdCAqCitXRUJLSVRfREVQUkVDQVRFRCBj
b25zdCBnY2hhciAqIGNvbnN0ICoKIHdlYmtpdF9taW1lX2luZm9fZ2V0X2V4dGVuc2lvbnMgIChX
ZWJLaXRNaW1lSW5mbyAqaW5mbyk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQbHVnaW4uaAppbmRleCBkNzUzM2M5MjBlNGEuLjI0Y2Ez
OTkzZTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBs
dWdpbi5oCkBAIC01NSwxOSArNTUsMTkgQEAgc3RydWN0IF9XZWJLaXRQbHVnaW5DbGFzcyB7CiAg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7CiB9OwogCi1XRUJLSVRfQVBJIEdU
eXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X3BsdWdpbl9nZXRfdHlwZSAgICAg
ICAgICAgKHZvaWQpOwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK1dFQktJVF9ERVBSRUNB
VEVEIGNvbnN0IGdjaGFyICoKIHdlYmtpdF9wbHVnaW5fZ2V0X25hbWUgICAgICAgICAgIChXZWJL
aXRQbHVnaW4gKnBsdWdpbik7CiAKLVdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgorV0VCS0lUX0RF
UFJFQ0FURUQgY29uc3QgZ2NoYXIgKgogd2Via2l0X3BsdWdpbl9nZXRfZGVzY3JpcHRpb24gICAg
KFdlYktpdFBsdWdpbiAqcGx1Z2luKTsKIAotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCitXRUJL
SVRfREVQUkVDQVRFRCBjb25zdCBnY2hhciAqCiB3ZWJraXRfcGx1Z2luX2dldF9wYXRoICAgICAg
ICAgICAoV2ViS2l0UGx1Z2luICpwbHVnaW4pOwogCi1XRUJLSVRfQVBJIEdMaXN0ICoKK1dFQktJ
VF9ERVBSRUNBVEVEIEdMaXN0ICoKIHdlYmtpdF9wbHVnaW5fZ2V0X21pbWVfaW5mb19saXN0IChX
ZWJLaXRQbHVnaW4gKnBsdWdpbik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKaW5kZXggNjNhYThiYjM3MDRjLi4z
YWQ5Y2E1OGE5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFNldHRpbmdzLmgKQEAgLTE0NywxMCArMTQ3LDEwIEBAIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X3NldHRpbmdzX3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5h
YmxlZCk7CiAKLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFu
CiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9wbHVnaW5zICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKIAotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9wbHVnaW5z
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaAppbmRleCBkMjA2ZjMwNjMzZWIu
LmRiZjYyYmNmMTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTIyOCwxNyArMjI4LDE3IEBAIHdlYmtpdF93ZWJfY29u
dGV4dF9nZXRfZmF2aWNvbl9kYXRhYmFzZV9kaXJlY3RvcnkgICAoV2ViS2l0V2ViQ29udGV4dAog
V0VCS0lUX0FQSSBXZWJLaXRTZWN1cml0eU1hbmFnZXIgKgogd2Via2l0X3dlYl9jb250ZXh0X2dl
dF9zZWN1cml0eV9tYW5hZ2VyICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCk7CiAKLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X3dlYl9jb250ZXh0X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5IChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
ICAgICAgICAgKmRpcmVjdG9yeSk7CiAKLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAg
ICAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgICAgICAg
Y2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOwogCi1XRUJL
SVRfQVBJIEdMaXN0ICoKK1dFQktJVF9ERVBSRUNBVEVEIEdMaXN0ICoKIHdlYmtpdF93ZWJfY29u
dGV4dF9nZXRfcGx1Z2luc19maW5pc2ggICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAg
ICAgICAgICAgICAgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAgICAgICpyZXN1bHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdF
cnJvciAgICAgICAgICAgICAgICAgICAgICAgKiplcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhLmgKaW5kZXggNWUyMjk5ZGY4
ZWU2Li41YzI0N2I1MmQwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2Vic2l0ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhLmgKQEAgLTQyLDcgKzQyLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFdlYnNpdGVEYXRhIFdlYktpdFdlYnNpdGVEYXRhOwogICogQFdFQktJVF9XRUJT
SVRFX0RBVEFfTE9DQUxfU1RPUkFHRTogTG9jYWwgc3RvcmFnZSBkYXRhLgogICogQFdFQktJVF9X
RUJTSVRFX0RBVEFfV0VCU1FMX0RBVEFCQVNFUzogV2ViU1FMIGRhdGFiYXNlcy4gRGVwcmVjYXRl
ZCAyLjI0CiAgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9JTkRFWEVEREJfREFUQUJBU0VTOiBJbmRl
eGVkREIgZGF0YWJhc2VzLgotICogQFdFQktJVF9XRUJTSVRFX0RBVEFfUExVR0lOX0RBVEE6IFBs
dWdpbnMgZGF0YS4KKyAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX1BMVUdJTl9EQVRBOiBQbHVnaW5z
IGRhdGEuIERlcHJlY2F0ZWQgMi4zMgogICogQFdFQktJVF9XRUJTSVRFX0RBVEFfQ09PS0lFUzog
Q29va2llcy4KICAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0RFVklDRV9JRF9IQVNIX1NBTFQ6IEhh
c2ggc2FsdCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBkZXZpY2UgaWRzIHVzZWQgYnkgd2VicGFnZXMu
IFNpbmNlIDIuMjQKICAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0hTVFNfQ0FDSEU6IEhTVFMgY2Fj
aGUuIFNpbmNlIDIuMjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0RXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
RXJyb3IuaAppbmRleCA1ZTRlOGZhNWE2ZjQuLjBhOTkyYzMyMDkwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRFcnJvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0RXJyb3IuaApAQCAtNzUsMTIgKzc1LDEyIEBA
IHR5cGVkZWYgZW51bSB7CiAKIC8qKgogICogV2ViS2l0UGx1Z2luRXJyb3I6Ci0gKiBAV0VCS0lU
X1BMVUdJTl9FUlJPUl9GQUlMRUQ6IEdlbmVyaWMgcGx1Z2luIGxvYWQgZmFpbHVyZQotICogQFdF
QktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOiBMb2FkIGZhaWx1cmUgZHVlIHRv
IG1pc3NpbmcgcGx1Z2luCi0gKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVH
SU46IExvYWQgZmFpbHVyZSBkdWUgdG8gaW5hYmlsaXR5IHRvIGxvYWQgcGx1Z2luCi0gKiBAV0VC
S0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFOiBMb2FkIGZhaWx1cmUgZHVlIHRvIG1p
c3NpbmcgSmF2YSBzdXBwb3J0IHRoYXQgaXMgcmVxdWlyZWQgdG8gbG9hZCBwbHVnaW4KLSAqIEBX
RUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOiBMb2FkIGZhaWx1cmUgZHVl
IHRvIGNvbm5lY3Rpb24gY2FuY2VsbGF0aW9uCi0gKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxM
X0hBTkRMRV9MT0FEOiBMb2FkIGZhaWx1cmUgc2luY2UgcGx1Z2luIGhhbmRsZXMgdGhlIGxvYWQK
KyAqIEBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDogR2VuZXJpYyBwbHVnaW4gbG9hZCBmYWls
dXJlLiBEZXByZWNhdGVkIDIuMzIKKyAqIEBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5E
X1BMVUdJTjogTG9hZCBmYWlsdXJlIGR1ZSB0byBtaXNzaW5nIHBsdWdpbi4gRGVwcmVjYXRlZCAy
LjMyCisgKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU46IExvYWQgZmFp
bHVyZSBkdWUgdG8gaW5hYmlsaXR5IHRvIGxvYWQgcGx1Z2luLiBEZXByZWNhdGVkIDIuMzIKKyAq
IEBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU6IExvYWQgZmFpbHVyZSBkdWUg
dG8gbWlzc2luZyBKYXZhIHN1cHBvcnQgdGhhdCBpcyByZXF1aXJlZCB0byBsb2FkIHBsdWdpbi4g
RGVwcmVjYXRlZCAyLjMyCisgKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNF
TExFRDogTG9hZCBmYWlsdXJlIGR1ZSB0byBjb25uZWN0aW9uIGNhbmNlbGxhdGlvbi4gRGVwcmVj
YXRlZCAyLjMyCisgKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOiBMb2Fk
IGZhaWx1cmUgc2luY2UgcGx1Z2luIGhhbmRsZXMgdGhlIGxvYWQuIERlcHJlY2F0ZWQgMi4zMgog
ICoKICAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRoZSB2YXJpb3VzIHBsdWdpbiBlcnJv
cnMuCiAgKiovCkBAIC0xNDUsNyArMTQ1LDcgQEAgd2Via2l0X25ldHdvcmtfZXJyb3JfcXVhcmsg
ICAgICAgICAgICAgKHZvaWQpOwogV0VCS0lUX0FQSSBHUXVhcmsKIHdlYmtpdF9wb2xpY3lfZXJy
b3JfcXVhcmsgICAgICAgICAgICAgICh2b2lkKTsKIAotV0VCS0lUX0FQSSBHUXVhcmsKK1dFQktJ
VF9ERVBSRUNBVEVEIEdRdWFyawogd2Via2l0X3BsdWdpbl9lcnJvcl9xdWFyayAgICAgICAgICAg
ICAgKHZvaWQpOwogCiBXRUJLSVRfQVBJIEdRdWFyawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNaW1lSW5mby5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRNaW1lSW5mby5oCmluZGV4IDJmYzM5MjZjNjFlMS4uNjdlNmJh
YjU0NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dE1pbWVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRN
aW1lSW5mby5oCkBAIC0zNCwyMiArMzQsMjIgQEAgR19CRUdJTl9ERUNMUwogdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdE1pbWVJbmZvIFdlYktpdE1pbWVJbmZvOwogCiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfbWltZV9pbmZvX2dldF90eXBlICAgICAg
ICAodm9pZCk7CiAKLVdFQktJVF9BUEkgV2ViS2l0TWltZUluZm8gKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0TWltZUluZm8gKgogd2Via2l0X21pbWVfaW5mb19yZWYgICAgICAgICAgICAgKFdl
YktpdE1pbWVJbmZvICppbmZvKTsKIAotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfbWltZV9pbmZvX3VucmVmICAgICAgICAgICAoV2ViS2l0TWltZUluZm8g
KmluZm8pOwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK1dFQktJVF9ERVBSRUNBVEVEIGNv
bnN0IGdjaGFyICoKIHdlYmtpdF9taW1lX2luZm9fZ2V0X21pbWVfdHlwZSAgIChXZWJLaXRNaW1l
SW5mbyAqaW5mbyk7CiAKLVdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgorV0VCS0lUX0RFUFJFQ0FU
RUQgY29uc3QgZ2NoYXIgKgogd2Via2l0X21pbWVfaW5mb19nZXRfZGVzY3JpcHRpb24gKFdlYktp
dE1pbWVJbmZvICppbmZvKTsKIAotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqIGNvbnN0ICoKK1dF
QktJVF9ERVBSRUNBVEVEIGNvbnN0IGdjaGFyICogY29uc3QgKgogd2Via2l0X21pbWVfaW5mb19n
ZXRfZXh0ZW5zaW9ucyAgKFdlYktpdE1pbWVJbmZvICppbmZvKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0UGx1Z2luLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFBsdWdpbi5oCmluZGV4IDE1
YjY4MDA1Yjg5ZS4uMzJkYzZjYzA1ZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0UGx1Z2luLmgKQEAgLTU1LDE5ICs1NSwxOSBAQCBzdHJ1Y3QgX1dlYktp
dFBsdWdpbkNsYXNzIHsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfcGx1
Z2luX2dldF90eXBlICAgICAgICAgICAodm9pZCk7CiAKLVdFQktJVF9BUEkgY29uc3QgZ2NoYXIg
KgorV0VCS0lUX0RFUFJFQ0FURUQgY29uc3QgZ2NoYXIgKgogd2Via2l0X3BsdWdpbl9nZXRfbmFt
ZSAgICAgICAgICAgKFdlYktpdFBsdWdpbiAqcGx1Z2luKTsKIAotV0VCS0lUX0FQSSBjb25zdCBn
Y2hhciAqCitXRUJLSVRfREVQUkVDQVRFRCBjb25zdCBnY2hhciAqCiB3ZWJraXRfcGx1Z2luX2dl
dF9kZXNjcmlwdGlvbiAgICAoV2ViS2l0UGx1Z2luICpwbHVnaW4pOwogCi1XRUJLSVRfQVBJIGNv
bnN0IGdjaGFyICoKK1dFQktJVF9ERVBSRUNBVEVEIGNvbnN0IGdjaGFyICoKIHdlYmtpdF9wbHVn
aW5fZ2V0X3BhdGggICAgICAgICAgIChXZWJLaXRQbHVnaW4gKnBsdWdpbik7CiAKLVdFQktJVF9B
UEkgR0xpc3QgKgorV0VCS0lUX0RFUFJFQ0FURUQgR0xpc3QgKgogd2Via2l0X3BsdWdpbl9nZXRf
bWltZV9pbmZvX2xpc3QgKFdlYktpdFBsdWdpbiAqcGx1Z2luKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaAppbmRl
eCBmNTQ5Nzc5YzdkMGQuLjM5ZTFhMjJiNjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaApAQCAtMTMxLDEwICsxMzEsMTAgQEAgV0VC
S0lUX0FQSSB2b2lkCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5n
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgICBlbmFibGVkKTsKIAotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BsdWdpbnMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOwogCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9zZXR0aW5nc19z
ZXRfZW5hYmxlX3BsdWdpbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0
aW5ncyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViQ29udGV4dC5oCmlu
ZGV4IDk5ODYzZmQ1MGU3NS4uOThkNjkyOWEyMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaApAQCAtMjI4LDE3ICsyMjgsMTcg
QEAgd2Via2l0X3dlYl9jb250ZXh0X2dldF9mYXZpY29uX2RhdGFiYXNlX2RpcmVjdG9yeSAgIChX
ZWJLaXRXZWJDb250ZXh0CiBXRUJLSVRfQVBJIFdlYktpdFNlY3VyaXR5TWFuYWdlciAqCiB3ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X21hbmFnZXIgICAgICAgICAgICAgKFdlYktpdFdl
YkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKIAotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2FkZGl0aW9uYWxfcGx1
Z2luc19kaXJlY3RvcnkgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAgICAgICAgICAgICAgICAgICAqZGlyZWN0b3J5KTsKIAotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3BsdWdpbnMg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250
ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICAqY2FuY2VsbGFibGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2Fs
bGJhY2sgICAgICAgICAgICBjYWxsYmFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJfZGF0YSk7CiAKLVdFQktJVF9BUEkgR0xpc3QgKgorV0VCS0lUX0RFUFJFQ0FURUQgR0xpc3Qg
Kgogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zX2ZpbmlzaCAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAg
ICAgICAgICAgKnJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICAgICAqKmVycm9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vic2l0ZURh
dGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vic2l0ZURhdGEu
aAppbmRleCA0YzdmNGE1NDg2ODAuLjU4MmI4YzBiZDYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vic2l0ZURhdGEuaApAQCAtNDIsNyArNDIs
NyBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vic2l0ZURhdGEgV2ViS2l0V2Vic2l0ZURhdGE7
CiAgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9MT0NBTF9TVE9SQUdFOiBMb2NhbCBzdG9yYWdlIGRh
dGEuCiAgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9XRUJTUUxfREFUQUJBU0VTOiBXZWJTUUwgZGF0
YWJhc2VzLiBEZXByZWNhdGVkIDIuMjQKICAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0lOREVYRURE
Ql9EQVRBQkFTRVM6IEluZGV4ZWREQiBkYXRhYmFzZXMuCi0gKiBAV0VCS0lUX1dFQlNJVEVfREFU
QV9QTFVHSU5fREFUQTogUGx1Z2lucyBkYXRhLgorICogQFdFQktJVF9XRUJTSVRFX0RBVEFfUExV
R0lOX0RBVEE6IFBsdWdpbnMgZGF0YS4gRGVwcmVjYXRlZCAyLjMyCiAgKiBAV0VCS0lUX1dFQlNJ
VEVfREFUQV9DT09LSUVTOiBDb29raWVzLgogICogQFdFQktJVF9XRUJTSVRFX0RBVEFfREVWSUNF
X0lEX0hBU0hfU0FMVDogSGFzaCBzYWx0IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGRldmljZSBpZHMg
dXNlZCBieSB3ZWJwYWdlcy4gU2luY2UgMi4yNAogICogQFdFQktJVF9XRUJTSVRFX0RBVEFfSFNU
U19DQUNIRTogSFNUUyBjYWNoZS4gU2luY2UgMi4yNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCmlu
ZGV4IDIxM2E5YzFhMTE0Yi4uMTI3MjU2YjdlZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3Bw
CkBAIC03MTgsMTMgKzcxOCw2IEBAIEdSZWZQdHI8R1N1YnByb2Nlc3M+IGJ1YmJsZXdyYXBTcGF3
bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgY29uc3QgUHJvY2VzCiB7CiAgICAgQVNT
RVJUKGxhdW5jaGVyKTsKIAotI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIC8v
IEl0IGlzIGltcG9zc2libGUgdG8ga25vdyB3aGF0IGFjY2VzcyBhcmJpdHJhcnkgcGx1Z2lucyBu
ZWVkIGFuZCBzaW5jZSBpdCBpcyBmb3IgbGVnYWN5Ci0gICAgLy8gcmVhc29ucyBsZXRzIGp1c3Qg
bGVhdmUgaXQgdW5zYW5kYm94ZWQuCi0gICAgaWYgKGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUg
PT0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luKQotICAgICAgICByZXR1cm4g
YWRvcHRHUmVmKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIsIGFyZ3YsIGVy
cm9yKSk7Ci0jZW5kaWYKLQogICAgIC8vIEZvciBub3cgd2UgYXJlIGp1c3QgY29uc2lkZXJpbmcg
dGhlIG5ldHdvcmsgcHJvY2VzcyB0cnVzdGVkIGFzIGl0CiAgICAgLy8gcmVxdWlyZXMgYSBsb3Qg
b2YgYWNjZXNzIGJ1dCBkb2Vzbid0IGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgbGlrZQogICAgIC8v
IHRoZSBXZWJQcm9jZXNzIHdoZXJlIG91ciBmb2N1cyBsaWVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xp
Yi5jcHAKaW5kZXggZjgwMDhjMGRlNzBlLi41NzJmMzAyMGExODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNo
ZXJHTGliLmNwcApAQCAtMTExLDIxICsxMTEsMTAgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6Omxh
dW5jaFByb2Nlc3MoKQogCiAgICAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoOwogICAgIENTdHJpbmcg
cmVhbEV4ZWN1dGFibGVQYXRoOwotI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAg
IFN0cmluZyBwbHVnaW5QYXRoOwotICAgIENTdHJpbmcgcmVhbFBsdWdpblBhdGg7Ci0jZW5kaWYK
ICAgICBzd2l0Y2ggKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSkgewogICAgIGNhc2UgUHJv
Y2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViOgogICAgICAgICBleGVjdXRhYmxlUGF0aCA9
IGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiAgICAgICAgIGJyZWFrOwotI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNz
VHlwZTo6UGx1Z2luOgotICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZQ
bHVnaW5Qcm9jZXNzKCk7Ci0gICAgICAgIHBsdWdpblBhdGggPSBtX2xhdW5jaE9wdGlvbnMuZXh0
cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIpOwotICAgICAgICByZWFsUGx1
Z2luUGF0aCA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwbHVnaW5QYXRo
KTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJv
Y2Vzc1R5cGU6Ok5ldHdvcms6CiAgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBh
dGhPZk5ldHdvcmtQcm9jZXNzKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTczLDExICsxNjIsNyBA
QCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgaWYgKGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3RpbmcpCiAgICAgICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KCIt
LWNvbmZpZ3VyZS1qc2MtZm9yLXRlc3RpbmciKTsKICNlbmRpZgotI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHJlYWxQbHVn
aW5QYXRoLmRhdGEoKSk7Ci0jZWxzZQogICAgIGFyZ3ZbaSsrXSA9IG51bGxwdHI7Ci0jZW5kaWYK
ICAgICBhcmd2W2krK10gPSBudWxscHRyOwogCiAgICAgR1JlZlB0cjxHU3VicHJvY2Vzc0xhdW5j
aGVyPiBsYXVuY2hlciA9IGFkb3B0R1JlZihnX3N1YnByb2Nlc3NfbGF1bmNoZXJfbmV3KEdfU1VC
UFJPQ0VTU19GTEFHU19JTkhFUklUX0ZEUykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9ndGsvUGx1Z2luSW5mb0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGVjOTNmNmQ4MmZmMC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGx1Z2luSW5m
b0NhY2hlLmgiCi0KLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLQotI2luY2x1ZGUg
Ik5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3Bs
YXkuaD4KLSNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBn
U2NoZW1hVmVyc2lvbiA9IDM7Ci0KLVBsdWdpbkluZm9DYWNoZSYgUGx1Z2luSW5mb0NhY2hlOjpz
aW5nbGV0b24oKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQbHVnaW5JbmZvQ2FjaGU+
IHBsdWdpbkluZm9DYWNoZTsKLSAgICByZXR1cm4gcGx1Z2luSW5mb0NhY2hlOwotfQotCi1zdGF0
aWMgaW5saW5lIGNvbnN0IGNoYXIqIGNhY2hlRmlsZW5hbWVGb3JDdXJyZW50RGlzcGxheSgpCi17
Ci0jaWYgUExBVEZPUk0oWDExKQotICAgIGlmIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNo
YXJlZERpc3BsYXkoKS50eXBlKCkgPT0gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpY
MTEpCi0gICAgICAgIHJldHVybiAicGx1Z2lucy14MTEiOwotI2VuZGlmCi0jaWYgUExBVEZPUk0o
V0FZTEFORCkKLSAgICBpZiAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5
KCkudHlwZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6VHlwZTo6V2F5bGFuZCkKLSAg
ICAgICAgcmV0dXJuICJwbHVnaW5zLXdheWxhbmQiOwotI2VuZGlmCi0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gInBsdWdpbnMiOwotfQotCi1QbHVnaW5JbmZvQ2FjaGU6
OlBsdWdpbkluZm9DYWNoZSgpCi0gICAgOiBtX2NhY2hlRmlsZShnX2tleV9maWxlX25ldygpKQot
ICAgICwgbV9zYXZlVG9GaWxlSWRsZShSdW5Mb29wOjptYWluKCksIHRoaXMsICZQbHVnaW5JbmZv
Q2FjaGU6OnNhdmVUb0ZpbGUpCi0gICAgLCBtX3JlYWRPbmx5TW9kZShmYWxzZSkKLXsKLSAgICBt
X3NhdmVUb0ZpbGVJZGxlLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKLQot
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dl
dF91c2VyX2NhY2hlX2RpcigpLCAid2Via2l0Z3RrIiwgbnVsbHB0cikpOwotICAgIGlmIChGaWxl
U3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoY2FjaGVEaXJlY3RvcnkuZ2V0KCkpKSB7Ci0gICAg
ICAgIC8vIERlbGV0ZSBvbGQgY2FjaGUgZmlsZS4KLSAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBv
bGRDYWNoZVBhdGgoZ19idWlsZF9maWxlbmFtZShjYWNoZURpcmVjdG9yeS5nZXQoKSwgInBsdWdp
bnMiLCBudWxscHRyKSk7Ci0gICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoRmlsZVN5c3Rl
bTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihvbGRDYWNoZVBhdGguZ2V0KCkp
KTsKLQotICAgICAgICBtX2NhY2hlUGF0aC5yZXNldChnX2J1aWxkX2ZpbGVuYW1lKGNhY2hlRGly
ZWN0b3J5LmdldCgpLCBjYWNoZUZpbGVuYW1lRm9yQ3VycmVudERpc3BsYXkoKSwgbnVsbHB0cikp
OwotICAgICAgICBnX2tleV9maWxlX2xvYWRfZnJvbV9maWxlKG1fY2FjaGVGaWxlLmdldCgpLCBt
X2NhY2hlUGF0aC5nZXQoKSwgR19LRVlfRklMRV9OT05FLCBudWxscHRyKTsKLSAgICB9Ci0KLSAg
ICBpZiAoZ19rZXlfZmlsZV9oYXNfZ3JvdXAobV9jYWNoZUZpbGUuZ2V0KCksICJzY2hlbWEiKSkg
ewotICAgICAgICB1bnNpZ25lZCBzY2hlbWFWZXJzaW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGdfa2V5X2ZpbGVfZ2V0X2ludGVnZXIobV9jYWNoZUZpbGUuZ2V0KCksICJzY2hlbWEiLCAidmVy
c2lvbiIsIG51bGxwdHIpKTsKLSAgICAgICAgaWYgKHNjaGVtYVZlcnNpb24gPCBnU2NoZW1hVmVy
c2lvbikgewotICAgICAgICAgICAgLy8gQ2FjaGUgZmlsZSB1c2luZyBhbiBvbGQgc2NoZW1hLCBj
cmVhdGUgYSBuZXcgZW1wdHkgZmlsZS4KLSAgICAgICAgICAgIG1fY2FjaGVGaWxlLnJlc2V0KGdf
a2V5X2ZpbGVfbmV3KCkpOwotICAgICAgICB9IGVsc2UgaWYgKHNjaGVtYVZlcnNpb24gPiBnU2No
ZW1hVmVyc2lvbikgewotICAgICAgICAgICAgLy8gQ2FjaGUgZmlsZSB1c2luZyBhIG5ld2VyIHNj
aGVtYSwgdXNlIHRoZSBjYWNoZSBpbiByZWFkIG9ubHkgbW9kZS4KLSAgICAgICAgICAgIG1fcmVh
ZE9ubHlNb2RlID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFNhbWUg
c2NoZW1hIHZlcnNpb24sIHdlIGRvbid0IG5lZWQgdG8gdXBkYXRlIGl0LgotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZ19rZXlfZmlsZV9zZXRfaW50ZWdlciht
X2NhY2hlRmlsZS5nZXQoKSwgInNjaGVtYSIsICJ2ZXJzaW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGdTY2hlbWFWZXJzaW9uKSk7Ci19Ci0KLVBsdWdpbkluZm9DYWNoZTo6flBsdWdpbkluZm9D
YWNoZSgpCi17Ci19Ci0KLXZvaWQgUGx1Z2luSW5mb0NhY2hlOjpzYXZlVG9GaWxlKCkKLXsKLSAg
ICBnc2l6ZSBkYXRhTGVuZ3RoOwotICAgIEdVbmlxdWVQdHI8Y2hhcj4gZGF0YShnX2tleV9maWxl
X3RvX2RhdGEobV9jYWNoZUZpbGUuZ2V0KCksICZkYXRhTGVuZ3RoLCBudWxscHRyKSk7Ci0gICAg
aWYgKCFkYXRhKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnX2ZpbGVfc2V0X2NvbnRlbnRzKG1f
Y2FjaGVQYXRoLmdldCgpLCBkYXRhLmdldCgpLCBkYXRhTGVuZ3RoLCBudWxscHRyKTsKLX0KLQot
Ym9vbCBQbHVnaW5JbmZvQ2FjaGU6OmdldFBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5Q
YXRoLCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCi17Ci0gICAgQ1N0cmluZyBwbHVnaW5Hcm91
cCA9IHBsdWdpblBhdGgudXRmOCgpOwotICAgIGlmICghZ19rZXlfZmlsZV9oYXNfZ3JvdXAobV9j
YWNoZUZpbGUuZ2V0KCksIHBsdWdpbkdyb3VwLmRhdGEoKSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGF1dG8gbGFzdE1vZGlmaWVkVGltZSA9IEZpbGVTeXN0ZW06OmdldEZpbGVNb2Rp
ZmljYXRpb25UaW1lKHBsdWdpblBhdGgpOwotICAgIGlmICghbGFzdE1vZGlmaWVkVGltZSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHRpbWVfdCBjYWNoZWRMYXN0TW9kaWZpZWQgPSBzdGF0
aWNfY2FzdDx0aW1lX3Q+KGdfa2V5X2ZpbGVfZ2V0X3VpbnQ2NChtX2NhY2hlRmlsZS5nZXQoKSwg
cGx1Z2luR3JvdXAuZGF0YSgpLCAibXRpbWUiLCBudWxscHRyKSk7Ci0gICAgaWYgKGxhc3RNb2Rp
ZmllZFRpbWUtPnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kc0FzPHRpbWVfdD4oKSAhPSBjYWNo
ZWRMYXN0TW9kaWZpZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHBsdWdpbi5wYXRo
ID0gcGx1Z2luUGF0aDsKLSAgICBwbHVnaW4uaW5mby5maWxlID0gRmlsZVN5c3RlbTo6cGF0aEdl
dEZpbGVOYW1lKHBsdWdpblBhdGgpOwotCi0gICAgR1VuaXF1ZVB0cjxjaGFyPiBzdHJpbmdWYWx1
ZShnX2tleV9maWxlX2dldF9zdHJpbmcobV9jYWNoZUZpbGUuZ2V0KCksIHBsdWdpbkdyb3VwLmRh
dGEoKSwgIm5hbWUiLCBudWxscHRyKSk7Ci0gICAgcGx1Z2luLmluZm8ubmFtZSA9IFN0cmluZzo6
ZnJvbVVURjgoc3RyaW5nVmFsdWUuZ2V0KCkpOwotCi0gICAgc3RyaW5nVmFsdWUucmVzZXQoZ19r
ZXlfZmlsZV9nZXRfc3RyaW5nKG1fY2FjaGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCks
ICJkZXNjcmlwdGlvbiIsIG51bGxwdHIpKTsKLSAgICBwbHVnaW4uaW5mby5kZXNjID0gU3RyaW5n
Ojpmcm9tVVRGOChzdHJpbmdWYWx1ZS5nZXQoKSk7Ci0KLSNpZiBQTFVHSU5fQVJDSElURUNUVVJF
KFVOSVgpCi0gICAgc3RyaW5nVmFsdWUucmVzZXQoZ19rZXlfZmlsZV9nZXRfc3RyaW5nKG1fY2Fj
aGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCksICJtaW1lLWRlc2NyaXB0aW9uIiwgbnVs
bHB0cikpOwotICAgIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpwYXJzZU1JTUVEZXNjcmlwdGlvbihT
dHJpbmc6OmZyb21VVEY4KHN0cmluZ1ZhbHVlLmdldCgpKSwgcGx1Z2luLmluZm8ubWltZXMpOwot
I2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBQbHVnaW5JbmZvQ2FjaGU6OnVw
ZGF0ZVBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBjb25zdCBQbHVnaW5Nb2R1
bGVJbmZvJiBwbHVnaW4pCi17Ci0gICAgYXV0byBsYXN0TW9kaWZpZWRUaW1lID0gRmlsZVN5c3Rl
bTo6Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUocGx1Z2luUGF0aCk7Ci0gICAgaWYgKCFsYXN0TW9k
aWZpZWRUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU3RyaW5nIHBsdWdpbkdyb3VwID0g
cGx1Z2luUGF0aC51dGY4KCk7Ci0gICAgZ19rZXlfZmlsZV9zZXRfdWludDY0KG1fY2FjaGVGaWxl
LmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCksICJtdGltZSIsIGxhc3RNb2RpZmllZFRpbWUtPnNl
Y29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kc0FzPGd1aW50NjQ+KCkpOwotICAgIGdfa2V5X2ZpbGVf
c2V0X3N0cmluZyhtX2NhY2hlRmlsZS5nZXQoKSwgcGx1Z2luR3JvdXAuZGF0YSgpLCAibmFtZSIs
IHBsdWdpbi5pbmZvLm5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgZ19rZXlfZmlsZV9zZXRfc3Ry
aW5nKG1fY2FjaGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCksICJkZXNjcmlwdGlvbiIs
IHBsdWdpbi5pbmZvLmRlc2MudXRmOCgpLmRhdGEoKSk7Ci0KLSNpZiBQTFVHSU5fQVJDSElURUNU
VVJFKFVOSVgpCi0gICAgU3RyaW5nIG1pbWVEZXNjcmlwdGlvbiA9IE5ldHNjYXBlUGx1Z2luTW9k
dWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbihwbHVnaW4uaW5mby5taW1lcyk7Ci0gICAgZ19rZXlf
ZmlsZV9zZXRfc3RyaW5nKG1fY2FjaGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCksICJt
aW1lLWRlc2NyaXB0aW9uIiwgbWltZURlc2NyaXB0aW9uLnV0ZjgoKS5kYXRhKCkpOwotI2VuZGlm
Ci0KLSAgICBpZiAobV9jYWNoZVBhdGggJiYgIW1fcmVhZE9ubHlNb2RlKSB7Ci0gICAgICAgIC8v
IFNhdmUgdGhlIGNhY2hlIGZpbGUgaW4gYW4gaWRsZSB0byBtYWtlIHN1cmUgaXQgaGFwcGVucyBp
biB0aGUgbWFpbiB0aHJlYWQgYW5kCi0gICAgICAgIC8vIGl0J3MgZG9uZSBvbmx5IG9uY2Ugd2hl
biB0aGlzIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpbiBhIHZlcnkgc2hvcnQgdGltZS4KLSAg
ICAgICAgaWYgKG1fc2F2ZVRvRmlsZUlkbGUuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBtX3NhdmVUb0ZpbGVJZGxlLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgIH0K
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
Z3RrL1BsdWdpbkluZm9DYWNoZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9n
dGsvUGx1Z2luSW5mb0NhY2hlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1YWIx
Y2ZhMTVhYS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdp
bnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFBsdWdpbkluZm9DYWNoZV9oCi0jZGVmaW5lIFBsdWdpbkluZm9DYWNoZV9oCi0KLSNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLQotI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIK
LSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgotI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFBsdWdpbkluZm9DYWNoZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGx1
Z2luSW5mb0NhY2hlKTsKLSAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8UGx1Z2luSW5mb0NhY2hl
PjsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGx1Z2luSW5mb0NhY2hlJiBzaW5nbGV0b24oKTsKLQot
ICAgIGJvb2wgZ2V0UGx1Z2luSW5mbyhjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpbk1v
ZHVsZUluZm8mKTsKLSAgICB2b2lkIHVwZGF0ZVBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVn
aW5QYXRoLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJik7Ci0KLXByaXZhdGU6Ci0gICAgUGx1Z2lu
SW5mb0NhY2hlKCk7Ci0gICAgflBsdWdpbkluZm9DYWNoZSgpOwotCi0gICAgdm9pZCBzYXZlVG9G
aWxlKCk7Ci0KLSAgICBHVW5pcXVlUHRyPEdLZXlGaWxlPiBtX2NhY2hlRmlsZTsKLSAgICBHVW5p
cXVlUHRyPGNoYXI+IG1fY2FjaGVQYXRoOwotICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpbkluZm9D
YWNoZT4gbV9zYXZlVG9GaWxlSWRsZTsKLSAgICBib29sIG1fcmVhZE9ubHlNb2RlOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKLQotI2VuZGlmIC8vIFBsdWdpbkluZm9DYWNoZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2Yzg2MjFmMTA4MS4uMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZv
U3RvcmVVbml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0vLyBOb3RlOiB0aGlzIGZpbGUgaXMgb25seSBmb3IgVU5JWC4gT24gb3RoZXIgcGxhdGZvcm1z
IHdlIGNhbiByZXVzZSB0aGUgbmF0aXZlIGltcGxlbWVudGF0aW9uLgotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0KLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLQotI2luY2x1ZGUgIlBs
dWdpbkluZm9TdG9yZS5oIgotCi0jaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKLSNp
bmNsdWRlICJQbHVnaW5TZWFyY2hQYXRoLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXkuaD4KLSNpbmNsdWRlIDxs
aW1pdHMuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5o
PgotCi0jaWYgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgIlBsdWdpbkluZm9DYWNoZS5oIgotI2Vu
ZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVZl
Y3RvcjxTdHJpbmc+IFBsdWdpbkluZm9TdG9yZTo6cGx1Z2luc0RpcmVjdG9yaWVzKCkKLXsKLSAg
ICByZXR1cm4gV2ViS2l0OjpwbHVnaW5zRGlyZWN0b3JpZXMoKTsKLX0KLQotVmVjdG9yPFN0cmlu
Zz4gUGx1Z2luSW5mb1N0b3JlOjpwbHVnaW5QYXRoc0luRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYg
ZGlyZWN0b3J5KQotewotICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKLSAgICBjaGFyIG5vcm1h
bGl6ZWRQYXRoW1BBVEhfTUFYXTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGggOiBGaWxlU3lz
dGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSwgU3RyaW5nKCIqLnNvIikpKSB7Ci0gICAgICAg
IENTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
cGF0aCk7Ci0gICAgICAgIGlmIChyZWFscGF0aChmaWxlbmFtZS5kYXRhKCksIG5vcm1hbGl6ZWRQ
YXRoKSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihub3JtYWxpemVkUGF0aCkpOwotICAgIH0KLQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IFBsdWdpbkluZm9TdG9yZTo6aW5kaXZp
ZHVhbFBsdWdpblBhdGhzKCkKLXsKLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKLX0KLQot
Ym9vbCBQbHVnaW5JbmZvU3RvcmU6OmdldFBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5Q
YXRoLCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCi17Ci0jaWYgUExBVEZPUk0oR1RLKQotICAg
IGlmIChQbHVnaW5JbmZvQ2FjaGU6OnNpbmdsZXRvbigpLmdldFBsdWdpbkluZm8ocGx1Z2luUGF0
aCwgcGx1Z2luKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoTmV0c2NhcGVQbHVn
aW5Nb2R1bGU6OmdldFBsdWdpbkluZm8ocGx1Z2luUGF0aCwgcGx1Z2luKSkgewotICAgICAgICBQ
bHVnaW5JbmZvQ2FjaGU6OnNpbmdsZXRvbigpLnVwZGF0ZVBsdWdpbkluZm8ocGx1Z2luUGF0aCwg
cGx1Z2luKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsK
LSNlbHNlCi0gICAgcmV0dXJuIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvKHBs
dWdpblBhdGgsIHBsdWdpbik7Ci0jZW5kaWYKLX0KLQotYm9vbCBQbHVnaW5JbmZvU3RvcmU6OnNo
b3VsZFVzZVBsdWdpbihWZWN0b3I8UGx1Z2luTW9kdWxlSW5mbz4mIC8qYWxyZWFkeUxvYWRlZFBs
dWdpbnMqLywgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgLypwbHVnaW4qLykKLXsKLSAgICAvLyBX
ZSBkbyBub3QgZG8gYW55IGJsYWNrLWxpc3RpbmcgcHJlc2VudGx5LgotICAgIHJldHVybiB0cnVl
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyOTk2ZTk5ZjRkYmUuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxNCBJZ2FsaWEgUy5MLgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4KLSAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUiBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJveHku
aCIKLQotI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLQotI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGgu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheS5oPgotI2luY2x1ZGUgPHN5cy93
YWl0Lmg+Ci0jaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBQTEFURk9S
TShHVEspCi0jaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIu
aD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgIk1vZHVsZS5oIgotI2Vu
ZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnNXaXRoQXR0cmli
dXRlcyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMsIGNvbnN0
IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJiBwbHVnaW5Qcm9jZXNzQXR0cmlidXRlcykKLXsKLSAg
ICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlw
ZTo6UGx1Z2luOwotICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRk
KCJwbHVnaW4tcGF0aCIsIHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLm1vZHVsZUluZm8ucGF0aCk7
Ci19Ci0KLXZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemVQbHVnaW5Q
cm9jZXNzKFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQotewotfQotCi0jaWYgUExB
VEZPUk0oR1RLKQotc3RhdGljIGJvb2wgcGx1Z2luUmVxdWlyZXNHdGsyKGNvbnN0IFN0cmluZyYg
cGx1Z2luUGF0aCkKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlPiBtb2R1bGUgPSBtYWtl
VW5pcXVlPE1vZHVsZT4ocGx1Z2luUGF0aCk7Ci0gICAgaWYgKCFtb2R1bGUtPmxvYWQoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtb2R1bGUtPmZ1bmN0aW9uUG9pbnRlcjxn
cG9pbnRlcj4oImd0a19vYmplY3RfZ2V0X3R5cGUiKTsKLX0KLSNlbmRpZgotCi0jaWYgUExVR0lO
X0FSQ0hJVEVDVFVSRShVTklYKQotYm9vbCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNjYW5QbHVnaW4o
Y29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBSYXdQbHVnaW5NZXRhRGF0YSYgcmVzdWx0KQotewot
ICAgIFN0cmluZyBwbHVnaW5Qcm9jZXNzUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Qcm9j
ZXNzKCk7Ci0KLSNpZiBQTEFURk9STShHVEspCi0gICAgaWYgKHBsdWdpblJlcXVpcmVzR3RrMihw
bHVnaW5QYXRoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KLSAgICBDU3RyaW5n
IGJpbmFyeVBhdGggPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGx1Z2lu
UHJvY2Vzc1BhdGgpOwotICAgIENTdHJpbmcgcGx1Z2luUGF0aENTdHJpbmcgPSBGaWxlU3lzdGVt
OjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGx1Z2luUGF0aCk7Ci0gICAgY2hhciogYXJndls0
XTsKLSAgICBhcmd2WzBdID0gY29uc3RfY2FzdDxjaGFyKj4oYmluYXJ5UGF0aC5kYXRhKCkpOwot
ICAgIGFyZ3ZbMV0gPSBjb25zdF9jYXN0PGNoYXIqPigiLXNjYW5QbHVnaW4iKTsKLSAgICBhcmd2
WzJdID0gY29uc3RfY2FzdDxjaGFyKj4ocGx1Z2luUGF0aENTdHJpbmcuZGF0YSgpKTsKLSAgICBh
cmd2WzNdID0gbnVsbHB0cjsKLQotICAgIC8vIElmIHRoZSBkaXNwb3NpdGlvbiBvZiBTSUdDTEQg
c2lnbmFsIGlzIHNldCB0byBTSUdfSUdOIChkZWZhdWx0KQotICAgIC8vIHRoZW4gdGhlIHNpZ25h
bCB3aWxsIGJlIGlnbm9yZWQgYW5kIGdfc3Bhd25fc3luYygpIHdpbGwgbm90IGJlCi0gICAgLy8g
YWJsZSB0byByZXR1cm4gdGhlIHN0YXR1cy4KLSAgICAvLyBBcyBhIGNvbnNlcXVlbmNlLCB3ZSBt
YWtlIHN1cmUgdGhhdCB0aGUgZGlzcG9zaXRpb24gaXMgc2V0IHRvCi0gICAgLy8gU0lHX0RGTCBi
ZWZvcmUgY2FsbGluZyBnX3NwYXduX3N5bmMoKS4KLSNpZiBkZWZpbmVkKFNJR0NMRCkKLSAgICBz
dHJ1Y3Qgc2lnYWN0aW9uIGFjdGlvbjsKLSAgICBzaWdhY3Rpb24oU0lHQ0xELCAwLCAmYWN0aW9u
KTsKLSAgICBpZiAoYWN0aW9uLnNhX2hhbmRsZXIgPT0gU0lHX0lHTikgewotICAgICAgICBhY3Rp
b24uc2FfaGFuZGxlciA9IFNJR19ERkw7Ci0gICAgICAgIHNpZ2FjdGlvbihTSUdDTEQsICZhY3Rp
b24sIDApOwotICAgIH0KLSNlbmRpZgotCi0gICAgaW50IHN0YXR1czsKLSAgICBHVW5pcXVlT3V0
UHRyPGNoYXI+IHN0ZE91dDsKLSAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7Ci0gICAg
aWYgKCFnX3NwYXduX3N5bmMobnVsbHB0ciwgYXJndiwgbnVsbHB0ciwgR19TUEFXTl9TVERFUlJf
VE9fREVWX05VTEwsIG51bGxwdHIsIG51bGxwdHIsICZzdGRPdXQub3V0UHRyKCksIG51bGxwdHIs
ICZzdGF0dXMsICZlcnJvci5vdXRQdHIoKSkpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWls
ZWQgdG8gbGF1bmNoICVzOiAlcyIsIGFyZ3ZbMF0sIGVycm9yLT5tZXNzYWdlKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VY
SVRTVEFUVVMoc3RhdHVzKSAhPSBFWElUX1NVQ0NFU1MpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlz
KCJFcnJvciBzY2FubmluZyBwbHVnaW4gJXMsICVzIHJldHVybmVkICVkIGV4aXQgc3RhdHVzIiwg
YXJndlsyXSwgYXJndlswXSwgc3RhdHVzKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LQotICAgIGlmICghc3RkT3V0KSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3Igc2Nhbm5p
bmcgcGx1Z2luICVzLCAlcyBkaWRuJ3Qgd3JpdGUgYW55IG91dHB1dCB0byBzdGRvdXQiLCBhcmd2
WzJdLCBhcmd2WzBdKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIFZlY3Rv
cjxTdHJpbmc+IGxpbmVzID0gU3RyaW5nOjpmcm9tVVRGOChzdGRPdXQuZ2V0KCkpLnNwbGl0QWxs
b3dpbmdFbXB0eUVudHJpZXMoJ1xuJyk7Ci0KLSAgICBpZiAobGluZXMuc2l6ZSgpIDwgMykgewot
ICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIHNjYW5uaW5nIHBsdWdpbiAlcywgdG9vIGZldyBs
aW5lcyBvZiBvdXRwdXQgcHJvdmlkZWQiLCBhcmd2WzJdKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQotICAgIHJlc3VsdC5uYW1lLnN3YXAobGluZXNbMF0pOwotICAgIHJlc3VsdC5k
ZXNjcmlwdGlvbi5zd2FwKGxpbmVzWzFdKTsKLSAgICByZXN1bHQubWltZURlc2NyaXB0aW9uLnN3
YXAobGluZXNbMl0pOwotICAgIHJldHVybiAhcmVzdWx0Lm1pbWVEZXNjcmlwdGlvbi5pc0VtcHR5
KCk7Ci19Ci0jZW5kaWYgLy8gUExVR0lOX0FSQ0hJVEVDVFVSRShVTklYKQotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjgzYjI1ZDg4ZDM2Li4yZTUyOWIzOGQ2
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMjA5LDEyICsy
MjA5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0UmVuZGVyVHJlZVNpemUodWludDY0X3Qg
dHJlZVNpemUpIHsgbV9yZW5kZXJUcmVlU2l6ZSA9IHRyZWVTaXplOyB9CiAKLSNpZiBQTEFURk9S
TShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIHZvaWQgY3JlYXRlUGx1
Z2luQ29udGFpbmVyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKLSAgICB2
b2lkIHdpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgZnJhbWVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCwgdWludDY0X3Qg
d2luZG93SUQpOwotICAgIHZvaWQgd2luZG93ZWRQbHVnaW5WaXNpYmlsaXR5RGlkQ2hhbmdlKGJv
b2wgaXNWaXNpYmxlLCB1aW50NjRfdCB3aW5kb3dJRCk7Ci0jZW5kaWYKLQogICAgIHZvaWQgcHJv
Y2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCk7CiAgICAgdm9pZCBzZW5kV2hlZWxFdmVudChjb25z
dCBXZWJXaGVlbEV2ZW50Jik7CiAgICAgYm9vbCBzaG91bGRQcm9jZXNzV2hlZWxFdmVudE5vdyhj
b25zdCBXZWJXaGVlbEV2ZW50JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmQ4ZDhkMGFhMzZkLi44YTg0Zjk1OWFi
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM5MCwxMyArMzkwLDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBEaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRp
b25Db250ZXh0KSAtPiAoVmVjdG9yPFN0cmluZz4gYWx0ZXJuYXRpdmVzKSBTeW5jaHJvbm91cwog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQotICAgICMgWDExIHdpbmRvd2VkIHBsdWdpbiBtZXNzYWdlcwotICAgIENyZWF0ZVBsdWdpbkNv
bnRhaW5lcigpIC0+ICh1aW50NjRfdCB3aW5kb3dJRCkgU3luY2hyb25vdXMKLSAgICBXaW5kb3dl
ZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKFdlYkNvcmU6OkludFJlY3QgZnJhbWVSZWN0LCBXZWJD
b3JlOjpJbnRSZWN0IGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCkKLSAgICBXaW5kb3dlZFBs
dWdpblZpc2liaWxpdHlEaWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90IHdpbmRvd0lE
KQotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIENvdWxkTm90UmVzdG9y
ZVBhZ2VTdGF0ZSgpCiAgICAgUmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxPcmlnaW4s
IFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gb2JzY3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBz
Y2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJv
eHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5j
cHAKaW5kZXggZjc4Y2U1Y2Q1NDJlLi5hNjYyODhhZDc2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCkBAIC00MSwxMCArNDEsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvVXNlckFnZW50Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKLSNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQotI2luY2x1ZGUgPGd0ay9ndGt4Lmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQpAQCAtOTYsNjIgKzkyLDYg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUVkaXRvclN0YXRlKGNvbnN0IEVkaXRvclN0YXRl
JiBlZGl0b3JTdGF0ZSkKICAgICBwYWdlQ2xpZW50KCkuc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CiB9
CiAKLSNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotdHlw
ZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBHdGtXaWRnZXQqID4gUGx1Z2luV2luZG93TWFwOwotc3Rh
dGljIFBsdWdpbldpbmRvd01hcCYgcGx1Z2luV2luZG93TWFwKCkKLXsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UGx1Z2luV2luZG93TWFwPiBtYXA7Ci0gICAgcmV0dXJuIG1hcDsKLX0KLQot
c3RhdGljIGdib29sZWFuIHBsdWdpbkNvbnRhaW5lclBsdWdSZW1vdmVkKEd0a1NvY2tldCogc29j
a2V0KQotewotICAgIHVpbnQ2NF90IHdpbmRvd0lEID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGd0
a19zb2NrZXRfZ2V0X2lkKHNvY2tldCkpOwotICAgIHBsdWdpbldpbmRvd01hcCgpLnJlbW92ZSh3
aW5kb3dJRCk7Ci0gICAgcmV0dXJuIEZBTFNFOwotfQotCi12b2lkIFdlYlBhZ2VQcm94eTo6Y3Jl
YXRlUGx1Z2luQ29udGFpbmVyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIFJFTEVBU0VfQVNTRVJUKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9PSBXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OlR5cGU6OlgxMSk7Ci0gICAgR3RrV2lkZ2V0KiBzb2NrZXQgPSBndGtfc29ja2V0X25ldygp
OwotICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc29ja2V0LCAicGx1Zy1yZW1vdmVkIiwgR19DQUxMQkFD
SyhwbHVnaW5Db250YWluZXJQbHVnUmVtb3ZlZCksIDApOwotICAgIGd0a19jb250YWluZXJfYWRk
KEdUS19DT05UQUlORVIodmlld1dpZGdldCgpKSwgc29ja2V0KTsKLQotICAgIHVpbnQ2NF90IHdp
bmRvd0lEID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGd0a19zb2NrZXRfZ2V0X2lkKEdUS19TT0NL
RVQoc29ja2V0KSkpOwotICAgIHBsdWdpbldpbmRvd01hcCgpLnNldCh3aW5kb3dJRCwgc29ja2V0
KTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dJRCk7Ci19Ci0KLXZvaWQgV2ViUGFnZVBy
b3h5Ojp3aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGZyYW1lUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QsIHVpbnQ2NF90
IHdpbmRvd0lEKQotewotICAgIEd0a1dpZGdldCogcGx1Z2luID0gcGx1Z2luV2luZG93TWFwKCku
Z2V0KHdpbmRvd0lEKTsKLSAgICBpZiAoIXBsdWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKGd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHBsdWdpbikpIHsKLSAgICAgICAgR2RrUmVjdGFu
Z2xlIGNsaXAgPSBjbGlwUmVjdDsKLSAgICAgICAgY2Fpcm9fcmVnaW9uX3QqIGNsaXBSZWdpb24g
PSBjYWlyb19yZWdpb25fY3JlYXRlX3JlY3RhbmdsZSgmY2xpcCk7Ci0gICAgICAgIGdka193aW5k
b3dfc2hhcGVfY29tYmluZV9yZWdpb24oZ3RrX3dpZGdldF9nZXRfd2luZG93KHBsdWdpbiksIGNs
aXBSZWdpb24sIDAsIDApOwotICAgICAgICBjYWlyb19yZWdpb25fZGVzdHJveShjbGlwUmVnaW9u
KTsKLSAgICB9Ci0KLSAgICB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkTW92ZVJlc2l6ZShXRUJLSVRf
V0VCX1ZJRVdfQkFTRSh2aWV3V2lkZ2V0KCkpLCBwbHVnaW4sIGZyYW1lUmVjdCk7Ci19Ci0KLXZv
aWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dlZFBsdWdpblZpc2liaWxpdHlEaWRDaGFuZ2UoYm9vbCBp
c1Zpc2libGUsIHVpbnQ2NF90IHdpbmRvd0lEKQotewotICAgIEd0a1dpZGdldCogcGx1Z2luID0g
cGx1Z2luV2luZG93TWFwKCkuZ2V0KHdpbmRvd0lEKTsKLSAgICBpZiAoIXBsdWdpbikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKGlzVmlzaWJsZSkKLSAgICAgICAgZ3RrX3dpZGdldF9zaG93
KHBsdWdpbik7Ci0gICAgZWxzZQotICAgICAgICBndGtfd2lkZ2V0X2hpZGUocGx1Z2luKTsKLX0K
LSNlbmRpZiAvLyBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQot
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SW5wdXRNZXRob2RTdGF0ZShPcHRpb25hbDxJbnB1dE1l
dGhvZFN0YXRlPiYmIHN0YXRlKQogewogICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5wdXRNZXRo
b2RTdGF0ZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh2aWV3V2lkZ2V0KCkpLCBXVEZNb3ZlKHN0YXRl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS91bml4L05ldHNjYXBlUGx1Z2luVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luVW5peC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDVhMzkzMDhmMjE3OS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5V
bml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJOZXRzY2FwZVBsdWdpblVuaXguaCIKLQotI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUo
VU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0KLSNpbmNsdWRlICJOZXRzY2Fw
ZVBsdWdpbi5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5Lmg+Ci0KLSNp
ZiBQTEFURk9STShYMTEpCi0jaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5YMTEuaCIKLSNlbmRpZgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi12b2lkIE5l
dHNjYXBlUGx1Z2luOjpwbGF0Zm9ybVByZUluaXRpYWxpemUoKQotewotfQotCi1ib29sIE5ldHNj
YXBlUGx1Z2luOjpwbGF0Zm9ybVBvc3RJbml0aWFsaXplKCkKLXsKLSNpZiBQTEFURk9STShYMTEp
Ci0gICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9PSBQbGF0
Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewotICAgICAgICBtX2ltcGwgPSBOZXRzY2FwZVBsdWdp
blgxMTo6Y3JlYXRlKCp0aGlzKTsKLSAgICAgICAgaWYgKCFtX2ltcGwpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICAvLyBXaW5kb3dlZCBwbHVnaW5zIG5l
ZWQgYSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbi4KLSAgICBpZiAoIW1faW1wbCkKLSAgICAgICAg
cmV0dXJuICFtX2lzV2luZG93ZWQ7Ci0KLSAgICBtX25wV2luZG93LnR5cGUgPSBtX2ltcGwtPndp
bmRvd1R5cGUoKTsKLSAgICBtX25wV2luZG93LndpbmRvdyA9IG1faW1wbC0+d2luZG93KCk7Ci0g
ICAgbV9ucFdpbmRvdy53c19pbmZvID0gbV9pbXBsLT53aW5kb3dTeXN0ZW1JbmZvKCk7Ci0gICAg
Y2FsbFNldFdpbmRvdygpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIE5ldHNjYXBlUGx1
Z2luOjpwbGF0Zm9ybURlc3Ryb3koKQotewotICAgIG1faW1wbCA9IG51bGxwdHI7Ci19Ci0KLWJv
b2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtSW52YWxpZGF0ZShjb25zdCBJbnRSZWN0JikKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBOZXRz
Y2FwZVBsdWdpbjo6cGxhdGZvcm1HZW9tZXRyeURpZENoYW5nZSgpCi17Ci0gICAgaWYgKCFtX2lt
cGwpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2ltcGwtPmdlb21ldHJ5RGlkQ2hhbmdlKCk7Ci19
Ci0KLXZvaWQgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtVmlzaWJpbGl0eURpZENoYW5nZSgpCi17
Ci0gICAgaWYgKCFtX2lzV2luZG93ZWQgfHwgIW1faW1wbCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9pbXBsLT52aXNpYmlsaXR5RGlkQ2hhbmdlKCk7Ci19Ci0KLXZvaWQgTmV0c2NhcGVQbHVn
aW46OnBsYXRmb3JtUGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiBkaXJ0eVJlY3QsIGJvb2wgLyppc1NuYXBzaG90Ki8pCi17Ci0gICAgaWYgKG1faXNXaW5kb3dl
ZCB8fCAhbV9pbXBsKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1faXNTdGFydGVkKSB7
Ci0gICAgICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgcGFpbnQgYSBtaXNzaW5nIHBsdWdpbiBpY29u
LgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9pbXBsLT5wYWludChjb250ZXh0LCBk
aXJ0eVJlY3QpOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNl
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCi17Ci0gICAgaWYgKG1faXNXaW5kb3dl
ZCB8fCAhbV9pbXBsKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNpZiBQTEFURk9STShYMTEp
Ci0gICAgaWYgKChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93biB8fCBldmVudC50
eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlVXApCi0gICAgICAgICYmIGV2ZW50LmJ1dHRvbigpID09
IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uCi0gICAgICAgICYmIHF1aXJrcygpLmNvbnRhaW5z
KFBsdWdpblF1aXJrczo6SWdub3JlUmlnaHRDbGlja0luV2luZG93bGVzc01vZGUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX2ltcGwtPmhhbmRsZU1vdXNl
RXZlbnQoZXZlbnQpOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCi17Ci0gICAgaWYgKG1faXNXaW5k
b3dlZCB8fCAhbV9pbXBsKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9p
bXBsLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKLX0KLQotdm9pZCBOZXRzY2FwZVBsdWdpbjo6
cGxhdGZvcm1TZXRGb2N1cyhib29sIGZvY3VzSW4pCi17Ci0gICAgaWYgKG1faXNXaW5kb3dlZCB8
fCAhbV9pbXBsKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ltcGwtPnNldEZvY3VzKGZvY3Vz
SW4pOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2luOjp3YW50c1BsdWdpblJlbGF0aXZlTlBXaW5k
b3dDb29yZGluYXRlcygpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgTmV0c2NhcGVQ
bHVnaW46OnBsYXRmb3JtSGFuZGxlTW91c2VFbnRlckV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQm
IGV2ZW50KQotewotICAgIGlmIChtX2lzV2luZG93ZWQgfHwgIW1faW1wbCkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1faW1wbC0+aGFuZGxlTW91c2VFbnRlckV2ZW50KGV2
ZW50KTsKLX0KLQotYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUxlYXZl
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCi17Ci0gICAgaWYgKG1faXNXaW5kb3dl
ZCB8fCAhbV9pbXBsKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9pbXBs
LT5oYW5kbGVNb3VzZUxlYXZlRXZlbnQoZXZlbnQpOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2lu
OjpwbGF0Zm9ybUhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZl
bnQpCi17Ci0gICAgLy8gV2UgZG9uJ3QgZ2VuZXJhdGUgb3RoZXIgdHlwZXMgb2Yga2V5Ym9hcmQg
ZXZlbnRzIHZpYSBXZWJFdmVudEZhY3RvcnkuCi0gICAgQVNTRVJUKGV2ZW50LnR5cGUoKSA9PSBX
ZWJFdmVudDo6S2V5RG93biB8fCBldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OktleVVwKTsKLQot
ICAgIGlmIChtX2lzV2luZG93ZWQgfHwgIW1faW1wbCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgcmV0dXJuIG1faW1wbC0+aGFuZGxlS2V5Ym9hcmRFdmVudChldmVudCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUExVR0lOX0FSQ0hJVEVDVFVSRShVTklY
KSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Vbml4Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBl
UGx1Z2luVW5peC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjQxYzc1Y2E5NWQu
LjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS91bml4L05ldHNjYXBlUGx1Z2luVW5peC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIE5ldHNjYXBlUGx1Z2luVW5peF9oCi0jZGVmaW5lIE5ldHNjYXBlUGx1Z2luVW5peF9o
Ci0KLSNpZiBQTFVHSU5fQVJDSElURUNUVVJFKFVOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotY2xhc3MgSW50UmVjdDsK
LX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYktleWJvYXJkRXZlbnQ7Ci1jbGFz
cyBXZWJNb3VzZUV2ZW50OwotY2xhc3MgV2ViV2hlZWxFdmVudDsKLQotY2xhc3MgTmV0c2NhcGVQ
bHVnaW5Vbml4IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5OZXRzY2FwZVBsdWdpblVuaXgoKSB7
IH0KLSAgICB2aXJ0dWFsIE5QV2luZG93VHlwZSB3aW5kb3dUeXBlKCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCogd2luZG93KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgTlBTZXRXaW5k
b3dDYWxsYmFja1N0cnVjdCogd2luZG93U3lzdGVtSW5mbygpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZ2VvbWV0cnlEaWRDaGFuZ2UoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZpc2liaWxpdHlE
aWRDaGFuZ2UoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7Ci0gICAgdmlydHVhbCBib29s
IGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYpID0gMDsKLSAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JikgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVNb3VzZUVudGVyRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYpID0g
MDsKLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91c2VMZWF2ZUV2ZW50KGNvbnN0IFdlYk1vdXNl
RXZlbnQmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3Qg
V2ViS2V5Ym9hcmRFdmVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCkg
PSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQTFVHSU5fQVJD
SElURUNUVVJFKFVOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotCi0jZW5kaWYg
Ly8gTmV0c2NhcGVQbHVnaW5Vbml4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvUGx1Z2luUHJveHlVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvUGx1Z2luUHJveHlVbml4LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk2YWYyMGNhNDZmLi4wMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9Q
bHVnaW5Qcm94eVVuaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKLQotI2lmIEVOQUJMRShQTFVHSU5fUFJP
Q0VTUykKLQotI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWJvb2wgUGx1Z2luUHJveHk6Om5lZWRzQmFja2luZ1N0b3JlKCkgY29uc3QK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRz
Y2FwZVBsdWdpblgxMS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0NDlmM2I0Y2IyZmMuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNTM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNp
dHkgb2YgU3plZ2VkCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJO
ZXRzY2FwZVBsdWdpblgxMS5oIgotCi0jaWYgUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKLQotI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCi0jaW5jbHVkZSAi
UGx1Z2luQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlYMTEuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1hVbmlxdWVQdHIuaD4KLQotI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDxnZGsv
Z2RreC5oPgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDxndGsvZ3RreC5oPgotI2Vu
ZGlmCi0KLSNpZiBVU0UoQ0FJUk8pCi0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvbnRleHRD
YWlyby5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KLSNpbmNsdWRlIDxjYWly
by9jYWlyby14bGliLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIGlubGluZSBEaXNwbGF5KiB4MTFIb3N0RGlzcGxheSgp
Ci17Ci0gICAgcmV0dXJuIGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNw
bGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpOwotfQotCi1zdGF0aWMgRGlzcGxheSogZ2V0
UGx1Z2luRGlzcGxheSgpCi17Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIC8vIFNpbmNlIHdlJ3Jl
IGEgZ2RrL2d0ayBhcHAsIHdlJ2xsIChwcm9iYWJseT8pIGhhdmUgdGhlIHNhbWUgWCBjb25uZWN0
aW9uIGFzIGFueSBnZGstYmFzZWQKLSAgICAvLyBwbHVnaW5zLCBzbyB3ZSBjYW4gcmV0dXJuIHRo
YXQuIFdlIG1pZ2h0IHdhbnQgdG8gYWRkIG90aGVyIGltcGxlbWVudGF0aW9ucyBoZXJlIGxhdGVy
LgotICAgIHJldHVybiBnZGtfeDExX2dldF9kZWZhdWx0X3hkaXNwbGF5KCk7Ci0jZWxzZQotICAg
IHJldHVybiBudWxscHRyOwotI2VuZGlmCi19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHgxMVNjcmVl
bigpCi17Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHJldHVybiBnZGtfeDExX3NjcmVlbl9nZXRf
c2NyZWVuX251bWJlcihnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpOwotI2Vsc2UKLSAgICByZXR1
cm4gMDsKLSNlbmRpZgotfQotCi1zdGF0aWMgaW5saW5lIGludCBkaXNwbGF5RGVwdGgoKQotewot
I2lmIFBMQVRGT1JNKEdUSykKLSAgICByZXR1cm4gZ2RrX3Zpc3VhbF9nZXRfZGVwdGgoZ2RrX3Nj
cmVlbl9nZXRfc3lzdGVtX3Zpc3VhbChnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpKTsKLSNlbHNl
Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n
IHJvb3RXaW5kb3dJRCgpCi17Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHJldHVybiBHREtfUk9P
VF9XSU5ET1coKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotI2lmIFBMQVRG
T1JNKEdUSykKLXN0YXRpYyBnYm9vbGVhbiBzb2NrZXRQbHVnUmVtb3ZlZENhbGxiYWNrKEd0a1Nv
Y2tldCopCi17Ci0gICAgLy8gRGVmYXVsdCBhY3Rpb24gaXMgdG8gZGVzdHJveSB0aGUgR3RrU29j
a2V0LCBzbyB3ZSBqdXN0IHJldHVybiBUUlVFIGhlcmUKLSAgICAvLyB0byBiZSBhYmxlIHRvIHJl
dXNlIHRoZSBzb2NrZXQuIEZvciBzb21lIG9ic2N1cmUgcmVhc29uLCBuZXdlciB2ZXJzaW9ucwot
ICAgIC8vIG9mIGZsYXNoIHBsdWdpbiByZW1vdmUgdGhlIHBsdWcgZnJvbSB0aGUgc29ja2V0LCBw
cm9iYWJseSBiZWNhdXNlIHRoZSBwbHVnCi0gICAgLy8gY3JlYXRlZCBieSB0aGUgcGx1Z2luIGlz
IHJlLXBhcmVudGVkLgotICAgIHJldHVybiBUUlVFOwotfQotI2VuZGlmCi0KLXN0ZDo6dW5pcXVl
X3B0cjxOZXRzY2FwZVBsdWdpblgxMT4gTmV0c2NhcGVQbHVnaW5YMTE6OmNyZWF0ZShOZXRzY2Fw
ZVBsdWdpbiYgcGx1Z2luKQotewotI2lmIFBMQVRGT1JNKEdUSykKLSAgICB1aW50NjRfdCB3aW5k
b3dJRCA9IDA7Ci0jZW5kaWYKLSAgICBpZiAocGx1Z2luLmlzV2luZG93ZWQoKSkgewotI2lmIFBM
QVRGT1JNKEdUSykKLSAgICAgICAgLy8gTlBQVnBsdWdpTmVlZHNYRW1iZWQgaXMgYSBib29sZWFu
IHZhbHVlLCBidXQgYXQgbGVhc3QgdGhlCi0gICAgICAgIC8vIEZsYXNoIHBsYXllciBwbHVnaW4g
aXMgdXNpbmcgYW4gJ2ludCcgaW5zdGVhZC4KLSAgICAgICAgaW50IG5lZWRzWEVtYmVkID0gMDsK
LSAgICAgICAgcGx1Z2luLk5QUF9HZXRWYWx1ZShOUFBWcGx1Z2luTmVlZHNYRW1iZWQsICZuZWVk
c1hFbWJlZCk7Ci0gICAgICAgIGlmIChuZWVkc1hFbWJlZCkgewotICAgICAgICAgICAgd2luZG93
SUQgPSBwbHVnaW4uY29udHJvbGxlcigpLT5jcmVhdGVQbHVnaW5Db250YWluZXIoKTsKLSAgICAg
ICAgICAgIGlmICghd2luZG93SUQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSNlbHNlCi0gICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCi0gICAgfQotCi0gICAgRGlz
cGxheSogZGlzcGxheSA9IGdldFBsdWdpbkRpc3BsYXkoKTsKLSAgICBpZiAoIWRpc3BsYXkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0jaWYgUExBVEZPUk0oR1RLKQotICAgIGlmIChwbHVn
aW4uaXNXaW5kb3dlZCgpKQotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXRzY2FwZVBsdWdp
blgxMT4ocGx1Z2luLCBkaXNwbGF5LCB3aW5kb3dJRCk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBt
YWtlVW5pcXVlPE5ldHNjYXBlUGx1Z2luWDExPihwbHVnaW4sIGRpc3BsYXkpOwotfQotCi1OZXRz
Y2FwZVBsdWdpblgxMTo6TmV0c2NhcGVQbHVnaW5YMTEoTmV0c2NhcGVQbHVnaW4mIHBsdWdpbiwg
RGlzcGxheSogZGlzcGxheSkKLSAgICA6IG1fcGx1Z2luKHBsdWdpbikKLSAgICAsIG1fcGx1Z2lu
RGlzcGxheShkaXNwbGF5KQotewotICAgIERpc3BsYXkqIGhvc3REaXNwbGF5ID0geDExSG9zdERp
c3BsYXkoKTsKLSAgICBpbnQgZGVwdGggPSBkaXNwbGF5RGVwdGgoKTsKLSAgICBtX3NldFdpbmRv
d0NhbGxiYWNrU3RydWN0LmRpc3BsYXkgPSBob3N0RGlzcGxheTsKLSAgICBtX3NldFdpbmRvd0Nh
bGxiYWNrU3RydWN0LmRlcHRoID0gZGVwdGg7Ci0KLSAgICBYVmlzdWFsSW5mbyB2aXN1YWxUZW1w
bGF0ZTsKLSAgICB2aXN1YWxUZW1wbGF0ZS5zY3JlZW4gPSB4MTFTY3JlZW4oKTsKLSAgICB2aXN1
YWxUZW1wbGF0ZS5kZXB0aCA9IGRlcHRoOwotICAgIHZpc3VhbFRlbXBsYXRlLmNfY2xhc3MgPSBU
cnVlQ29sb3I7Ci0gICAgaW50IG51bU1hdGNoaW5nOwotICAgIFhVbmlxdWVQdHI8WFZpc3VhbElu
Zm8+IHZpc3VhbEluZm8oWEdldFZpc3VhbEluZm8oaG9zdERpc3BsYXksIFZpc3VhbFNjcmVlbk1h
c2sgfCBWaXN1YWxEZXB0aE1hc2sgfCBWaXN1YWxDbGFzc01hc2ssICZ2aXN1YWxUZW1wbGF0ZSwg
Jm51bU1hdGNoaW5nKSk7Ci0gICAgQVNTRVJUKHZpc3VhbEluZm8pOwotICAgIFZpc3VhbCogdmlz
dWFsID0gdmlzdWFsSW5mby5nZXQoKVswXS52aXN1YWw7Ci0gICAgQVNTRVJUKHZpc3VhbCk7Ci0K
LSAgICBtX3NldFdpbmRvd0NhbGxiYWNrU3RydWN0LnR5cGUgPSBOUF9TRVRXSU5ET1c7Ci0gICAg
bV9zZXRXaW5kb3dDYWxsYmFja1N0cnVjdC52aXN1YWwgPSB2aXN1YWw7Ci0gICAgbV9zZXRXaW5k
b3dDYWxsYmFja1N0cnVjdC5jb2xvcm1hcCA9IFhDcmVhdGVDb2xvcm1hcChob3N0RGlzcGxheSwg
cm9vdFdpbmRvd0lEKCksIHZpc3VhbCwgQWxsb2NOb25lKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdU
SykKLU5ldHNjYXBlUGx1Z2luWDExOjpOZXRzY2FwZVBsdWdpblgxMShOZXRzY2FwZVBsdWdpbiYg
cGx1Z2luLCBEaXNwbGF5KiBkaXNwbGF5LCB1aW50NjRfdCB3aW5kb3dJRCkKLSAgICA6IG1fcGx1
Z2luKHBsdWdpbikKLSAgICAsIG1fcGx1Z2luRGlzcGxheShkaXNwbGF5KQotewotICAgIC8vIEl0
IHNlZW1zIGZsYXNoIG5lZWRzIHRoZSBzb2NrZXQgdG8gYmUgaW4gdGhlIHNhbWUgcHJvY2VzcywK
LSAgICAvLyBJIGd1ZXNzIGl0IHVzZXMgZ2RrX3dpbmRvd19sb29rdXAoKSwgc28gd2UgY3JlYXRl
IGEgbmV3IHNvY2tldCBoZXJlCi0gICAgLy8gY29udGFpbmluZyBhIHBsdWcgd2l0aCB0aGUgVUkg
cHJvY2VzcyBzb2NrZXQgZW1iZWRkZWQuCi0gICAgbV9wbGF0Zm9ybVBsdWdpbldpZGdldCA9IGd0
a19wbHVnX25ldyhzdGF0aWNfY2FzdDxXaW5kb3c+KHdpbmRvd0lEKSk7Ci0KLSAgICAvLyBIaWRl
IHRoZSBHdGtQbHVnIG9uIGRlbGV0ZS1ldmVudCBzaW5jZSB3ZSBhc3N1bWUgdGhlIHdpZGdldCBp
cyB2YWxpZCB3aGlsZSB0aGUgcGx1Z2luIGlzIGFjdGl2ZS4KLSAgICAvLyBwbGF0Zm9ybURlc3Ry
b3koKSB3aWxsIGJlIGNhbGxlZCBhbnl3YXkgcmlnaHQgYWZ0ZXIgdGhlIGRlbGV0ZS1ldmVudC4K
LSAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxhdGZvcm1QbHVnaW5XaWRnZXQsICJkZWxldGUtZXZl
bnQiLCBHX0NBTExCQUNLKGd0a193aWRnZXRfaGlkZV9vbl9kZWxldGUpLCBudWxscHRyKTsKLQot
ICAgIEd0a1dpZGdldCogc29ja2V0ID0gZ3RrX3NvY2tldF9uZXcoKTsKLSAgICAvLyBEbyBub3Qg
c2hvdyB0aGUgcGx1ZyB3aWRnZXQgdW50aWwgdGhlIHNvY2tldCBpcyBjb25uZWN0ZWQuCi0gICAg
Z19zaWduYWxfY29ubmVjdF9zd2FwcGVkKHNvY2tldCwgInBsdWctYWRkZWQiLCBHX0NBTExCQUNL
KGd0a193aWRnZXRfc2hvdyksIG1fcGxhdGZvcm1QbHVnaW5XaWRnZXQpOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3Qoc29ja2V0LCAicGx1Zy1yZW1vdmVkIiwgR19DQUxMQkFDSyhzb2NrZXRQbHVnUmVt
b3ZlZENhbGxiYWNrKSwgbnVsbHB0cik7Ci0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRB
SU5FUihtX3BsYXRmb3JtUGx1Z2luV2lkZ2V0KSwgc29ja2V0KTsKLSAgICBndGtfd2lkZ2V0X3No
b3coc29ja2V0KTsKLQotICAgIERpc3BsYXkqIGhvc3REaXNwbGF5ID0geDExSG9zdERpc3BsYXko
KTsKLSAgICBtX25wV2luZG93SUQgPSBndGtfc29ja2V0X2dldF9pZChHVEtfU09DS0VUKHNvY2tl
dCkpOwotICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHNvY2tl
dCk7Ci0gICAgbV9zZXRXaW5kb3dDYWxsYmFja1N0cnVjdC50eXBlID0gTlBfU0VUV0lORE9XOwot
ICAgIG1fc2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QuZGlzcGxheSA9IEdES19XSU5ET1dfWERJU1BM
QVkod2luZG93KTsKLSAgICBtX3NldFdpbmRvd0NhbGxiYWNrU3RydWN0LnZpc3VhbCA9IEdES19W
SVNVQUxfWFZJU1VBTChnZGtfd2luZG93X2dldF92aXN1YWwod2luZG93KSk7Ci0gICAgbV9zZXRX
aW5kb3dDYWxsYmFja1N0cnVjdC5kZXB0aCA9IGdka192aXN1YWxfZ2V0X2RlcHRoKGdka193aW5k
b3dfZ2V0X3Zpc3VhbCh3aW5kb3cpKTsKLSAgICBtX3NldFdpbmRvd0NhbGxiYWNrU3RydWN0LmNv
bG9ybWFwID0gWENyZWF0ZUNvbG9ybWFwKGhvc3REaXNwbGF5LCBHREtfUk9PVF9XSU5ET1coKSwg
bV9zZXRXaW5kb3dDYWxsYmFja1N0cnVjdC52aXN1YWwsIEFsbG9jTm9uZSk7Ci0KLSAgICBYRmx1
c2goaG9zdERpc3BsYXkpOwotfQotI2VuZGlmCi0KLU5ldHNjYXBlUGx1Z2luWDExOjp+TmV0c2Nh
cGVQbHVnaW5YMTEoKQotewotICAgIFhGcmVlQ29sb3JtYXAoeDExSG9zdERpc3BsYXkoKSwgbV9z
ZXRXaW5kb3dDYWxsYmFja1N0cnVjdC5jb2xvcm1hcCk7Ci0KLSAgICBtX2RyYXdhYmxlLnJlc2V0
KCk7Ci0KLSNpZiBQTEFURk9STShHVEspCi0gICAgaWYgKG1fcGxhdGZvcm1QbHVnaW5XaWRnZXQp
Ci0gICAgICAgIGd0a193aWRnZXRfZGVzdHJveShtX3BsYXRmb3JtUGx1Z2luV2lkZ2V0KTsKLSNl
bmRpZgotfQotCi1OUFdpbmRvd1R5cGUgTmV0c2NhcGVQbHVnaW5YMTE6OndpbmRvd1R5cGUoKSBj
b25zdAotewotICAgIHJldHVybiBtX3BsdWdpbi5pc1dpbmRvd2VkKCkgPyBOUFdpbmRvd1R5cGVX
aW5kb3cgOiBOUFdpbmRvd1R5cGVEcmF3YWJsZTsKLX0KLQotdm9pZCogTmV0c2NhcGVQbHVnaW5Y
MTE6OndpbmRvdygpIGNvbnN0Ci17Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHJldHVybiBtX3Bs
dWdpbi5pc1dpbmRvd2VkKCkgPyBHSU5UX1RPX1BPSU5URVIobV9ucFdpbmRvd0lEKSA6IG51bGxw
dHI7Ci0jZWxzZQotICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCi19Ci0KLXZvaWQgTmV0c2Nh
cGVQbHVnaW5YMTE6Omdlb21ldHJ5RGlkQ2hhbmdlKCkKLXsKLSAgICBpZiAobV9wbHVnaW4uaXNX
aW5kb3dlZCgpKSB7Ci0gICAgICAgIHVpbnQ2NF90IHdpbmRvd0lEID0gMDsKLSNpZiBQTEFURk9S
TShHVEspCi0gICAgICAgIGlmICghZ3RrX3BsdWdfZ2V0X2VtYmVkZGVkKEdUS19QTFVHKG1fcGxh
dGZvcm1QbHVnaW5XaWRnZXQpKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgd2luZG93
SUQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oR0RLX1dJTkRPV19YSUQoZ3RrX3BsdWdfZ2V0X3Nv
Y2tldF93aW5kb3coR1RLX1BMVUcobV9wbGF0Zm9ybVBsdWdpbldpZGdldCkpKSk7Ci0jZW5kaWYK
LSAgICAgICAgbV9wbHVnaW4uY29udHJvbGxlcigpLT53aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlk
Q2hhbmdlKG1fcGx1Z2luLmZyYW1lUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSwgbV9wbHVnaW4u
Y2xpcFJlY3QoKSwgd2luZG93SUQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9k
cmF3YWJsZS5yZXNldCgpOwotICAgIGlmIChtX3BsdWdpbi5zaXplKCkuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2RyYXdhYmxlID0gWENyZWF0ZVBpeG1hcCh4MTFIb3N0RGlz
cGxheSgpLCByb290V2luZG93SUQoKSwgbV9wbHVnaW4uc2l6ZSgpLndpZHRoKCksIG1fcGx1Z2lu
LnNpemUoKS5oZWlnaHQoKSwgZGlzcGxheURlcHRoKCkpOwotICAgIFhTeW5jKHgxMUhvc3REaXNw
bGF5KCksIGZhbHNlKTsgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0
aGUgRHJhd2FibGUuCi19Ci0KLXZvaWQgTmV0c2NhcGVQbHVnaW5YMTE6OnZpc2liaWxpdHlEaWRD
aGFuZ2UoKQotewotICAgIEFTU0VSVChtX3BsdWdpbi5pc1dpbmRvd2VkKCkpOwotICAgIHVpbnQ2
NF90IHdpbmRvd0lEID0gMDsKLSNpZiBQTEFURk9STShHVEspCi0gICAgaWYgKCFndGtfcGx1Z19n
ZXRfZW1iZWRkZWQoR1RLX1BMVUcobV9wbGF0Zm9ybVBsdWdpbldpZGdldCkpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgd2luZG93SUQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oR0RLX1dJTkRPV19Y
SUQoZ3RrX3BsdWdfZ2V0X3NvY2tldF93aW5kb3coR1RLX1BMVUcobV9wbGF0Zm9ybVBsdWdpbldp
ZGdldCkpKSk7Ci0jZW5kaWYKLSAgICBtX3BsdWdpbi5jb250cm9sbGVyKCktPndpbmRvd2VkUGx1
Z2luVmlzaWJpbGl0eURpZENoYW5nZShtX3BsdWdpbi5pc1Zpc2libGUoKSwgd2luZG93SUQpOwot
ICAgIG1fcGx1Z2luLmNvbnRyb2xsZXIoKS0+d2luZG93ZWRQbHVnaW5HZW9tZXRyeURpZENoYW5n
ZShtX3BsdWdpbi5mcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKCksIG1fcGx1Z2luLmNsaXBS
ZWN0KCksIHdpbmRvd0lEKTsKLX0KLQotdm9pZCBOZXRzY2FwZVBsdWdpblgxMTo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCi17Ci0gICAg
QVNTRVJUKCFtX3BsdWdpbi5pc1dpbmRvd2VkKCkpOwotCi0gICAgaWYgKGNvbnRleHQucGFpbnRp
bmdEaXNhYmxlZCgpIHx8ICFtX2RyYXdhYmxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBYRXZl
bnQgeGV2ZW50OwotICAgIG1lbXNldCgmeGV2ZW50LCAwLCBzaXplb2YoWEV2ZW50KSk7Ci0gICAg
WEdyYXBoaWNzRXhwb3NlRXZlbnQmIGV4cG9zZUV2ZW50ID0geGV2ZW50LnhncmFwaGljc2V4cG9z
ZTsKLSAgICBleHBvc2VFdmVudC50eXBlID0gR3JhcGhpY3NFeHBvc2U7Ci0gICAgZXhwb3NlRXZl
bnQuZGlzcGxheSA9IHgxMUhvc3REaXNwbGF5KCk7Ci0gICAgZXhwb3NlRXZlbnQuZHJhd2FibGUg
PSBtX2RyYXdhYmxlLmdldCgpOwotCi0gICAgSW50UmVjdCBleHBvc2VkUmVjdChkaXJ0eVJlY3Qp
OwotICAgIGV4cG9zZUV2ZW50LnggPSBleHBvc2VkUmVjdC54KCk7Ci0gICAgZXhwb3NlRXZlbnQu
eSA9IGV4cG9zZWRSZWN0LnkoKTsKLQotICAgIC8vIE5vdGU6IGluIHRyYW5zcGFyZW50IG1vZGUg
Rmxhc2ggdGhpbmtzIHdpZHRoIGlzIHRoZSByaWdodCBhbmQgaGVpZ2h0IGlzIHRoZSBib3R0b20u
Ci0gICAgLy8gV2Ugc2hvdWxkIHRha2UgaXQgaW50byBhY2NvdW50IGlmIHdlIHdhbnQgdG8gc3Vw
cG9ydCB0cmFuc3BhcmVuY3kuCi0gICAgZXhwb3NlRXZlbnQud2lkdGggPSBleHBvc2VkUmVjdC53
aWR0aCgpOwotICAgIGV4cG9zZUV2ZW50LmhlaWdodCA9IGV4cG9zZWRSZWN0LmhlaWdodCgpOwot
Ci0gICAgbV9wbHVnaW4uTlBQX0hhbmRsZUV2ZW50KCZ4ZXZlbnQpOwotCi0gICAgaWYgKG1fcGx1
Z2luRGlzcGxheSAhPSB4MTFIb3N0RGlzcGxheSgpKQotICAgICAgICBYU3luYyhtX3BsdWdpbkRp
c3BsYXksIGZhbHNlKTsKLQotI2lmIFBMQVRGT1JNKEdUSykKLSAgICBSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiBkcmF3YWJsZVN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb194bGliX3N1cmZhY2VfY3Jl
YXRlKG1fcGx1Z2luRGlzcGxheSwgbV9kcmF3YWJsZS5nZXQoKSwKLSAgICAgICAgbV9zZXRXaW5k
b3dDYWxsYmFja1N0cnVjdC52aXN1YWwsIG1fcGx1Z2luLnNpemUoKS53aWR0aCgpLCBtX3BsdWdp
bi5zaXplKCkuaGVpZ2h0KCkpKTsKLSAgICBjYWlyb190KiBjciA9IGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCktPmNyKCk7Ci0gICAgY2Fpcm9fc2F2ZShjcik7Ci0KLSAgICBjYWlyb19zZXRfc291
cmNlX3N1cmZhY2UoY3IsIGRyYXdhYmxlU3VyZmFjZS5nZXQoKSwgMCwgMCk7Ci0KLSAgICBjYWly
b19yZWN0YW5nbGUoY3IsIGV4cG9zZWRSZWN0LngoKSwgZXhwb3NlZFJlY3QueSgpLCBleHBvc2Vk
UmVjdC53aWR0aCgpLCBleHBvc2VkUmVjdC5oZWlnaHQoKSk7Ci0gICAgY2Fpcm9fY2xpcChjcik7
Ci0gICAgY2Fpcm9fc2V0X29wZXJhdG9yKGNyLCBDQUlST19PUEVSQVRPUl9TT1VSQ0UpOwotICAg
IGNhaXJvX3BhaW50KGNyKTsKLQotICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwotI2Vsc2UKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotI2VuZGlmCi19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpbml0aWFs
aXplWEV2ZW50KFhFdmVudCYgZXZlbnQpCi17Ci0gICAgbWVtc2V0KCZldmVudCwgMCwgc2l6ZW9m
KFhFdmVudCkpOwotICAgIGV2ZW50Lnhhbnkuc2VyaWFsID0gMDsKLSAgICBldmVudC54YW55LnNl
bmRfZXZlbnQgPSBmYWxzZTsKLSAgICBldmVudC54YW55LmRpc3BsYXkgPSB4MTFIb3N0RGlzcGxh
eSgpOwotICAgIGV2ZW50Lnhhbnkud2luZG93ID0gMDsKLX0KLQotc3RhdGljIGlubGluZSB1aW50
NjRfdCB4VGltZVN0YW1wKFdhbGxUaW1lIHRpbWVzdGFtcCkKLXsKLSAgICByZXR1cm4gdGltZXN0
YW1wLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7Ci19Ci0KLXN0YXRpYyBpbmxp
bmUgdW5zaWduZWQgeEtleU1vZGlmaWVycyhjb25zdCBXZWJFdmVudCYgZXZlbnQpCi17Ci0gICAg
dW5zaWduZWQgeE1vZGlmaWVycyA9IDA7Ci0gICAgaWYgKGV2ZW50LmNvbnRyb2xLZXkoKSkKLSAg
ICAgICAgeE1vZGlmaWVycyB8PSBDb250cm9sTWFzazsKLSAgICBpZiAoZXZlbnQuc2hpZnRLZXko
KSkKLSAgICAgICAgeE1vZGlmaWVycyB8PSBTaGlmdE1hc2s7Ci0gICAgaWYgKGV2ZW50LmFsdEtl
eSgpKQotICAgICAgICB4TW9kaWZpZXJzIHw9IE1vZDFNYXNrOwotICAgIGlmIChldmVudC5tZXRh
S2V5KCkpCi0gICAgICAgIHhNb2RpZmllcnMgfD0gTW9kNE1hc2s7Ci0KLSAgICByZXR1cm4geE1v
ZGlmaWVyczsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFhFdmVudFR5cGUsIHR5cGVuYW1lIFdl
YkV2ZW50VHlwZT4KLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRDb21tb25Nb3VzZUV2ZW50RmllbGRz
KFhFdmVudFR5cGUmIHhFdmVudCwgY29uc3QgV2ViRXZlbnRUeXBlJiB3ZWJFdmVudCwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHBsdWdpbkxvY2F0aW9uKQotewotICAgIHhFdmVudC5yb290ID0g
cm9vdFdpbmRvd0lEKCk7Ci0gICAgeEV2ZW50LnN1YndpbmRvdyA9IDA7Ci0gICAgeEV2ZW50LnRp
bWUgPSB4VGltZVN0YW1wKHdlYkV2ZW50LnRpbWVzdGFtcCgpKTsKLSAgICB4RXZlbnQueCA9IHdl
YkV2ZW50LnBvc2l0aW9uKCkueCgpIC0gcGx1Z2luTG9jYXRpb24ueCgpOwotICAgIHhFdmVudC55
ID0gd2ViRXZlbnQucG9zaXRpb24oKS55KCkgLSBwbHVnaW5Mb2NhdGlvbi55KCk7Ci0gICAgeEV2
ZW50Lnhfcm9vdCA9IHdlYkV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpOwotICAgIHhFdmVudC55
X3Jvb3QgPSB3ZWJFdmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKTsKLSAgICB4RXZlbnQuc3RhdGUg
PSB4S2V5TW9kaWZpZXJzKHdlYkV2ZW50KTsKLSAgICB4RXZlbnQuc2FtZV9zY3JlZW4gPSB0cnVl
OwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0WE1vdGlvbkV2ZW50RmllbGRzKFhFdmVudCYg
eEV2ZW50LCBjb25zdCBXZWJNb3VzZUV2ZW50JiB3ZWJFdmVudCwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBsdWdpbkxvY2F0aW9uKQotewotICAgIFhNb3Rpb25FdmVudCYgeE1vdGlvbiA9IHhF
dmVudC54bW90aW9uOwotICAgIHNldENvbW1vbk1vdXNlRXZlbnRGaWVsZHMoeE1vdGlvbiwgd2Vi
RXZlbnQsIHBsdWdpbkxvY2F0aW9uKTsKLSAgICB4TW90aW9uLnR5cGUgPSBNb3Rpb25Ob3RpZnk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRYQnV0dG9uRXZlbnRGaWVsZHMoWEV2ZW50JiB4
RXZlbnQsIGNvbnN0IFdlYk1vdXNlRXZlbnQmIHdlYkV2ZW50LCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcGx1Z2luTG9jYXRpb24pCi17Ci0gICAgWEJ1dHRvbkV2ZW50JiB4QnV0dG9uID0geEV2
ZW50LnhidXR0b247Ci0gICAgc2V0Q29tbW9uTW91c2VFdmVudEZpZWxkcyh4QnV0dG9uLCB3ZWJF
dmVudCwgcGx1Z2luTG9jYXRpb24pOwotCi0gICAgeEJ1dHRvbi50eXBlID0gKHdlYkV2ZW50LnR5
cGUoKSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IEJ1dHRvblByZXNzIDogQnV0dG9uUmVsZWFz
ZTsKLSAgICBzd2l0Y2ggKHdlYkV2ZW50LmJ1dHRvbigpKSB7Ci0gICAgY2FzZSBXZWJNb3VzZUV2
ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICB4QnV0dG9uLmJ1dHRvbiA9IEJ1dHRvbjE7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOgotICAgICAg
ICB4QnV0dG9uLmJ1dHRvbiA9IEJ1dHRvbjI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2Vi
TW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgIHhCdXR0b24uYnV0dG9uID0gQnV0dG9u
MzsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNl
dFhCdXR0b25FdmVudEZpZWxkc0J5V2ViV2hlZWxFdmVudChYRXZlbnQmIHhFdmVudCwgY29uc3Qg
V2ViV2hlZWxFdmVudCYgd2ViRXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwbHVnaW5M
b2NhdGlvbikKLXsKLSAgICBYQnV0dG9uRXZlbnQmIHhCdXR0b24gPSB4RXZlbnQueGJ1dHRvbjsK
LSAgICBzZXRDb21tb25Nb3VzZUV2ZW50RmllbGRzKHhCdXR0b24sIHdlYkV2ZW50LCBwbHVnaW5M
b2NhdGlvbik7Ci0KLSAgICB4QnV0dG9uLnR5cGUgPSBCdXR0b25QcmVzczsKLSAgICBGbG9hdFNp
emUgdGlja3MgPSB3ZWJFdmVudC53aGVlbFRpY2tzKCk7Ci0gICAgaWYgKHRpY2tzLmhlaWdodCgp
KSB7Ci0gICAgICAgIGlmICh0aWNrcy5oZWlnaHQoKSA+IDApCi0gICAgICAgICAgICB4QnV0dG9u
LmJ1dHRvbiA9IDQ7IC8vIHVwCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHhCdXR0b24uYnV0
dG9uID0gNTsgLy8gZG93bgotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICh0aWNrcy53aWR0aCgp
ID4gMCkKLSAgICAgICAgICAgIHhCdXR0b24uYnV0dG9uID0gNjsgLy8gbGVmdAotICAgICAgICBl
bHNlCi0gICAgICAgICAgICB4QnV0dG9uLmJ1dHRvbiA9IDc7IC8vIHJpZ2h0Ci0gICAgfQotfQot
Ci1zdGF0aWMgaW5saW5lIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRGaWVsZHMoWEV2ZW50JiB4RXZl
bnQsIGNvbnN0IFdlYk1vdXNlRXZlbnQmIHdlYkV2ZW50LCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcGx1Z2luTG9jYXRpb24sIGludCB0eXBlKQotewotICAgIFhDcm9zc2luZ0V2ZW50JiB4Q3Jv
c3NpbmcgPSB4RXZlbnQueGNyb3NzaW5nOwotICAgIHNldENvbW1vbk1vdXNlRXZlbnRGaWVsZHMo
eENyb3NzaW5nLCB3ZWJFdmVudCwgcGx1Z2luTG9jYXRpb24pOwotCi0gICAgeENyb3NzaW5nLnR5
cGUgPSB0eXBlOwotICAgIHhDcm9zc2luZy5tb2RlID0gTm90aWZ5Tm9ybWFsOwotICAgIHhDcm9z
c2luZy5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwotICAgIHhDcm9zc2luZy5mb2N1cyA9IGZh
bHNlOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2luWDExOjpoYW5kbGVNb3VzZUV2ZW50KGNvbnN0
IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQotewotICAgIEFTU0VSVCghbV9wbHVnaW4uaXNXaW5kb3dl
ZCgpKTsKLQotICAgIFhFdmVudCB4RXZlbnQ7Ci0gICAgaW5pdGlhbGl6ZVhFdmVudCh4RXZlbnQp
OwotCi0gICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKLSAgICBjYXNlIFdlYkV2ZW50OjpNb3Vz
ZURvd246Ci0gICAgY2FzZSBXZWJFdmVudDo6TW91c2VVcDoKLSAgICAgICAgc2V0WEJ1dHRvbkV2
ZW50RmllbGRzKHhFdmVudCwgZXZlbnQsIG1fcGx1Z2luLmNvbnZlcnRUb1Jvb3RWaWV3KEludFBv
aW50KCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJFdmVudDo6TW91c2VNb3ZlOgot
ICAgICAgICBzZXRYTW90aW9uRXZlbnRGaWVsZHMoeEV2ZW50LCBldmVudCwgbV9wbHVnaW4uY29u
dmVydFRvUm9vdFZpZXcoSW50UG9pbnQoKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdl
YkV2ZW50OjpNb3VzZUZvcmNlQ2hhbmdlZDoKLSAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZUZvcmNl
RG93bjoKLSAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZUZvcmNlVXA6Ci0gICAgY2FzZSBXZWJFdmVu
dDo6Tm9UeXBlOgotICAgIGNhc2UgV2ViRXZlbnQ6OldoZWVsOgotICAgIGNhc2UgV2ViRXZlbnQ6
OktleURvd246Ci0gICAgY2FzZSBXZWJFdmVudDo6S2V5VXA6Ci0gICAgY2FzZSBXZWJFdmVudDo6
UmF3S2V5RG93bjoKLSAgICBjYXNlIFdlYkV2ZW50OjpDaGFyOgotI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCi0gICAgY2FzZSBXZWJFdmVudDo6VG91Y2hTdGFydDoKLSAgICBjYXNlIFdlYkV2ZW50
OjpUb3VjaE1vdmU6Ci0gICAgY2FzZSBXZWJFdmVudDo6VG91Y2hFbmQ6Ci0gICAgY2FzZSBXZWJF
dmVudDo6VG91Y2hDYW5jZWw6Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LQotICAgIHJldHVybiAhbV9wbHVnaW4uTlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwotfQotCi0v
LyBXZSB1bmRlZmluZSB0aGVzZSBjb25zdGFudHMgaW4gbnBydW50aW1lX2ludGVybmFsLmggdG8g
YXZvaWQgY29sbGlzaW9uCi0vLyB3aXRoIFdlYktpdCBhbmQgcGxhdGZvcm0gaGVhZGVycy4gVmFs
dWVzIGFyZSBkZWZpbmVkIGluIFguaC4KLWNvbnN0IGludCBrS2V5UHJlc3NUeXBlID0gMjsKLWNv
bnN0IGludCBrS2V5UmVsZWFzZVR5cGUgPSAzOwotY29uc3QgaW50IGtGb2N1c0luVHlwZSA9IDk7
Ci1jb25zdCBpbnQga0ZvY3VzT3V0VHlwZSA9IDEwOwotCi1ib29sIE5ldHNjYXBlUGx1Z2luWDEx
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIGV2ZW50KQotewotICAgIEFT
U0VSVCghbV9wbHVnaW4uaXNXaW5kb3dlZCgpKTsKLQotICAgIFhFdmVudCB4RXZlbnQ7Ci0gICAg
aW5pdGlhbGl6ZVhFdmVudCh4RXZlbnQpOwotICAgIHNldFhCdXR0b25FdmVudEZpZWxkc0J5V2Vi
V2hlZWxFdmVudCh4RXZlbnQsIGV2ZW50LCBtX3BsdWdpbi5jb252ZXJ0VG9Sb290VmlldyhJbnRQ
b2ludCgpKSk7Ci0KLSAgICByZXR1cm4gIW1fcGx1Z2luLk5QUF9IYW5kbGVFdmVudCgmeEV2ZW50
KTsKLX0KLQotdm9pZCBOZXRzY2FwZVBsdWdpblgxMTo6c2V0Rm9jdXMoYm9vbCBmb2N1c0luKQot
ewotICAgIEFTU0VSVCghbV9wbHVnaW4uaXNXaW5kb3dlZCgpKTsKLQotICAgIFhFdmVudCB4RXZl
bnQ7Ci0gICAgaW5pdGlhbGl6ZVhFdmVudCh4RXZlbnQpOwotICAgIFhGb2N1c0NoYW5nZUV2ZW50
JiBmb2N1c0V2ZW50ID0geEV2ZW50Lnhmb2N1czsKLSAgICBmb2N1c0V2ZW50LnR5cGUgPSBmb2N1
c0luID8ga0ZvY3VzSW5UeXBlIDoga0ZvY3VzT3V0VHlwZTsKLSAgICBmb2N1c0V2ZW50Lm1vZGUg
PSBOb3RpZnlOb3JtYWw7Ci0gICAgZm9jdXNFdmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25l
OwotCi0gICAgbV9wbHVnaW4uTlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwotfQotCi1ib29sIE5l
dHNjYXBlUGx1Z2luWDExOjpoYW5kbGVNb3VzZUVudGVyRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYgZXZlbnQpCi17Ci0gICAgQVNTRVJUKCFtX3BsdWdpbi5pc1dpbmRvd2VkKCkpOwotCi0gICAg
WEV2ZW50IHhFdmVudDsKLSAgICBpbml0aWFsaXplWEV2ZW50KHhFdmVudCk7Ci0gICAgc2V0WENy
b3NzaW5nRXZlbnRGaWVsZHMoeEV2ZW50LCBldmVudCwgbV9wbHVnaW4uY29udmVydFRvUm9vdFZp
ZXcoSW50UG9pbnQoKSksIEVudGVyTm90aWZ5KTsKLQotICAgIHJldHVybiAhbV9wbHVnaW4uTlBQ
X0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwotfQotCi1ib29sIE5ldHNjYXBlUGx1Z2luWDExOjpoYW5k
bGVNb3VzZUxlYXZlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCi17Ci0gICAgQVNT
RVJUKCFtX3BsdWdpbi5pc1dpbmRvd2VkKCkpOwotCi0gICAgWEV2ZW50IHhFdmVudDsKLSAgICBp
bml0aWFsaXplWEV2ZW50KHhFdmVudCk7Ci0gICAgc2V0WENyb3NzaW5nRXZlbnRGaWVsZHMoeEV2
ZW50LCBldmVudCwgbV9wbHVnaW4uY29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoKSksIExlYXZl
Tm90aWZ5KTsKLQotICAgIHJldHVybiAhbV9wbHVnaW4uTlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQp
OwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0WEtleUV2ZW50RmllbGRzKFhFdmVudCYgeEV2
ZW50LCBjb25zdCBXZWJLZXlib2FyZEV2ZW50JiB3ZWJFdmVudCkKLXsKLSAgICB4RXZlbnQueGFu
eS50eXBlID0gKHdlYkV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6S2V5RG93bikgPyBrS2V5UHJl
c3NUeXBlIDoga0tleVJlbGVhc2VUeXBlOwotICAgIFhLZXlFdmVudCYgeEtleSA9IHhFdmVudC54
a2V5OwotICAgIHhLZXkucm9vdCA9IHJvb3RXaW5kb3dJRCgpOwotICAgIHhLZXkuc3Vid2luZG93
ID0gMDsKLSAgICB4S2V5LnRpbWUgPSB4VGltZVN0YW1wKHdlYkV2ZW50LnRpbWVzdGFtcCgpKTsK
LSAgICB4S2V5LnN0YXRlID0geEtleU1vZGlmaWVycyh3ZWJFdmVudCk7Ci0gICAgeEtleS5rZXlj
b2RlID0gd2ViRXZlbnQubmF0aXZlVmlydHVhbEtleUNvZGUoKTsKLQotICAgIHhLZXkuc2FtZV9z
Y3JlZW4gPSB0cnVlOwotCi0gICAgLy8gS2V5IGV2ZW50cyBwcm9wYWdhdGVkIHRvIHRoZSBwbHVn
aW4gZG9lcyBub3QgbmVlZCB0byBoYXZlIHBvc2l0aW9uLgotICAgIC8vIHNvdXJjZTogaHR0cHM6
Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vTlBFdmVudAotICAgIHhLZXkueCA9IDA7Ci0gICAg
eEtleS55ID0gMDsKLSAgICB4S2V5Lnhfcm9vdCA9IDA7Ci0gICAgeEtleS55X3Jvb3QgPSAwOwot
fQotCi1ib29sIE5ldHNjYXBlUGx1Z2luWDExOjpoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IFdl
YktleWJvYXJkRXZlbnQmIGV2ZW50KQotewotICAgIEFTU0VSVCghbV9wbHVnaW4uaXNXaW5kb3dl
ZCgpKTsKLSAgICAvLyBXZSBkb24ndCBnZW5lcmF0ZSBvdGhlciB0eXBlcyBvZiBrZXlib2FyZCBl
dmVudHMgdmlhIFdlYkV2ZW50RmFjdG9yeS4KLSAgICBBU1NFUlQoZXZlbnQudHlwZSgpID09IFdl
YkV2ZW50OjpLZXlEb3duIHx8IGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6S2V5VXApOwotCi0g
ICAgWEV2ZW50IHhFdmVudDsKLSAgICBpbml0aWFsaXplWEV2ZW50KHhFdmVudCk7Ci0gICAgc2V0
WEtleUV2ZW50RmllbGRzKHhFdmVudCwgZXZlbnQpOwotCi0gICAgcmV0dXJuICFtX3BsdWdpbi5O
UFBfSGFuZGxlRXZlbnQoJnhFdmVudCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYgLy8gUExBVEZPUk0oWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9O
ZXRzY2FwZVBsdWdpblgxMS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFmOWZkODdmYTNhMy4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5oCisrKyAvZGV2L251
bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBv
ZiBTemVnZWQKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBOZXRzY2FwZVBsdWdpblgxMV9oCi0jZGVmaW5l
IE5ldHNjYXBlUGx1Z2luWDExX2gKLQotI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCi0KLSNpbmNsdWRlICJOZXRzY2FwZVBsdWdpblVuaXguaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL1hVbmlxdWVSZXNvdXJjZS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgTmV0c2NhcGVQbHVnaW47Ci0KLWNsYXNzIE5ldHNjYXBlUGx1Z2luWDExIGZpbmFsIDog
cHVibGljIE5ldHNjYXBlUGx1Z2luVW5peCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXRzY2FwZVBsdWdpblgxMT4g
Y3JlYXRlKE5ldHNjYXBlUGx1Z2luJik7Ci0gICAgTmV0c2NhcGVQbHVnaW5YMTEoTmV0c2NhcGVQ
bHVnaW4mLCBEaXNwbGF5Kik7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIE5ldHNjYXBlUGx1Z2lu
WDExKE5ldHNjYXBlUGx1Z2luJiwgRGlzcGxheSosIHVpbnQ2NF90IHdpbmRvd0lEKTsKLSNlbmRp
ZgotICAgIHZpcnR1YWwgfk5ldHNjYXBlUGx1Z2luWDExKCk7Ci0KLXByaXZhdGU6Ci0gICAgTlBX
aW5kb3dUeXBlIHdpbmRvd1R5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkKiB3aW5kb3co
KSBjb25zdCBvdmVycmlkZTsKLSAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3aW5kb3dT
eXN0ZW1JbmZvKCkgb3ZlcnJpZGUgeyByZXR1cm4gJm1fc2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3Q7
IH0KLSAgICB2b2lkIGdlb21ldHJ5RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB2aXNp
YmlsaXR5RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKSBvdmVycmlkZTsKLSAgICBi
b29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOwotICAg
IGJvb2wgaGFuZGxlTW91c2VFbnRlckV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKSBvdmVycmlk
ZTsKLSAgICBib29sIGhhbmRsZU1vdXNlTGVhdmVFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJk
RXZlbnQmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEZvY3VzKGJvb2wpIG92ZXJyaWRlOwotCi0g
ICAgTmV0c2NhcGVQbHVnaW4mIG1fcGx1Z2luOwotICAgIERpc3BsYXkqIG1fcGx1Z2luRGlzcGxh
eSB7IG51bGxwdHIgfTsKLSAgICBXZWJDb3JlOjpYVW5pcXVlUGl4bWFwIG1fZHJhd2FibGU7Ci0g
ICAgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCBtX3NldFdpbmRvd0NhbGxiYWNrU3RydWN0Owot
I2lmIFBMQVRGT1JNKEdUSykKLSAgICB1bnNpZ25lZCBsb25nIG1fbnBXaW5kb3dJRCB7IDAgfTsK
LSAgICBHdGtXaWRnZXQqIG1fcGxhdGZvcm1QbHVnaW5XaWRnZXQgeyBudWxscHRyIH07Ci0jZW5k
aWYKLX07Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFBMQVRGT1JNKFgxMSkg
JiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0KLSNlbmRpZiAvLyBOZXRzY2FwZVBsdWdp
blgxMV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5D
b250cm9sbGVyLmgKaW5kZXggNjMxMzZiZjFhYTI5Li40MmEzYjc4YTk2NDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKQEAg
LTE0NCwxMyArMTQ0LDYgQEAgcHVibGljOgogICAgIC8vIERlY3JlbWVudHMgYSBjb3VudGVyIHRo
YXQsIHdoZW4gaXQgcmVhY2hlcyAwLCBzdG9wcyBwcmV2ZW50aW5nIHRoZSBwbHVnLWluIGZyb20g
YmVpbmcgZGVzdHJveWVkLgogICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3RQbHVnaW5Gcm9tRGVz
dHJ1Y3Rpb24oKSA9IDA7CiAKLSNpZiBQTEFURk9STShYMTEpICYmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQotICAgIC8vIENyZWF0ZSBhIHBsdWdpbiBjb250YWluZXIgZm9yIHdpbmRvd2Vk
IHBsdWdpbnMKLSAgICB2aXJ0dWFsIHVpbnQ2NF90IGNyZWF0ZVBsdWdpbkNvbnRhaW5lcigpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgd2luZG93ZWRQbHVnaW5HZW9tZXRyeURpZENoYW5nZShjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dl
ZFBsdWdpblZpc2liaWxpdHlEaWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90IHdpbmRv
d0lEKSA9IDA7Ci0jZW5kaWYKLQogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBhIHBsdWctaW4gaW5z
dGFuY2UgaXMgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCBlaXRoZXIgc3luY2hyb25vdXNseSBv
ciBhc3luY2hyb25vdXNseS4KICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5pdGlhbGl6ZVBsdWdpbigp
ID0gMDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKaW5kZXggYTIwMzg0ZGRjZjUzLi5hMjNjMjE3NDFkMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC03MywxMCArNzMs
NiBAQAogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCi0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXkuaD4KLSNl
bmRpZgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE2ODIsMjYgKzE2NzgsNiBAQCB2b2lkIFBsdWdpblZpZXc6
OmRpZEZhaWxMb2FkKFdlYkZyYW1lKiB3ZWJGcmFtZSwgYm9vbCB3YXNDYW5jZWxsZWQpCiAgICAg
bV9wbHVnaW4tPmZyYW1lRGlkRmFpbChyZXF1ZXN0LT5yZXF1ZXN0SUQoKSwgd2FzQ2FuY2VsbGVk
KTsKIH0KIAotI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
Ci11aW50NjRfdCBQbHVnaW5WaWV3OjpjcmVhdGVQbHVnaW5Db250YWluZXIoKQotewotICAgIHVp
bnQ2NF90IHdpbmRvd0lEID0gMDsKLSAgICBpZiAoUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExKQotICAgICAgICBtX3dl
YlBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZVBsdWdpbkNvbnRh
aW5lcigpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVQbHVnaW5Db250YWluZXI6OlJl
cGx5KHdpbmRvd0lEKSk7Ci0gICAgcmV0dXJuIHdpbmRvd0lEOwotfQotCi12b2lkIFBsdWdpblZp
ZXc6OndpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgZnJhbWVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCwgdWludDY0X3Qg
d2luZG93SUQpCi17Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OldpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2UoZnJhbWVSZWN0LCBjbGlwUmVjdCwgd2lu
ZG93SUQpKTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3Ojp3aW5kb3dlZFBsdWdpblZpc2liaWxpdHlE
aWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90IHdpbmRvd0lEKQotewotICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXaW5kb3dlZFBsdWdpblZpc2liaWxp
dHlEaWRDaGFuZ2UoaXNWaXNpYmxlLCB3aW5kb3dJRCkpOwotfQotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShDT0NPQSkKIHN0YXRpYyBib29sIGlzQWxtb3N0U29saWRDb2xvcihCaXRtYXBJbWFnZSog
Yml0bWFwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5oCmluZGV4IGFjOTQ4MDRkZmNhNC4uYTY1MDliNGY4YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0yMjYsMTEgKzIyNiw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJs
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rp
b24oKSBvdmVycmlkZTsKICAgICB2b2lkIHVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigp
IG92ZXJyaWRlOwotI2lmIFBMQVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCi0gICAgdWludDY0X3QgY3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB3aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGZyYW1lUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QsIHVpbnQ2NF90
IHdpbmRvd0lEKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbmRvd2VkUGx1Z2luVmlzaWJpbGl0eURp
ZENoYW5nZShib29sIGlzVmlzaWJsZSwgdWludDY0X3Qgd2luZG93SUQpIG92ZXJyaWRlOwotI2Vu
ZGlmCiAKICAgICB2b2lkIGRpZEluaXRpYWxpemVQbHVnaW4oKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UK
aW5kZXggMjZjZjU2ZWU0NjE5Li4wODdmNDU4YjhmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBA
IC0xODEsNiArMTgxLDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQgUFJJVkFURSAke0VOQUIKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TVFJFQU0gUFJJVkFURSAke0VOQUJMRV9F
WFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSBQ
UklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX09GRlND
UkVFTl9DQU5WQVMgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQpAQCAt
MTkzLDEwICsxOTQsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
U0hBUkVBQkxFX1JFU09VUkNFIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfUlRDIFBSSVZBVEUgJHtFTkFCTEVfRVhQ
RVJJTUVOVEFMX0ZFQVRVUkVTfSkKIAotaWYgKFVTRV9HVEs0KQotV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgUFJJVkFURSBPRkYpCi1l
bmRpZiAoKQotCiBpbmNsdWRlKEdTdHJlYW1lckRlcGVuZGVuY2llcykKIAogIyBGaW5hbGl6ZSB0
aGUgdmFsdWUgZm9yIGFsbCBvcHRpb25zLiBEbyBub3QgYXR0ZW1wdCB0byB1c2UgYW4gb3B0aW9u
IGJlZm9yZQpAQCAtMjA3LDE2ICsyMDQsNyBAQCBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChXVEZf
UExBVEZPUk1fUVVBUlRaICR7RU5BQkxFX1FVQVJUWl9UQVJHRVR9KQogU0VUX0FORF9FWFBPU0Vf
VE9fQlVJTEQoV1RGX1BMQVRGT1JNX1gxMSAke0VOQUJMRV9YMTFfVEFSR0VUfSkKIFNFVF9BTkRf
RVhQT1NFX1RPX0JVSUxEKFdURl9QTEFURk9STV9XQVlMQU5EICR7RU5BQkxFX1dBWUxBTkRfVEFS
R0VUfSkKIAotaWYgKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgICMgTU9aX1gxMSBh
bmQgWFBfVU5JWCBhcmUgcmVxdWlyZWQgYnkgbnBhcGkuaC4gVGhlaXIgdmFsdWUgaXMgbm90IGNo
ZWNrZWQ7Ci0gICAgIyBvbmx5IHRoZWlyIGRlZmluZWRuZXNzIGlzLiBUaGV5IHNob3VsZCBvbmx5
IGJlIGRlZmluZWQgaW4gdGhlIHRydWUgY2FzZS4KLSAgICBpZiAoRU5BQkxFX1gxMV9UQVJHRVQp
Ci0gICAgICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKE1PWl9YMTEgMSkKLSAgICBlbmRpZiAo
KQotICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFhQX1VOSVggMSkKLWVuZGlmICgpCi0KLVNF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKEVOQUJMRV9QTFVHSU5fUFJPQ0VTUyAke0VOQUJMRV9ORVRT
Q0FQRV9QTFVHSU5fQVBJfSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKEVOQUJMRV9QTFVHSU5f
UFJPQ0VTUyBGQUxTRSkKIAogYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfR1RLX189MSkKIGFk
ZF9kZWZpbml0aW9ucygtREdFVFRFWFRfUEFDS0FHRT0iV2ViS2l0MkdUSy0ke1dFQktJVEdUS19B
UElfVkVSU0lPTn0iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGFlZWFjYmY1ODQ2NS4uNDJjN2VlOTBhZmU3IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDgt
MTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHVEtdW1dQRV0gUmVtb3ZlIHN1cHBvcnQgZm9yIE5QQVBJIHBsdWdpbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTUwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0
aW5ncy5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0U2V0dGluZ3MpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAg
ICAgIChiZWZvcmVBbGwpOgorCiAyMDIwLTA4LTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBhayBTS10gRW5hYmxlIEdOT01FIGtleXJp
bmcgc3VwcG9ydCBpbiBzdWJ2ZXJzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9QbGF0Zm9ybUdUSy5j
bWFrZSBiL1Rvb2xzL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGU5YWRlN2E2OTlhNi4uMTE1NmEz
MzYyMWQzIDEwMDY0NAotLS0gYS9Ub29scy9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9Q
bGF0Zm9ybUdUSy5jbWFrZQpAQCAtNSwxMCArNSw2IEBAIGlmIChERVZFTE9QRVJfTU9ERSkKICAg
ICBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShUZXN0V2Vi
S2l0QVBJL2dsaWIpCiAgICAgZW5kaWYgKCkKLQotICAgIGlmIChFTkFCTEVfTkVUU0NBUEVfUExV
R0lOX0FQSSkKLSAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShEdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4pCi0gICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChFTkFCTEVfTUlOSUJS
T1dTRVIpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDMxMjcwYjI2MjVhYi4uNjVmOTRlNzg3
ZDczIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYktpdFNldHRpbmdzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcApAQCAtODEsMTEgKzgxLDYgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQogICAgIHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcoc2V0dGluZ3MsIFRSVUUpOwogICAg
IGdfYXNzZXJ0X3RydWUod2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfZnJhbWVfZmxhdHRlbmlu
ZyhzZXR0aW5ncykpOwogCi0gICAgLy8gUGx1Z2lucyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0Lgot
ICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGx1Z2lucyhzZXR0
aW5ncykpOwotICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3BsdWdpbnMoc2V0dGluZ3Ms
IEZBTFNFKTsKLSAgICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9w
bHVnaW5zKHNldHRpbmdzKSk7Ci0KICAgICAvLyBKYXZhIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4K
ICAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2phdmEoc2V0dGlu
Z3MpKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZhKHNldHRpbmdzLCBGQUxT
RSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYktpdFdlYkNvbnRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBiMzQzNWE0NzA2ZDAuLmIwODJjNWJi
NmJhYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC03Niw4NCArNzYsNiBAQCBzdGF0
aWMgdm9pZCB0ZXN0V2ViQ29udGV4dEVwaGVtZXJhbChUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVy
KQogICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dlYl9jb250ZXh0X2lzX2VwaGVtZXJhbChjb250
ZXh0LmdldCgpKSk7CiB9CiAKLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLWNsYXNz
IFBsdWdpbnNUZXN0OiBwdWJsaWMgVGVzdCB7Ci1wdWJsaWM6Ci0gICAgTUFLRV9HTElCX1RFU1Rf
RklYVFVSRShQbHVnaW5zVGVzdCk7Ci0KLSAgICBQbHVnaW5zVGVzdCgpCi0gICAgICAgIDogbV9t
YWluTG9vcChnX21haW5fbG9vcF9uZXcobnVsbHB0ciwgVFJVRSkpCi0gICAgICAgICwgbV9wbHVn
aW5zKG51bGxwdHIpCi0gICAgewotICAgICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2FkZGl0
aW9uYWxfcGx1Z2luc19kaXJlY3RvcnkobV93ZWJDb250ZXh0LmdldCgpLCBXRUJLSVRfVEVTVF9Q
TFVHSU5fRElSKTsKLSAgICB9Ci0KLSAgICB+UGx1Z2luc1Rlc3QoKQotICAgIHsKLSAgICAgICAg
Z19tYWluX2xvb3BfdW5yZWYobV9tYWluTG9vcCk7Ci0gICAgICAgIGdfbGlzdF9mcmVlX2Z1bGwo
bV9wbHVnaW5zLCBnX29iamVjdF91bnJlZik7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgZ2V0
UGx1Z2luc0FzeW5jUmVhZHlDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IFBsdWdpbnNUZXN0KiB0ZXN0KQotICAgIHsKLSAgICAgICAgdGVzdC0+bV9wbHVnaW5zID0gd2Vi
a2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zX2ZpbmlzaCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0
KCksIHJlc3VsdCwgbnVsbHB0cik7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9t
YWluTG9vcCk7Ci0gICAgfQotCi0gICAgR0xpc3QqIGdldFBsdWdpbnMoKQotICAgIHsKLSAgICAg
ICAgZ19saXN0X2ZyZWVfZnVsbChtX3BsdWdpbnMsIGdfb2JqZWN0X3VucmVmKTsKLSAgICAgICAg
d2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zKG1fd2ViQ29udGV4dC5nZXQoKSwgbnVsbHB0
ciwgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPihnZXRQbHVnaW5zQXN5bmNS
ZWFkeUNhbGxiYWNrKSwgdGhpcyk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29w
KTsKLSAgICAgICAgcmV0dXJuIG1fcGx1Z2luczsKLSAgICB9Ci0KLSAgICBHTWFpbkxvb3AqIG1f
bWFpbkxvb3A7Ci0gICAgR0xpc3QqIG1fcGx1Z2luczsKLX07Ci0KLXN0YXRpYyB2b2lkIHRlc3RX
ZWJDb250ZXh0R2V0UGx1Z2lucyhQbHVnaW5zVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKLXsK
LSAgICBHTGlzdCogcGx1Z2lucyA9IHRlc3QtPmdldFBsdWdpbnMoKTsKLSAgICBnX2Fzc2VydF9u
b25udWxsKHBsdWdpbnMpOwotCi0gICAgR1JlZlB0cjxXZWJLaXRQbHVnaW4+IHRlc3RQbHVnaW47
Ci0gICAgZm9yIChHTGlzdCogaXRlbSA9IHBsdWdpbnM7IGl0ZW07IGl0ZW0gPSBnX2xpc3RfbmV4
dChpdGVtKSkgewotICAgICAgICBXZWJLaXRQbHVnaW4qIHBsdWdpbiA9IFdFQktJVF9QTFVHSU4o
aXRlbS0+ZGF0YSk7Ci0gICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0
RmluaXNoZXMoR19PQkpFQ1QocGx1Z2luKSk7Ci0gICAgICAgIGlmICghZ19zdHJjbXAwKHdlYmtp
dF9wbHVnaW5fZ2V0X25hbWUocGx1Z2luKSwgIldlYktpdCBUZXN0IFBsdWdJbiIpKSB7Ci0gICAg
ICAgICAgICB0ZXN0UGx1Z2luID0gcGx1Z2luOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfSVNfUExVR0lOKHRlc3RQbHVnaW4u
Z2V0KCkpKTsKLQotICAgIGNoYXIgbm9ybWFsaXplZFBhdGhbUEFUSF9NQVhdOwotICAgIGdfYXNz
ZXJ0X25vbm51bGwocmVhbHBhdGgoV0VCS0lUX1RFU1RfUExVR0lOX0RJUiwgbm9ybWFsaXplZFBh
dGgpKTsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IHBsdWdpblBhdGgoZ19idWlsZF9maWxlbmFtZShu
b3JtYWxpemVkUGF0aCwgImxpYlRlc3ROZXRzY2FwZVBsdWdJbi5zbyIsIG51bGxwdHIpKTsKLSAg
ICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3BsdWdpbl9nZXRfcGF0aCh0ZXN0UGx1Z2luLmdldCgp
KSwgPT0sIHBsdWdpblBhdGguZ2V0KCkpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfcGx1
Z2luX2dldF9kZXNjcmlwdGlvbih0ZXN0UGx1Z2luLmdldCgpKSwgPT0sICJTaW1wbGUgTmV0c2Nh
cGXCriBwbHVnLWluIHRoYXQgaGFuZGxlcyB0ZXN0IGNvbnRlbnQgZm9yIFdlYktpdCIpOwotICAg
IEdMaXN0KiBtaW1lSW5mb0xpc3QgPSB3ZWJraXRfcGx1Z2luX2dldF9taW1lX2luZm9fbGlzdCh0
ZXN0UGx1Z2luLmdldCgpKTsKLSAgICBnX2Fzc2VydF9ub25udWxsKG1pbWVJbmZvTGlzdCk7Ci0g
ICAgZ19hc3NlcnRfY21wdWludChnX2xpc3RfbGVuZ3RoKG1pbWVJbmZvTGlzdCksID09LCAyKTsK
LQotICAgIFdlYktpdE1pbWVJbmZvKiBtaW1lSW5mbyA9IHN0YXRpY19jYXN0PFdlYktpdE1pbWVJ
bmZvKj4obWltZUluZm9MaXN0LT5kYXRhKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X21p
bWVfaW5mb19nZXRfbWltZV90eXBlKG1pbWVJbmZvKSwgPT0sICJpbWFnZS9wbmciKTsKLSAgICBn
X2Fzc2VydF9jbXBzdHIod2Via2l0X21pbWVfaW5mb19nZXRfZGVzY3JpcHRpb24obWltZUluZm8p
LCA9PSwgInBuZyBpbWFnZSIpOwotICAgIGNvbnN0IGdjaGFyKiBjb25zdCogZXh0ZW5zaW9ucyA9
IHdlYmtpdF9taW1lX2luZm9fZ2V0X2V4dGVuc2lvbnMobWltZUluZm8pOwotICAgIGdfYXNzZXJ0
X25vbm51bGwoZXh0ZW5zaW9ucyk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKGV4dGVuc2lvbnNbMF0s
ID09LCAicG5nIik7Ci0KLSAgICBtaW1lSW5mb0xpc3QgPSBnX2xpc3RfbmV4dChtaW1lSW5mb0xp
c3QpOwotICAgIG1pbWVJbmZvID0gc3RhdGljX2Nhc3Q8V2ViS2l0TWltZUluZm8qPihtaW1lSW5m
b0xpc3QtPmRhdGEpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfbWltZV9pbmZvX2dldF9t
aW1lX3R5cGUobWltZUluZm8pLCA9PSwgImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2Nh
cGUiKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X21pbWVfaW5mb19nZXRfZGVzY3JpcHRp
b24obWltZUluZm8pLCA9PSwgInRlc3QgbmV0c2NhcGUgY29udGVudCIpOwotICAgIGV4dGVuc2lv
bnMgPSB3ZWJraXRfbWltZV9pbmZvX2dldF9leHRlbnNpb25zKG1pbWVJbmZvKTsKLSAgICBnX2Fz
c2VydF9ub25udWxsKGV4dGVuc2lvbnMpOwotICAgIGdfYXNzZXJ0X2NtcHN0cihleHRlbnNpb25z
WzBdLCA9PSwgInRlc3RuZXRzY2FwZSIpOwotfQotI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQotCiBzdGF0aWMgY29uc3QgY2hhcioga0JhckhUTUwgPSAiPGh0bWw+PGJvZHk+
QmFyPC9ib2R5PjwvaHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIGtFY2hvSFRNTEZvcm1hdCA9
ICI8aHRtbD48Ym9keT4lczwvYm9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBlcnJv
ckRvbWFpbiA9ICJ0ZXN0IjsKQEAgLTgzNCw5ICs3NTYsNiBAQCB2b2lkIGJlZm9yZUFsbCgpCiAK
ICAgICBUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAiZGVmYXVsdC1jb250ZXh0IiwgdGVz
dFdlYkNvbnRleHREZWZhdWx0KTsKICAgICBUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAi
ZXBoZW1lcmFsIiwgdGVzdFdlYkNvbnRleHRFcGhlbWVyYWwpOwotI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotICAgIFBsdWdpbnNUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAi
Z2V0LXBsdWdpbnMiLCB0ZXN0V2ViQ29udGV4dEdldFBsdWdpbnMpOwotI2VuZGlmCiAgICAgVVJJ
U2NoZW1lVGVzdDo6YWRkKCJXZWJLaXRXZWJDb250ZXh0IiwgInVyaS1zY2hlbWUiLCB0ZXN0V2Vi
Q29udGV4dFVSSVNjaGVtZSk7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCBzcGVsbGNoZWNrZXIg
aW4gV1BFLgogI2lmIFBMQVRGT1JNKEdUSykK
</data>
<flag name="review"
          id="421974"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>