<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>482819</bug_id>
          
          <creation_ts>2024-03-08 06:21:21 +0000</creation_ts>
          <short_desc>kwalletd6 sometimes crashed in QCA::PrivateKey::deriveKey when starting Proton VPN GUI or after starting apps after a system restart</short_desc>
          <delta_ts>2026-08-03 19:29:45 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Frameworks and Libraries</classification>
          <product>qca</product>
          <component>general</component>
          <version>2.3.8</version>
          <rep_platform>Fedora RPMs</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=2270016</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>qt6</keywords>
          <priority>NOR</priority>
          <bug_severity>crash</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Fagnani">matt.fagnani</reporter>
          <assigned_to name="Unassigned bugs">unassigned-bugs-null</assigned_to>
          <cc>aacid</cc>
    
    <cc>bradh</cc>
    
    <cc>fabian</cc>
    
    <cc>justin</cc>
    
    <cc>kdedev</cc>
    
    <cc>kdelibs-bugs-null</cc>
    
    <cc>pollux66</cc>
    
    <cc>zawertun</cc>
          
          <cf_commitlink>https://invent.kde.org/libraries/qca/-/commit/a818965a3e67f1212ee5fed1d70a9a8b4ced8dcc</cf_commitlink>
          <cf_versionfixedin>2.3.11</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2296942</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-08 06:21:21 +0000</bug_when>
    <thetext>SUMMARY

kwalletd6 sometimes crashed in QCA::PrivateKey::deriveKey when starting Proton VPN GUI. Crashes with the same trace happened three times when starting Proton VPN each of which was the first time I ran it in a Plasma 6.0.1 session in a Fedora 40 KDE Plasma installation.

Core was generated by `/usr/bin/kwalletd6 --pam-login 13 14&apos;.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f0fa37491dc in QCA::PrivateKey::deriveKey (this=this@entry=0x7ffe71c73640, theirs=...)
    at /usr/src/debug/qca-2.3.8-1.fc40.x86_64/src/qca_publickey.cpp:1030
1030        return static_cast&lt;PKeyContext *&gt;(context())-&gt;key()-&gt;deriveKey(*(theirContext-&gt;key()));
[Current thread is 1 (Thread 0x7f0fa37c79c0 (LWP 9448))]

(gdb) bt
#0  0x00007f0fa37491dc in QCA::PrivateKey::deriveKey (this=this@entry=0x7ffe71c73640, theirs=...)
    at /usr/src/debug/qca-2.3.8-1.fc40.x86_64/src/qca_publickey.cpp:1030
#1  0x000055f537f92992 in KWalletFreedesktopService::createSessionAlgorithmDhAes (this=0x7f0f8800a320, clientKey=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:424
#2  KWalletFreedesktopService::OpenSession
    (this=0x7f0f8800a320, algorithm=&lt;optimized out&gt;, input=&lt;optimized out&gt;, result=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:266
#3  0x000055f537fb7f43 in KWalletFreedesktopServiceAdaptor::OpenSession
    (this=0x55f539ee3fe0, algorithm=&lt;optimized out&gt;, input=&lt;optimized out&gt;, result=&lt;optimized out&gt;)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/kwalletfreedesktopserviceadaptor.cpp:63
#4  KWalletFreedesktopServiceAdaptor::qt_static_metacall
    (_o=0x55f539ee3fe0, _c=&lt;optimized out&gt;, _id=&lt;optimized out&gt;, _a=0x7ffe71c73978)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/moc_kwalletfreedesktopserviceadaptor.cpp:410
#5  0x000055f537fb8254 in KWalletFreedesktopServiceAdaptor::qt_metacall
    (this=0x55f539ee3fe0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffe71c73978)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/moc_kwalletfreedesktopserviceadaptor.cpp:489
#6  0x00007f0fa2a7bb11 in QDBusConnectionPrivate::deliverCall
    (this=this@entry=0x7f0f88001690, object=object@entry=0x55f539ee3fe0, msg=..., metaTypes=..., slotIdx=11)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/dbus/qdbusintegrator.cpp:977
#7  0x00007f0fa2a7f675 in QDBusConnectionPrivate::activateCall
    (this=this@entry=0x7f0f88001690, object=0x55f539ee3fe0, flags=flags@entry=273, msg=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/dbus/qdbusintegrator.cpp:879
#8  0x00007f0fa2a802c6 in QDBusConnectionPrivate::activateCall
    (this=0x7f0f88001690, object=&lt;optimized out&gt;, flags=273, msg=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/dbus/qdbusintegrator.cpp:825
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--c
#9  QDBusConnectionPrivate::activateObject (this=0x7f0f88001690, node=..., msg=..., pathStartPos=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/dbus/qdbusintegrator.cpp:1460
#10 0x00007f0fa2a8295a in QDBusActivateObjectEvent::placeMetaCall (this=0x7f0f8800adc0)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/dbus/qdbusintegrator.cpp:1580
#11 0x00007f0fa19e25a5 in QObject::event (this=0x7f0f8800a320, e=0x7f0f8800adc0)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qobject.cpp:1437
#12 0x00007f0fa2d87f68 in QApplicationPrivate::notify_helper
    (this=&lt;optimized out&gt;, receiver=0x7f0f8800a320, e=0x7f0f8800adc0)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3296
#13 0x00007f0fa198f218 in QCoreApplication::notifyInternal2 (receiver=0x7f0f8800a320, event=0x7f0f8800adc0)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#14 0x00007f0fa198f42d in QCoreApplication::sendEvent (receiver=&lt;optimized out&gt;, event=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1539
#15 0x00007f0fa1993147 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55f539b2d390)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1901
#16 0x00007f0fa199340d in QCoreApplication::sendPostedEvents (receiver=&lt;optimized out&gt;, event_type=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1760
#17 0x00007f0fa1c6751f in postEventSourceDispatch (s=0x55f539b2f450)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#18 0x00007f0fa0ed626c in g_main_dispatch (context=0x7f0f88000f00) at ../glib/gmain.c:3344
#19 g_main_context_dispatch_unlocked (context=0x7f0f88000f00) at ../glib/gmain.c:4152
#20 0x00007f0fa0f372a8 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7f0f88000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at ../glib/gmain.c:4217
#21 0x00007f0fa0ed76e3 in g_main_context_iteration (context=0x7f0f88000f00, may_block=1) at ../glib/gmain.c:4282
#22 0x00007f0fa1c66de3 in QEventDispatcherGlib::processEvents (this=0x55f539b470d0, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#23 0x00007f0fa199c053 in QEventLoop::exec (this=this@entry=0x7ffe71c74250, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/global/qflags.h:34
#24 0x00007f0fa1997ffc in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/corelib/global/qflags.h:74
#25 0x00007f0fa21d37cd in QGuiApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1925
#26 0x00007f0fa2d87ed9 in QApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-1.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2574
#27 0x000055f537f78d95 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/main.cpp:221

Proton VPN GUI crashed with the following trace after the kwalletd6 crash.

Mar 07 23:34:49 plasmashell[11327]: Traceback (most recent call last):
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/secretstorage/util.py&quot;, line 48, in send_and_get_reply
Mar 07 23:34:49 plasmashell[11327]:     raise DBusErrorResponse(resp_msg)
Mar 07 23:34:49 plasmashell[11327]: jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.NoReply] (&apos;Remote peer disconnected&apos;,)
Mar 07 23:34:49 plasmashell[11327]: The above exception was the direct cause of the following exception:
Mar 07 23:34:49 plasmashell[11327]: Traceback (most recent call last):
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/bin/protonvpn-app&quot;, line 33, in &lt;module&gt;
Mar 07 23:34:49 plasmashell[11327]:     sys.exit(load_entry_point(&apos;proton-vpn-gtk-app==4.2.0&apos;, &apos;console_scripts&apos;, &apos;protonvpn-app&apos;)())
Mar 07 23:34:49 plasmashell[11327]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/__main__.py&quot;, line 34, in main
Mar 07 23:34:49 plasmashell[11327]:     controller = Controller.get(executor)
Mar 07 23:34:49 plasmashell[11327]:                  ^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/controller.py&quot;, line 56, in get
Mar 07 23:34:49 plasmashell[11327]:     executor.submit(controller.initialize_vpn_connector).result()
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib64/python3.12/concurrent/futures/_base.py&quot;, line 456, in result
Mar 07 23:34:49 plasmashell[11327]:     return self.__get_result()
Mar 07 23:34:49 plasmashell[11327]:            ^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib64/python3.12/concurrent/futures/_base.py&quot;, line 401, in __get_result
Mar 07 23:34:49 plasmashell[11327]:     raise self._exception
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/controller.py&quot;, line 89, in initialize_vpn_connector
Mar 07 23:34:49 plasmashell[11327]:     self._connector = await self._api.get_vpn_connector()
Mar 07 23:34:49 plasmashell[11327]:                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/vpn/core/api.py&quot;, line 53, in get_vpn_connector
Mar 07 23:34:49 plasmashell[11327]:     settings = await self.load_settings()
Mar 07 23:34:49 plasmashell[11327]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/vpn/core/api.py&quot;, line 63, in load_settings
Mar 07 23:34:49 plasmashell[11327]:     if self._session_holder.session.logged_in:
Mar 07 23:34:49 plasmashell[11327]:        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/vpn/core/session.py&quot;, line 71, in session
Mar 07 23:34:49 plasmashell[11327]:     self._session = self._proton_sso.get_default_session(
Mar 07 23:34:49 plasmashell[11327]:                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/sso/sso.py&quot;, line 192, in get_default_session
Mar 07 23:34:49 plasmashell[11327]:     sessions = self.sessions
Mar 07 23:34:49 plasmashell[11327]:                ^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/sso/sso.py&quot;, line 133, in sessions
Mar 07 23:34:49 plasmashell[11327]:     keyring_index = keyring[self.__keyring_index_name()]
Mar 07 23:34:49 plasmashell[11327]:                     ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/keyring/_base.py&quot;, line 65, in __getitem__
Mar 07 23:34:49 plasmashell[11327]:     return self._get_item(key)
Mar 07 23:34:49 plasmashell[11327]:            ^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/proton/keyring_linux/core/keyring_linux.py&quot;, line 45, in _get_item
Mar 07 23:34:49 plasmashell[11327]:     stored_data = self.__keyring_backend.get_password(
Mar 07 23:34:49 plasmashell[11327]:                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/keyring/backends/SecretService.py&quot;, line 83, in get_password
Mar 07 23:34:49 plasmashell[11327]:     return item.get_secret().decode(&apos;utf-8&apos;)
Mar 07 23:34:49 plasmashell[11327]:            ^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/secretstorage/item.py&quot;, line 99, in get_secret
Mar 07 23:34:49 plasmashell[11327]:     self.session = open_session(self.connection)
Mar 07 23:34:49 plasmashell[11327]:                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/secretstorage/util.py&quot;, line 80, in open_session
Mar 07 23:34:49 plasmashell[11327]:     output, result = service.call(
Mar 07 23:34:49 plasmashell[11327]:                      ^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/secretstorage/util.py&quot;, line 63, in call
Mar 07 23:34:49 plasmashell[11327]:     return self.send_and_get_reply(msg)
Mar 07 23:34:49 plasmashell[11327]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 07 23:34:49 plasmashell[11327]:   File &quot;/usr/lib/python3.12/site-packages/secretstorage/util.py&quot;, line 58, in send_and_get_reply
Mar 07 23:34:49 plasmashell[11327]:     raise SecretServiceNotAvailableException(data) from resp
Mar 07 23:34:49 plasmashell[11327]: secretstorage.exceptions.SecretServiceNotAvailableException: Remote peer disconnected
Mar 07 23:34:49 systemd[9403]: app-protonvpn\x2dapp-9a55dbb58d2c40afa44b5f9a76aabf4b.scope: Consumed 1.028s CPU time.

This problem started after an update including Plasma 6.0.1 and qca-2.3.8-1.fc40 https://bodhi.fedoraproject.org/updates/FEDORA-2024-71a4de4732 Since the crashing function QCA::PrivateKey::deriveKey is in qca, that update might be involved.

When I ran Proton VPN right after the crash in the same session, I got a message that kwallet hadn&apos;t been opened and asking to enter the password. kwalletd6 and Proton VPN didn&apos;t crash after entering the password or when I ran Proton VPN again in the same Plasma session.

STEPS TO REPRODUCE
1. Boot a Fedora 40 KDE Plasma installation updated to 2024-3-8 with the updates-testing repo enabled
2. Log in to Plasma 6.0.1 on Wayland from sddm
3. Set up the Proton VPN repo and install the program using the instructions at https://protonvpn.com/support/official-linux-vpn-fedora/ Since Proton VPN doesn&apos;t build Fedora 40 packages yet as it&apos;s in a pre-release stage, I changed two lines in /etc/yum.repos.d/protonvpn-stable.repo to use the Fedora 39 repo before installing it.
baseurl = https://repo.protonvpn.com/fedora-39-stable
gpgkey = https://repo.protonvpn.com/fedora-39-stable/public_key.asc
5. Make a Proton VPN account at https://protonvpn.com/ There&apos;s a free plan available.
6. Start the Proton VPN GUI
7. Enter the Proton VPN user name and password that was previously made. The Proton VPN account information should be stored in kwallet.
8. Log out of Plasma
9. Log in to Plasma
10. Start the Proton VPN GUI

OBSERVED RESULT
kwalletd6 sometimes crashed in QCA::PrivateKey::deriveKey when starting Proton VPN GUI

EXPECTED RESULT
No crashes should&apos;ve happened.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 40
(available in About System)
KDE Plasma Version: 6.0.1
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2297505</commentid>
    <comment_count>1</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-08 22:37:20 +0000</bug_when>
    <thetext>I downgraded to qca-qt6-2.3.7-3.fc40, and the problem didn&apos;t happen after that. So the problem might be with qca 2.3.8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2303964</commentid>
    <comment_count>2</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-21 22:50:21 +0000</bug_when>
    <thetext>Cannot reproduce on my system

I tried following your steps but

1. Boot a Fedora 40 KDE Plasma installation updated to 2024-3-8 with the updates-testing repo enabled

got me blocked on how to get a Fedora 40 KDE Plasma ISO</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2304017</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-22 04:25:20 +0000</bug_when>
    <thetext>You can download the Fedora 40 KDE Plasma live beta Fedora-KDE-Live-x86_64-40_Beta-1.10.iso from https://koji.fedoraproject.org/koji/buildinfo?buildID=2423953 You can boot that in a QEMU/KVM VM though I haven&apos;t tried to reproduce this in a VM or write it to a USB flash drive with Fedora Media Writer.

I disabled Use KWallet from the Secret Service interface from the KDE Wallet page in System Settings, and the problem didn&apos;t happen with that setting off. I think because I also have GNOME 46.0 installed the GNOME Keyring was used which doesn&apos;t have this problem.

In QCA::PrivateKey::deriveKey, for the pointer this, one of its three d pointers was null, and the pointer theirs had d = 0x75 for one of the three such pointers. If one of those d pointers were dereferenced, the crash might have resulted.

(gdb) p this
$1 = (QCA::PrivateKey * const) 0x7ffdce589db0
(gdb) p *this
$2 = {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {_vptr.Algorithm = 0x7f7a2ffeb598 &lt;vtable for QCA::PrivateKey+16&gt;, d = {
        d = 0x0}}, d = 0x55c5ffc37e80}, d = 0x7ffdce589ef0}
(gdb) p theirs
$3 = (const QCA::PublicKey &amp;) @0x7ffdce589df0: {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {
      _vptr.Algorithm = 0x7f7a2ffea880 &lt;vtable for QCA::DHPublicKey+16&gt;, d = {d = 0x55c5ffb593b0}}, 
    d = 0x55c5ffc85740}, d = 0x75}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2304347</commentid>
    <comment_count>4</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-22 22:50:36 +0000</bug_when>
    <thetext>unfortunately that image you linked seems to have a broken installer https://i.imgur.com/yZXIoG4.png</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2304409</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-23 03:35:00 +0000</bug_when>
    <thetext>(In reply to Albert Astals Cid from comment #4)
&gt; unfortunately that image you linked seems to have a broken installer
&gt; https://i.imgur.com/yZXIoG4.png

That problem with the installer might be because you appeared to be using Virtualbox. I&apos;ve read that Virtualbox support for the new kernel branches used in Fedora, which is 6.8 in Fedora 40 currently, lag behind by months. I haven&apos;t used Virtualbox though. You could search for the problem you saw at https://bugzilla.redhat.com/ and report it there if it hasn&apos;t been already.  You could also try to reproduce the problem in the live environment without installing.

I tried to reproduce the problem with that image in QEMU/KVM VM in GNOME Boxes and on bare metal, and the problem didn&apos;t happen. I installed Fedora Rawhide on my system in mid 2020 and upgraded to the next version every few months since then. My kwallet was likely created in 2020, so it&apos;s possible that there were some old keys or other data in it related to this problem. I deleted the Proton VPN data using kwalletmanager5 a week or so ago, and the problem still happened after that. The Proton VPN data in my kwallet should be new at least. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2304946</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-24 13:18:31 +0000</bug_when>
    <thetext>I used kwalletmanager to export my wallet in encrypted form, then I deleted my wallet. I created a new wallet when I started Proton VPN GUI and logged in. kwalletd6 crashed each time when logging in to the Proton VPN server with the same trace. An error message was shown by the Proton VPN GUI which wasn&apos;t shown before, and the Proton VPN GUI didn&apos;t crash. So the problem didn&apos;t seem to be something old about my wallet specifically. 

I ran the GNOME Keyring GUI program seahorse (Passwords and Keys) in Plasma 6.0.2, and kwalletd6 crashed with what looked like the same type of trace. The problem appeared to be when deriving a private key during a Diffie-Hellman key exchange.

Core was generated by `/usr/bin/kwalletd6 --pam-login 13 14&apos;.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f53b93811dc in QCA::PrivateKey::deriveKey (this=this@entry=0x7ffecdfbcc90, theirs=...)
    at /usr/src/debug/qca-2.3.8-1.fc40.x86_64/src/qca_publickey.cpp:1030
1030        return static_cast&lt;PKeyContext *&gt;(context())-&gt;key()-&gt;deriveKey(*(theirContext-&gt;key()));
[Current thread is 1 (Thread 0x7f53b96a79c0 (LWP 1591))]
(gdb) bt
#0  0x00007f53b93811dc in QCA::PrivateKey::deriveKey (this=this@entry=0x7ffecdfbcc90, theirs=...)
    at /usr/src/debug/qca-2.3.8-1.fc40.x86_64/src/qca_publickey.cpp:1030
#1  0x000055629a2db992 in KWalletFreedesktopService::createSessionAlgorithmDhAes (this=0x7f53a000a320, clientKey=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:424
#2  KWalletFreedesktopService::OpenSession
    (this=0x7f53a000a320, algorithm=&lt;optimized out&gt;, input=&lt;optimized out&gt;, result=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:266
#3  0x000055629a300f43 in KWalletFreedesktopServiceAdaptor::OpenSession
    (this=0x55629c5681b0, algorithm=&lt;optimized out&gt;, input=&lt;optimized out&gt;, result=&lt;optimized out&gt;)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/kwalletfreedesktopserviceadaptor.cpp:63
#4  KWalletFreedesktopServiceAdaptor::qt_static_metacall
    (_o=0x55629c5681b0, _c=&lt;optimized out&gt;, _id=&lt;optimized out&gt;, _a=0x7ffecdfbcfc8)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/moc_kwalletfreedesktopserviceadaptor.cpp:410
#5  0x000055629a301254 in KWalletFreedesktopServiceAdaptor::qt_metacall
    (this=0x55629c5681b0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffecdfbcfc8)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/moc_kwalletfreedesktopserviceadaptor.cpp:489
#6  0x00007f53b897bb11 in QDBusConnectionPrivate::deliverCall
    (this=this@entry=0x7f53a0001690, object=object@entry=0x55629c5681b0, msg=..., metaTypes=..., slotIdx=11)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:977
#7  0x00007f53b897f675 in QDBusConnectionPrivate::activateCall
    (this=this@entry=0x7f53a0001690, object=0x55629c5681b0, flags=flags@entry=273, msg=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:879
#8  0x00007f53b89802c6 in QDBusConnectionPrivate::activateCall
    (this=0x7f53a0001690, object=&lt;optimized out&gt;, flags=273, msg=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:825
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--c
#9  QDBusConnectionPrivate::activateObject (this=0x7f53a0001690, node=..., msg=..., pathStartPos=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:1460
#10 0x00007f53b898295a in QDBusActivateObjectEvent::placeMetaCall (this=0x7f53a00043c0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:1580
#11 0x00007f53b77e25a5 in QObject::event (this=0x7f53a000a320, e=0x7f53a00043c0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:1437
#12 0x00007f53b8b87f68 in QApplicationPrivate::notify_helper
    (this=&lt;optimized out&gt;, receiver=0x7f53a000a320, e=0x7f53a00043c0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3296
#13 0x00007f53b778f218 in QCoreApplication::notifyInternal2 (receiver=0x7f53a000a320, event=0x7f53a00043c0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#14 0x00007f53b778f42d in QCoreApplication::sendEvent (receiver=&lt;optimized out&gt;, event=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1539
#15 0x00007f53b7793147 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55629c210390)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1901
#16 0x00007f53b779340d in QCoreApplication::sendPostedEvents (receiver=&lt;optimized out&gt;, event_type=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1760
#17 0x00007f53b7a6751f in postEventSourceDispatch (s=0x55629c212450)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#18 0x00007f53b6e9668c in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0
#19 0x00007f53b6ef7788 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0
#20 0x00007f53b6e97b03 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#21 0x00007f53b7a66de3 in QEventDispatcherGlib::processEvents (this=0x55629c22a0d0, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#22 0x00007f53b779c053 in QEventLoop::exec (this=this@entry=0x7ffecdfbd8a0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:34
#23 0x00007f53b7797ffc in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:74
#24 0x00007f53b7fd37cd in QGuiApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1925
#25 0x00007f53b8b87ed9 in QApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2574
#26 0x000055629a2c1d95 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/main.cpp:221

The variables this and theirs in QCA::PrivateKey::deriveKey had the same possible problems with their d pointers that I mentioned in comment 3.

(gdb) p this
$1 = (QCA::PrivateKey * const) 0x7ffecdfbcc90
(gdb) p *this
$2 = {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {_vptr.Algorithm = 0x7f53b93ed598 &lt;vtable for QCA::PrivateKey+16&gt;, d = {
        d = 0x0}}, d = 0x55629c5a72f0}, d = 0x91691df82edcec00}
(gdb) p theirs
$3 = (const QCA::PublicKey &amp;) @0x7ffecdfbccd0: {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {
      _vptr.Algorithm = 0x7f53b93ec880 &lt;vtable for QCA::DHPublicKey+16&gt;, d = {d = 0x55629c554730}}, 
    d = 0x55629c59ab90}, d = 0x75}

The Proton VPN GUI and seahorse are both GTK programs using the Secret Service interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305012</commentid>
    <comment_count>7</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-24 18:02:21 +0000</bug_when>
    <thetext>In frame 1 in KWalletFreedesktopService::createSessionAlgorithmDhAes, privateKey and publicKey had null d pointers and clientPublicKey had d = 0x75. Those keys were generated by qca functions.

(gdb) frame 1
#1  0x000055fc1a8bc992 in KWalletFreedesktopService::createSessionAlgorithmDhAes (this=0x7fcc2400a8a0, clientKey=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:424
424         const auto commonSecret = privateKey.deriveKey(clientPublicKey);
(gdb) l
419         }
420
421         auto privateKey = QCA::PrivateKey(keygen.createDH(dlGroup));
422         const auto publicKey = QCA::PublicKey(privateKey);
423         const auto clientPublicKey = QCA::DHPublicKey(dlGroup, QCA::BigInteger(QCA::SecureArray(clientKey)));
424         const auto commonSecret = privateKey.deriveKey(clientPublicKey);
425         const auto symmetricKey = QCA::HKDF().makeKey(commonSecret, {}, {}, FDO_SECRETS_CIPHER_KEY_SIZE);
426
427         return std::make_unique&lt;KWalletFreedesktopSessionAlgorithmDhAes&gt;(publicKey, symmetricKey);
428     }
(gdb) p privateKey
$5 = {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {_vptr.Algorithm = 0x7fcc3e18e598 &lt;vtable for QCA::PrivateKey+16&gt;, d = {
        d = 0x0}}, d = 0x55fc1c7b50e0}, d = 0x7ffff0079b90}
(gdb) p publicKey
$6 = {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {_vptr.Algorithm = 0x7fcc3e18e5b8 &lt;vtable for QCA::PublicKey+16&gt;, d = {
        d = 0x0}}, d = 0x55fc1c7dca80}, d = 0x7ffff0079b90}
(gdb) p clientPublicKey
$7 = {&lt;QCA::PublicKey&gt; = {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {
        _vptr.Algorithm = 0x7fcc3e18d880 &lt;vtable for QCA::DHPublicKey+16&gt;, d = {d = 0x55fc1c7dcaa0}}, 
      d = 0x55fc1c819ac0}, d = 0x75}, &lt;No data fields&gt;}
(gdb) p commonSecret
$8 = {&lt;QCA::SecureArray&gt; = {&lt;QCA::MemoryRegion&gt; = {_secure = 96, d = {
        d = 0x7fcc3bc3dc88 &lt;_dbus_type_writer_write_basic+152&gt;}}, &lt;No data fields&gt;}, &lt;No data fields&gt;}
(gdb) p symmetricKey
$9 = {&lt;QCA::SecureArray&gt; = {&lt;QCA::MemoryRegion&gt; = {_secure = 38, d = {
        d = 0x7ffff0079a50}}, &lt;No data fields&gt;}, &lt;No data fields&gt;}

I used evince (Document Viewer) to open an encrypted pdf in Plasma 6.0.2, and kwalletd6 crashed with the same kind of trace when the password dialog box appeared. I used GNOME Disks to mount a LUKS encrypted partition in Plasma 6.0.2, and kwalletd6 crashed with the same sort of trace. The problem might be with GTK programs using the Secret Service interface in Plasma and qca 2.3.8 generating keys with those null or invalid pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305468</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-25 18:14:08 +0000</bug_when>
    <thetext>I bisected this problem with qca from 2.3.7 to 2.3.8. The following first bad commit involved loading legacy openssl providers.

14eb1ae746c3c75afaef02b487ac65b3de85ad15 is the first bad commit
commit 14eb1ae746c3c75afaef02b487ac65b3de85ad15
Author: Fabian Vogt &lt;fabian@ritter-vogt.de&gt;
Date:   Fri Dec 22 13:36:00 2023 +0100

    plugins/qca-ossl: Actually try loading the legacy provider
    
    OSSL_PROVIDER_available returns true only for loaded providers, not whether
    a provider can be loaded. Use OSSL_PROVIDER_try_load instead, which also
    allows to keep the default fallback provider.

 plugins/qca-ossl/qca-ossl.cpp | 24 +++++-------------------
 1 file changed, 5 insertions(+), 19 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305605</commentid>
    <comment_count>9</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-25 23:38:20 +0000</bug_when>
    <thetext>I&apos;ve been finally been able to install Fedora 40 and can&apos;t still reproduce the problem :/

Can you do this (with the version that crashes)

Open a terminal
Start kwalletmanager5 and press the close wallet button (force if needed)
killall kwalletd6 (run it twice to make sure it has not re-spawned itself)
valgrind kwalletd6 

Now in another terminal
kwalletmanager5 and press the open open wallet button
protonvpn-app

As far as i understand this is what makes it crash for you.

Then go to the terminal where you ran valgrind and attach the output here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305628</commentid>
    <comment_count>10</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-26 01:02:02 +0000</bug_when>
    <thetext>My kwallet is opened automatically when I log in to Plasma with the same password. You could try installing GNOME 46.0 in your Fedora 40 installation as I have in case there&apos;s something from GNOME that&apos;s involved and running seahorse, evince, and GNOME disks in Plasma as I described. I tried running kwalletd6 under valgrind a week ago, but I only stopped kwalletd6 once before running it under valgrind so kwalletd6 kept restarting automatically and I didn&apos;t get it to crash under valgrind then. I followed your instructions. The valgrind report showed an invalid read and a crash due to a null pointer dereference in QCA::PrivateKey::deriveKey at the same line as in the gdb trace I reported originally, which I guess was the null d pointer in the variable this from privateKey in KWalletFreedesktopService::createSessionAlgorithmDhAes.

==121563== Memcheck, a memory error detector
==121563== Copyright (C) 2002-2022, and GNU GPL&apos;d, by Julian Seward et al.
==121563== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==121563== Command: /usr/bin/kwalletd6
==121563== Parent PID: 119206
==121563== 
==121563== Conditional jump or move depends on uninitialised value(s)
==121563==    at 0x2BDA8B18: ???
==121563==    by 0x2C05E13F: ???
==121563== 
==121563== Conditional jump or move depends on uninitialised value(s)
==121563==    at 0x82E63F1: QtWaylandClient::QWaylandInputDevice::Keyboard::keyboard_key(unsigned int, unsigned int, unsigned int, unsigned int) (qwaylandinputdevice.cpp:1356)
==121563==    by 0xA488055: ffi_call_unix64 (unix64.S:104)
==121563==    by 0xA48469F: ffi_call_int.lto_priv.0 (ffi64.c:673)
==121563==    by 0xA4874ED: ffi_call (ffi64.c:710)
==121563==    by 0x8354F2D: wl_closure_invoke.constprop.0 (connection.c:1025)
==121563==    by 0x83557A2: dispatch_event.isra.0 (wayland-client.c:1631)
==121563==    by 0x8355A4B: UnknownInlinedFun (wayland-client.c:1777)
==121563==    by 0x8355A4B: wl_display_dispatch_queue_pending (wayland-client.c:2019)
==121563==    by 0x82CCCD1: QtWaylandClient::QWaylandDisplay::flushRequests() (qwaylanddisplay.cpp:229)
==121563==    by 0x62E45A4: QObject::event(QEvent*) (qobject.cpp:1437)
==121563==    by 0x5001F67: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3296)
==121563==    by 0x6291217: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1121)
==121563==    by 0x6295146: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1901)
==121563== 
==121563== Invalid read of size 8
==121563==    at 0x4D981DC: QCA::PrivateKey::deriveKey(QCA::PublicKey const&amp;) (qca_publickey.cpp:1030)
==121563==    by 0x141991: UnknownInlinedFun (kwalletfreedesktopservice.cpp:424)
==121563==    by 0x141991: KWalletFreedesktopService::OpenSession(QString const&amp;, QDBusVariant const&amp;, QDBusObjectPath&amp;) (kwalletfreedesktopservice.cpp:266)
==121563==    by 0x166F42: UnknownInlinedFun (kwalletfreedesktopserviceadaptor.cpp:63)
==121563==    by 0x166F42: KWalletFreedesktopServiceAdaptor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:410)
==121563==    by 0x167253: KWalletFreedesktopServiceAdaptor::qt_metacall(QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:489)
==121563==    by 0x5744B10: QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&amp;, QList&lt;QMetaType&gt; const&amp;, int) (qdbusintegrator.cpp:977)
==121563==    by 0x5748674: QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&amp;) [clone .part.0] (qdbusintegrator.cpp:879)
==121563==    by 0x57492C5: activateCall (qdbusintegrator.cpp:825)
==121563==    by 0x57492C5: QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&amp;, QDBusMessage const&amp;, int) (qdbusintegrator.cpp:1460)
==121563==    by 0x574B959: QDBusActivateObjectEvent::placeMetaCall(QObject*) (qdbusintegrator.cpp:1580)
==121563==    by 0x62E45A4: QObject::event(QEvent*) (qobject.cpp:1437)
==121563==    by 0x5001F67: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3296)
==121563==    by 0x6291217: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1121)
==121563==    by 0x6295146: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1901)
==121563==  Address 0x0 is not stack&apos;d, malloc&apos;d or (recently) free&apos;d
==121563== 
==121563== 
==121563== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==121563==  Access not within mapped region at address 0x0
==121563==    at 0x4D981DC: QCA::PrivateKey::deriveKey(QCA::PublicKey const&amp;) (qca_publickey.cpp:1030)
==121563==    by 0x141991: UnknownInlinedFun (kwalletfreedesktopservice.cpp:424)
==121563==    by 0x141991: KWalletFreedesktopService::OpenSession(QString const&amp;, QDBusVariant const&amp;, QDBusObjectPath&amp;) (kwalletfreedesktopservice.cpp:266)
==121563==    by 0x166F42: UnknownInlinedFun (kwalletfreedesktopserviceadaptor.cpp:63)
==121563==    by 0x166F42: KWalletFreedesktopServiceAdaptor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:410)
==121563==    by 0x167253: KWalletFreedesktopServiceAdaptor::qt_metacall(QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:489)
==121563==    by 0x5744B10: QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&amp;, QList&lt;QMetaType&gt; const&amp;, int) (qdbusintegrator.cpp:977)
==121563==    by 0x5748674: QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&amp;) [clone .part.0] (qdbusintegrator.cpp:879)
==121563==    by 0x57492C5: activateCall (qdbusintegrator.cpp:825)
==121563==    by 0x57492C5: QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&amp;, QDBusMessage const&amp;, int) (qdbusintegrator.cpp:1460)
==121563==    by 0x574B959: QDBusActivateObjectEvent::placeMetaCall(QObject*) (qdbusintegrator.cpp:1580)
==121563==    by 0x62E45A4: QObject::event(QEvent*) (qobject.cpp:1437)
==121563==    by 0x5001F67: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3296)
==121563==    by 0x6291217: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1121)
==121563==    by 0x6295146: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1901)
==121563==  If you believe this happened as a result of a stack
==121563==  overflow in your program&apos;s main thread (unlikely but
==121563==  possible), you can try to increase the size of the
==121563==  main thread stack using the --main-stacksize= flag.
==121563==  The main thread stack size used in this run was 8388608.
==121563== 
==121563== HEAP SUMMARY:
==121563==     in use at exit: 6,227,189 bytes in 40,136 blocks
==121563==   total heap usage: 277,504 allocs, 237,368 frees, 37,114,729 bytes allocated
==121563== 
==121563== LEAK SUMMARY:
==121563==    definitely lost: 512 bytes in 1 blocks
==121563==    indirectly lost: 1,357 bytes in 41 blocks
==121563==      possibly lost: 550,976 bytes in 65 blocks
==121563==    still reachable: 5,672,328 bytes in 40,008 blocks
==121563==                       of which reachable via heuristic:
==121563==                         newarray           : 10,000 bytes in 60 blocks
==121563==                         multipleinheritance: 2,080 bytes in 6 blocks
==121563==         suppressed: 0 bytes in 0 blocks
==121563== Rerun with --leak-check=full to see details of leaked memory
==121563== 
==121563== Use --track-origins=yes to see where uninitialised values come from
==121563== For lists of detected and suppressed errors, rerun with: -s
==121563== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305892</commentid>
    <comment_count>11</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-26 22:14:42 +0000</bug_when>
    <thetext>Can you add these changes?

https://pastebin.com/raw/ryCpqQyb

I&apos;m trying to figure out which of the 4 pointers involved in that line is a null pointer

I&apos;m assuming you know what that file means, if not tell me and i&apos;ll try to explain it a bit better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305893</commentid>
    <comment_count>12</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-26 22:15:11 +0000</bug_when>
    <thetext>Once you compile with those changes do the same valgrind thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305948</commentid>
    <comment_count>13</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-27 02:11:45 +0000</bug_when>
    <thetext>I built qca 2.3.8 with your patch added. I reproduced the crash first without using valgrind. The crash happened on the line with static_cast&lt;PKeyContext *&gt;(context())-&gt;key() Since context() looked to be run with out a pointer to an object, I guess the pointer this might&apos;ve been used which had the null d pointer.

Core was generated by `/usr/bin/kwalletd6 --pam-login 13 14&apos;.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007efd2af813fc in QCA::PrivateKey::deriveKey (this=this@entry=0x7ffdccf553f0, theirs=...)
    at /usr/src/debug/qca-2.3.8-2.fc40.x86_64/src/qca_publickey.cpp:1033
1033        qDebug() &lt;&lt; static_cast&lt;PKeyContext *&gt;(context())-&gt;key();
[Current thread is 1 (Thread 0x7efd2b28f9c0 (LWP 76549))]
(gdb) l
1028    SymmetricKey PrivateKey::deriveKey(const PublicKey &amp;theirs)
1029    {
1030        const PKeyContext *theirContext = static_cast&lt;const PKeyContext *&gt;(theirs.context());
1031        qDebug() &lt;&lt; context();
1032        qDebug() &lt;&lt; theirContext;
1033        qDebug() &lt;&lt; static_cast&lt;PKeyContext *&gt;(context())-&gt;key();
1034        qDebug() &lt;&lt; theirContext-&gt;key();
1035        return static_cast&lt;PKeyContext *&gt;(context())-&gt;key()-&gt;deriveKey(*(theirContext-&gt;key()));
1036    }
1037
(gdb) bt
#0  0x00007efd2af813fc in QCA::PrivateKey::deriveKey (this=this@entry=0x7ffdccf553f0, theirs=...)
    at /usr/src/debug/qca-2.3.8-2.fc40.x86_64/src/qca_publickey.cpp:1033
#1  0x00005592e8316992 in KWalletFreedesktopService::createSessionAlgorithmDhAes (this=0x7efd1000a540, clientKey=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:424
#2  KWalletFreedesktopService::OpenSession
    (this=0x7efd1000a540, algorithm=&lt;optimized out&gt;, input=&lt;optimized out&gt;, result=...)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:266
#3  0x00005592e833bf43 in KWalletFreedesktopServiceAdaptor::OpenSession
    (this=0x5592e90d2eb0, algorithm=&lt;optimized out&gt;, input=&lt;optimized out&gt;, result=&lt;optimized out&gt;)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/kwalletfreedesktopserviceadaptor.cpp:63
#4  KWalletFreedesktopServiceAdaptor::qt_static_metacall
    (_o=0x5592e90d2eb0, _c=&lt;optimized out&gt;, _id=&lt;optimized out&gt;, _a=0x7ffdccf55728)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/moc_kwalletfreedesktopserviceadaptor.cpp:410
#5  0x00005592e833c254 in KWalletFreedesktopServiceAdaptor::qt_metacall
    (this=0x5592e90d2eb0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffdccf55728)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/redhat-linux-build/src/runtime/kwalletd/moc_kwalletfreedesktopserviceadaptor.cpp:489
#6  0x00007efd2a57bb11 in QDBusConnectionPrivate::deliverCall
    (this=this@entry=0x7efd10001690, object=object@entry=0x5592e90d2eb0, msg=..., metaTypes=..., slotIdx=11)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:977
#7  0x00007efd2a57f675 in QDBusConnectionPrivate::activateCall
    (this=this@entry=0x7efd10001690, object=0x5592e90d2eb0, flags=flags@entry=273, msg=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:879
#8  0x00007efd2a5802c6 in QDBusConnectionPrivate::activateCall
    (this=0x7efd10001690, object=&lt;optimized out&gt;, flags=273, msg=...)
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:825
#9  QDBusConnectionPrivate::activateObject (this=0x7efd10001690, node=..., msg=..., pathStartPos=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:1460
#10 0x00007efd2a58295a in QDBusActivateObjectEvent::placeMetaCall (this=0x7efd1000afe0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/dbus/qdbusintegrator.cpp:1580
#11 0x00007efd293e25a5 in QObject::event (this=0x7efd1000a540, e=0x7efd1000afe0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:1437
#12 0x00007efd2a787f68 in QApplicationPrivate::notify_helper
    (this=&lt;optimized out&gt;, receiver=0x7efd1000a540, e=0x7efd1000afe0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3296
#13 0x00007efd2938f218 in QCoreApplication::notifyInternal2 (receiver=0x7efd1000a540, event=0x7efd1000afe0)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#14 0x00007efd2938f42d in QCoreApplication::sendEvent (receiver=&lt;optimized out&gt;, event=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1539
#15 0x00007efd29393147 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5592e8d7e390)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1901
#16 0x00007efd2939340d in QCoreApplication::sendPostedEvents (receiver=&lt;optimized out&gt;, event_type=&lt;optimized out&gt;)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1760
#17 0x00007efd2966751f in postEventSourceDispatch (s=0x5592e8d80450)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#18 0x00007efd289be68c in g_main_dispatch (context=0x7efd10000f00) at ../glib/gmain.c:3344
#19 g_main_context_dispatch_unlocked (context=0x7efd10000f00) at ../glib/gmain.c:4152
#20 0x00007efd28a1f788 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7efd10000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at ../glib/gmain.c:4217
#21 0x00007efd289bfb03 in g_main_context_iteration (context=0x7efd10000f00, may_block=1) at ../glib/gmain.c:4282
#22 0x00007efd29666de3 in QEventDispatcherGlib::processEvents (this=0x5592e8d980d0, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#23 0x00007efd2939c053 in QEventLoop::exec (this=this@entry=0x7ffdccf56000, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:34
#24 0x00007efd29397ffc in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:74
#25 0x00007efd29bd37cd in QGuiApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1925
#26 0x00007efd2a787ed9 in QApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2574
#27 0x00005592e82fcd95 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;)
    at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/main.cpp:221

I ran the steps you gave with kwalletd6 under valgrind. The crash was at a null address in QCA::PrivateKey::deriveKey at qca_publickey.cpp:1033.

==83336== Memcheck, a memory error detector
==83336== Copyright (C) 2002-2022, and GNU GPL&apos;d, by Julian Seward et al.
==83336== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==83336== Command: /usr/bin/kwalletd6
==83336== Parent PID: 83306
==83336== 
==83336== Invalid read of size 16
==83336==    at 0x6210B77: UnknownInlinedFun (emmintrin.h:706)
==83336==    by 0x6210B77: aeshash128_lt16 (qhash.cpp:630)
==83336==    by 0x6210B77: aeshash128(unsigned char const*, unsigned long, unsigned long, unsigned long) (qhash.cpp:771)
==83336==    by 0x56B8F4F: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56BAB4A: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56BE694: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56ABA04: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56C6EE5: KSharedConfig::openConfig(QString const&amp;, QFlags&lt;KConfig::OpenFlag&gt;, QStandardPaths::StandardLocation) (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x2BD42CA8: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x2BD72EAD: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x50AB9CD: qLoadPlugin&lt;QStyle, QStylePlugin&gt; (qfactoryloader_p.h:99)
==83336==    by 0x50AB9CD: QStyleFactory::create(QString const&amp;) (qstylefactory.cpp:77)
==83336==    by 0x5007BCF: QApplication::style() (qapplication.cpp:919)
==83336==    by 0x50081C0: QApplicationPrivate::initialize() (qapplication.cpp:539)
==83336==    by 0x50083E4: QApplicationPrivate::init() (qapplication.cpp:486)
==83336==  Address 0x2be195e1 is 113 bytes inside a block of size 128 alloc&apos;d
==83336==    at 0x484280F: malloc (vg_replace_malloc.c:442)
==83336==    by 0x63C3BB0: UnknownInlinedFun (qarraydata.cpp:139)
==83336==    by 0x63C3BB0: QArrayData::allocate(QArrayData**, long long, long long, long long, QArrayData::AllocationOption) (qarraydata.cpp:189)
==83336==    by 0x63593CC: allocate (qarraydata.h:106)
==83336==    by 0x63593CC: QByteArray::reallocData(long long, QArrayData::AllocationOption) (qbytearray.cpp:1927)
==83336==    by 0x635958A: QByteArray::resize(long long) (qbytearray.cpp:1866)
==83336==    by 0x62576FF: QIODevice::readAll() (qiodevice.cpp:1262)
==83336==    by 0x56BD852: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56ABA04: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56C6EE5: KSharedConfig::openConfig(QString const&amp;, QFlags&lt;KConfig::OpenFlag&gt;, QStandardPaths::StandardLocation) (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x2BD42CA8: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x2BD72EAD: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x50AB9CD: qLoadPlugin&lt;QStyle, QStylePlugin&gt; (qfactoryloader_p.h:99)
==83336==    by 0x50AB9CD: QStyleFactory::create(QString const&amp;) (qstylefactory.cpp:77)
==83336==    by 0x5007BCF: QApplication::style() (qapplication.cpp:919)
==83336== 
==83336== Invalid read of size 16
==83336==    at 0x6210B77: UnknownInlinedFun (emmintrin.h:706)
==83336==    by 0x6210B77: aeshash128_lt16 (qhash.cpp:630)
==83336==    by 0x6210B77: aeshash128(unsigned char const*, unsigned long, unsigned long, unsigned long) (qhash.cpp:771)
==83336==    by 0x56B8F4F: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56B95F1: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56BB01F: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56BE694: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56ABA04: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56C6EE5: KSharedConfig::openConfig(QString const&amp;, QFlags&lt;KConfig::OpenFlag&gt;, QStandardPaths::StandardLocation) (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x2BD42CA8: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x2BD72EAD: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x50AB9CD: qLoadPlugin&lt;QStyle, QStylePlugin&gt; (qfactoryloader_p.h:99)
==83336==    by 0x50AB9CD: QStyleFactory::create(QString const&amp;) (qstylefactory.cpp:77)
==83336==    by 0x5007BCF: QApplication::style() (qapplication.cpp:919)
==83336==    by 0x50081C0: QApplicationPrivate::initialize() (qapplication.cpp:539)
==83336==  Address 0x2be195e1 is 113 bytes inside a block of size 128 alloc&apos;d
==83336==    at 0x484280F: malloc (vg_replace_malloc.c:442)
==83336==    by 0x63C3BB0: UnknownInlinedFun (qarraydata.cpp:139)
==83336==    by 0x63C3BB0: QArrayData::allocate(QArrayData**, long long, long long, long long, QArrayData::AllocationOption) (qarraydata.cpp:189)
==83336==    by 0x63593CC: allocate (qarraydata.h:106)
==83336==    by 0x63593CC: QByteArray::reallocData(long long, QArrayData::AllocationOption) (qbytearray.cpp:1927)
==83336==    by 0x635958A: QByteArray::resize(long long) (qbytearray.cpp:1866)
==83336==    by 0x62576FF: QIODevice::readAll() (qiodevice.cpp:1262)
==83336==    by 0x56BD852: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56ABA04: ??? (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x56C6EE5: KSharedConfig::openConfig(QString const&amp;, QFlags&lt;KConfig::OpenFlag&gt;, QStandardPaths::StandardLocation) (in /usr/lib64/libKF6ConfigCore.so.6.0.0)
==83336==    by 0x2BD42CA8: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x2BD72EAD: ??? (in /usr/lib64/qt6/plugins/styles/breeze6.so)
==83336==    by 0x50AB9CD: qLoadPlugin&lt;QStyle, QStylePlugin&gt; (qfactoryloader_p.h:99)
==83336==    by 0x50AB9CD: QStyleFactory::create(QString const&amp;) (qstylefactory.cpp:77)
==83336==    by 0x5007BCF: QApplication::style() (qapplication.cpp:919)
==83336== 
==83336== Conditional jump or move depends on uninitialised value(s)
==83336==    at 0x2BDA8B18: ???
==83336==    by 0x2C05E8DF: ???
==83336== 
==83336== Conditional jump or move depends on uninitialised value(s)
==83336==    at 0x82E63F1: QtWaylandClient::QWaylandInputDevice::Keyboard::keyboard_key(unsigned int, unsigned int, unsigned int, unsigned int) (qwaylandinputdevice.cpp:1356)
==83336==    by 0xA488055: ffi_call_unix64 (unix64.S:104)
==83336==    by 0xA48469F: ffi_call_int.lto_priv.0 (ffi64.c:673)
==83336==    by 0xA4874ED: ffi_call (ffi64.c:710)
==83336==    by 0x8354F2D: wl_closure_invoke.constprop.0 (connection.c:1025)
==83336==    by 0x83557A2: dispatch_event.isra.0 (wayland-client.c:1631)
==83336==    by 0x8355A4B: UnknownInlinedFun (wayland-client.c:1777)
==83336==    by 0x8355A4B: wl_display_dispatch_queue_pending (wayland-client.c:2019)
==83336==    by 0x82CCCD1: QtWaylandClient::QWaylandDisplay::flushRequests() (qwaylanddisplay.cpp:229)
==83336==    by 0x62E45A4: QObject::event(QEvent*) (qobject.cpp:1437)
==83336==    by 0x5001F67: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3296)
==83336==    by 0x6291217: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1121)
==83336==    by 0x6295146: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1901)
==83336== 
==83336== Invalid read of size 8
==83336==    at 0x4D983FC: QCA::PrivateKey::deriveKey(QCA::PublicKey const&amp;) (qca_publickey.cpp:1033)
==83336==    by 0x141991: UnknownInlinedFun (kwalletfreedesktopservice.cpp:424)
==83336==    by 0x141991: KWalletFreedesktopService::OpenSession(QString const&amp;, QDBusVariant const&amp;, QDBusObjectPath&amp;) (kwalletfreedesktopservice.cpp:266)
==83336==    by 0x166F42: UnknownInlinedFun (kwalletfreedesktopserviceadaptor.cpp:63)
==83336==    by 0x166F42: KWalletFreedesktopServiceAdaptor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:410)
==83336==    by 0x167253: KWalletFreedesktopServiceAdaptor::qt_metacall(QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:489)
==83336==    by 0x5744B10: QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&amp;, QList&lt;QMetaType&gt; const&amp;, int) (qdbusintegrator.cpp:977)
==83336==    by 0x5748674: QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&amp;) [clone .part.0] (qdbusintegrator.cpp:879)
==83336==    by 0x57492C5: activateCall (qdbusintegrator.cpp:825)
==83336==    by 0x57492C5: QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&amp;, QDBusMessage const&amp;, int) (qdbusintegrator.cpp:1460)
==83336==    by 0x574B959: QDBusActivateObjectEvent::placeMetaCall(QObject*) (qdbusintegrator.cpp:1580)
==83336==    by 0x62E45A4: QObject::event(QEvent*) (qobject.cpp:1437)
==83336==    by 0x5001F67: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3296)
==83336==    by 0x6291217: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1121)
==83336==    by 0x6295146: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1901)
==83336==  Address 0x0 is not stack&apos;d, malloc&apos;d or (recently) free&apos;d
==83336== 
==83336== 
==83336== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==83336==  Access not within mapped region at address 0x0
==83336==    at 0x4D983FC: QCA::PrivateKey::deriveKey(QCA::PublicKey const&amp;) (qca_publickey.cpp:1033)
==83336==    by 0x141991: UnknownInlinedFun (kwalletfreedesktopservice.cpp:424)
==83336==    by 0x141991: KWalletFreedesktopService::OpenSession(QString const&amp;, QDBusVariant const&amp;, QDBusObjectPath&amp;) (kwalletfreedesktopservice.cpp:266)
==83336==    by 0x166F42: UnknownInlinedFun (kwalletfreedesktopserviceadaptor.cpp:63)
==83336==    by 0x166F42: KWalletFreedesktopServiceAdaptor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:410)
==83336==    by 0x167253: KWalletFreedesktopServiceAdaptor::qt_metacall(QMetaObject::Call, int, void**) (moc_kwalletfreedesktopserviceadaptor.cpp:489)
==83336==    by 0x5744B10: QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&amp;, QList&lt;QMetaType&gt; const&amp;, int) (qdbusintegrator.cpp:977)
==83336==    by 0x5748674: QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&amp;) [clone .part.0] (qdbusintegrator.cpp:879)
==83336==    by 0x57492C5: activateCall (qdbusintegrator.cpp:825)
==83336==    by 0x57492C5: QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&amp;, QDBusMessage const&amp;, int) (qdbusintegrator.cpp:1460)
==83336==    by 0x574B959: QDBusActivateObjectEvent::placeMetaCall(QObject*) (qdbusintegrator.cpp:1580)
==83336==    by 0x62E45A4: QObject::event(QEvent*) (qobject.cpp:1437)
==83336==    by 0x5001F67: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3296)
==83336==    by 0x6291217: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1121)
==83336==    by 0x6295146: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1901)
==83336==  If you believe this happened as a result of a stack
==83336==  overflow in your program&apos;s main thread (unlikely but
==83336==  possible), you can try to increase the size of the
==83336==  main thread stack using the --main-stacksize= flag.
==83336==  The main thread stack size used in this run was 8388608.
==83336== 
==83336== HEAP SUMMARY:
==83336==     in use at exit: 6,225,266 bytes in 40,139 blocks
==83336==   total heap usage: 277,987 allocs, 237,848 frees, 37,477,388 bytes allocated
==83336== 
==83336== LEAK SUMMARY:
==83336==    definitely lost: 512 bytes in 1 blocks
==83336==    indirectly lost: 1,357 bytes in 41 blocks
==83336==      possibly lost: 550,976 bytes in 65 blocks
==83336==    still reachable: 5,670,405 bytes in 40,011 blocks
==83336==                       of which reachable via heuristic:
==83336==                         newarray           : 10,000 bytes in 60 blocks
==83336==                         multipleinheritance: 2,080 bytes in 6 blocks
==83336==         suppressed: 0 bytes in 0 blocks
==83336== Rerun with --leak-check=full to see details of leaked memory
==83336== 
==83336== Use --track-origins=yes to see where uninitialised values come from
==83336== For lists of detected and suppressed errors, rerun with: -s
==83336== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)

plasmashell crashed when I ran protonvpn-app in Konsole with kwalletd6 under valgrind which I hadn&apos;t seen before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2305979</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-27 04:11:08 +0000</bug_when>
    <thetext>I ran the steps like in comment 9 with the qca 2.3.8 build with the patch, but instead with 
export QT_LOGGING_RULES=&quot;*.debug=true&quot; 
kwalletd6 &amp;

The end of the output appeared to show that the first line added by the patch context() had a null pointer, and then kwalletd6 crashed on the third line with static_cast&lt;PKeyContext *&gt;(context())-&gt;key()
...
qt.core.library: &quot;/usr/lib64/qt6/plugins/crypto/libqca-ossl.so&quot; loaded library
QObject(0x0)
opensslQCAPlugin::MyPKeyContext(0x556d5ce55020)

[1]+  Segmentation fault      (core dumped) kwalletd6

I reported the plasmashell crash I mentioned in my previous comment at https://bugs.kde.org/show_bug.cgi?id=484565</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2306218</commentid>
    <comment_count>15</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-27 19:13:41 +0000</bug_when>
    <thetext>This is super curious as why i can&apos;t reproduce this.

Just to confirm, you are fully

dnf upgrade

right?

Can you try compiling this simple program? 

You may need to install qca-qt6-devel qt6-qtbase-devel and some other packages (hope not more)

Create a folder named test
inside put this https://pastebin.com/raw/P7nihcR5 named main.cpp
and this https://pastebin.com/raw/6QuAQCyS named test.pro

then go into a terminal inside that folder and run
qmake6 &amp;&amp; make &amp;&amp; ./test 

What is the output?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2306254</commentid>
    <comment_count>16</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-27 20:35:34 +0000</bug_when>
    <thetext>Yes, my system is fully updated with the updates-testing repo enabled. I ran those steps with the qca 2.3.8 build with your patch which gave me the following output. privateKey.context() appeared to have a non-null pointer.

qmake6 &amp;&amp; make &amp;&amp; ./test 
Info: creating stash file /programs/qca/test/.qmake.stash
[2]+  Done                    kate test.pro
g++ -c -pipe -g -Wall -Wextra -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -I/usr/include/qt6/QtCrypto -I/usr/include/qt6 -I/usr/include/qt6/QtGui -I/usr/include/qt6/QtCore -I. -I/usr/lib64/qt6/mkspecs/linux-g++ -o main.o main.cpp
g++ -Wl,-rpath-link,/usr/lib64 -o test  main.o   -lqca-qt6 /usr/lib64/libQt6Gui.so /usr/lib64/libQt6Core.so -lpthread -lGLX -lOpenGL   
opensslQCAPlugin::MyPKeyContext(0xc34710)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2306632</commentid>
    <comment_count>17</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-28 21:47:11 +0000</bug_when>
    <thetext>In KWalletFreedesktopService::createSessionAlgorithmDhAes at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:415 there is const auto dlGroup = QCA::DLGroup(keygen.createDLGroup(QCA::IETF_1024)); If QCA::IETF_1024 means that 1024 bit DH keys are used, this might not be allowed by the default crypto policy in Fedora which I&apos;m using. man crypto-policies shows for the DEFAULT policy &quot;The Diffie-Hellman parameters are accepted if they are at least 2048 bits long.&quot; The private key and public key generated might have had null pointers because the key size wasn&apos;t large enough for the default crypto policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2306700</commentid>
    <comment_count>18</comment_count>
    <who name="Albert Astals Cid">aacid</who>
    <bug_when>2024-03-29 09:20:47 +0000</bug_when>
    <thetext>(In reply to Matt Fagnani from comment #17)
&gt; In KWalletFreedesktopService::createSessionAlgorithmDhAes at
&gt; /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/
&gt; kwalletfreedesktopservice.cpp:415 there is const auto dlGroup =
&gt; QCA::DLGroup(keygen.createDLGroup(QCA::IETF_1024)); If QCA::IETF_1024 means
&gt; that 1024 bit DH keys are used, this might not be allowed by the default
&gt; crypto policy in Fedora which I&apos;m using. man crypto-policies shows for the
&gt; DEFAULT policy &quot;The Diffie-Hellman parameters are accepted if they are at
&gt; least 2048 bits long.&quot; The private key and public key generated might have
&gt; had null pointers because the key size wasn&apos;t large enough for the default
&gt; crypto policy.

But i&apos;m using that in my test program too and that works, so there&apos;s no reason why it would not work inside kwallet :/

Let me try to contact the author of that commit you mention as the one causing the regression to see if he has any idea of what may be happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307010</commentid>
    <comment_count>19</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-30 15:33:15 +0000</bug_when>
    <thetext>I tried setting the legacy fedora crypto policy which allows DH keys &gt;= 1024 bits with sudo update-crypto-policies --set LEGACY and rebooting but the problem still happened. I also built kwallet with const auto dlGroup = QCA::DLGroup(keygen.createDLGroup(QCA::IETF_2048)); at /usr/src/debug/kf6-kwallet-6.0.0-1.fc40.x86_64/src/runtime/kwalletd/kwalletfreedesktopservice.cpp:415, but the problem happened with that change too.

I created my wallet with &quot;Classic, blowfish encrypted file&quot; in the kwallet wizard. Blowfish is listed on the OpenSSL legacy providers page at https://www.openssl.org/docs/man3.0/man7/OSSL_PROVIDER-legacy.html Since the first bad commit involved OpenSSL legacy providers, could the use of Blowfish be involved in this problem somehow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307099</commentid>
    <comment_count>20</comment_count>
    <who name="Fabian Vogt">fabian</who>
    <bug_when>2024-03-30 19:14:00 +0000</bug_when>
    <thetext>(In reply to Matt Fagnani from comment #8)
&gt; I bisected this problem with qca from 2.3.7 to 2.3.8. The following first
&gt; bad commit involved loading legacy openssl providers.
&gt; 
&gt; 14eb1ae746c3c75afaef02b487ac65b3de85ad15 is the first bad commit
&gt; commit 14eb1ae746c3c75afaef02b487ac65b3de85ad15
&gt; Author: Fabian Vogt &lt;fabian@ritter-vogt.de&gt;
&gt; Date:   Fri Dec 22 13:36:00 2023 +0100
&gt; 
&gt;     plugins/qca-ossl: Actually try loading the legacy provider
&gt;     
&gt;     OSSL_PROVIDER_available returns true only for loaded providers, not
&gt; whether
&gt;     a provider can be loaded. Use OSSL_PROVIDER_try_load instead, which also
&gt;     allows to keep the default fallback provider.
&gt; 
&gt;  plugins/qca-ossl/qca-ossl.cpp | 24 +++++-------------------
&gt;  1 file changed, 5 insertions(+), 19 deletions(-)

My theory is that without this commit, using kwalletd6 with OpenSSL &gt;= 3.0 will just fail early enough that the broken code path is not even reached. Comment 19 is one major reason why that would be the case. You could confirm that by creating an OpenSSL config which forces loading of default and legacy providers:

$ cat openssl.cnf 
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1

And then trying kwallet6 with old qca + &quot;OPENSSL_CONF=openssl.cnf kwallet6&quot;.

Locally I extracted the createSessionAlgorithmDhAes method into a standalone executable (like comment 15, but more) and ran ltrace on that to get an overview on the used code paths in qca and libcrypto. The call most likely to fail is qca-ossl.cpp:DHKeyMaker::run() -&gt; DH_generate_key, so I simulated that by hardcoding a failure code at that point. The result is a segfault identical to the one observed here.

Please do an ltrace of kwalletd6 by running &quot;ltrace -fCl &apos;libcrypto*&apos; kwalletd6&quot; and quote the output here. If some call fails, that should be visible.

Question is why it fails on your system while it does not fail here. Maybe there&apos;s an additional check for the parameter length in your OpenSSL version? Upstream only checks for &lt; 512: https://github.com/openssl/openssl/blob/56e63f570bd5a479439bc6f6a2499f6b86ded341/crypto/dh/dh_key.c#L286</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307190</commentid>
    <comment_count>21</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-31 03:21:51 +0000</bug_when>
    <thetext>I created an OpenPGP key in KGpg. I exported my Blowfish encrypted wallet, and then I deleted it in kwalletmanager. I created a new wallet with my OpenPGP key in kwalletmanager. The Proton VPN GUI and kwalletd6 didn&apos;t crash when I started the Proton VPN GUI, but when I tried to log in to Proton VPN, kwalletd6 crashed with the same trace and an error popup like &quot;Something went wrong. We&apos;re sorry, a problem occurred&quot; was shown in Proton VPN GUI. I think the problem occurred when logging in instead of starting because the wallet was empty at that point. This test and the following were with qca 2.3.8 plus the patch in comment 11.

In another Plasma session, I closed the new wallet encrypted with the OpenPGP key in kwalletmanager. I ran killall kwalletd6 twice as suggested in comment 9. I ran OPENSSL_CONF=openssl.cnf kwalletd6 I opened the wallet in kwalletmanager. I ran Proton VPN GUI and logged in. The login completed without the kwalletd6 crash or the Proton VPN error happening. So this test supports your theory.

I closed the wallet again in kwalletmanager. I ran killall kwalletd6 twice. I ran ltrace -fCl &apos;libcrypto*&apos; kwalletd6. Proton VPN crashed when starting, and kwalletd6 also crashed as shown in the following output.

kf.wallet.kwalletd: Lacking a socket, pipe: 0 env: 0
[pid 67660] +++ exited (status 0) +++
[pid 67659] +++ exited (status 0) +++
[pid 67658] +++ exited (status 0) +++
[pid 67657] +++ exited (status 0) +++
[pid 67656] +++ exited (status 0) +++
[pid 67655] +++ exited (status 0) +++
[pid 67702] +++ exited (status 0) +++
[pid 67703] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67703] +++ exited (status 0) +++
[pid 67708] +++ exited (status 0) +++
[pid 67709] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67709] +++ exited (status 0) +++
[pid 67710] +++ exited (status 0) +++
[pid 67711] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67711] +++ exited (status 0) +++
[pid 67712] +++ exited (status 0) +++
[pid 67713] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67713] +++ exited (status 0) +++
[pid 67714] +++ exited (status 0) +++
[pid 67715] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67715] +++ exited (status 0) +++
[pid 67716] +++ exited (status 0) +++
[pid 67717] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67717] +++ exited (status 0) +++
[pid 67731] +++ exited (status 0) +++
[pid 67732] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67732] +++ exited (status 0) +++
[pid 67645] libQt6Core.so.6-&gt;OSSL_PROVIDER_load(0, 0x7f8f9fe97499, 0x55d2a3168010, 2) = 0x7f8f78001ff0
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_new(0, 0x7f8f9e313480, 0, 0)      = 0x55d2a347f150
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_fetch(0, 0x7f8f9fe993b4, 0x7f8f9fe99415, 0x55d2a347f150) = 0x55d2a3525340
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestInit_ex(0x55d2a347f150, 0x55d2a3525340, 0, 0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_reset(0x55d2a347f150, 0, 0xffffffee, 0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestInit_ex(0x55d2a347f150, 0x55d2a3525340, 0, 4) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestUpdate(0x55d2a347f150, 0x55d2a34961c0, 9, 0x55d2a34961c0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_new(0x55d2a31ea910, 1, 0x55d2a31eaab8, 3) = 0x55d2a3526430
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_copy_ex(0x55d2a3526430, 0x55d2a347f150, 72, 0x55d2a3526430) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_get_size(0x55d2a3525340, -1025, 0x55d2a3168010, 2) = 16
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestFinal_ex(0x55d2a3526430, 0x55d2a31eaab8, 0, 2) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_free(0x55d2a3526430, 0, 0xcbbdf5df, 0x6f4d0cef) = 3
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_reset(0x55d2a347f150, 0, 0xffffffee, 0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestInit_ex(0x55d2a347f150, 0x55d2a3525340, 0, 4) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestUpdate(0x55d2a347f150, 0x55d2a35263f0, 18, 0x55d2a35263f0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_new(0x55d2a31ea910, 1, 0x55d2a31eaab8, 2) = 0x55d2a35263e0
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_copy_ex(0x55d2a35263e0, 0x55d2a347f150, 72, 0x55d2a35263e0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_get_size(0x55d2a3525340, -1025, 0x55d2a3168010, 2) = 16
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestFinal_ex(0x55d2a35263e0, 0x55d2a31eaab8, 0, 2) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_free(0x55d2a35263e0, 0, 0x5d349bcd, 0x77b40417) = 3
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_reset(0x55d2a347f150, 0, 0xffffffee, 0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestInit_ex(0x55d2a347f150, 0x55d2a3525340, 0, 4) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestUpdate(0x55d2a347f150, 0x55d2a34961c0, 9, 0x55d2a34961c0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_new(0x55d2a31ea910, 1, 0x55d2a31eaab8, 3) = 0x55d2a35263e0
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_copy_ex(0x55d2a35263e0, 0x55d2a347f150, 72, 0x55d2a35263e0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_get_size(0x55d2a3525340, -1025, 0x55d2a3168010, 2) = 16
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestFinal_ex(0x55d2a35263e0, 0x55d2a31eaab8, 0, 2) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_free(0x55d2a35263e0, 0, 0x732c9dae, 0x53e03c09) = 3
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_reset(0x55d2a347f150, 0x1000000, 0xffffffee, 0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestInit_ex(0x55d2a347f150, 0x55d2a3525340, 0, 4) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestUpdate(0x55d2a347f150, 0x55d2a3526490, 14, 0x55d2a3526490) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_new(0x55d2a31ea910, 1, 0x55d2a31eaab8, 3) = 0x55d2a3526480
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_copy_ex(0x55d2a3526480, 0x55d2a347f150, 72, 0x55d2a3526480) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_get_size(0x55d2a3525340, -1025, 0x55d2a3168010, 2) = 16
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestFinal_ex(0x55d2a3526480, 0x55d2a31eaab8, 0, 2) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_free(0x55d2a3526480, 0, 0x537ff04d, 0x8df18c35) = 3
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_reset(0x55d2a347f150, 0x5d005b0004000000, 0xffffffee, 0) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestInit_ex(0x55d2a347f150, 0x55d2a3525340, 0, 4) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestUpdate(0x55d2a347f150, 0x55d2a353e030, 46, 0x55d2a353e030) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_new(0x55d2a31ea910, 1, 0x55d2a31eaab8, 7) = 0x55d2a3526480
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_copy_ex(0x55d2a3526480, 0x55d2a347f150, 72, 0x55d2a3526480) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_get_size(0x55d2a3525340, -1025, 0x55d2a3168010, 2) = 16
[pid 67645] libQt6Core.so.6-&gt;EVP_DigestFinal_ex(0x55d2a3526480, 0x55d2a31eaab8, 0, 2) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_free(0x55d2a3526480, 0, 0x808c8b58, 0x54be220b) = 3
[pid 67736] +++ exited (status 0) +++
[pid 67737] --- Called exec() ---
[pid 67645] --- SIGCHLD (Child exited) ---
[pid 67737] +++ exited (status 0) +++
[pid 67645] libQt6Core.so.6-&gt;OSSL_PROVIDER_unload(0x7f8f78001ff0, 0x55d2a34da980, 0xfffffffa, 0x7f8f9f5f2b20) = 1
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_CTX_free(0x55d2a347f150, 0, 0, 0)     = 3
[pid 67645] libQt6Core.so.6-&gt;EVP_MD_free(0x55d2a3525340, 0x55d2a347f140, 0x55d2a347f, 1) = 1
[pid 67645] --- SIGSEGV (Segmentation fault) ---
[pid 67650] +++ killed by SIGSEGV +++
[pid 67654] +++ killed by SIGSEGV +++
[pid 67653] +++ killed by SIGSEGV +++
[pid 67652] +++ killed by SIGSEGV +++
[pid 67651] +++ killed by SIGSEGV +++
[pid 67649] +++ killed by SIGSEGV +++
[pid 67648] +++ killed by SIGSEGV +++
[pid 67647] +++ killed by SIGSEGV +++
[pid 67646] +++ killed by SIGSEGV +++
[pid 67645] +++ killed by SIGSEGV +++


Before those tests, I attached gdb to kwalletd6 with gdb -p $(pidof kwalletd6). I set a breakpoint with b kwalletfreedesktopservice.cpp:415. I stepped through each line. In the line auto privateKey = QCA::PrivateKey(keygen.createDH(dlGroup)); I saw that the provider and algorithm had null pointers.

(gdb) s
QCA::KeyGenerator::createDH (this=this@entry=0x7fffd8d8f0c0, domain=..., provider=...)
    at /usr/src/debug/qca-2.3.8-2.fc40.x86_64/src/qca_publickey.cpp:1265
1265        d-&gt;key         = PrivateKey();
(gdb) l
1260    PrivateKey KeyGenerator::createDH(const DLGroup &amp;domain, const QString &amp;provider)
1261    {
1262        if (isBusy())
1263            return PrivateKey();
1264
1265        d-&gt;key         = PrivateKey();
1266        d-&gt;wasBlocking = d-&gt;blocking;
1267        d-&gt;k           = static_cast&lt;DHContext *&gt;(getContext(QStringLiteral(&quot;dh&quot;), provider));
1268        d-&gt;dest        = static_cast&lt;PKeyContext *&gt;(getContext(QStringLiteral(&quot;pkey&quot;), d-&gt;k-&gt;provider()));
1269
(gdb) p d
$7 = (QCA::KeyGenerator::Private *) 0x55bcd8644770
(gdb) p d-&gt;key
$8 = {&lt;QCA::PKey&gt; = {&lt;QCA::Algorithm&gt; = {_vptr.Algorithm = 0x7fb661b8a578 &lt;vtable for QCA::PrivateKey+16&gt;, d = {
        d = 0x0}}, d = 0x55bcd834ac70}, d = 0x69007800710076}
(gdb) p domain
$9 = (const QCA::DLGroup &amp;) @0x7fffd8d8f048: {d = 0x55bcd86155d0}
(gdb) p domain-&gt;d
$10 = (QCA::DLGroup::Private *) 0x55bcd86155d0
(gdb) p *(domain-&gt;d)
$11 = {p = {d = {d = 0x55bcd86151d0}}, q = {d = {d = 0x55bcd8617f90}}, g = {d = {d = 0x55bcd835ba30}}}
(gdb) p provider
$12 = (const QString &amp;) @0x7fffd8d8f180: {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 u&apos;\000&apos;}
(gdb) p provider-&gt;d
$13 = {d = 0x0, ptr = 0x0, size = 0}
...
gdb) s
QCA::Algorithm::operator= (this=0x55bcd8644790, from=...)
    at /usr/src/debug/qca-2.3.8-2.fc40.x86_64/src/qca_core.cpp:1310
1310    {
(gdb) l
1305    Algorithm::~Algorithm()
1306    {
1307    }
1308
1309    Algorithm &amp;Algorithm::operator=(const Algorithm &amp;from)
1310    {
1311        d = from.d;
1312        return *this;
1313    }
1314
(gdb) p from
$21 = (const QCA::Algorithm &amp;) @0x7fffd8d8ef60: {_vptr.Algorithm = 0x7fb661b8a578 &lt;vtable for QCA::PrivateKey+16&gt;, d = {
    d = 0x0}}
(gdb) p from.d
$22 = {d = 0x0}
(gdb) p *this
$23 = {_vptr.Algorithm = 0x7fb661b8a578 &lt;vtable for QCA::PrivateKey+16&gt;, d = {d = 0x0}}

The programs checked various providers after that, but possibly no provider was selected due to the issue you mentioned. Then, the private key had the null pointer and kwalletd6 crashed as before.

Fedora&apos;s default crypto policy has a minimum DH key size of 2048 as I mentioned in comment 17. The DH keys generated in KWalletFreedesktopService::createSessionAlgorithmDhAes used QCA::IETF_1024. Could that be an additional check leading to the legacy providers&apos; path being used? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307201</commentid>
    <comment_count>22</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-31 04:58:06 +0000</bug_when>
    <thetext>I think I&apos;ve found why the problem happened on my system but not yours. The openssl config file /etc/pki/tls/openssl.cnf was last modified in September 2020 at the time I ran a SCAP Workbench remediation script which modified /etc/pki/tls/openssl.cnf to add lines about the Fedora crypto policies. /etc/pki/tls/openssl.cnf wasn&apos;t updated since then because rpm doesn&apos;t change config files that don&apos;t match those in the update. I moved /etc/pki/tls/openssl.cnf to /etc/pki/tls/openssl.cnf.rpmold and moved /etc/pki/tls/openssl.cnf.rpmnew from February 2024 to /etc/pki/tls/openssl.cnf. I rebooted. kwalletd6 didn&apos;t crash when I started Proton VPN GUI or logged in using it on the next boot using the new openssl config file. The newer openssl config has a section not in the older one which shows that the legacy providers are disabled unless certain lines in the following are uncommented. 

# Uncomment the sections that start with ## below to enable the legacy provider.
# Loading the legacy provider enables support for the following algorithms:
# Hashing Algorithms / Message Digests: MD2, MD4, MDC2, WHIRLPOOL, RIPEMD160
# Symmetric Ciphers: Blowfish, CAST, DES, IDEA, RC2, RC4,RC5, SEED
# Key Derivation Function (KDF): PBKDF1
# In general it is not recommended to use the above mentioned algorithms for
# security critical operations, as they are cryptographically weak or vulnerable
# to side-channel attacks and as such have been deprecated.

[provider_sect]
default = default_sect
##legacy = legacy_sect
##
[default_sect]
activate = 1

##[legacy_sect]
##activate = 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307322</commentid>
    <comment_count>23</comment_count>
    <who name="Fabian Vogt">fabian</who>
    <bug_when>2024-03-31 18:11:11 +0000</bug_when>
    <thetext>(In reply to Matt Fagnani from comment #21)
&gt; I created an OpenPGP key in KGpg. I exported my Blowfish encrypted wallet,
&gt; and then I deleted it in kwalletmanager. I created a new wallet with my
&gt; OpenPGP key in kwalletmanager. The Proton VPN GUI and kwalletd6 didn&apos;t crash
&gt; when I started the Proton VPN GUI, but when I tried to log in to Proton VPN,
&gt; kwalletd6 crashed with the same trace and an error popup like &quot;Something
&gt; went wrong. We&apos;re sorry, a problem occurred&quot; was shown in Proton VPN GUI. I
&gt; think the problem occurred when logging in instead of starting because the
&gt; wallet was empty at that point. This test and the following were with qca
&gt; 2.3.8 plus the patch in comment 11.
&gt; 
&gt; In another Plasma session, I closed the new wallet encrypted with the
&gt; OpenPGP key in kwalletmanager. I ran killall kwalletd6 twice as suggested in
&gt; comment 9. I ran OPENSSL_CONF=openssl.cnf kwalletd6 I opened the wallet in
&gt; kwalletmanager. I ran Proton VPN GUI and logged in. The login completed
&gt; without the kwalletd6 crash or the Proton VPN error happening. So this test
&gt; supports your theory.

Not sure. That openssl.cnf should be a noop and be equivalent to qca 2.3.8
with upstream default openssl config. Can you try with an empty file for OPENSSL_CONF?

&gt; I closed the wallet again in kwalletmanager. I ran killall kwalletd6 twice.
&gt; I ran ltrace -fCl &apos;libcrypto*&apos; kwalletd6. Proton VPN crashed when starting,
&gt; and kwalletd6 also crashed as shown in the following output.
&gt; 
&gt; kf.wallet.kwalletd: Lacking a socket, pipe: 0 env: 0
&gt; ...

For some weird reason it only logs QtCore -&gt; OpenSSL calls, but not those coming from QCA...
Please try &quot;ltrace -fCe &apos;DH_*+OSSL_*&apos; kwalletd6&quot;

&gt; Before those tests, I attached gdb to kwalletd6 with gdb -p $(pidof
&gt; kwalletd6). I set a breakpoint with b kwalletfreedesktopservice.cpp:415. I
&gt; stepped through each line. In the line auto privateKey =
&gt; QCA::PrivateKey(keygen.createDH(dlGroup)); I saw that the provider and
&gt; algorithm had null pointers.

FWICT that might be fine.

&gt; Fedora&apos;s default crypto policy has a minimum DH key size of 2048 as I
&gt; mentioned in comment 17. The DH keys generated in
&gt; KWalletFreedesktopService::createSessionAlgorithmDhAes used QCA::IETF_1024.

AFAICT the crypto policies only affect SSL/TLS, not use of DH_* directly.

&gt; Could that be an additional check leading to the legacy providers&apos; path
&gt; being used? Thanks.

I don&apos;t think providers have anything to do with DH_* methods which are part of OpenSSL core.

(In reply to Matt Fagnani from comment #22)
&gt; I think I&apos;ve found why the problem happened on my system but not yours. The
&gt; openssl config file /etc/pki/tls/openssl.cnf was last modified in September
&gt; 2020 at the time I ran a SCAP Workbench remediation script which modified
&gt; /etc/pki/tls/openssl.cnf to add lines about the Fedora crypto policies.
&gt; /etc/pki/tls/openssl.cnf wasn&apos;t updated since then because rpm doesn&apos;t
&gt; change config files that don&apos;t match those in the update. I moved
&gt; /etc/pki/tls/openssl.cnf to /etc/pki/tls/openssl.cnf.rpmold and moved
&gt; /etc/pki/tls/openssl.cnf.rpmnew from February 2024 to
&gt; /etc/pki/tls/openssl.cnf. I rebooted. kwalletd6 didn&apos;t crash when I started
&gt; Proton VPN GUI or logged in using it on the next boot using the new openssl
&gt; config file. The newer openssl config has a section not in the older one
&gt; which shows that the legacy providers are disabled unless certain lines in
&gt; the following are uncommented. 

That&apos;s actually the upstream default and is a noop. Can you attach the full cnf file that triggers the issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307325</commentid>
    <comment_count>24</comment_count>
      <attachid>167996</attachid>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-31 18:48:10 +0000</bug_when>
    <thetext>Created attachment 167996
Older openssl config file which the problem happened with

Thanks. I created an empty file empty.cnf. I closed the wallet in kwalletmanager. I ran killall kwalletd6 twice in Konsole. I ran OPENSSL_CONF=empty.cnf kwalletd6 I opened the wallet. I ran Proton VPN GUI which didn&apos;t appear, and kwalletd6 crashed with the same trace as before.

I&apos;m attaching the older openssl config file /etc/pki/tls/openssl.cnf from 2020 which the problem happened with. The older config doesn&apos;t mention providers. Could the lack of the section enabling default providers in the older config have led to the problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307326</commentid>
    <comment_count>25</comment_count>
      <attachid>167997</attachid>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-31 18:51:33 +0000</bug_when>
    <thetext>Created attachment 167997
ltrace output on kwalletd6 when running Proton VPN GUI twice

I ran ltrace -fCe &apos;DH_*+OSSL_*&apos; kwalletd6 with the newer default /etc/pki/tls/openssl.cnf. I ran Proton VPN GUI which didn&apos;t appear, but kwalletd6 didn&apos;t crash. I ran Proton VPN GUI again, and it showed up normally. The ltrace output seemed to show the legacy providers being checked then the DH functions being run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307333</commentid>
    <comment_count>26</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-03-31 19:40:50 +0000</bug_when>
    <thetext>I switched /etc/pki/tls/openssl.cnf back to the old config and rebooted. I closed the wallet and ran killall kwalletd6 twice. I ran ltrace -fCe &apos;DH_*+OSSL_*&apos; kwalletd6 I opened the wallet. I ran protonvpn-app which crashed. kwalletd6 crashed after some of the DH functions as shown in the output.

ltrace -fCe &apos;DH_*+OSSL_*&apos; kwalletd6
kf.wallet.kwalletd: Lacking a socket, pipe: 0 env: 0
[pid 3618] +++ exited (status 0) +++
[pid 3617] +++ exited (status 0) +++
[pid 3616] +++ exited (status 0) +++
[pid 3615] +++ exited (status 0) +++
[pid 3614] +++ exited (status 0) +++
[pid 3613] +++ exited (status 0) +++
[pid 3654] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3655] --- Called exec() ---
[pid 3655] +++ exited (status 0) +++
[pid 3656] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3657] --- Called exec() ---
[pid 3657] +++ exited (status 0) +++
[pid 3658] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3659] --- Called exec() ---
[pid 3659] +++ exited (status 0) +++
[pid 3660] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3661] --- Called exec() ---
[pid 3661] +++ exited (status 0) +++
[pid 3662] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3663] --- Called exec() ---
[pid 3663] +++ exited (status 0) +++
[pid 3664] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3665] --- Called exec() ---
[pid 3665] +++ exited (status 0) +++
[pid 3677] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3678] --- Called exec() ---
[pid 3678] +++ exited (status 0) +++
[pid 3603] libQt6Core.so.6-&gt;OSSL_PROVIDER_load(0, 0x7fb30e297499, 0x55d4cee99010, 1) = 0x7fb2e8001ff0
[pid 3682] +++ exited (status 0) +++
[pid 3603] --- SIGCHLD (Child exited) ---
[pid 3683] --- Called exec() ---
[pid 3683] +++ exited (status 0) +++
[pid 3603] libQt6Core.so.6-&gt;OSSL_PROVIDER_unload(0x7fb2e8001ff0, 0x55d4cf2530c0, 0xfffffffa, 0x7fb30d9f3b20) = 1
[pid 3603] libqca-ossl.so-&gt;OSSL_PROVIDER_try_load(0, 0x7fb2f19a10f1, 1, 0x7fb30d9f3ac0 &lt;unfinished ...&gt;
[pid 3603] legacy.so-&gt;OSSL_LIB_CTX_new_child(0x55d4cf2504b0, 0x7fb30c89f300, 24, 0x55d4cf26ac60) = 0x55d4cf25cfb0
[pid 3603] &lt;... OSSL_PROVIDER_try_load resumed&gt; )                         = 0x55d4cf2504b0
[pid 3603] libqca-ossl.so-&gt;DH_new(0x55d4cf205910, 0x55d4cf2059f0, 0x55d4cf25a630, 0) = 0x7fb2f400bd30
[pid 3603] libqca-ossl.so-&gt;DH_set0_pqg(0x7fb2f400bd30, 0x55d4cf24a2b0, 0, 0x55d4cf24a2d0) = 1
[pid 3603] libqca-ossl.so-&gt;DH_generate_key(0x7fb2f400bd30, 0x7fb30c8511c0, 16, 0xb10b8f96a080e01d) = 0
[pid 3603] libqca-ossl.so-&gt;DH_free(0x7fb2f400bd30, 0x55d4cf205c30, 0x55d19269ff25, 6) = 12
[pid 3603] libqca-ossl.so-&gt;DH_new(0x55d4cf205c08, 0, 1, 2)                = 0x7fb2f400bd30
[pid 3603] libqca-ossl.so-&gt;DH_set0_key(0x7fb2f400bd30, 0x55d4cf206bf0, 0, 1) = 1
[pid 3603] libqca-ossl.so-&gt;DH_set0_pqg(0x7fb2f400bd30, 0x55d4cf206160, 0, 0x55d4cf206180) = 1
[pid 3603] --- SIGSEGV (Segmentation fault) ---
[pid 3608] +++ killed by SIGSEGV +++
[pid 3606] +++ killed by SIGSEGV +++
[pid 3611] +++ killed by SIGSEGV +++
[pid 3612] +++ killed by SIGSEGV +++
[pid 3610] +++ killed by SIGSEGV +++
[pid 3609] +++ killed by SIGSEGV +++
[pid 3607] +++ killed by SIGSEGV +++
[pid 3605] +++ killed by SIGSEGV +++
[pid 3604] +++ killed by SIGSEGV +++
[pid 3603] +++ killed by SIGSEGV +++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307348</commentid>
    <comment_count>27</comment_count>
    <who name="Fabian Vogt">fabian</who>
    <bug_when>2024-03-31 20:12:19 +0000</bug_when>
    <thetext>(In reply to Matt Fagnani from comment #26)
&gt; I switched /etc/pki/tls/openssl.cnf back to the old config and rebooted. I
&gt; closed the wallet and ran killall kwalletd6 twice. I ran ltrace -fCe
&gt; &apos;DH_*+OSSL_*&apos; kwalletd6 I opened the wallet. I ran protonvpn-app which
&gt; crashed. kwalletd6 crashed after some of the DH functions as shown in the
&gt; output.
&gt; 
&gt; ltrace -fCe &apos;DH_*+OSSL_*&apos; kwalletd6
...
&gt; [pid 3603] libQt6Core.so.6-&gt;OSSL_PROVIDER_load(0, 0x7fb30e297499,
&gt; 0x55d4cee99010, 1) = 0x7fb2e8001ff0
&gt; [pid 3682] +++ exited (status 0) +++
&gt; [pid 3603] --- SIGCHLD (Child exited) ---
&gt; [pid 3683] --- Called exec() ---
&gt; [pid 3683] +++ exited (status 0) +++
&gt; [pid 3603] libQt6Core.so.6-&gt;OSSL_PROVIDER_unload(0x7fb2e8001ff0,
&gt; 0x55d4cf2530c0, 0xfffffffa, 0x7fb30d9f3b20) = 1

This caught my attention now, I don&apos;t get this here. Looking at the code, this is only in Qt since https://github.com/qt/qtbase/commit/ddb1c75afe474e399fe9f5f839a9ac3873dee247 and would actually explain what happens.

By default, OpenSSL loads the &quot;DEFAULT&quot; provider, but only if no other provider was loaded. That disables this logic:

https://www.openssl.org/docs/manmaster/man7/OSSL_PROVIDER-default.html:
&gt; Automatic loading of the default provider only occurs a maximum of once; if the default provider is explicitly unloaded then the default provider will not be automatically loaded again.

It appears like Fedora backported the linked Qt commit, so Qt itself loads and unloads the DEFAULT provider.

&gt; [pid 3603] libqca-ossl.so-&gt;OSSL_PROVIDER_try_load(0, 0x7fb2f19a10f1, 1,
&gt; 0x7fb30d9f3ac0 &lt;unfinished ...&gt;
&gt; [pid 3603] legacy.so-&gt;OSSL_LIB_CTX_new_child(0x55d4cf2504b0, 0x7fb30c89f300,
&gt; 24, 0x55d4cf26ac60) = 0x55d4cf25cfb0
&gt; [pid 3603] &lt;... OSSL_PROVIDER_try_load resumed&gt; )                         =
&gt; 0x55d4cf2504b0
&gt; [pid 3603] libqca-ossl.so-&gt;DH_new(0x55d4cf205910, 0x55d4cf2059f0,
&gt; 0x55d4cf25a630, 0) = 0x7fb2f400bd30
&gt; [pid 3603] libqca-ossl.so-&gt;DH_set0_pqg(0x7fb2f400bd30, 0x55d4cf24a2b0, 0,
&gt; 0x55d4cf24a2d0) = 1
&gt; [pid 3603] libqca-ossl.so-&gt;DH_generate_key(0x7fb2f400bd30, 0x7fb30c8511c0,
&gt; 16, 0xb10b8f96a080e01d) = 0

As expected, DH_generate_key fails, causing the returned key to be null.

The Qt behavior also explains why it works with the config in comments 20 and 22, those load the default provider explicitly.

I&apos;ll leave a comment on https://bugreports.qt.io/browse/QTBUG-118227. I&apos;m not sure whether this is the right fix, but this should work:

diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp
index f41fcbb5..0176da3b 100644
--- a/plugins/qca-ossl/qca-ossl.cpp
+++ b/plugins/qca-ossl/qca-ossl.cpp
@@ -6637,6 +6637,8 @@ public:
         if (OSSL_PROVIDER_try_load(nullptr, &quot;legacy&quot;, 1)) {
             s_legacyProviderAvailable = true;
         }
+        // No idea how to report failure here...
+        OSSL_PROVIDER_try_load(nullptr, &quot;default&quot;, 1);
 #else
         s_legacyProviderAvailable = true;
 #endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307402</commentid>
    <comment_count>28</comment_count>
    <who name="Matt Fagnani">matt.fagnani</who>
    <bug_when>2024-04-01 02:30:05 +0000</bug_when>
    <thetext>I built qca 2.3.8 with your patch and the one in comment 11 and upgraded to it. I logged out and in. Using the steps as before, I ran kwalletd6 with the old config like OPENSSL_CONF=/etc/pki/tls/openssl.cnf.rpmold kwalletd6. protonvpn-app started normally and kwalletd6 didn&apos;t crash. I did likewise with the empty config, and protonvpn-app and kwalletd6 didn&apos;t crash. Thanks. The patch for https://bugreports.qt.io/browse/QTBUG-118227 looks like it was included in Qt 6.6.1 there and I&apos;m using 6.6.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2307738</commentid>
    <comment_count>29</comment_count>
    <who name="Fabian Vogt">fabian</who>
    <bug_when>2024-04-02 11:56:04 +0000</bug_when>
    <thetext>Ok, that confirms it. I&apos;ll ask around to figure out how both Qt and QCA should use the provider API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2523946</commentid>
    <comment_count>30</comment_count>
    <who name="TraceyC">kdedev</who>
    <bug_when>2026-06-17 19:29:51 +0000</bug_when>
    <thetext>*** Bug 521554 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2523948</commentid>
    <comment_count>31</comment_count>
    <who name="TraceyC">kdedev</who>
    <bug_when>2026-06-17 19:31:50 +0000</bug_when>
    <thetext>There&apos;s now another report of this crash, qca 2.3.10 but that&apos;s not in the version list.
It happened after a system update to Plasma 6.7.0 and reboot, no VPN involved
&gt; KDE wallet crashed almost instantly after opening firefox and steam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2536269</commentid>
    <comment_count>32</comment_count>
    <who name="Nekto Oleg">27015</who>
    <bug_when>2026-08-03 19:29:37 +0000</bug_when>
    <thetext>Git commit a818965a3e67f1212ee5fed1d70a9a8b4ced8dcc by Nekto Oleg.
Committed on 02/08/2026 at 05:15.
Pushed by aacid into branch &apos;master&apos;.

qca-ossl: load the default OpenSSL provider explicitly

Activating any provider disables OpenSSL 3&apos;s implicit loading of the
default one. Qt unloads the default provider while setting up its TLS
backend, so loading only the legacy provider afterwards leaves the
library context without the algorithms DH key generation needs.
DH_generate_key() then fails silently and PrivateKey::deriveKey()
dereferences the resulting null key.

Applications reach this through the Secret Service API: ksecretd
segfaults in deriveKey() whenever a client opens a session using the
dh-ietf1024-sha256-aes128-cbc-pkcs7 algorithm, which is what every
libsecret-based client requests.

Loading the default provider is a no-op when it is already present, so
setups that were never affected keep their current behaviour.
FIXED-IN: 2.3.11

M  +5    -0    plugins/qca-ossl/qca-ossl.cpp

https://invent.kde.org/libraries/qca/-/commit/a818965a3e67f1212ee5fed1d70a9a8b4ced8dcc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2536270</commentid>
    <comment_count>33</comment_count>
    <who name="Nekto Oleg">27015</who>
    <bug_when>2026-08-03 19:29:45 +0000</bug_when>
    <thetext>Git commit f2032d5dd5e7470d02ceeca581044b8b99322755 by Nekto Oleg.
Committed on 02/08/2026 at 19:04.
Pushed by aacid into branch &apos;master&apos;.

qca-ossl: do not dereference a DH key that failed to generate

DHKeyMaker::run() leaves its result null when DH_generate_key() fails.
km_finished() then skips key setup but still reports completion, so
deriveKey() receives a context whose EVP_PKEY is null and hands it to
DH_size(). Check both keys and return an empty SymmetricKey instead,
matching what the function already does when DH_compute_key() fails.

testDH() could not have caught this: its guard required DH to appear in
supportedIOTypes(), which never happens because DH keys are not
serialisable, so the test skipped on every run. Drop that condition - the
test only generates keys - and add coverage for deriveKey() itself, which
was not exercised anywhere.

M  +10   -2    plugins/qca-ossl/qca-ossl.cpp
M  +31   -2    unittest/keygenunittest/keygenunittest.cpp

https://invent.kde.org/libraries/qca/-/commit/f2032d5dd5e7470d02ceeca581044b8b99322755</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>167996</attachid>
            <date>2024-03-31 18:48:10 +0000</date>
            <delta_ts>2024-03-31 18:48:10 +0000</delta_ts>
            <desc>Older openssl config file which the problem happened with</desc>
            <filename>openssl.cnf.rpmold</filename>
            <type>text/plain</type>
            <size>11287</size>
            <attacher name="Matt Fagnani">matt.fagnani</attacher>
            
              <data encoding="base64">IwojIE9wZW5TU0wgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUuCiMgVGhpcyBpcyBtb3N0bHkg
YmVpbmcgdXNlZCBmb3IgZ2VuZXJhdGlvbiBvZiBjZXJ0aWZpY2F0ZSByZXF1ZXN0cy4KIwoKIyBO
b3RlIHRoYXQgeW91IGNhbiBpbmNsdWRlIG90aGVyIGZpbGVzIGZyb20gdGhlIG1haW4gY29uZmln
dXJhdGlvbgojIGZpbGUgdXNpbmcgdGhlIC5pbmNsdWRlIGRpcmVjdGl2ZS4KIy5pbmNsdWRlIGZp
bGVuYW1lCgojIFRoaXMgZGVmaW5pdGlvbiBzdG9wcyB0aGUgZm9sbG93aW5nIGxpbmVzIGNob2tp
bmcgaWYgSE9NRSBpc24ndAojIGRlZmluZWQuCkhPTUUJCQk9IC4KCiMgRXh0cmEgT0JKRUNUIElE
RU5USUZJRVIgaW5mbzoKI29pZF9maWxlCQk9ICRFTlY6OkhPTUUvLm9pZApvaWRfc2VjdGlvbgkJ
PSBuZXdfb2lkcwoKIyBUbyB1c2UgdGhpcyBjb25maWd1cmF0aW9uIGZpbGUgd2l0aCB0aGUgIi1l
eHRmaWxlIiBvcHRpb24gb2YgdGhlCiMgIm9wZW5zc2wgeDUwOSIgdXRpbGl0eSwgbmFtZSBoZXJl
IHRoZSBzZWN0aW9uIGNvbnRhaW5pbmcgdGhlCiMgWC41MDl2MyBleHRlbnNpb25zIHRvIHVzZToK
IyBleHRlbnNpb25zCQk9CiMgKEFsdGVybmF0aXZlbHksIHVzZSBhIGNvbmZpZ3VyYXRpb24gZmls
ZSB0aGF0IGhhcyBvbmx5CiMgWC41MDl2MyBleHRlbnNpb25zIGluIGl0cyBtYWluIFs9IGRlZmF1
bHRdIHNlY3Rpb24uKQoKIyBMb2FkIGRlZmF1bHQgVExTIHBvbGljeSBjb25maWd1cmF0aW9uCgpv
cGVuc3NsX2NvbmYgPSBkZWZhdWx0X21vZHVsZXMKClsgZGVmYXVsdF9tb2R1bGVzIF0KCnNzbF9j
b25mID0gc3NsX21vZHVsZQoKWyBzc2xfbW9kdWxlIF0KCnN5c3RlbV9kZWZhdWx0ID0gY3J5cHRv
X3BvbGljeQoKWyBjcnlwdG9fcG9saWN5IF0KCi5pbmNsdWRlIC9ldGMvY3J5cHRvLXBvbGljaWVz
L2JhY2stZW5kcy9vcGVuc3NsY25mLmNvbmZpZwoKCi5pbmNsdWRlID0gL2V0Yy9jcnlwdG8tcG9s
aWNpZXMvYmFjay1lbmRzL29wZW5zc2xjbmYuY29uZmlnCgpbIG5ld19vaWRzIF0KCiMgV2UgY2Fu
IGFkZCBuZXcgT0lEcyBpbiBoZXJlIGZvciB1c2UgYnkgJ2NhJywgJ3JlcScgYW5kICd0cycuCiMg
QWRkIGEgc2ltcGxlIE9JRCBsaWtlIHRoaXM6CiMgdGVzdG9pZDE9MS4yLjMuNAojIE9yIHVzZSBj
b25maWcgZmlsZSBzdWJzdGl0dXRpb24gbGlrZSB0aGlzOgojIHRlc3RvaWQyPSR7dGVzdG9pZDF9
LjUuNgoKIyBQb2xpY2llcyB1c2VkIGJ5IHRoZSBUU0EgZXhhbXBsZXMuCnRzYV9wb2xpY3kxID0g
MS4yLjMuNC4xCnRzYV9wb2xpY3kyID0gMS4yLjMuNC41LjYKdHNhX3BvbGljeTMgPSAxLjIuMy40
LjUuNwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMKWyBjYSBdCmRlZmF1bHRfY2EJPSBDQV9kZWZhdWx0CQkjIFRoZSBk
ZWZhdWx0IGNhIHNlY3Rpb24KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClsgQ0FfZGVmYXVsdCBdCgpkaXIJCT0gL2V0
Yy9wa2kvQ0EJCSMgV2hlcmUgZXZlcnl0aGluZyBpcyBrZXB0CmNlcnRzCQk9ICRkaXIvY2VydHMJ
CSMgV2hlcmUgdGhlIGlzc3VlZCBjZXJ0cyBhcmUga2VwdApjcmxfZGlyCQk9ICRkaXIvY3JsCQkj
IFdoZXJlIHRoZSBpc3N1ZWQgY3JsIGFyZSBrZXB0CmRhdGFiYXNlCT0gJGRpci9pbmRleC50eHQJ
IyBkYXRhYmFzZSBpbmRleCBmaWxlLgojdW5pcXVlX3N1YmplY3QJPSBubwkJCSMgU2V0IHRvICdu
bycgdG8gYWxsb3cgY3JlYXRpb24gb2YKCQkJCQkjIHNldmVyYWwgY2VydHMgd2l0aCBzYW1lIHN1
YmplY3QuCm5ld19jZXJ0c19kaXIJPSAkZGlyL25ld2NlcnRzCQkjIGRlZmF1bHQgcGxhY2UgZm9y
IG5ldyBjZXJ0cy4KCmNlcnRpZmljYXRlCT0gJGRpci9jYWNlcnQucGVtIAkjIFRoZSBDQSBjZXJ0
aWZpY2F0ZQpzZXJpYWwJCT0gJGRpci9zZXJpYWwgCQkjIFRoZSBjdXJyZW50IHNlcmlhbCBudW1i
ZXIKY3JsbnVtYmVyCT0gJGRpci9jcmxudW1iZXIJIyB0aGUgY3VycmVudCBjcmwgbnVtYmVyCgkJ
CQkJIyBtdXN0IGJlIGNvbW1lbnRlZCBvdXQgdG8gbGVhdmUgYSBWMSBDUkwKY3JsCQk9ICRkaXIv
Y3JsLnBlbSAJCSMgVGhlIGN1cnJlbnQgQ1JMCnByaXZhdGVfa2V5CT0gJGRpci9wcml2YXRlL2Nh
a2V5LnBlbSMgVGhlIHByaXZhdGUga2V5Cgp4NTA5X2V4dGVuc2lvbnMJPSB1c3JfY2VydAkJIyBU
aGUgZXh0ZW5zaW9ucyB0byBhZGQgdG8gdGhlIGNlcnQKCiMgQ29tbWVudCBvdXQgdGhlIGZvbGxv
d2luZyB0d28gbGluZXMgZm9yIHRoZSAidHJhZGl0aW9uYWwiCiMgKGFuZCBoaWdobHkgYnJva2Vu
KSBmb3JtYXQuCm5hbWVfb3B0IAk9IGNhX2RlZmF1bHQJCSMgU3ViamVjdCBOYW1lIG9wdGlvbnMK
Y2VydF9vcHQgCT0gY2FfZGVmYXVsdAkJIyBDZXJ0aWZpY2F0ZSBmaWVsZCBvcHRpb25zCgojIEV4
dGVuc2lvbiBjb3B5aW5nIG9wdGlvbjogdXNlIHdpdGggY2F1dGlvbi4KIyBjb3B5X2V4dGVuc2lv
bnMgPSBjb3B5CgojIEV4dGVuc2lvbnMgdG8gYWRkIHRvIGEgQ1JMLiBOb3RlOiBOZXRzY2FwZSBj
b21tdW5pY2F0b3IgY2hva2VzIG9uIFYyIENSTHMKIyBzbyB0aGlzIGlzIGNvbW1lbnRlZCBvdXQg
YnkgZGVmYXVsdCB0byBsZWF2ZSBhIFYxIENSTC4KIyBjcmxudW1iZXIgbXVzdCBhbHNvIGJlIGNv
bW1lbnRlZCBvdXQgdG8gbGVhdmUgYSBWMSBDUkwuCiMgY3JsX2V4dGVuc2lvbnMJPSBjcmxfZXh0
CgpkZWZhdWx0X2RheXMJPSAzNjUJCQkjIGhvdyBsb25nIHRvIGNlcnRpZnkgZm9yCmRlZmF1bHRf
Y3JsX2RheXM9IDMwCQkJIyBob3cgbG9uZyBiZWZvcmUgbmV4dCBDUkwKZGVmYXVsdF9tZAk9IHNo
YTI1NgkJIyB1c2UgU0hBLTI1NiBieSBkZWZhdWx0CnByZXNlcnZlCT0gbm8JCQkjIGtlZXAgcGFz
c2VkIEROIG9yZGVyaW5nCgojIEEgZmV3IGRpZmZlcmVuY2Ugd2F5IG9mIHNwZWNpZnlpbmcgaG93
IHNpbWlsYXIgdGhlIHJlcXVlc3Qgc2hvdWxkIGxvb2sKIyBGb3IgdHlwZSBDQSwgdGhlIGxpc3Rl
ZCBhdHRyaWJ1dGVzIG11c3QgYmUgdGhlIHNhbWUsIGFuZCB0aGUgb3B0aW9uYWwKIyBhbmQgc3Vw
cGxpZWQgZmllbGRzIGFyZSBqdXN0IHRoYXQgOi0pCnBvbGljeQkJPSBwb2xpY3lfbWF0Y2gKCiMg
Rm9yIHRoZSBDQSBwb2xpY3kKWyBwb2xpY3lfbWF0Y2ggXQpjb3VudHJ5TmFtZQkJPSBtYXRjaApz
dGF0ZU9yUHJvdmluY2VOYW1lCT0gbWF0Y2gKb3JnYW5pemF0aW9uTmFtZQk9IG1hdGNoCm9yZ2Fu
aXphdGlvbmFsVW5pdE5hbWUJPSBvcHRpb25hbApjb21tb25OYW1lCQk9IHN1cHBsaWVkCmVtYWls
QWRkcmVzcwkJPSBvcHRpb25hbAoKIyBGb3IgdGhlICdhbnl0aGluZycgcG9saWN5CiMgQXQgdGhp
cyBwb2ludCBpbiB0aW1lLCB5b3UgbXVzdCBsaXN0IGFsbCBhY2NlcHRhYmxlICdvYmplY3QnCiMg
dHlwZXMuClsgcG9saWN5X2FueXRoaW5nIF0KY291bnRyeU5hbWUJCT0gb3B0aW9uYWwKc3RhdGVP
clByb3ZpbmNlTmFtZQk9IG9wdGlvbmFsCmxvY2FsaXR5TmFtZQkJPSBvcHRpb25hbApvcmdhbml6
YXRpb25OYW1lCT0gb3B0aW9uYWwKb3JnYW5pemF0aW9uYWxVbml0TmFtZQk9IG9wdGlvbmFsCmNv
bW1vbk5hbWUJCT0gc3VwcGxpZWQKZW1haWxBZGRyZXNzCQk9IG9wdGlvbmFsCgojIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IwpbIHJlcSBdCmRlZmF1bHRfYml0cwkJPSAyMDQ4CmRlZmF1bHRfbWQJCT0gc2hhMjU2CmRlZmF1
bHRfa2V5ZmlsZSAJPSBwcml2a2V5LnBlbQpkaXN0aW5ndWlzaGVkX25hbWUJPSByZXFfZGlzdGlu
Z3Vpc2hlZF9uYW1lCmF0dHJpYnV0ZXMJCT0gcmVxX2F0dHJpYnV0ZXMKeDUwOV9leHRlbnNpb25z
CT0gdjNfY2EJIyBUaGUgZXh0ZW5zaW9ucyB0byBhZGQgdG8gdGhlIHNlbGYgc2lnbmVkIGNlcnQK
CiMgUGFzc3dvcmRzIGZvciBwcml2YXRlIGtleXMgaWYgbm90IHByZXNlbnQgdGhleSB3aWxsIGJl
IHByb21wdGVkIGZvcgojIGlucHV0X3Bhc3N3b3JkID0gc2VjcmV0CiMgb3V0cHV0X3Bhc3N3b3Jk
ID0gc2VjcmV0CgojIFRoaXMgc2V0cyBhIG1hc2sgZm9yIHBlcm1pdHRlZCBzdHJpbmcgdHlwZXMu
IFRoZXJlIGFyZSBzZXZlcmFsIG9wdGlvbnMuCiMgZGVmYXVsdDogUHJpbnRhYmxlU3RyaW5nLCBU
NjFTdHJpbmcsIEJNUFN0cmluZy4KIyBwa2l4CSA6IFByaW50YWJsZVN0cmluZywgQk1QU3RyaW5n
IChQS0lYIHJlY29tbWVuZGF0aW9uIGJlZm9yZSAyMDA0KQojIHV0Zjhvbmx5OiBvbmx5IFVURjhT
dHJpbmdzIChQS0lYIHJlY29tbWVuZGF0aW9uIGFmdGVyIDIwMDQpLgojIG5vbWJzdHIgOiBQcmlu
dGFibGVTdHJpbmcsIFQ2MVN0cmluZyAobm8gQk1QU3RyaW5ncyBvciBVVEY4U3RyaW5ncykuCiMg
TUFTSzpYWFhYIGEgbGl0ZXJhbCBtYXNrIHZhbHVlLgojIFdBUk5JTkc6IGFuY2llbnQgdmVyc2lv
bnMgb2YgTmV0c2NhcGUgY3Jhc2ggb24gQk1QU3RyaW5ncyBvciBVVEY4U3RyaW5ncy4Kc3RyaW5n
X21hc2sgPSB1dGY4b25seQoKIyByZXFfZXh0ZW5zaW9ucyA9IHYzX3JlcSAjIFRoZSBleHRlbnNp
b25zIHRvIGFkZCB0byBhIGNlcnRpZmljYXRlIHJlcXVlc3QKClsgcmVxX2Rpc3Rpbmd1aXNoZWRf
bmFtZSBdCmNvdW50cnlOYW1lCQkJPSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpCmNvdW50
cnlOYW1lX2RlZmF1bHQJCT0gWFgKY291bnRyeU5hbWVfbWluCQkJPSAyCmNvdW50cnlOYW1lX21h
eAkJCT0gMgoKc3RhdGVPclByb3ZpbmNlTmFtZQkJPSBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChm
dWxsIG5hbWUpCiNzdGF0ZU9yUHJvdmluY2VOYW1lX2RlZmF1bHQJPSBEZWZhdWx0IFByb3ZpbmNl
Cgpsb2NhbGl0eU5hbWUJCQk9IExvY2FsaXR5IE5hbWUgKGVnLCBjaXR5KQpsb2NhbGl0eU5hbWVf
ZGVmYXVsdAkJPSBEZWZhdWx0IENpdHkKCjAub3JnYW5pemF0aW9uTmFtZQkJPSBPcmdhbml6YXRp
b24gTmFtZSAoZWcsIGNvbXBhbnkpCjAub3JnYW5pemF0aW9uTmFtZV9kZWZhdWx0CT0gRGVmYXVs
dCBDb21wYW55IEx0ZAoKIyB3ZSBjYW4gZG8gdGhpcyBidXQgaXQgaXMgbm90IG5lZWRlZCBub3Jt
YWxseSA6LSkKIzEub3JnYW5pemF0aW9uTmFtZQkJPSBTZWNvbmQgT3JnYW5pemF0aW9uIE5hbWUg
KGVnLCBjb21wYW55KQojMS5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQJPSBXb3JsZCBXaWRlIFdl
YiBQdHkgTHRkCgpvcmdhbml6YXRpb25hbFVuaXROYW1lCQk9IE9yZ2FuaXphdGlvbmFsIFVuaXQg
TmFtZSAoZWcsIHNlY3Rpb24pCiNvcmdhbml6YXRpb25hbFVuaXROYW1lX2RlZmF1bHQJPQoKY29t
bW9uTmFtZQkJCT0gQ29tbW9uIE5hbWUgKGVnLCB5b3VyIG5hbWUgb3IgeW91ciBzZXJ2ZXJcJ3Mg
aG9zdG5hbWUpCmNvbW1vbk5hbWVfbWF4CQkJPSA2NAoKZW1haWxBZGRyZXNzCQkJPSBFbWFpbCBB
ZGRyZXNzCmVtYWlsQWRkcmVzc19tYXgJCT0gNjQKCiMgU0VULWV4MwkJCT0gU0VUIGV4dGVuc2lv
biBudW1iZXIgMwoKWyByZXFfYXR0cmlidXRlcyBdCmNoYWxsZW5nZVBhc3N3b3JkCQk9IEEgY2hh
bGxlbmdlIHBhc3N3b3JkCmNoYWxsZW5nZVBhc3N3b3JkX21pbgkJPSA0CmNoYWxsZW5nZVBhc3N3
b3JkX21heAkJPSAyMAoKdW5zdHJ1Y3R1cmVkTmFtZQkJPSBBbiBvcHRpb25hbCBjb21wYW55IG5h
bWUKClsgdXNyX2NlcnQgXQoKIyBUaGVzZSBleHRlbnNpb25zIGFyZSBhZGRlZCB3aGVuICdjYScg
c2lnbnMgYSByZXF1ZXN0LgoKIyBUaGlzIGdvZXMgYWdhaW5zdCBQS0lYIGd1aWRlbGluZXMgYnV0
IHNvbWUgQ0FzIGRvIGl0IGFuZCBzb21lIHNvZnR3YXJlCiMgcmVxdWlyZXMgdGhpcyB0byBhdm9p
ZCBpbnRlcnByZXRpbmcgYW4gZW5kIHVzZXIgY2VydGlmaWNhdGUgYXMgYSBDQS4KCmJhc2ljQ29u
c3RyYWludHM9Q0E6RkFMU0UKCiMgSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiB0aGUgdXNhZ2Ug
b2YgbnNDZXJ0VHlwZS4gSWYgaXQgaXMgb21pdHRlZAojIHRoZSBjZXJ0aWZpY2F0ZSBjYW4gYmUg
dXNlZCBmb3IgYW55dGhpbmcgKmV4Y2VwdCogb2JqZWN0IHNpZ25pbmcuCgojIFRoaXMgaXMgT0sg
Zm9yIGFuIFNTTCBzZXJ2ZXIuCiMgbnNDZXJ0VHlwZQkJCT0gc2VydmVyCgojIEZvciBhbiBvYmpl
Y3Qgc2lnbmluZyBjZXJ0aWZpY2F0ZSB0aGlzIHdvdWxkIGJlIHVzZWQuCiMgbnNDZXJ0VHlwZSA9
IG9ianNpZ24KCiMgRm9yIG5vcm1hbCBjbGllbnQgdXNlIHRoaXMgaXMgdHlwaWNhbAojIG5zQ2Vy
dFR5cGUgPSBjbGllbnQsIGVtYWlsCgojIGFuZCBmb3IgZXZlcnl0aGluZyBpbmNsdWRpbmcgb2Jq
ZWN0IHNpZ25pbmc6CiMgbnNDZXJ0VHlwZSA9IGNsaWVudCwgZW1haWwsIG9ianNpZ24KCiMgVGhp
cyBpcyB0eXBpY2FsIGluIGtleVVzYWdlIGZvciBhIGNsaWVudCBjZXJ0aWZpY2F0ZS4KIyBrZXlV
c2FnZSA9IG5vblJlcHVkaWF0aW9uLCBkaWdpdGFsU2lnbmF0dXJlLCBrZXlFbmNpcGhlcm1lbnQK
CiMgVGhpcyB3aWxsIGJlIGRpc3BsYXllZCBpbiBOZXRzY2FwZSdzIGNvbW1lbnQgbGlzdGJveC4K
bnNDb21tZW50CQkJPSAiT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUiCgojIFBLSVggcmVj
b21tZW5kYXRpb25zIGhhcm1sZXNzIGlmIGluY2x1ZGVkIGluIGFsbCBjZXJ0aWZpY2F0ZXMuCnN1
YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKYXV0aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZCxpc3N1
ZXIKCiMgVGhpcyBzdHVmZiBpcyBmb3Igc3ViamVjdEFsdE5hbWUgYW5kIGlzc3VlckFsdG5hbWUu
CiMgSW1wb3J0IHRoZSBlbWFpbCBhZGRyZXNzLgojIHN1YmplY3RBbHROYW1lPWVtYWlsOmNvcHkK
IyBBbiBhbHRlcm5hdGl2ZSB0byBwcm9kdWNlIGNlcnRpZmljYXRlcyB0aGF0IGFyZW4ndAojIGRl
cHJlY2F0ZWQgYWNjb3JkaW5nIHRvIFBLSVguCiMgc3ViamVjdEFsdE5hbWU9ZW1haWw6bW92ZQoK
IyBDb3B5IHN1YmplY3QgZGV0YWlscwojIGlzc3VlckFsdE5hbWU9aXNzdWVyOmNvcHkKCiNuc0Nh
UmV2b2NhdGlvblVybAkJPSBodHRwOi8vd3d3LmRvbWFpbi5kb20vY2EtY3JsLnBlbQojbnNCYXNl
VXJsCiNuc1Jldm9jYXRpb25VcmwKI25zUmVuZXdhbFVybAojbnNDYVBvbGljeVVybAojbnNTc2xT
ZXJ2ZXJOYW1lCgojIFRoaXMgaXMgcmVxdWlyZWQgZm9yIFRTQSBjZXJ0aWZpY2F0ZXMuCiMgZXh0
ZW5kZWRLZXlVc2FnZSA9IGNyaXRpY2FsLHRpbWVTdGFtcGluZwoKWyB2M19yZXEgXQoKIyBFeHRl
bnNpb25zIHRvIGFkZCB0byBhIGNlcnRpZmljYXRlIHJlcXVlc3QKCmJhc2ljQ29uc3RyYWludHMg
PSBDQTpGQUxTRQprZXlVc2FnZSA9IG5vblJlcHVkaWF0aW9uLCBkaWdpdGFsU2lnbmF0dXJlLCBr
ZXlFbmNpcGhlcm1lbnQKClsgdjNfY2EgXQoKCiMgRXh0ZW5zaW9ucyBmb3IgYSB0eXBpY2FsIENB
CgoKIyBQS0lYIHJlY29tbWVuZGF0aW9uLgoKc3ViamVjdEtleUlkZW50aWZpZXI9aGFzaAoKYXV0
aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZDphbHdheXMsaXNzdWVyCgpiYXNpY0NvbnN0cmFpbnRz
ID0gY3JpdGljYWwsQ0E6dHJ1ZQoKIyBLZXkgdXNhZ2U6IHRoaXMgaXMgdHlwaWNhbCBmb3IgYSBD
QSBjZXJ0aWZpY2F0ZS4gSG93ZXZlciBzaW5jZSBpdCB3aWxsCiMgcHJldmVudCBpdCBiZWluZyB1
c2VkIGFzIGFuIHRlc3Qgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgaXQgaXMgYmVzdAojIGxlZnQg
b3V0IGJ5IGRlZmF1bHQuCiMga2V5VXNhZ2UgPSBjUkxTaWduLCBrZXlDZXJ0U2lnbgoKIyBTb21l
IG1pZ2h0IHdhbnQgdGhpcyBhbHNvCiMgbnNDZXJ0VHlwZSA9IHNzbENBLCBlbWFpbENBCgojIElu
Y2x1ZGUgZW1haWwgYWRkcmVzcyBpbiBzdWJqZWN0IGFsdCBuYW1lOiBhbm90aGVyIFBLSVggcmVj
b21tZW5kYXRpb24KIyBzdWJqZWN0QWx0TmFtZT1lbWFpbDpjb3B5CiMgQ29weSBpc3N1ZXIgZGV0
YWlscwojIGlzc3VlckFsdE5hbWU9aXNzdWVyOmNvcHkKCiMgREVSIGhleCBlbmNvZGluZyBvZiBh
biBleHRlbnNpb246IGJld2FyZSBleHBlcnRzIG9ubHkhCiMgb2JqPURFUjowMjowMwojIFdoZXJl
ICdvYmonIGlzIGEgc3RhbmRhcmQgb3IgYWRkZWQgb2JqZWN0CiMgWW91IGNhbiBldmVuIG92ZXJy
aWRlIGEgc3VwcG9ydGVkIGV4dGVuc2lvbjoKIyBiYXNpY0NvbnN0cmFpbnRzPSBjcml0aWNhbCwg
REVSOjMwOjAzOjAxOjAxOkZGCgpbIGNybF9leHQgXQoKIyBDUkwgZXh0ZW5zaW9ucy4KIyBPbmx5
IGlzc3VlckFsdE5hbWUgYW5kIGF1dGhvcml0eUtleUlkZW50aWZpZXIgbWFrZSBhbnkgc2Vuc2Ug
aW4gYSBDUkwuCgojIGlzc3VlckFsdE5hbWU9aXNzdWVyOmNvcHkKYXV0aG9yaXR5S2V5SWRlbnRp
Zmllcj1rZXlpZDphbHdheXMKClsgcHJveHlfY2VydF9leHQgXQojIFRoZXNlIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFkZGVkIHdoZW4gY3JlYXRpbmcgYSBwcm94eSBjZXJ0aWZpY2F0ZQoKIyBUaGlz
IGdvZXMgYWdhaW5zdCBQS0lYIGd1aWRlbGluZXMgYnV0IHNvbWUgQ0FzIGRvIGl0IGFuZCBzb21l
IHNvZnR3YXJlCiMgcmVxdWlyZXMgdGhpcyB0byBhdm9pZCBpbnRlcnByZXRpbmcgYW4gZW5kIHVz
ZXIgY2VydGlmaWNhdGUgYXMgYSBDQS4KCmJhc2ljQ29uc3RyYWludHM9Q0E6RkFMU0UKCiMgSGVy
ZSBhcmUgc29tZSBleGFtcGxlcyBvZiB0aGUgdXNhZ2Ugb2YgbnNDZXJ0VHlwZS4gSWYgaXQgaXMg
b21pdHRlZAojIHRoZSBjZXJ0aWZpY2F0ZSBjYW4gYmUgdXNlZCBmb3IgYW55dGhpbmcgKmV4Y2Vw
dCogb2JqZWN0IHNpZ25pbmcuCgojIFRoaXMgaXMgT0sgZm9yIGFuIFNTTCBzZXJ2ZXIuCiMgbnND
ZXJ0VHlwZQkJCT0gc2VydmVyCgojIEZvciBhbiBvYmplY3Qgc2lnbmluZyBjZXJ0aWZpY2F0ZSB0
aGlzIHdvdWxkIGJlIHVzZWQuCiMgbnNDZXJ0VHlwZSA9IG9ianNpZ24KCiMgRm9yIG5vcm1hbCBj
bGllbnQgdXNlIHRoaXMgaXMgdHlwaWNhbAojIG5zQ2VydFR5cGUgPSBjbGllbnQsIGVtYWlsCgoj
IGFuZCBmb3IgZXZlcnl0aGluZyBpbmNsdWRpbmcgb2JqZWN0IHNpZ25pbmc6CiMgbnNDZXJ0VHlw
ZSA9IGNsaWVudCwgZW1haWwsIG9ianNpZ24KCiMgVGhpcyBpcyB0eXBpY2FsIGluIGtleVVzYWdl
IGZvciBhIGNsaWVudCBjZXJ0aWZpY2F0ZS4KIyBrZXlVc2FnZSA9IG5vblJlcHVkaWF0aW9uLCBk
aWdpdGFsU2lnbmF0dXJlLCBrZXlFbmNpcGhlcm1lbnQKCiMgVGhpcyB3aWxsIGJlIGRpc3BsYXll
ZCBpbiBOZXRzY2FwZSdzIGNvbW1lbnQgbGlzdGJveC4KbnNDb21tZW50CQkJPSAiT3BlblNTTCBH
ZW5lcmF0ZWQgQ2VydGlmaWNhdGUiCgojIFBLSVggcmVjb21tZW5kYXRpb25zIGhhcm1sZXNzIGlm
IGluY2x1ZGVkIGluIGFsbCBjZXJ0aWZpY2F0ZXMuCnN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gK
YXV0aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZCxpc3N1ZXIKCiMgVGhpcyBzdHVmZiBpcyBmb3Ig
c3ViamVjdEFsdE5hbWUgYW5kIGlzc3VlckFsdG5hbWUuCiMgSW1wb3J0IHRoZSBlbWFpbCBhZGRy
ZXNzLgojIHN1YmplY3RBbHROYW1lPWVtYWlsOmNvcHkKIyBBbiBhbHRlcm5hdGl2ZSB0byBwcm9k
dWNlIGNlcnRpZmljYXRlcyB0aGF0IGFyZW4ndAojIGRlcHJlY2F0ZWQgYWNjb3JkaW5nIHRvIFBL
SVguCiMgc3ViamVjdEFsdE5hbWU9ZW1haWw6bW92ZQoKIyBDb3B5IHN1YmplY3QgZGV0YWlscwoj
IGlzc3VlckFsdE5hbWU9aXNzdWVyOmNvcHkKCiNuc0NhUmV2b2NhdGlvblVybAkJPSBodHRwOi8v
d3d3LmRvbWFpbi5kb20vY2EtY3JsLnBlbQojbnNCYXNlVXJsCiNuc1Jldm9jYXRpb25VcmwKI25z
UmVuZXdhbFVybAojbnNDYVBvbGljeVVybAojbnNTc2xTZXJ2ZXJOYW1lCgojIFRoaXMgcmVhbGx5
IG5lZWRzIHRvIGJlIGluIHBsYWNlIGZvciBpdCB0byBiZSBhIHByb3h5IGNlcnRpZmljYXRlLgpw
cm94eUNlcnRJbmZvPWNyaXRpY2FsLGxhbmd1YWdlOmlkLXBwbC1hbnlMYW5ndWFnZSxwYXRobGVu
OjMscG9saWN5OmZvbwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKWyB0c2EgXQoKZGVmYXVsdF90c2EgPSB0c2FfY29u
ZmlnMQkjIHRoZSBkZWZhdWx0IFRTQSBzZWN0aW9uCgpbIHRzYV9jb25maWcxIF0KCiMgVGhlc2Ug
YXJlIHVzZWQgYnkgdGhlIFRTQSByZXBseSBnZW5lcmF0aW9uIG9ubHkuCmRpcgkJPSAvZXRjL3Br
aS9DQQkJIyBUU0Egcm9vdCBkaXJlY3RvcnkKc2VyaWFsCQk9ICRkaXIvdHNhc2VyaWFsCSMgVGhl
IGN1cnJlbnQgc2VyaWFsIG51bWJlciAobWFuZGF0b3J5KQpjcnlwdG9fZGV2aWNlCT0gYnVpbHRp
bgkJIyBPcGVuU1NMIGVuZ2luZSB0byB1c2UgZm9yIHNpZ25pbmcKc2lnbmVyX2NlcnQJPSAkZGly
L3RzYWNlcnQucGVtIAkjIFRoZSBUU0Egc2lnbmluZyBjZXJ0aWZpY2F0ZQoJCQkJCSMgKG9wdGlv
bmFsKQpjZXJ0cwkJPSAkZGlyL2NhY2VydC5wZW0JIyBDZXJ0aWZpY2F0ZSBjaGFpbiB0byBpbmNs
dWRlIGluIHJlcGx5CgkJCQkJIyAob3B0aW9uYWwpCnNpZ25lcl9rZXkJPSAkZGlyL3ByaXZhdGUv
dHNha2V5LnBlbSAjIFRoZSBUU0EgcHJpdmF0ZSBrZXkgKG9wdGlvbmFsKQpzaWduZXJfZGlnZXN0
ICA9IHNoYTI1NgkJCSMgU2lnbmluZyBkaWdlc3QgdG8gdXNlLiAoT3B0aW9uYWwpCmRlZmF1bHRf
cG9saWN5CT0gdHNhX3BvbGljeTEJCSMgUG9saWN5IGlmIHJlcXVlc3QgZGlkIG5vdCBzcGVjaWZ5
IGl0CgkJCQkJIyAob3B0aW9uYWwpCm90aGVyX3BvbGljaWVzCT0gdHNhX3BvbGljeTIsIHRzYV9w
b2xpY3kzCSMgYWNjZXB0YWJsZSBwb2xpY2llcyAob3B0aW9uYWwpCmRpZ2VzdHMgICAgID0gc2hh
MSwgc2hhMjU2LCBzaGEzODQsIHNoYTUxMiAgIyBBY2NlcHRhYmxlIG1lc3NhZ2UgZGlnZXN0cyAo
bWFuZGF0b3J5KQphY2N1cmFjeQk9IHNlY3M6MSwgbWlsbGlzZWNzOjUwMCwgbWljcm9zZWNzOjEw
MAkjIChvcHRpb25hbCkKY2xvY2tfcHJlY2lzaW9uX2RpZ2l0cyAgPSAwCSMgbnVtYmVyIG9mIGRp
Z2l0cyBhZnRlciBkb3QuIChvcHRpb25hbCkKb3JkZXJpbmcJCT0geWVzCSMgSXMgb3JkZXJpbmcg
ZGVmaW5lZCBmb3IgdGltZXN0YW1wcz8KCQkJCSMgKG9wdGlvbmFsLCBkZWZhdWx0OiBubykKdHNh
X25hbWUJCT0geWVzCSMgTXVzdCB0aGUgVFNBIG5hbWUgYmUgaW5jbHVkZWQgaW4gdGhlIHJlcGx5
PwoJCQkJIyAob3B0aW9uYWwsIGRlZmF1bHQ6IG5vKQplc3NfY2VydF9pZF9jaGFpbgk9IG5vCSMg
TXVzdCB0aGUgRVNTIGNlcnQgaWQgY2hhaW4gYmUgaW5jbHVkZWQ/CgkJCQkjIChvcHRpb25hbCwg
ZGVmYXVsdDogbm8pCmVzc19jZXJ0X2lkX2FsZwkJPSBzaGExCSMgYWxnb3JpdGhtIHRvIGNvbXB1
dGUgY2VydGlmaWNhdGUKCQkJCSMgaWRlbnRpZmllciAob3B0aW9uYWwsIGRlZmF1bHQ6IHNoYTEp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>167997</attachid>
            <date>2024-03-31 18:51:33 +0000</date>
            <delta_ts>2024-03-31 18:51:33 +0000</delta_ts>
            <desc>ltrace output on kwalletd6 when running Proton VPN GUI twice</desc>
            <filename>file_482819.txt</filename>
            <type>text/plain</type>
            <size>71298</size>
            <attacher name="Matt Fagnani">matt.fagnani</attacher>
            
              <data encoding="base64">a2Yud2FsbGV0Lmt3YWxsZXRkOiBMYWNraW5nIGEgc29ja2V0LCBwaXBlOiAwIGVudjogMA0KW3Bp
ZCAyODQ4N10gKysrIGV4aXRlZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODQ4Nl0gKysrIGV4aXRl
ZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODQ4NV0gKysrIGV4aXRlZCAoc3RhdHVzIDApICsrKw0K
W3BpZCAyODQ4NF0gKysrIGV4aXRlZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODQ4M10gKysrIGV4
aXRlZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODQ4Ml0gKysrIGV4aXRlZCAoc3RhdHVzIDApICsr
Kw0KW3BpZCAyODUwNl0gKysrIGV4aXRlZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODQ3Ml0gLS0t
IFNJR0NITEQgKENoaWxkIGV4aXRlZCkgLS0tDQpbcGlkIDI4NTA3XSAtLS0gQ2FsbGVkIGV4ZWMo
KSAtLS0NCltwaWQgMjg1MDddICsrKyBleGl0ZWQgKHN0YXR1cyAwKSArKysNCltwaWQgMjg1MDhd
ICsrKyBleGl0ZWQgKHN0YXR1cyAwKSArKysNCltwaWQgMjg0NzJdIC0tLSBTSUdDSExEIChDaGls
ZCBleGl0ZWQpIC0tLQ0KW3BpZCAyODUwOV0gLS0tIENhbGxlZCBleGVjKCkgLS0tDQpbcGlkIDI4
NTA5XSArKysgZXhpdGVkIChzdGF0dXMgMCkgKysrDQpbcGlkIDI4NTExXSAtLS0gQ2FsbGVkIGV4
ZWMoKSAtLS0NCltwaWQgMjg1MTBdICsrKyBleGl0ZWQgKHN0YXR1cyAwKSArKysNCltwaWQgMjg0
NzJdIC0tLSBTSUdDSExEIChDaGlsZCBleGl0ZWQpIC0tLQ0KW3BpZCAyODUxMV0gKysrIGV4aXRl
ZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODUxMl0gKysrIGV4aXRlZCAoc3RhdHVzIDApICsrKw0K
W3BpZCAyODQ3Ml0gLS0tIFNJR0NITEQgKENoaWxkIGV4aXRlZCkgLS0tDQpbcGlkIDI4NTEzXSAt
LS0gQ2FsbGVkIGV4ZWMoKSAtLS0NCltwaWQgMjg1MTNdICsrKyBleGl0ZWQgKHN0YXR1cyAwKSAr
KysNCltwaWQgMjg1MTRdICsrKyBleGl0ZWQgKHN0YXR1cyAwKSArKysNCltwaWQgMjg0NzJdIC0t
LSBTSUdDSExEIChDaGlsZCBleGl0ZWQpIC0tLQ0KW3BpZCAyODUxNV0gLS0tIENhbGxlZCBleGVj
KCkgLS0tDQpbcGlkIDI4NTE1XSArKysgZXhpdGVkIChzdGF0dXMgMCkgKysrDQpbcGlkIDI4NTE2
XSArKysgZXhpdGVkIChzdGF0dXMgMCkgKysrDQpbcGlkIDI4NDcyXSAtLS0gU0lHQ0hMRCAoQ2hp
bGQgZXhpdGVkKSAtLS0NCltwaWQgMjg1MTddIC0tLSBDYWxsZWQgZXhlYygpIC0tLQ0KW3BpZCAy
ODUxN10gKysrIGV4aXRlZCAoc3RhdHVzIDApICsrKw0KW3BpZCAyODUyOV0gKysrIGV4aXRlZCAo
c3RhdHVzIDApICsrKw0KW3BpZCAyODQ3Ml0gLS0tIFNJR0NITEQgKENoaWxkIGV4aXRlZCkgLS0t
DQpbcGlkIDI4NTMwXSAtLS0gQ2FsbGVkIGV4ZWMoKSAtLS0NCltwaWQgMjg1MzBdICsrKyBleGl0
ZWQgKHN0YXR1cyAwKSArKysNCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5PU1NMX1BST1ZJ
REVSX3RyeV9sb2FkKDAsIDB4N2ZhODlmZmU4MGYxLCAxLCAzIDx1bmZpbmlzaGVkIC4uLj4NCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9MSUJfQ1RYX25ld19jaGlsZCgweDdmYTg5ODAwMTdl
MCwgMHg3ZmE4YmQ0OWYzMDAsIDI0LCAweDU2NTFjMmU1MDI1MCkgPSAweDU2NTFjMmVlMzhmMA0K
W3BpZCAyODQ3Ml0gPC4uLiBPU1NMX1BST1ZJREVSX3RyeV9sb2FkIHJlc3VtZWQ+ICkgICAgICAg
ICAgICAgICAgICAgICAgICA9IDB4N2ZhODk4MDAxN2UwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAx
MjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfdWludCgweDdmZmZjMjUwNTY0OCwgMSwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1
NCwgMSwgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0
MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3
ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAx
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQw
LCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAg
ICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1
MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDAp
ICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAx
NiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDAN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1
NWQwLCA4LCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
bG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1
MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2Zm
ZmMyNTA1NWY4LCAwLCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0g
MHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWlu
dCgweDdmZmZjMjUwNTY0OCwgMiwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMiwg
MCkgPSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3Nl
dF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5
LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fc2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQw
MzllNjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdm
YThhNDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDEN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAs
IDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwg
MCkgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCA4
LCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1
NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
bG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZm
YzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdm
ZmZjMjUwNTY0OCwgNCwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgNCwgMCkgPSAw
eDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQo
MHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAw
KSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMs
IDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2Zh
OGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwg
MHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwg
MTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4
LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2
NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUw
NTY0OCwgMywgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMywgMCkgPSAweDdmZmZj
MjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZm
YzI1MDU2NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4
N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgw
eDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDAp
ID0gMHg3ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRf
aW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2Nywg
MCwgMCkgPSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5
ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4
YTQwMzllMWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAw
KSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwg
MSwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMSwgMCkgPSAweDdmZmZjMjUwNTY3
MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2
NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMy
NTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZj
MjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3
ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4
N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkg
PSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9p
bnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAw
LCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
c2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzll
MWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCA4LCAxNiwgMTYpICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCAwLCA1LCAwKSAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwgMiwgNCwg
MCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMiwgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAs
IDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5
OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1
MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMy
NTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdm
ZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3
ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9
IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2lu
dCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAs
IDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3
ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCA4LCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwgNCwgNCwgMCkgICAg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMy
NTA1NWQwLCAweDdmYThhNDAzOWU1NCwgNCwgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDAp
ICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3
ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwg
OSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzAN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMw
LCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
bG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUw
NTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1
MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2Zm
ZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdm
ZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0g
MHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6
ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYs
IDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUy
NSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwgMywgNCwgMCkgICAgICAgPSAx
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQw
LCAweDdmYThhNDAzOWU1NCwgMywgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAgICAg
ICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1
MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkg
ICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAz
LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZlOA0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgs
IDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9s
b2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1
NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUw
NTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3ZmZm
YzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4
N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDApID0g
MHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6
ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgMSwg
MTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0
ZiwgMCwgMTI4KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDEsIDQsIDApICAgICAgID0gMQ0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4
YTQwMzllNTQsIDEsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9
IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1
ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAg
ICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZj
MjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAw
KSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAs
IDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIw
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUw
NTYyMCwgMTYsIDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMy
NTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdm
ZmZjMjUwNTVkMCwgOCwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDgsIDE2KSA9IDB4
N2ZmZmMyNTA1NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVf
dCgweDdmZmZjMjUwNTVmOCwgMCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDAsIDEy
OCkgPSAweDdmZmZjMjUwNTY0OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3Nl
dF91aW50KDB4N2ZmZmMyNTA1NjQ4LCAyLCA0LCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU0
LCAyLCAwKSA9IDB4N2ZmZmMyNTA1NjcwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fc2V0X2ludCgweDdmZmZjMjUwNTY3MCwgMCwgNCwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQw
MzllNTksIDAsIDApID0gMHg3ZmZmYzI1MDU2OTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1Njk4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdm
YThhNDAzOWU2MywgMCwgMCkgPSAweDdmZmZjMjUwNTZjMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2YzAsIDAsIDMsIDApICAgICAgICA9IDEN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAs
IDB4N2ZhOGE0MDM5ZTY3LCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmU4DQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZlOCwgMCwgOSwgMCkgICAgICAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllNzEsIDAsIDApID0gMHg3ZmZmYzI1MDU3MTANCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NzEwLCAwLCAxMSwgMCkg
ICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWUxZSwgMCwgMCkgPSAweDdmZmZjMjUwNTYyMA0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU2MjAsIDE2
LCA2LCAwKSAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUo
MHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTdkLCAxNiwgMCkgPSAweDdmZmZjMjUwNTVkMA0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU1
ZDAsIDgsIDE2LCAxNikgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9s
b2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTI1LCA4LCAxNikgPSAweDdmZmZjMjUw
NTVmOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZm
YzI1MDU1ZjgsIDgsIDUsIDApICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTRmLCAwLCAxMjgpID0gMHg3
ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgw
eDdmZmZjMjUwNTY0OCwgNCwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgNCwgMCkg
PSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9p
bnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAw
LCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
c2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzll
NjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4
N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0g
MQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVk
MCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMy
NTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAx
NiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4
LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMCwgMTI4KSA9IDB4N2ZmZmMyNTA1
NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1
MDU2NDgsIDMsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDMsIDApID0gMHg3ZmZm
YzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2Zm
ZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAw
eDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQo
MHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAw
KSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcs
IDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAgICAgICA9IDENCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2Zh
OGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgMTYsIDYsIDApICAgID0gMQ0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwg
MHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVkMCwgMSwgMTYsIDE2KSAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllMjUsIDEsIDE2KSA9IDB4N2ZmZmMyNTA1NWY4DQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVmOCwgOCwgNSwg
MCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDAsIDEyOCkgPSAweDdmZmZjMjUwNTY0OA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF91aW50KDB4N2ZmZmMyNTA1NjQ4LCAx
LCA0LCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU0LCAxLCAwKSA9IDB4N2ZmZmMyNTA1Njcw
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY3
MCwgMCwgNCwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTksIDAsIDApID0gMHg3ZmZmYzI1
MDU2OTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMy
NTA1Njk4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2MywgMCwgMCkgPSAweDdm
ZmZjMjUwNTZjMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3
ZmZmYzI1MDU2YzAsIDAsIDMsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTY3LCAwLCAwKSA9
IDB4N2ZmZmMyNTA1NmU4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2lu
dCgweDdmZmZjMjUwNTZlOCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNzEsIDAs
IDApID0gMHg3ZmZmYzI1MDU3MTANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfaW50KDB4N2ZmZmMyNTA1NzEwLCAwLCAxMSwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUx
ZSwgMCwgMCkgPSAweDdmZmZjMjUwNTYyMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU2MjAsIDE2LCA2LCAwKSAgICA9IDENCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0
MDM5ZTdkLCAxNiwgMCkgPSAweDdmZmZjMjUwNTVkMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU1ZDAsIDE2LCAxNiwgMTYpICA9IDENCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4
N2ZhOGE0MDM5ZTI1LCAxNiwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCAwLCA1LCAwKSAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU0ZiwgMCwgMTI4KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDIsIDQsIDAp
ICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDIsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0
LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgs
IDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9s
b2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1
NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUw
NTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZm
YzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2Zm
ZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAw
eDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQo
MHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAw
KSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgMTYsIDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2Qs
IDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVkMCwgMTYsIDE2LCAxNikgID0gMQ0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQw
MzllMjUsIDE2LCAxNikgPSAweDdmZmZjMjUwNTVmOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU1ZjgsIDE2LCA1LCAwKSAgICA9IDENCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4
N2ZhOGE0MDM5ZTRmLCAwLCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwgNCwgNCwgMCkgICAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU1NCwgNCwgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAg
ICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZm
YzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwg
MCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgw
eDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAw
LCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZl
OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2
ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMy
NTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZj
MjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3
ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90
KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDAp
ID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRf
c2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwg
MSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCAxNiwgNSwgMCkgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU0ZiwgMCwgMTI4KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDMsIDQsIDApICAgICAgID0gMQ0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3
ZmE4YTQwMzllNTQsIDMsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAx
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQw
LCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAg
ICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1
MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkg
ICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5
LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAs
IDAsIDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9s
b2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1
NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZj
MjUwNTYyMCwgMTYsIDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2Zm
ZmMyNTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgw
eDdmZmZjMjUwNTVkMCwgMSwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDEsIDE2KSA9
IDB4N2ZmZmMyNTA1NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3Np
emVfdCgweDdmZmZjMjUwNTVmOCwgMTYsIDUsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1
NiwgMTI4KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDEsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQw
MzllNTQsIDEsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdm
YThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDEN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAs
IDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAg
ICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDEx
LCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUo
MHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYy
MCwgMTYsIDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xv
Y2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1
NWQwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZj
MjUwNTVkMCwgOCwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDgsIDE2KSA9IDB4N2Zm
ZmMyNTA1NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgw
eDdmZmZjMjUwNTVmOCwgMCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1NiwgMTI4
KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDIsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQs
IDIsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2Zh
OGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwg
MHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAg
ICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZm
YzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgMTYs
IDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgw
eDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQwDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVk
MCwgOCwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xv
Y2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDgsIDE2KSA9IDB4N2ZmZmMyNTA1
NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZj
MjUwNTVmOCwgOCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1NiwgNDApID0gMHg3
ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgw
eDdmZmZjMjUwNTY0OCwgMiwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMiwgMCkg
PSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9p
bnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAw
LCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
c2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzll
NjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4
N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0g
MQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVk
MCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCA1LCA2LCAwKSAg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMy
NTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgNSwgMCkgPSAweDdmZmZjMjUwNTVkMA0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU1ZDAsIDgsIDE2
LCAxNikgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3
ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTI1LCA4LCAxNikgPSAweDdmZmZjMjUwNTVmOA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9zaXplX3QoMHg3ZmZmYzI1MDU1Zjgs
IDgsIDUsIDApICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTRmLCAyNTYsIDY0KSA9IDB4N2ZmZmMyNTA1
NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1
MDU2NDgsIDIsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDIsIDApID0gMHg3ZmZm
YzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2Zm
ZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAw
eDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQo
MHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAw
KSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcs
IDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAgICAgICA9IDENCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2Zh
OGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgOCwgNiwgMCkgICAgID0gMQ0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwg
MHg3ZmE4YTQwMzllN2QsIDgsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCA4LCAxNiwgMTYpICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAw
KSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwg
MywgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMywgMCkgPSAweDdmZmZjMjUwNTY3
MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2
NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMy
NTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZj
MjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3
ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4
N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkg
PSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9p
bnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAw
LCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
c2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzll
MWUsIDAsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU3ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwgNCwgNCwg
MCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgNCwgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAs
IDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5
OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1
MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMy
NTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdm
ZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3
ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9
IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2lu
dCgweDdmZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAs
IDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3
ZCwgMTYsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWU0ZiwgMjU2LCAxMjgpID0gMHg3ZmZmYzI1MDU2NDgNCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwgMCwgNCwgMCkgICAg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMy
NTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMCwgMCkgPSAweDdmZmZjMjUwNTY3MA0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2NzAsIDAsIDQsIDAp
ICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3
ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMyNTA1Njk4DQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY5OCwgMCwg
OSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3ZmZmYzI1MDU2YzAN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmMw
LCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
bG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkgPSAweDdmZmZjMjUw
NTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1
MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAwLCAwKSA9IDB4N2Zm
ZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdm
ZmZjMjUwNTcxMCwgMCwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMWUsIDAsIDApID0g
MHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6
ZV90KDB4N2ZmZmMyNTA1NjIwLCAxNiwgNiwgMCkgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3ZCwgMTYs
IDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUy
NSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCAwLCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU0ZiwgMjU2LCA0MCkgPSAweDdmZmZjMjUwNTY0OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX3NldF91aW50KDB4N2ZmZmMyNTA1NjQ4LCAwLCA0LCAwKSAgICAgICA9IDEN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAs
IDB4N2ZhOGE0MDM5ZTU0LCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjcwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTY3MCwgMCwgNCwgMCkgICAgICAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllNTksIDAsIDApID0gMHg3ZmZmYzI1MDU2OTgNCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1Njk4LCAwLCA5LCAwKSAg
ICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2MywgMCwgMCkgPSAweDdmZmZjMjUwNTZjMA0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2YzAsIDAsIDMs
IDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUo
MHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTY3LCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmU4DQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZlOCwg
MCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xv
Y2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNzEsIDAsIDApID0gMHg3ZmZmYzI1MDU3
MTANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1
NzEwLCAwLCAxMSwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUxZSwgMCwgMCkgPSAweDdmZmZj
MjUwNTYyMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9zaXplX3QoMHg3
ZmZmYzI1MDU2MjAsIDUsIDYsIDApICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTdkLCA1LCAwKSA9IDB4
N2ZmZmMyNTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVf
dCgweDdmZmZjMjUwNTVkMCwgMSwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDEsIDE2
KSA9IDB4N2ZmZmMyNTA1NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X3NpemVfdCgweDdmZmZjMjUwNTVmOCwgMCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYs
IDI1NywgMTI4KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDAsIDQsIDApICAgICAgID0gMQ0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4
YTQwMzllNTQsIDAsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAxLCA0LCAwKSAgICAgICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWU1OSwgMSwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9
IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1
ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAg
ICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZj
MjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAw
KSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAs
IDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIw
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUw
NTYyMCwgMTYsIDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMy
NTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdm
ZmZjMjUwNTVkMCwgMSwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDEsIDE2KSA9IDB4
N2ZmZmMyNTA1NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVf
dCgweDdmZmZjMjUwNTVmOCwgMCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1Niwg
MTI4KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
c2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDEsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzll
NTQsIDEsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4
N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0g
MQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVk
MCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMy
NTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAw
KSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3
ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwg
MTYsIDYsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQw
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUw
NTVkMCwgOCwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDgsIDE2KSA9IDB4N2ZmZmMy
NTA1NWY4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdm
ZmZjMjUwNTVmOCwgMCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1NiwgMTI4KSA9
IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3Vp
bnQoMHg3ZmZmYzI1MDU2NDgsIDIsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDIs
IDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1
OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0
MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3
ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAx
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQw
LCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAgICAg
ICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1
MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgMTYsIDYs
IDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQwDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVkMCwg
OCwgMTYsIDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDgsIDE2KSA9IDB4N2ZmZmMyNTA1NWY4
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUw
NTVmOCwgOCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1NiwgMTI4KSA9IDB4N2Zm
ZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3
ZmZmYzI1MDU2NDgsIDQsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDQsIDApID0g
MHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50
KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwg
MCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3Nl
dF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYz
LCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQw
MzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdm
YThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAgICAgICA9IDEN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAs
IDB4N2ZhOGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgMTYsIDYsIDApICAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQwDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVkMCwgMSwgMTYs
IDE2KSAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllMjUsIDEsIDE2KSA9IDB4N2ZmZmMyNTA1NWY4DQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVmOCwg
OCwgNSwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDI1NiwgMTI4KSA9IDB4N2ZmZmMyNTA1
NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1
MDU2NDgsIDMsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDMsIDApID0gMHg3ZmZm
YzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2Zm
ZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAw
eDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQo
MHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAw
KSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcs
IDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDAsIDExLCAwKSAgICAgICA9IDENCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2Zh
OGE0MDM5ZTFlLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgMTYsIDYsIDApICAgID0gMQ0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwg
MHg3ZmE4YTQwMzllN2QsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1NWQwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVkMCwgMSwgMTYsIDE2KSAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllMjUsIDEsIDE2KSA9IDB4N2ZmZmMyNTA1NWY4DQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTVmOCwgOCwgNSwg
MCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNGYsIDE2LCAxOTIpID0gMHg3ZmZmYzI1MDU2NDgNCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfdWludCgweDdmZmZjMjUwNTY0OCwg
MiwgNCwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1NCwgMiwgMCkgPSAweDdmZmZjMjUwNTY3
MA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2
NzAsIDAsIDQsIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTU5LCAwLCAwKSA9IDB4N2ZmZmMy
NTA1Njk4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZj
MjUwNTY5OCwgMCwgOSwgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjMsIDAsIDApID0gMHg3
ZmZmYzI1MDU2YzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4
N2ZmZmMyNTA1NmMwLCAwLCAzLCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU2NywgMCwgMCkg
PSAweDdmZmZjMjUwNTZlOA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9p
bnQoMHg3ZmZmYzI1MDU2ZTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTcxLCAw
LCAwKSA9IDB4N2ZmZmMyNTA1NzEwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
c2V0X2ludCgweDdmZmZjMjUwNTcxMCwgMSwgMTEsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzll
MWUsIDEsIDApID0gMHg3ZmZmYzI1MDU2MjANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NjIwLCAyNCwgNiwgMCkgICAgPSAxDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThh
NDAzOWU3ZCwgMjQsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCA4LCAxNiwgMTYpICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU0ZiwgMTYsIDY0KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDEsIDQsIDAp
ICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDEsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0
LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgs
IDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9s
b2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1
NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUw
NTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZm
YzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2Zm
ZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAw
eDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQo
MHg3ZmZmYzI1MDU3MTAsIDEsIDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAxLCAw
KSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgOCwgNiwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2Qs
IDgsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCA4LCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWUyNSwgOCwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCAwLCA1LCAwKSAgICAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdm
YThhNDAzOWU0ZiwgMTYsIDY0KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDIsIDQsIDApICAgICAgID0g
MQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVk
MCwgMHg3ZmE4YTQwMzllNTQsIDIsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMy
NTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDAp
ICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3
ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwg
MywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4
LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
bG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUw
NTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1
MDU3MTAsIDEsIDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9Q
QVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAxLCAwKSA9IDB4N2Zm
ZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgw
eDdmZmZjMjUwNTYyMCwgOCwgNiwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDgsIDApID0g
MHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6
ZV90KDB4N2ZmZmMyNTA1NWQwLCA4LCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgOCwg
MTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0
ZiwgMTYsIDY0KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDQsIDQsIDApICAgICAgID0gMQ0KW3BpZCAy
ODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4
YTQwMzllNTQsIDQsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAw
eDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9
IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1
ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAg
ICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZj
MjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAw
KSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDEs
IDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2Nh
dGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAxLCAwKSA9IDB4N2ZmZmMyNTA1NjIw
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUw
NTYyMCwgOCwgNiwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDgsIDApID0gMHg3ZmZmYzI1
MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2Zm
ZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3
ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90
KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMTYsIDY0
KSA9IDB4N2ZmZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X3VpbnQoMHg3ZmZmYzI1MDU2NDgsIDMsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQs
IDMsIDApID0gMHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAz
OWU1OSwgMCwgMCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NM
X1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2Zh
OGE0MDM5ZTYzLCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28t
Pk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0K
W3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwg
MHg3ZmE4YTQwMzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
NWQwLCAweDdmYThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0g
bGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDEsIDExLCAwKSAg
ICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZm
YzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTFlLCAxLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4
NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgOCwg
NiwgMCkgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgw
eDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllN2QsIDgsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQw
LCAxLCAxNiwgMTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1
ZjgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMy
NTA1NWY4LCA4LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMTYsIDY0KSA9IDB4N2Zm
ZmMyNTA1NjQ4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3
ZmZmYzI1MDU2NDgsIDMsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDMsIDApID0g
MHg3ZmZmYzI1MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50
KDB4N2ZmZmMyNTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwg
MCkgPSAweDdmZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3Nl
dF9pbnQoMHg3ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYz
LCAwLCAwKSA9IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFS
QU1fc2V0X2ludCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3
Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQw
MzllNjcsIDAsIDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdm
YThhNDAzOWU3MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDEsIDExLCAwKSAgICAgICA9IDEN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAs
IDB4N2ZhOGE0MDM5ZTFlLCAxLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdh
Y3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgOCwgNiwgMCkgICAg
ID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUw
NTVkMCwgMHg3ZmE4YTQwMzllN2QsIDgsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJd
IGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwg
MTYpICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2Zm
ZmMyNTA1NWQwLCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQg
Mjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4
LCA1LCAwKSAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRl
KDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU0ZiwgMTYsIDY0KSA9IDB4N2ZmZmMyNTA1NjQ4
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3VpbnQoMHg3ZmZmYzI1MDU2
NDgsIDMsIDQsIDApICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFN
X2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNTQsIDMsIDApID0gMHg3ZmZmYzI1
MDU2NzANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMy
NTA1NjcwLCAwLCA0LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU1OSwgMCwgMCkgPSAweDdm
ZmZjMjUwNTY5OA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX3NldF9pbnQoMHg3
ZmZmYzI1MDU2OTgsIDAsIDksIDApICAgICAgICA9IDENCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+
T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0MDM5ZTYzLCAwLCAwKSA9
IDB4N2ZmZmMyNTA1NmMwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2lu
dCgweDdmZmZjMjUwNTZjMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5
LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3ZmE4YTQwMzllNjcsIDAs
IDApID0gMHg3ZmZmYzI1MDU2ZTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9z
ZXRfaW50KDB4N2ZmZmMyNTA1NmU4LCAwLCA5LCAwKSAgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQwLCAweDdmYThhNDAzOWU3
MSwgMCwgMCkgPSAweDdmZmZjMjUwNTcxMA0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX3NldF9pbnQoMHg3ZmZmYzI1MDU3MTAsIDEsIDExLCAwKSAgICAgICA9IDENCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9sb2NhdGUoMHg3ZmZmYzI1MDU1ZDAsIDB4N2ZhOGE0
MDM5ZTFlLCAxLCAwKSA9IDB4N2ZmZmMyNTA1NjIwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9T
U0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNTYyMCwgOCwgNiwgMCkgICAgID0gMQ0KW3Bp
ZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNTVkMCwgMHg3
ZmE4YTQwMzllN2QsIDgsIDApID0gMHg3ZmZmYzI1MDU1ZDANCltwaWQgMjg0NzJdIGxlZ2FjeS5z
by0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWQwLCAxLCAxNiwgMTYpICAgPSAx
DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1NWQw
LCAweDdmYThhNDAzOWUyNSwgMSwgMTYpID0gMHg3ZmZmYzI1MDU1ZjgNCltwaWQgMjg0NzJdIGxl
Z2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1NWY4LCA4LCA1LCAwKSAg
ICAgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfbmV3KDB4NTY1MWMyZWM3MjMw
LCAweDU2NTFjMmVjNzMxMCwgMHg1NjUxYzJlYzZkZDAsIDApID0gMHg3ZmE4YTgwMDgxZDANCltw
aWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQwX3BxZygweDdmYThhODAwODFkMCwgMHg1
NjUxYzJlMzk5ZTAsIDAsIDB4NTY1MWMyZWM3YTQwKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1v
c3NsLnNvLT5ESF9nZW5lcmF0ZV9rZXkoMHg3ZmE4YTgwMDgxZDAsIDB4N2ZhOGJkNDUxMWMwLCAx
NiwgMHhiMTBiOGY5NmEwODBlMDFkKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5E
SF9uZXcoMHg1NjUxYzJlYzcwNTAsIC0xMDI1LCAxLCAweDU2NTFjMmVjNmVhMCkgPSAweDU2NTFj
MmYxYTMwMA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfcHFnKDB4N2ZhOGE4
MDA4MWQwLCAweDdmZmZjMjUwNjBlMCwgMCwgMHg3ZmZmYzI1MDYwZDgpID0gMHg1NjUxYzJlYzdh
NDANCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9nZXQwX2tleSgweDdmYThhODAwODFk
MCwgMHg3ZmZmYzI1MDYwZDAsIDAsIDB4N2ZmZmMyNTA2MGQ4KSA9IDB4NTY1MWMyZWM3YTgwDQpb
cGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2V0MF9rZXkoMHg1NjUxYzJmMWEzMDAsIDB4
NTY1MWMyZWM3ZDUwLCAwLCAweDdmYThiZTM5M2E4MCkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Et
b3NzbC5zby0+REhfc2V0MF9wcWcoMHg1NjUxYzJmMWEzMDAsIDB4NTY1MWMyZWM3ZTUwLCAwLCAw
eDU2NTFjMmVjN2RiMCkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfbmV3KDB4
NTY1MWMyZWM4MTM4LCAwLCAxLCAwKSAgICAgICAgICAgICAgID0gMHg1NjUxYzJiNTdhODANCltw
aWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQwX2tleSgweDU2NTFjMmI1N2E4MCwgMHg1
NjUxYzJlYzg2NDAsIDAsIDEpID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX3Nl
dDBfcHFnKDB4NTY1MWMyYjU3YTgwLCAweDU2NTFjMmVjN2RmMCwgMCwgMHg1NjUxYzJlYzdkZDAp
ID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfa2V5KDB4NTY1MWMyYjU3
YTgwLCAweDdmZmZjMjUwNjBhOCwgMCwgMykgPSAweDU2NTFjMmVjODY0MA0KW3BpZCAyODQ3Ml0g
bGlicWNhLW9zc2wuc28tPkRIX3NpemUoMHg3ZmE4YTgwMDgxZDAsIDB4N2ZmZmMyNTA2MGE4LCAw
LCAzKSA9IDEyOA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2NvbXB1dGVfa2V5KDB4
NTY1MWMyZTU3ODIwLCAweDU2NTFjMmVjODY0MCwgMHg3ZmE4YTgwMDgxZDAsIDMpID0gMTI4DQpb
cGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1YWEwLCAw
eDdmYThhNDAzOWU3ZCwgMTYsIDUpID0gMHg3ZmZmYzI1MDVhYTANCltwaWQgMjg0NzJdIGxlZ2Fj
eS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1YWEwLCAxNiwgMTYsIDE2KSAg
PSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1
YWEwLCAweDdmYThhNDAzOWVkMywgMTYsIDE2KSA9IDB4N2ZmZmMyNTA1YWM4DQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNWFjOCwgMTYsIDQs
IDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdm
ZmZjMjUwNWFhMCwgMHg3ZmE4YTQwMzllZDgsIDE2LCAwKSA9IDB4N2ZmZmMyNTA1YWYwDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNWFmMCwgMCwg
MywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0
ZSgweDdmZmZjMjUwNWFhMCwgMHg3ZmE4YTQwMzllZGMsIDAsIDApID0gMHg3ZmZmYzI1MDViMTgN
CltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1YjE4
LCAwLCAxMiwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1f
bG9jYXRlKDB4N2ZmZmMyNTA1YWEwLCAweDdmYThhNDAzOWU3ZCwgMTYsIDUpID0gMHg3ZmZmYzI1
MDVhYTANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2Zm
ZmMyNTA1YWEwLCA2NCwgMTYsIDE2KSAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xf
UEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1YWEwLCAweDdmYThhNDAzOWVkMywgNjQsIDE2KSA9IDB4
N2ZmZmMyNTA1YWM4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVf
dCgweDdmZmZjMjUwNWFjOCwgMTYsIDQsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNv
LT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNWFhMCwgMHg3ZmE4YTQwMzllZDgsIDE2LCAw
KSA9IDB4N2ZmZmMyNTA1YWYwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0
X2ludCgweDdmZmZjMjUwNWFmMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVn
YWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNWFhMCwgMHg3ZmE4YTQwMzllZGMs
IDAsIDApID0gMHg3ZmZmYzI1MDViMTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJB
TV9zZXRfaW50KDB4N2ZmZmMyNTA1YjE4LCAwLCAxMiwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcy
XSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1YWEwLCAweDdmYThhNDAz
OWU3ZCwgNjQsIDUpID0gMHg3ZmZmYzI1MDVhYTANCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NT
TF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1YWEwLCA2NCwgMTYsIDE2KSAgPSAxDQpbcGlk
IDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4N2ZmZmMyNTA1YWEwLCAweDdm
YThhNDAzOWVkMywgNjQsIDE2KSA9IDB4N2ZmZmMyNTA1YWM4DQpbcGlkIDI4NDcyXSBsZWdhY3ku
c28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZjMjUwNWFjOCwgNjQsIDQsIDApICAgID0g
MQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNWFh
MCwgMHg3ZmE4YTQwMzllZDgsIDY0LCAwKSA9IDB4N2ZmZmMyNTA1YWYwDQpbcGlkIDI4NDcyXSBs
ZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdmZmZjMjUwNWFmMCwgMCwgMywgMCkgICAg
ICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZj
MjUwNWFhMCwgMHg3ZmE4YTQwMzllZGMsIDAsIDApID0gMHg3ZmZmYzI1MDViMTgNCltwaWQgMjg0
NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50KDB4N2ZmZmMyNTA1YjE4LCAwLCAxMiwg
MCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9jYXRlKDB4
N2ZmZmMyNTA1YWEwLCAweDdmYThhNDAzOWU3ZCwgMjAsIDUpID0gMHg3ZmZmYzI1MDVhYTANCltw
aWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfc2l6ZV90KDB4N2ZmZmMyNTA1YWEw
LCA2NCwgMTYsIDE2KSAgPSAxDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fbG9j
YXRlKDB4N2ZmZmMyNTA1YWEwLCAweDdmYThhNDAzOWVkMywgNjQsIDE2KSA9IDB4N2ZmZmMyNTA1
YWM4DQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X3NpemVfdCgweDdmZmZj
MjUwNWFjOCwgMjAsIDQsIDApICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5PU1NMX1BB
UkFNX2xvY2F0ZSgweDdmZmZjMjUwNWFhMCwgMHg3ZmE4YTQwMzllZDgsIDIwLCAwKSA9IDB4N2Zm
ZmMyNTA1YWYwDQpbcGlkIDI4NDcyXSBsZWdhY3kuc28tPk9TU0xfUEFSQU1fc2V0X2ludCgweDdm
ZmZjMjUwNWFmMCwgMCwgMywgMCkgICAgICAgID0gMQ0KW3BpZCAyODQ3Ml0gbGVnYWN5LnNvLT5P
U1NMX1BBUkFNX2xvY2F0ZSgweDdmZmZjMjUwNWFhMCwgMHg3ZmE4YTQwMzllZGMsIDAsIDApID0g
MHg3ZmZmYzI1MDViMTgNCltwaWQgMjg0NzJdIGxlZ2FjeS5zby0+T1NTTF9QQVJBTV9zZXRfaW50
KDB4N2ZmZmMyNTA1YjE4LCAwLCAxMiwgMCkgICAgICAgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Et
b3NzbC5zby0+REhfZ2V0MF9rZXkoMHg1NjUxYzJmMWEzMDAsIDB4N2ZmZmMyNTA2MGMwLCAwLCA0
KSA9IDB4NTY1MWMyZWM3ZDUwDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfbmV3KDB4
NTY1MWMyZWM3ZTYwLCAweDU2NTFjMmVjN2RjMCwgMHg1NjUxYzJlZDdlNjAsIDQpID0gMHg3ZmE4
YTgwMDlkMzANCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQwX3BxZygweDdmYThh
ODAwOWQzMCwgMHg1NjUxYzJmMDQzYTAsIDAsIDB4NTY1MWMyZTc2NmQwKSA9IDENCltwaWQgMjg0
NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9nZW5lcmF0ZV9rZXkoMHg3ZmE4YTgwMDlkMzAsIDB4N2Zh
OGJkNDUxMWMwLCAxNiwgMHhiMTBiOGY5NmEwODBlMDFkKSA9IDENCltwaWQgMjg0NzJdIGxpYnFj
YS1vc3NsLnNvLT5ESF9uZXcoMHg1NjUxYzJlYzg1MDAsIC0xMDI1LCAxLCAweDdmYThhODAwYjEz
MCkgPSAweDdmYThhODAwODFkMA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBf
cHFnKDB4N2ZhOGE4MDA5ZDMwLCAweDdmZmZjMjUwNjBlMCwgMCwgMHg3ZmZmYzI1MDYwZDgpID0g
MHg1NjUxYzJlNzY2ZDANCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9nZXQwX2tleSgw
eDdmYThhODAwOWQzMCwgMHg3ZmZmYzI1MDYwZDAsIDAsIDB4N2ZmZmMyNTA2MGQ4KSA9IDB4NTY1
MWMyZWM3MjIwDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2V0MF9rZXkoMHg3ZmE4
YTgwMDgxZDAsIDB4NTY1MWMyZWM3MzAwLCAwLCAweDdmYThiZTM5M2E4MCkgPSAxDQpbcGlkIDI4
NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2V0MF9wcWcoMHg3ZmE4YTgwMDgxZDAsIDB4NTY1MWMy
ZWM4MGQwLCAwLCAweDU2NTFjMmVjODc5MCkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5z
by0+REhfbmV3KDB4NTY1MWMyZWM4NWU4LCAwLCAxLCAwKSAgICAgICAgICAgICAgID0gMHg1NjUx
YzJiNTdhODANCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQwX2tleSgweDU2NTFj
MmI1N2E4MCwgMHg1NjUxYzJlZTZjYjAsIDAsIDEpID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9z
c2wuc28tPkRIX3NldDBfcHFnKDB4NTY1MWMyYjU3YTgwLCAweDU2NTFjMmVjN2ViMCwgMCwgMHg1
NjUxYzJlYzg3YjApID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfa2V5
KDB4NTY1MWMyYjU3YTgwLCAweDdmZmZjMjUwNjBhOCwgMCwgNikgPSAweDU2NTFjMmVlNmNiMA0K
W3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX3NpemUoMHg3ZmE4YTgwMDlkMzAsIDB4N2Zm
ZmMyNTA2MGE4LCAwLCA2KSA9IDEyOA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2Nv
bXB1dGVfa2V5KDB4NTY1MWMyZTU3ODIwLCAweDU2NTFjMmVlNmNiMCwgMHg3ZmE4YTgwMDlkMzAs
IDMpID0gMTI4DQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0MF9rZXkoMHg3ZmE4
YTgwMDgxZDAsIDB4N2ZmZmMyNTA2MGMwLCAwLCA0KSA9IDB4NTY1MWMyZWM3MzAwDQpbcGlkIDI4
NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfbmV3KDB4NTY1MWMyZWM2YWQwLCAweDU2NTFjMmVjODdh
MCwgMHg1NjUxYzJlYzZjYzAsIDQpID0gMHg3ZmE4YTgwMGJlODANCltwaWQgMjg0NzJdIGxpYnFj
YS1vc3NsLnNvLT5ESF9zZXQwX3BxZygweDdmYThhODAwYmU4MCwgMHg1NjUxYzJlYWI4NzAsIDAs
IDB4NTY1MWMyZTc2NmQwKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9nZW5l
cmF0ZV9rZXkoMHg3ZmE4YTgwMGJlODAsIDB4N2ZhOGJkNDUxMWMwLCAxNiwgMHhiMTBiOGY5NmEw
ODBlMDFkKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9uZXcoMHg1NjUxYzJl
NmU2NjAsIC0xMDI1LCAxLCAweDU2NTFjMmYyODFkMCkgPSAweDdmYThhODAwOWQzMA0KW3BpZCAy
ODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfcHFnKDB4N2ZhOGE4MDBiZTgwLCAweDdmZmZj
MjUwNjBlMCwgMCwgMHg3ZmZmYzI1MDYwZDgpID0gMHg1NjUxYzJlNzY2ZDANCltwaWQgMjg0NzJd
IGxpYnFjYS1vc3NsLnNvLT5ESF9nZXQwX2tleSgweDdmYThhODAwYmU4MCwgMHg3ZmZmYzI1MDYw
ZDAsIDAsIDB4N2ZmZmMyNTA2MGQ4KSA9IDB4NTY1MWMyZTNhNzAwDQpbcGlkIDI4NDcyXSBsaWJx
Y2Etb3NzbC5zby0+REhfc2V0MF9rZXkoMHg3ZmE4YTgwMDlkMzAsIDB4NTY1MWMyZWFiYWMwLCAw
LCAweDdmYThiZTM5M2E4MCkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2V0
MF9wcWcoMHg3ZmE4YTgwMDlkMzAsIDB4NTY1MWMyZWM4ZGUwLCAwLCAweDU2NTFjMmVlNmNiMCkg
PSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfbmV3KDB4NTY1MWMyZWM3MWU4LCAw
LCAxLCAwKSAgICAgICAgICAgICAgID0gMHg1NjUxYzJiNTdhODANCltwaWQgMjg0NzJdIGxpYnFj
YS1vc3NsLnNvLT5ESF9zZXQwX2tleSgweDU2NTFjMmI1N2E4MCwgMHg1NjUxYzJlYzdmZDAsIDAs
IDEpID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX3NldDBfcHFnKDB4NTY1MWMy
YjU3YTgwLCAweDU2NTFjMmVjODVjMCwgMCwgMHg1NjUxYzJlYzg1YTApID0gMQ0KW3BpZCAyODQ3
Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfa2V5KDB4NTY1MWMyYjU3YTgwLCAweDdmZmZjMjUw
NjBhOCwgMCwgNikgPSAweDU2NTFjMmVjN2ZkMA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28t
PkRIX3NpemUoMHg3ZmE4YTgwMGJlODAsIDB4N2ZmZmMyNTA2MGE4LCAwLCA2KSA9IDEyOA0KW3Bp
ZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2NvbXB1dGVfa2V5KDB4NTY1MWMyZTVkODIwLCAw
eDU2NTFjMmVjN2ZkMCwgMHg3ZmE4YTgwMGJlODAsIDMpID0gMTI4DQpbcGlkIDI4NDcyXSBsaWJx
Y2Etb3NzbC5zby0+REhfZ2V0MF9rZXkoMHg3ZmE4YTgwMDlkMzAsIDB4N2ZmZmMyNTA2MGMwLCAw
LCA0KSA9IDB4NTY1MWMyZWFiYWMwDQpbcGlkIDI4NDcyXSBsaWJRdDZDb3JlLnNvLjYtPk9TU0xf
UFJPVklERVJfbG9hZCgwLCAweDdmYThiZWM5NzQ5OSwgMHg1NjUxYzJiMjIwMTAsIDYpID0gMHg3
ZmE4OTgwMDIzZjANCltwaWQgMjg1NDNdICsrKyBleGl0ZWQgKHN0YXR1cyAwKSArKysNCltwaWQg
Mjg0NzJdIC0tLSBTSUdDSExEIChDaGlsZCBleGl0ZWQpIC0tLQ0KW3BpZCAyODU0NF0gLS0tIENh
bGxlZCBleGVjKCkgLS0tDQpbcGlkIDI4NTQ0XSArKysgZXhpdGVkIChzdGF0dXMgMCkgKysrDQpb
cGlkIDI4NDcyXSBsaWJRdDZDb3JlLnNvLjYtPk9TU0xfUFJPVklERVJfdW5sb2FkKDB4N2ZhODk4
MDAyM2YwLCAweDU2NTFjMmYyOTMyMCwgMHhmZmZmZmZmYSwgMHg3ZmE4YmUzZjJiMjApID0gMQ0K
DQpbcGlkIDI4NDcyXSAtLS0gU0lHV0lOQ0ggKFdpbmRvdyBjaGFuZ2VkKSAtLS0NCltwaWQgMjg0
NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9uZXcoMHg1NjUxYzJlYzcwNDAsIDB4NTY1MWMyZWM3MzEw
LCAweDU2NTFjMmUzY2E0MCwgMSkgPSAweDdmYThhODAwODFkMA0KW3BpZCAyODQ3Ml0gbGlicWNh
LW9zc2wuc28tPkRIX3NldDBfcHFnKDB4N2ZhOGE4MDA4MWQwLCAweDU2NTFjMmYwMDRmMCwgMCwg
MHg1NjUxYzJlZTZjYjApID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dlbmVy
YXRlX2tleSgweDdmYThhODAwODFkMCwgMHg3ZmE4YmQ0NTExYzAsIDE2LCAweGIxMGI4Zjk2YTA4
MGUwMWQpID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX25ldygweDU2NTFjMmVj
ODdiMCwgLTEwMjUsIDEsIDB4NTY1MWMyZjI3YmMwKSA9IDB4N2ZhOGE4MDBiZTgwDQpbcGlkIDI4
NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0MF9wcWcoMHg3ZmE4YTgwMDgxZDAsIDB4N2ZmZmMy
NTA2MGUwLCAwLCAweDdmZmZjMjUwNjBkOCkgPSAweDU2NTFjMmVlNmNiMA0KW3BpZCAyODQ3Ml0g
bGlicWNhLW9zc2wuc28tPkRIX2dldDBfa2V5KDB4N2ZhOGE4MDA4MWQwLCAweDdmZmZjMjUwNjBk
MCwgMCwgMHg3ZmZmYzI1MDYwZDgpID0gMHg1NjUxYzJlZmFlODANCltwaWQgMjg0NzJdIGxpYnFj
YS1vc3NsLnNvLT5ESF9zZXQwX2tleSgweDdmYThhODAwYmU4MCwgMHg1NjUxYzJlYzY4YTAsIDAs
IDB4N2ZhOGJlMzkzYTgwKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQw
X3BxZygweDdmYThhODAwYmU4MCwgMHg1NjUxYzJlYzZmZTAsIDAsIDB4NTY1MWMyZWM2YTgwKSA9
IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9uZXcoMHg1NjUxYzJlM2MzYTgsIDAs
IDEsIDApICAgICAgICAgICAgICAgPSAweDU2NTFjMmI1N2E4MA0KW3BpZCAyODQ3Ml0gbGlicWNh
LW9zc2wuc28tPkRIX3NldDBfa2V5KDB4NTY1MWMyYjU3YTgwLCAweDU2NTFjMmVjOTE3MCwgMCwg
MSkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2V0MF9wcWcoMHg1NjUxYzJi
NTdhODAsIDB4NTY1MWMyZWM4ZTIwLCAwLCAweDU2NTFjMmUzYzNlMCkgPSAxDQpbcGlkIDI4NDcy
XSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0MF9rZXkoMHg1NjUxYzJiNTdhODAsIDB4N2ZmZmMyNTA2
MGE4LCAwLCA2KSA9IDB4NTY1MWMyZWM5MTcwDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+
REhfc2l6ZSgweDdmYThhODAwODFkMCwgMHg3ZmZmYzI1MDYwYTgsIDAsIDYpID0gMTI4DQpbcGlk
IDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfY29tcHV0ZV9rZXkoMHg1NjUxYzJlNjM4MjAsIDB4
NTY1MWMyZWM5MTcwLCAweDdmYThhODAwODFkMCwgMykgPSAxMjgNCltwaWQgMjg0NzJdIGxpYnFj
YS1vc3NsLnNvLT5ESF9nZXQwX2tleSgweDdmYThhODAwYmU4MCwgMHg3ZmZmYzI1MDYwYzAsIDAs
IDQpID0gMHg1NjUxYzJlYzY4YTANCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9uZXco
MHg1NjUxYzJmMjZkYzAsIDB4NTY1MWMyZWU2Y2MwLCAweDU2NTFjMmUzOTFjMCwgNCkgPSAweDdm
YThhODAwOWQzMA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX3NldDBfcHFnKDB4N2Zh
OGE4MDA5ZDMwLCAweDU2NTFjMmU3NjZkMCwgMCwgMHg1NjUxYzJlYzhlMjApID0gMQ0KW3BpZCAy
ODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dlbmVyYXRlX2tleSgweDdmYThhODAwOWQzMCwgMHg3
ZmE4YmQ0NTExYzAsIDE2LCAweGIxMGI4Zjk2YTA4MGUwMWQpID0gMQ0KW3BpZCAyODQ3Ml0gbGli
cWNhLW9zc2wuc28tPkRIX25ldygweDU2NTFjMmYyOGU5MCwgLTEwMjUsIDEsIDB4NTY1MWMyZjI5
MTYwKSA9IDB4N2ZhOGE4MDA4MWQwDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0
MF9wcWcoMHg3ZmE4YTgwMDlkMzAsIDB4N2ZmZmMyNTA2MGUwLCAwLCAweDdmZmZjMjUwNjBkOCkg
PSAweDU2NTFjMmVjOGUyMA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfa2V5
KDB4N2ZhOGE4MDA5ZDMwLCAweDdmZmZjMjUwNjBkMCwgMCwgMHg3ZmZmYzI1MDYwZDgpID0gMHg1
NjUxYzJlYWE3NjANCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQwX2tleSgweDdm
YThhODAwODFkMCwgMHg1NjUxYzJmMmIwNTAsIDAsIDB4N2ZhOGJlMzkzYTgwKSA9IDENCltwaWQg
Mjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9zZXQwX3BxZygweDdmYThhODAwODFkMCwgMHg1NjUx
YzJlZmIwYjAsIDAsIDB4NTY1MWMyZWM2ZmUwKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3Ns
LnNvLT5ESF9uZXcoMHg1NjUxYzJlM2E0MTgsIDAsIDEsIDQpICAgICAgICAgICAgICAgPSAweDU2
NTFjMmI1N2E4MA0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX3NldDBfa2V5KDB4NTY1
MWMyYjU3YTgwLCAweDU2NTFjMmVhYmFiMCwgMCwgMykgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Et
b3NzbC5zby0+REhfc2V0MF9wcWcoMHg1NjUxYzJiNTdhODAsIDB4NTY1MWMyZWM2OGEwLCAwLCAw
eDU2NTFjMmVjNzAzMCkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0MF9r
ZXkoMHg1NjUxYzJiNTdhODAsIDB4N2ZmZmMyNTA2MGE4LCAwLCA2KSA9IDB4NTY1MWMyZWFiYWIw
DQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2l6ZSgweDdmYThhODAwOWQzMCwgMHg3
ZmZmYzI1MDYwYTgsIDAsIDYpID0gMTI4DQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhf
Y29tcHV0ZV9rZXkoMHg1NjUxYzJlNjM4MjAsIDB4NTY1MWMyZWFiYWIwLCAweDdmYThhODAwOWQz
MCwgMykgPSAxMjgNCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9nZXQwX2tleSgweDdm
YThhODAwODFkMCwgMHg3ZmZmYzI1MDYwYzAsIDAsIDQpID0gMHg1NjUxYzJmMmIwNTANCltwaWQg
Mjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9uZXcoMHg1NjUxYzJmMjc0NzAsIDB4NTY1MWMyZWM2
ZmYwLCAweDU2NTFjMmVhYTc4MCwgNCkgPSAweDdmYThhODAwYmU4MA0KW3BpZCAyODQ3Ml0gbGli
cWNhLW9zc2wuc28tPkRIX3NldDBfcHFnKDB4N2ZhOGE4MDBiZTgwLCAweDU2NTFjMmVjNjhjMCwg
MCwgMHg1NjUxYzJlYzhlMjApID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dl
bmVyYXRlX2tleSgweDdmYThhODAwYmU4MCwgMHg3ZmE4YmQ0NTExYzAsIDE2LCAweGIxMGI4Zjk2
YTA4MGUwMWQpID0gMQ0KW3BpZCAyODQ3Ml0gbGlicWNhLW9zc2wuc28tPkRIX25ldygweDU2NTFj
MmYyYWZiMCwgLTEwMjUsIDEsIDB4NTY1MWMyZWM3MmIwKSA9IDB4N2ZhOGE4MDA5ZDMwDQpbcGlk
IDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0MF9wcWcoMHg3ZmE4YTgwMGJlODAsIDB4N2Zm
ZmMyNTA2MGUwLCAwLCAweDdmZmZjMjUwNjBkOCkgPSAweDU2NTFjMmVjOGUyMA0KW3BpZCAyODQ3
Ml0gbGlicWNhLW9zc2wuc28tPkRIX2dldDBfa2V5KDB4N2ZhOGE4MDBiZTgwLCAweDdmZmZjMjUw
NjBkMCwgMCwgMHg3ZmZmYzI1MDYwZDgpID0gMHg1NjUxYzJlM2E2ZTANCltwaWQgMjg0NzJdIGxp
YnFjYS1vc3NsLnNvLT5ESF9zZXQwX2tleSgweDdmYThhODAwOWQzMCwgMHg1NjUxYzJlZmIwYjAs
IDAsIDB4N2ZhOGJlMzkzYTgwKSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9z
ZXQwX3BxZygweDdmYThhODAwOWQzMCwgMHg1NjUxYzJlYzczMDAsIDAsIDB4NTY1MWMyZjA0M2Ew
KSA9IDENCltwaWQgMjg0NzJdIGxpYnFjYS1vc3NsLnNvLT5ESF9uZXcoMHg1NjUxYzJlM2NiMzgs
IDAsIDEsIDIpICAgICAgICAgICAgICAgPSAweDU2NTFjMmI1N2E4MA0KW3BpZCAyODQ3Ml0gbGli
cWNhLW9zc2wuc28tPkRIX3NldDBfa2V5KDB4NTY1MWMyYjU3YTgwLCAweDU2NTFjMmVjOTFiMCwg
MCwgMSkgPSAxDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfc2V0MF9wcWcoMHg1NjUx
YzJiNTdhODAsIDB4NTY1MWMyZWU2Y2IwLCAwLCAweDU2NTFjMmUzOTFjMCkgPSAxDQpbcGlkIDI4
NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfZ2V0MF9rZXkoMHg1NjUxYzJiNTdhODAsIDB4N2ZmZmMy
NTA2MGE4LCAwLCA2KSA9IDB4NTY1MWMyZWM5MWIwDQpbcGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5z
by0+REhfc2l6ZSgweDdmYThhODAwYmU4MCwgMHg3ZmZmYzI1MDYwYTgsIDAsIDYpID0gMTI4DQpb
cGlkIDI4NDcyXSBsaWJxY2Etb3NzbC5zby0+REhfY29tcHV0ZV9rZXkoMHg1NjUxYzJlNTk4MjAs
IDB4NTY1MWMyZWM5MWIwLCAweDdmYThhODAwYmU4MCwgMykgPSAxMjgNCltwaWQgMjg0NzJdIGxp
YnFjYS1vc3NsLnNvLT5ESF9nZXQwX2tleSgweDdmYThhODAwOWQzMCwgMHg3ZmZmYzI1MDYwYzAs
IDAsIDQpID0gMHg1NjUxYzJlZmIwYjANCg0KXkNbcGlkIDI4NDcyXSAtLS0gU0lHSU5UIChJbnRl
cnJ1cHQpIC0tLQ0KW3BpZCAyODQ4MF0gKysrIGtpbGxlZCBieSBTSUdJTlQgKysrDQpbcGlkIDI4
NDc5XSArKysga2lsbGVkIGJ5IFNJR0lOVCArKysNCltwaWQgMjg0NzhdICsrKyBraWxsZWQgYnkg
U0lHSU5UICsrKw0KW3BpZCAyODQ3N10gKysrIGtpbGxlZCBieSBTSUdJTlQgKysrDQpbcGlkIDI4
NDc2XSArKysga2lsbGVkIGJ5IFNJR0lOVCArKysNCltwaWQgMjg0NzVdICsrKyBraWxsZWQgYnkg
U0lHSU5UICsrKw0KW3BpZCAyODQ3NF0gKysrIGtpbGxlZCBieSBTSUdJTlQgKysrDQpbcGlkIDI4
NDczXSArKysga2lsbGVkIGJ5IFNJR0lOVCArKysNCltwaWQgMjg0ODFdICsrKyBraWxsZWQgYnkg
U0lHSU5UICsrKw0KW3BpZCAyODQ3Ml0gKysrIGtpbGxlZCBieSBTSUdJTlQgKysr
</data>

          </attachment>
      

    </bug>

</bugzilla>