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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>167411</bug_id>
          
          <creation_ts>2017-01-24 23:44:34 -0800</creation_ts>
          <short_desc>[GTK] pixman fails to compile on Raspberry Pi (GCC crash)</short_desc>
          <delta_ts>2017-06-14 10:36:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=147224</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>172765</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1269746</commentid>
    <comment_count>0</comment_count>
      <attachid>299681</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-24 23:44:34 -0800</bug_when>
    <thetext>Created attachment 299681
build output

I got a Raspberry Pi 3 Model B (ARM64 processor) and installed RASPBIAN JESSIE WITH PIXEL released 2017-01-11 and checked out WebKit r211135
Tools/gtk/install-dependencies failed. &quot;sudo apt-get upgrade&quot; fixed that. NDB.
Tools/Scripts/update-webkitgtk-libs failed. I attached the end of the build output, as well as the source file in question and its preprocessor output.
It said to file a bug against gcc 4.9.  I don&apos;t think they would fix gcc 4.9 at this point.  I think we should either fix pixman or require a newer version of gcc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269747</commentid>
    <comment_count>1</comment_count>
      <attachid>299682</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-24 23:46:04 -0800</bug_when>
    <thetext>Created attachment 299682
file that failed to compile from pixman</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269748</commentid>
    <comment_count>2</comment_count>
      <attachid>299683</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-24 23:46:28 -0800</bug_when>
    <thetext>Created attachment 299683
preprocessed output mentioned in build output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269830</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-25 08:49:09 -0800</bug_when>
    <thetext>Yeah, it&apos;s a GCC crash, and GCC 4.9 is no longer supported upstream.

I think we should do nothing. We don&apos;t need to bump the GCC requirement when it&apos;s working on other architectures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269897</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-25 11:35:58 -0800</bug_when>
    <thetext>What do I do locally to get it to use a newer compiler?  I&apos;m not familiar with all the webkit/gtk infrastructure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269931</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-25 13:08:18 -0800</bug_when>
    <thetext>Set the CC and CXX environment variables to point at a newer compiler. Unfortunately GCC 4.9 is the newest GCC available in Jessie, so you&apos;d have to build a newer version yourself, which you don&apos;t want to do. I&apos;d first try installing clang and using that instead:

CC=/usr/bin/clang CXX=/usr/bin/clang++ update-webkitgtk-libs

Failing that, upgrade to Stretch (is there a Stretch-based Raspbian yet?) which has a newer version of GCC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269935</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-25 13:12:47 -0800</bug_when>
    <thetext>Actually, unless you&apos;re planning to run layout tests, you don&apos;t need to use the JHBuild environment at all. That&apos;s really intended for developers who need to be able to run layout tests to ensure we&apos;re all using the same versions of all the dependencies. It&apos;s not suitable for actual production use. So probably a better option for you is to just not run update-webkitgtk-libs at all. Clear out WebKitBuild/(build type)/DependenciesGTK and skip straight to running build-webkit, and install system development packages for all the packages that CMake complains is missing. Then you don&apos;t have to build pixman at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270146</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-26 00:11:16 -0800</bug_when>
    <thetext>When I run build-webkit --gtk without update-webkitgtk-libs, I have to install several things, but I can&apos;t figure out what gtk+-quartz-3.0 is or why it is looking for it on linux.

clang worked to build pixman, but it failed to build libffi-3.1:
/home/pi/webkit/WebKitBuild/DependenciesGTK/Source/libffi-3.1/src/arm/sysv.S:399:2: error: invalid instruction
 stmeqia r2, {r0, r1}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270179</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-26 04:48:43 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Yeah, it&apos;s a GCC crash, and GCC 4.9 is no longer supported upstream.
&gt; 
&gt; I think we should do nothing. We don&apos;t need to bump the GCC requirement when
&gt; it&apos;s working on other architectures.

We have an ARM buildbot that has been building this fine for a long time. And I also have built this on a Debian Jessie armhf (ARMv7 32bits) with GCC-4.9 just fine.

I think there is something else going there. I will try to trigger a clean build here in the ARMv7 board I have for tests here.

Note that the RPI3 has an ARM64 processor, but the kernel and the userland is all 32-bit. You are not using any of the 64-bit capabilities of the CPU unless you build your own Aarch64 kernel and you use an Aarch64 userland. Some people are trying that, check this for more info: https://github.com/raspberrypi/firmware/issues/550 But officially (so far) only 32 bit support is enabled for any RPi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270184</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-26 05:27:52 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; When I run build-webkit --gtk without update-webkitgtk-libs, I have to
&gt; install several things, but I can&apos;t figure out what gtk+-quartz-3.0 is or
&gt; why it is looking for it on linux.

It&apos;s the Mac backend for GTK+ and it&apos;s not available on Linux for that reason. You don&apos;t want it. It shouldn&apos;t be required unless you build with -DENABLE_QUARTZ_TARGET=ON, which you shouldn&apos;t do. CMake might print a nonfatal message about it being missing that you should be able to ignore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270215</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-26 09:50:41 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #3)
&gt; &gt; Yeah, it&apos;s a GCC crash, and GCC 4.9 is no longer supported upstream.
&gt; &gt; 
&gt; &gt; I think we should do nothing. We don&apos;t need to bump the GCC requirement when
&gt; &gt; it&apos;s working on other architectures.
&gt; 
&gt; We have an ARM buildbot that has been building this fine for a long time.
&gt; And I also have built this on a Debian Jessie armhf (ARMv7 32bits) with
&gt; GCC-4.9 just fine.
&gt; 
&gt; I think there is something else going there. I will try to trigger a clean
&gt; build here in the ARMv7 board I have for tests here.

I have just built it fine. I can&apos;t reproduce that error. This is my system:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 8.5 (jessie)
Release:	8.5
Codename:	jessie

$ uname -a
Linux wandboard 4.0.3-armv7-x2 #1 SMP Thu May 14 14:30:32 CST 2015 armv7l GNU/Linux

$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion=&apos;Debian 4.9.2-10&apos; --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10) 

Do you have something different?

I may retry with a rpi3 and that image &lt;RASPBIAN JESSIE WITH PIXEL released 2017-01-11&gt; to see if i can reproduce it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270228</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-26 10:44:32 -0800</bug_when>
    <thetext>It seems this is a known issue. The EFL guys have work-arounded it by passing  --disable-arm-iwmmxt in the configure flags for pixman.

See bug 147224


I still don&apos;t know why I can&apos;t reproduce it on my environment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271252</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-30 08:01:50 -0800</bug_when>
    <thetext>This is the issue explained:

 * pixman has an optional fastpath for iwMMXt (&quot;Intel Wireless MMX Technology&quot;), which are an extension of the ARM instruction set found in some Intel&apos;s and Marvell&apos;s XScale microprocessors. 


 * On the configure step, pixman tests the compiler to see if has support for iwMMXt. On the raspberrypi with pixel this test passes, but on a standard Debian ARMv7 it doesn&apos;t. The explanation is that for iwMMXt support the compiler has to use ARM traditional instruction set. And Debian defaults to use Thumb2 instruction set, meanwhile Pixel/Raspbian defaults to ARM traditional. So in standard Debian this test doesn&apos;t passes and the support for iwMMXt is disabled in the configure step, avoiding that way the compiler bug on the compile step. On the RPI with Pixel the test passes and support for 
iwMMXt is enabled, causing the failure on the build step.

Given that:

 * Boards with this iwMMXt instructions are rare (I never saw one and its the first time I hear about this iwMMXt thing)
 * We are already disabling MMX for another build issue with Clang (And MMX instructions are practically on every recent x86 chip). See bug 151441
 * The performance implications of disabling iwMMXt don&apos;t look like a game changer: https://people.freedesktop.org/~mattst88/iwmmxt-benchmarks/cairo-perf-trace-summary
 * This will be a no-op on any standard Debian (and probably also on other distros like Ubuntu or Fedora) system. As Debian defaults to use Thumb2 on ARMv7.
 * The goal of the JHBuild is not to build the libraries for production, but for allowing the developers to have consistent layout test results. So I think its ok to disable any optimization on this libraries when it helps the goal of allowing the build to succeed on any developer machine.

So, I think we should disable this like it has been done for the EFL port.

Patch coming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271257</commentid>
    <comment_count>13</comment_count>
      <attachid>300111</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-30 08:18:59 -0800</bug_when>
    <thetext>Created attachment 300111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271270</commentid>
    <comment_count>14</comment_count>
      <attachid>300111</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 09:10:29 -0800</bug_when>
    <thetext>Comment on attachment 300111
Patch

Clearing flags on attachment: 300111

Committed r211369: &lt;http://trac.webkit.org/changeset/211369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271271</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 09:10:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273364</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-05 00:58:36 -0800</bug_when>
    <thetext>I had forgotten to install libicu-dev and disable WebRTC and MediaStream in Tools/Scripts/webkitperl/FeatureList.pm because I don&apos;t have openwebrtc on my system, but it has started compiling.  I had to run ninja -j2 because there isn&apos;t enough memory to reliably run more than two gcc instances in the 1GB of memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273436</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-02-05 16:26:16 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I had forgotten to install libicu-dev and disable WebRTC and MediaStream in
&gt; Tools/Scripts/webkitperl/FeatureList.pm because I don&apos;t have openwebrtc on
&gt; my system, but it has started compiling.  I had to run ninja -j2 because
&gt; there isn&apos;t enough memory to reliably run more than two gcc instances in the
&gt; 1GB of memory.

The RPi3 has only 1GB of RAM that is shared with the GPU. I&apos;m not sure if you will be able to build WebKit on it. The linking step requires quite a few RAM.

I would suggest a board with at least 2GB of RAM, or cross-building on a powerful x86_64 machine. Tools like buildroot or yocto/openembedded allow one to easily cross-build for a range of boards/architectures.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299681</attachid>
            <date>2017-01-24 23:44:34 -0800</date>
            <delta_ts>2017-01-24 23:44:34 -0800</delta_ts>
            <desc>build output</desc>
            <filename>output</filename>
            <type>application/octet-stream</type>
            <size>83426</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">bWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLWNhc2UnCm1ha2UgIGlu
c3RhbGwtYW0KbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLWNhc2Un
Cm1ha2VbM106IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1jYXNlJwptYWtlWzNd
OiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdpbnN0YWxsLWV4ZWMtYW0nLgptYWtlWzNdOiBOb3Ro
aW5nIHRvIGJlIGRvbmUgZm9yICdpbnN0YWxsLWRhdGEtYW0nLgptYWtlWzNdOiBMZWF2aW5nIGRp
cmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWls
ZC9mb250Y29uZmlnLTIuMTEuMS9mYy1jYXNlJwptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAn
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29u
ZmlnLTIuMTEuMS9mYy1jYXNlJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEu
MS9mYy1jYXNlJwpNYWtpbmcgaW5zdGFsbCBpbiBmYy1sYW5nCm1ha2VbMV06IEVudGVyaW5nIGRp
cmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWls
ZC9mb250Y29uZmlnLTIuMTEuMS9mYy1sYW5nJwptYWtlICBpbnN0YWxsLWFtCm1ha2VbMl06IEVu
dGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1sYW5nJwptYWtlWzNdOiBFbnRlcmluZyBk
aXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVp
bGQvZm9udGNvbmZpZy0yLjExLjEvZmMtbGFuZycKbWFrZVszXTogTm90aGluZyB0byBiZSBkb25l
IGZvciAnaW5zdGFsbC1leGVjLWFtJy4KbWFrZVszXTogTm90aGluZyB0byBiZSBkb25lIGZvciAn
aW5zdGFsbC1kYXRhLWFtJy4KbWFrZVszXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEv
ZmMtbGFuZycKbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtbGFuZycK
bWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtbGFuZycKTWFraW5nIGlu
c3RhbGwgaW4gZmMtZ2x5cGhuYW1lCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIu
MTEuMS9mYy1nbHlwaG5hbWUnCm1ha2UgIGluc3RhbGwtYW0KbWFrZVsyXTogRW50ZXJpbmcgZGly
ZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxk
L2ZvbnRjb25maWctMi4xMS4xL2ZjLWdseXBobmFtZScKbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0
b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2Zv
bnRjb25maWctMi4xMS4xL2ZjLWdseXBobmFtZScKbWFrZVszXTogTm90aGluZyB0byBiZSBkb25l
IGZvciAnaW5zdGFsbC1leGVjLWFtJy4KbWFrZVszXTogTm90aGluZyB0byBiZSBkb25lIGZvciAn
aW5zdGFsbC1kYXRhLWFtJy4KbWFrZVszXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEv
ZmMtZ2x5cGhuYW1lJwptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1n
bHlwaG5hbWUnCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLWdseXBo
bmFtZScKTWFraW5nIGluc3RhbGwgaW4gc3JjCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAn
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29u
ZmlnLTIuMTEuMS9zcmMnCm1ha2UgIGluc3RhbGwtYW0KbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0
b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2Zv
bnRjb25maWctMi4xMS4xL3NyYycKbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4x
MS4xL3NyYycKIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvbGliJwogL2Jpbi9iYXNoIC4uL2xpYnRv
b2wgICAtLW1vZGU9aW5zdGFsbCAvdXNyL2Jpbi9pbnN0YWxsIC1jICAgbGliZm9udGNvbmZpZy5s
YSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1
aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvUm9vdC9saWInCmxpYnRvb2w6IGluc3RhbGw6IC91c3IvYmluL2luc3RhbGwgLWMgLmxp
YnMvbGliZm9udGNvbmZpZy5zby4xLjguMCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYi9saWJmb250Y29uZmlnLnNvLjEu
OC4wCmxpYnRvb2w6IGluc3RhbGw6IChjZCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYiAmJiB7IGxuIC1zIC1mIGxpYmZv
bnRjb25maWcuc28uMS44LjAgbGliZm9udGNvbmZpZy5zby4xIHx8IHsgcm0gLWYgbGliZm9udGNv
bmZpZy5zby4xICYmIGxuIC1zIGxpYmZvbnRjb25maWcuc28uMS44LjAgbGliZm9udGNvbmZpZy5z
by4xOyB9OyB9KQpsaWJ0b29sOiBpbnN0YWxsOiAoY2QgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9saWIgJiYgeyBsbiAtcyAt
ZiBsaWJmb250Y29uZmlnLnNvLjEuOC4wIGxpYmZvbnRjb25maWcuc28gfHwgeyBybSAtZiBsaWJm
b250Y29uZmlnLnNvICYmIGxuIC1zIGxpYmZvbnRjb25maWcuc28uMS44LjAgbGliZm9udGNvbmZp
Zy5zbzsgfTsgfSkKbGlidG9vbDogaW5zdGFsbDogL3Vzci9iaW4vaW5zdGFsbCAtYyAubGlicy9s
aWJmb250Y29uZmlnLmxhaSAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYi9saWJmb250Y29uZmlnLmxhCmxpYnRvb2w6IGlu
c3RhbGw6IHdhcm5pbmc6IHJlbWVtYmVyIHRvIHJ1biBgbGlidG9vbCAtLWZpbmlzaCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvbGliJwptYWtlWzNdOiBO
b3RoaW5nIHRvIGJlIGRvbmUgZm9yICdpbnN0YWxsLWRhdGEtYW0nLgptYWtlWzNdOiBMZWF2aW5n
IGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9C
dWlsZC9mb250Y29uZmlnLTIuMTEuMS9zcmMnCm1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5ICcv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25m
aWctMi4xMS4xL3NyYycKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvc3Jj
JwpNYWtpbmcgaW5zdGFsbCBpbiBmYy1jYWNoZQptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rvcnkg
Jy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNv
bmZpZy0yLjExLjEvZmMtY2FjaGUnCm1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIu
MTEuMS9mYy1jYWNoZScKIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvYmluJwogIC9iaW4vYmFzaCAu
Li9saWJ0b29sICAgLS1tb2RlPWluc3RhbGwgL3Vzci9iaW4vaW5zdGFsbCAtYyBmYy1jYWNoZSAn
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxk
L3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9iaW4nCmxpYnRvb2w6IGluc3RhbGw6IHdhcm5pbmc6IGAuLi9zcmMvbGliZm9udGNv
bmZpZy5sYScgaGFzIG5vdCBiZWVuIGluc3RhbGxlZCBpbiBgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYicKbGlidG9vbDogaW5zdGFsbDogL3Vzci9i
aW4vaW5zdGFsbCAtYyAubGlicy9mYy1jYWNoZSAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2Jpbi9mYy1jYWNoZQovYmluL2Jh
c2ggL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvaW5zdGFsbC1zaCAtZCAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC92YXIvY2FjaGUvZm9udGNvbmZp
ZyIKIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjEnCiAvdXNyL2Jpbi9pbnN0
YWxsIC1jIC1tIDY0NCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9mYy1jYWNoZS9mYy1jYWNoZS4xICcvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250
Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3No
YXJlL21hbi9tYW4xJwptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1j
YWNoZScKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtY2FjaGUnCk1h
a2luZyBpbnN0YWxsIGluIGZjLWNhdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0y
LjExLjEvZmMtY2F0JwptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMt
Y2F0JwogL2Jpbi9ta2RpciAtcCAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVu
Y2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4nCiAgL2Jpbi9iYXNoIC4uL2xpYnRvb2wg
ICAtLW1vZGU9aW5zdGFsbCAvdXNyL2Jpbi9pbnN0YWxsIC1jIGZjLWNhdCAnL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNv
bmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4n
CmxpYnRvb2w6IGluc3RhbGw6IHdhcm5pbmc6IGAuLi9zcmMvbGliZm9udGNvbmZpZy5sYScgaGFz
IG5vdCBiZWVuIGluc3RhbGxlZCBpbiBgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290L2xpYicKbGlidG9vbDogaW5zdGFsbDogL3Vzci9iaW4vaW5zdGFsbCAt
YyAubGlicy9mYy1jYXQgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4vZmMtY2F0CiAvYmluL21rZGlyIC1wICcvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1m
b250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290
L3NoYXJlL21hbi9tYW4xJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZmMtY2F0L2ZjLWNhdC4xICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL21hbi9tYW4xJwptYWtlWzJdOiBMZWF2aW5n
IGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9C
dWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1jYXQnCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5
ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRj
b25maWctMi4xMS4xL2ZjLWNhdCcKTWFraW5nIGluc3RhbGwgaW4gZmMtbGlzdAptYWtlWzFdOiBF
bnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtbGlzdCcKbWFrZVsyXTogRW50ZXJpbmcg
ZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1
aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLWxpc3QnCiAvYmluL21rZGlyIC1wICcvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250
Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2Jp
bicKICAvYmluL2Jhc2ggLi4vbGlidG9vbCAgIC0tbW9kZT1pbnN0YWxsIC91c3IvYmluL2luc3Rh
bGwgLWMgZmMtbGlzdCAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4nCmxpYnRvb2w6IGluc3RhbGw6IHdhcm5pbmc6IGAu
Li9zcmMvbGliZm9udGNvbmZpZy5sYScgaGFzIG5vdCBiZWVuIGluc3RhbGxlZCBpbiBgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYicKbGlidG9vbDog
aW5zdGFsbDogL3Vzci9iaW4vaW5zdGFsbCAtYyAubGlicy9mYy1saXN0IC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25m
aWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvYmluL2Zj
LWxpc3QKIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjEnCiAvdXNyL2Jpbi9p
bnN0YWxsIC1jIC1tIDY0NCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9mYy1saXN0L2ZjLWxpc3QuMSAnL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9u
dGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9z
aGFyZS9tYW4vbWFuMScKbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMt
bGlzdCcKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtbGlzdCcKTWFr
aW5nIGluc3RhbGwgaW4gZmMtbWF0Y2gKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWct
Mi4xMS4xL2ZjLW1hdGNoJwptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEv
ZmMtbWF0Y2gnCiAvYmluL21rZGlyIC1wICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2JpbicKICAvYmluL2Jhc2ggLi4vbGli
dG9vbCAgIC0tbW9kZT1pbnN0YWxsIC91c3IvYmluL2luc3RhbGwgLWMgZmMtbWF0Y2ggJy9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290
LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jv
b3QvYmluJwpsaWJ0b29sOiBpbnN0YWxsOiB3YXJuaW5nOiBgLi4vc3JjL2xpYmZvbnRjb25maWcu
bGEnIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgaW4gYC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9saWInCmxpYnRvb2w6IGluc3RhbGw6IC91c3IvYmluL2lu
c3RhbGwgLWMgLmxpYnMvZmMtbWF0Y2ggL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4vZmMtbWF0Y2gKIC9iaW4vbWtkaXIg
LXAgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhi
dWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjEnCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9mYy1tYXRjaC9mYy1tYXRjaC4xICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL21hbi9tYW4xJwpt
YWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1tYXRjaCcKbWFrZVsxXTog
TGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtbWF0Y2gnCk1ha2luZyBpbnN0YWxsIGlu
IGZjLXBhdHRlcm4KbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLXBh
dHRlcm4nCm1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1wYXR0ZXJu
JwogL2Jpbi9ta2RpciAtcCAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4nCiAgL2Jpbi9iYXNoIC4uL2xpYnRvb2wgICAt
LW1vZGU9aW5zdGFsbCAvdXNyL2Jpbi9pbnN0YWxsIC1jIGZjLXBhdHRlcm4gJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRj
b25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvYmlu
JwpsaWJ0b29sOiBpbnN0YWxsOiB3YXJuaW5nOiBgLi4vc3JjL2xpYmZvbnRjb25maWcubGEnIGhh
cyBub3QgYmVlbiBpbnN0YWxsZWQgaW4gYC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvUm9vdC9saWInCmxpYnRvb2w6IGluc3RhbGw6IC91c3IvYmluL2luc3RhbGwg
LWMgLmxpYnMvZmMtcGF0dGVybiAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2Jpbi9mYy1wYXR0ZXJuCiAvYmluL21rZGlyIC1w
ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVp
bGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L3NoYXJlL21hbi9tYW4xJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZmMtcGF0dGVybi9mYy1wYXR0ZXJuLjEgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjEn
Cm1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLXBhdHRlcm4nCm1ha2Vb
MV06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLXBhdHRlcm4nCk1ha2luZyBpbnN0
YWxsIGluIGZjLXF1ZXJ5Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9m
Yy1xdWVyeScKbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLXF1ZXJ5
JwogL2Jpbi9ta2RpciAtcCAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4nCiAgL2Jpbi9iYXNoIC4uL2xpYnRvb2wgICAt
LW1vZGU9aW5zdGFsbCAvdXNyL2Jpbi9pbnN0YWxsIC1jIGZjLXF1ZXJ5ICcvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29u
ZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2JpbicK
bGlidG9vbDogaW5zdGFsbDogd2FybmluZzogYC4uL3NyYy9saWJmb250Y29uZmlnLmxhJyBoYXMg
bm90IGJlZW4gaW5zdGFsbGVkIGluIGAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1Jvb3QvbGliJwpsaWJ0b29sOiBpbnN0YWxsOiAvdXNyL2Jpbi9pbnN0YWxsIC1j
IC5saWJzL2ZjLXF1ZXJ5IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvYmluL2ZjLXF1ZXJ5CiAvYmluL21rZGlyIC1wICcvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9v
dC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9S
b290L3NoYXJlL21hbi9tYW4xJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjEx
LjEvZmMtcXVlcnkvZmMtcXVlcnkuMSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9tYW4vbWFuMScKbWFrZVsyXTog
TGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtcXVlcnknCm1ha2VbMV06IExlYXZpbmcg
ZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1
aWxkL2ZvbnRjb25maWctMi4xMS4xL2ZjLXF1ZXJ5JwpNYWtpbmcgaW5zdGFsbCBpbiBmYy1zY2Fu
Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9mYy1zY2FuJwptYWtlWzJd
OiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvZmMtc2NhbicKIC9iaW4vbWtkaXIgLXAg
Jy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWls
ZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1Jvb3QvYmluJwogIC9iaW4vYmFzaCAuLi9saWJ0b29sICAgLS1tb2RlPWluc3RhbGwgL3Vz
ci9iaW4vaW5zdGFsbCAtYyBmYy1zY2FuICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2JpbicKbGlidG9vbDogaW5zdGFsbDog
d2FybmluZzogYC4uL3NyYy9saWJmb250Y29uZmlnLmxhJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVk
IGluIGAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvbGli
JwpsaWJ0b29sOiBpbnN0YWxsOiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC5saWJzL2ZjLXNjYW4gL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jv
b3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsv
Um9vdC9iaW4vZmMtc2NhbgogL2Jpbi9ta2RpciAtcCAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9tYW4vbWFuMScK
IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2ZjLXNjYW4vZmMtc2Nhbi4x
ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVp
bGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L3NoYXJlL21hbi9tYW4xJwptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmln
LTIuMTEuMS9mYy1zY2FuJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9m
Yy1zY2FuJwpNYWtpbmcgaW5zdGFsbCBpbiBmYy12YWxpZGF0ZQptYWtlWzFdOiBFbnRlcmluZyBk
aXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVp
bGQvZm9udGNvbmZpZy0yLjExLjEvZmMtdmFsaWRhdGUnCm1ha2VbMl06IEVudGVyaW5nIGRpcmVj
dG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9m
b250Y29uZmlnLTIuMTEuMS9mYy12YWxpZGF0ZScKIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRj
b25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvYmlu
JwogIC9iaW4vYmFzaCAuLi9saWJ0b29sICAgLS1tb2RlPWluc3RhbGwgL3Vzci9iaW4vaW5zdGFs
bCAtYyBmYy12YWxpZGF0ZSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9iaW4nCmxpYnRvb2w6IGluc3RhbGw6IHdhcm5pbmc6
IGAuLi9zcmMvbGliZm9udGNvbmZpZy5sYScgaGFzIG5vdCBiZWVuIGluc3RhbGxlZCBpbiBgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYicKbGlidG9v
bDogaW5zdGFsbDogL3Vzci9iaW4vaW5zdGFsbCAtYyAubGlicy9mYy12YWxpZGF0ZSAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1m
b250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290
L2Jpbi9mYy12YWxpZGF0ZQogL2Jpbi9ta2RpciAtcCAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9tYW4vbWFuMScK
IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2ZjLXZhbGlkYXRlL2ZjLXZh
bGlkYXRlLjEgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9v
dC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjEnCm1ha2VbMl06IExlYXZpbmcgZGlyZWN0
b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2Zv
bnRjb25maWctMi4xMS4xL2ZjLXZhbGlkYXRlJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAn
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29u
ZmlnLTIuMTEuMS9mYy12YWxpZGF0ZScKTWFraW5nIGluc3RhbGwgaW4gY29uZi5kCm1ha2VbMV06
IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVu
Y2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9jb25mLmQnCm1ha2UgIGluc3RhbGwtYW0K
bWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZCcKbWFrZVszXTog
RW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZCcKbWFrZVszXTogTm90aGluZyB0
byBiZSBkb25lIGZvciAnaW5zdGFsbC1leGVjLWFtJy4KIC9iaW4vbWtkaXIgLXAgJy9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZv
bnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qv
ZXRjL2ZvbnRzL2NvbmYuZCcKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2NvbmYuZC9SRUFETUUgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvZXRjL2ZvbnRzL2NvbmYuZCcKIC9iaW4vbWtkaXIgLXAg
Jy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWls
ZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1Jvb3Qvc2hhcmUvZm9udGNvbmZpZy9jb25mLmF2YWlsJwogL3Vzci9iaW4vaW5zdGFsbCAt
YyAtbSA2NDQgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3Vy
Y2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzEwLWF1dG9oaW50LmNvbmYgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
Y29uZi5kLzEwLW5vLXN1Yi1waXhlbC5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC8xMC1zY2FsZS1i
aXRtYXAtZm9udHMuY29uZiAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9jb25mLmQvMTAtc3ViLXBpeGVsLWJnci5jb25m
IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRj
b25maWctMi4xMS4xL2NvbmYuZC8xMC1zdWItcGl4ZWwtcmdiLmNvbmYgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvY29u
Zi5kLzEwLXN1Yi1waXhlbC12YmdyLmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzEwLXN1Yi1waXhl
bC12cmdiLmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzEwLXVuaGludGVkLmNvbmYgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjEx
LjEvY29uZi5kLzExLWxjZGZpbHRlci1kZWZhdWx0LmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzEx
LWxjZGZpbHRlci1sZWdhY3kuY29uZiAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9jb25mLmQvMTEtbGNkZmlsdGVyLWxp
Z2h0LmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3Vy
Y2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzIwLXVuaGludC1zbWFsbC12ZXJhLmNvbmYgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvY29uZi5kLzI1LXVuaGludC1ub25sYXRpbi5jb25mIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYu
ZC8zMC11cnctYWxpYXNlcy5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC8zMC1tZXRyaWMtYWxpYXNl
cy5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC80MC1ub25sYXRpbi5jb25mIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Nv
bmYuZC80NS1sYXRpbi5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC80OS1zYW5zc2VyaWYuY29uZiAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9jb25mLmQvNTAtdXNlci5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC81MS1sb2Nh
bC5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC82MC1sYXRpbi5jb25mIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYu
ZC82NS1mb250cy1wZXJzaWFuLmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzY1LWtobWVyLmNvbmYg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNv
bmZpZy0yLjExLjEvY29uZi5kLzY1LW5vbmxhdGluLmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kLzY5
LXVuaWZvbnQuY29uZiAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9jb25mLmQvNzAtbm8tYml0bWFwcy5jb25mIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2NvbmYuZC83MC15ZXMtYml0bWFwcy5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2NvbmYuZC84MC1k
ZWxpY2lvdXMuY29uZiAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9jb25mLmQvOTAtc3ludGhldGljLmNvbmYgJy9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290
LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jv
b3Qvc2hhcmUvZm9udGNvbmZpZy9jb25mLmF2YWlsJwptYWtlICBpbnN0YWxsLWRhdGEtaG9vawpt
YWtlWzRdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kJwpta2RpciAtcCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQv
cm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290L2V0Yy9mb250cy9jb25mLmQKY2QgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9ldGMvZm9udHMvY29uZi5kCnJtIC1m
IDEwLXNjYWxlLWJpdG1hcC1mb250cy5jb25mOyBsbiAtcyAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvZm9udGNvbmZpZy9jb25mLmF2YWlsLzEw
LXNjYWxlLWJpdG1hcC1mb250cy5jb25mIC4Kcm0gLWYgMjAtdW5oaW50LXNtYWxsLXZlcmEuY29u
ZjsgbG4gLXMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290
L3NoYXJlL2ZvbnRjb25maWcvY29uZi5hdmFpbC8yMC11bmhpbnQtc21hbGwtdmVyYS5jb25mIC4K
cm0gLWYgMzAtdXJ3LWFsaWFzZXMuY29uZjsgbG4gLXMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRjb25maWcvY29uZi5hdmFpbC8zMC11
cnctYWxpYXNlcy5jb25mIC4Kcm0gLWYgMzAtbWV0cmljLWFsaWFzZXMuY29uZjsgbG4gLXMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRj
b25maWcvY29uZi5hdmFpbC8zMC1tZXRyaWMtYWxpYXNlcy5jb25mIC4Kcm0gLWYgNDAtbm9ubGF0
aW4uY29uZjsgbG4gLXMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290L3NoYXJlL2ZvbnRjb25maWcvY29uZi5hdmFpbC80MC1ub25sYXRpbi5jb25mIC4Kcm0g
LWYgNDUtbGF0aW4uY29uZjsgbG4gLXMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRjb25maWcvY29uZi5hdmFpbC80NS1sYXRpbi5jb25m
IC4Kcm0gLWYgNDktc2Fuc3NlcmlmLmNvbmY7IGxuIC1zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9mb250Y29uZmlnL2NvbmYuYXZhaWwvNDkt
c2Fuc3NlcmlmLmNvbmYgLgpybSAtZiA1MC11c2VyLmNvbmY7IGxuIC1zIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9mb250Y29uZmlnL2NvbmYu
YXZhaWwvNTAtdXNlci5jb25mIC4Kcm0gLWYgNTEtbG9jYWwuY29uZjsgbG4gLXMgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRjb25maWcv
Y29uZi5hdmFpbC81MS1sb2NhbC5jb25mIC4Kcm0gLWYgNjAtbGF0aW4uY29uZjsgbG4gLXMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRj
b25maWcvY29uZi5hdmFpbC82MC1sYXRpbi5jb25mIC4Kcm0gLWYgNjUtZm9udHMtcGVyc2lhbi5j
b25mOyBsbiAtcyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jv
b3Qvc2hhcmUvZm9udGNvbmZpZy9jb25mLmF2YWlsLzY1LWZvbnRzLXBlcnNpYW4uY29uZiAuCnJt
IC1mIDY1LW5vbmxhdGluLmNvbmY7IGxuIC1zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9mb250Y29uZmlnL2NvbmYuYXZhaWwvNjUtbm9ubGF0
aW4uY29uZiAuCnJtIC1mIDY5LXVuaWZvbnQuY29uZjsgbG4gLXMgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRjb25maWcvY29uZi5hdmFp
bC82OS11bmlmb250LmNvbmYgLgpybSAtZiA4MC1kZWxpY2lvdXMuY29uZjsgbG4gLXMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL2ZvbnRjb25m
aWcvY29uZi5hdmFpbC84MC1kZWxpY2lvdXMuY29uZiAuCnJtIC1mIDkwLXN5bnRoZXRpYy5jb25m
OyBsbiAtcyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qv
c2hhcmUvZm9udGNvbmZpZy9jb25mLmF2YWlsLzkwLXN5bnRoZXRpYy5jb25mIC4KbWFrZVs0XTog
TGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvY29uZi5kJwptYWtlWzNdOiBMZWF2aW5nIGRp
cmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWls
ZC9mb250Y29uZmlnLTIuMTEuMS9jb25mLmQnCm1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5ICcv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25m
aWctMi4xMS4xL2NvbmYuZCcKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEv
Y29uZi5kJwpNYWtpbmcgaW5zdGFsbCBpbiB0ZXN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9y
eSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250
Y29uZmlnLTIuMTEuMS90ZXN0JwptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjEx
LjEvdGVzdCcKbWFrZVsyXTogTm90aGluZyB0byBiZSBkb25lIGZvciAnaW5zdGFsbC1leGVjLWFt
Jy4KbWFrZVsyXTogTm90aGluZyB0byBiZSBkb25lIGZvciAnaW5zdGFsbC1kYXRhLWFtJy4KbWFr
ZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEvdGVzdCcKbWFrZVsxXTogTGVhdmlu
ZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsv
QnVpbGQvZm9udGNvbmZpZy0yLjExLjEvdGVzdCcKTWFraW5nIGluc3RhbGwgaW4gZG9jCm1ha2Vb
MV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9kb2MnCm1ha2UgIGluc3RhbGwtYW0K
bWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2RvYycKbWFrZVszXTogRW50
ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL0J1aWxkL2ZvbnRjb25maWctMi4xMS4xL2RvYycKbWFrZVszXTogTm90aGluZyB0byBiZSBk
b25lIGZvciAnaW5zdGFsbC1leGVjLWFtJy4KIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25m
aWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUv
ZG9jL2ZvbnRjb25maWcnCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvZm9udGNvbmZpZy11c2VyLnR4dCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC50
eHQgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctdXNlci5wZGYgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwucGRmIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLXVzZXIuaHRtbCAn
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxk
L3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9zaGFyZS9kb2MvZm9udGNvbmZpZycKIC9iaW4vbWtkaXIgLXAgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRj
b25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hh
cmUvZG9jL2ZvbnRjb25maWcvZm9udGNvbmZpZy1kZXZlbCcKIC91c3IvYmluL2luc3RhbGwgLWMg
LW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjYXRvbWljY3JlYXRlLmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNhdG9taWNkZWxldGVuZXcuaHRt
bCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250
Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2F0b21pY2Rlc3Ryb3kuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2F0b21pY2xvY2suaHRtbCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2F0b21pY25ld2ZpbGUuaHRtbCAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2F0b21pY29yaWdmaWxlLmh0bWwgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNhdG9taWNyZXBsYWNlb3JpZy5odG1sIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9mb250Y29uZmlnLWRldmVsL2ZjYXRvbWljdW5sb2NrLmh0bWwgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L2ZvbnRjb25maWctZGV2ZWwvZmNibGFua3NhZGQuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNv
bmZpZy1kZXZlbC9mY2JsYW5rc2NyZWF0ZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL2ZjYmxhbmtzZGVzdHJveS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRl
dmVsL2ZjYmxhbmtzaXNtZW1iZXIuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZl
bC9mY2NhY2hlY29weXNldC5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zj
Y2FjaGVjcmVhdGV0YWdmaWxlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwv
ZmNjYWNoZWRpci5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY2FjaGVu
dW1mb250Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjYWNoZW51bXN1
YmRpci5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY2FjaGVzdWJkaXIu
aHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NoYXJzZXRhZGRjaGFyLmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjaGFyc2V0Y29weS5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY2hhcnNldGNvdW50Lmh0bWwgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjaGFyc2V0Y292ZXJhZ2UuaHRtbCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NoYXJzZXRjcmVhdGUuaHRtbCAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NoYXJzZXRkZWxjaGFyLmh0bWwgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjaGFyc2V0ZGVzdHJveS5odG1sIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9mb250Y29uZmlnLWRldmVsL2ZjY2hhcnNldGVxdWFsLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwvZmNjaGFyc2V0Zmlyc3RwYWdlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwvZmNjaGFyc2V0aGFzY2hhci5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250
Y29uZmlnLWRldmVsL2ZjY2hhcnNldGludGVyc2VjdGNvdW50Lmh0bWwgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L2ZvbnRjb25maWctZGV2ZWwvZmNjaGFyc2V0aW50ZXJzZWN0Lmh0bWwgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L2ZvbnRjb25maWctZGV2ZWwvZmNjaGFyc2V0aXNzdWJzZXQuaHRtbCAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
Zm9udGNvbmZpZy1kZXZlbC9mY2NoYXJzZXRtZXJnZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250
Y29uZmlnLWRldmVsL2ZjY2hhcnNldG5ldy5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL2ZjY2hhcnNldG5leHRwYWdlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWct
ZGV2ZWwvZmNjaGFyc2V0c3VidHJhY3Rjb3VudC5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29u
ZmlnLWRldmVsL2ZjY2hhcnNldHN1YnRyYWN0Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25m
aWctZGV2ZWwvZmNjaGFyc2V0dW5pb24uaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1k
ZXZlbC9mY2NvbmZpZ2FwcGZvbnRhZGRkaXIuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZp
Zy1kZXZlbC9mY2NvbmZpZ2FwcGZvbnRhZGRmaWxlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRj
b25maWctZGV2ZWwvZmNjb25maWdhcHBmb250Y2xlYXIuaHRtbCAnL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9kb2Mv
Zm9udGNvbmZpZy9mb250Y29uZmlnLWRldmVsJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNv
bmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdidWlsZGZvbnRzLmh0bWwg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNv
bmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdjcmVhdGUuaHRtbCAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2Rlc3Ryb3kuaHRtbCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2VuYWJsZWhvbWUuaHRtbCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2ZpbGVuYW1lLmh0bWwgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjEx
LjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdnZXRibGFua3MuaHRtbCAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2dldGNhY2hlZGlycy5odG1sIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY29uZmlnZ2V0Y2FjaGUuaHRtbCAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2dldGNvbmZpZ2RpcnMuaHRtbCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2dldGNvbmZpZ2ZpbGVzLmh0bWwgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdnZXRjdXJyZW50Lmh0bWwgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdnZXRmb250ZGlycy5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY29uZmlnZ2V0Zm9udHMuaHRtbCAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ2dldHJlc2NhbmludGVydmFsLmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdnZXRzeXNyb290Lmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdob21lLmh0bWwgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWdwYXJzZWFuZGxvYWQuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ3JlZmVyZW5jZS5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY29uZmlnc2V0Y3VycmVudC5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjY29uZmlnc2V0cmVzY2FuaW50ZXJ2YWwu
aHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ3NldHN5c3Jvb3Qu
aHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ3N1YnN0aXR1dGUu
aHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2NvbmZpZ3N1YnN0aXR1dGV3
aXRocGF0Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNjb25maWd1cHRv
ZGF0ZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjZGVmYXVsdHN1YnN0
aXR1dGUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2RpcmNhY2hlY2xl
YW4uaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2RpcmNhY2hlbG9hZGZp
bGUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2RpcmNhY2hlbG9hZC5o
dG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjZGlyY2FjaGVyZWFkLmh0bWwg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNv
bmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNkaXJjYWNoZXJlc2Nhbi5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjZGlyY2FjaGV1bmxpbmsuaHRtbCAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2RpcmNhY2hldW5sb2FkLmh0bWwgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNkaXJjYWNoZXZhbGlkLmh0bWwgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjEx
LjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNkaXJzYXZlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwvZmNkaXJzY2FuLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWct
ZGV2ZWwvZmNmaWxlaXNkaXIuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9m
Y2ZpbGVzY2FuLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNmaW5pLmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNmb250bGlzdC5odG1sIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjZm9udG1hdGNoLmh0bWwgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRj
b25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hh
cmUvZG9jL2ZvbnRjb25maWcvZm9udGNvbmZpZy1kZXZlbCcKIC91c3IvYmluL2luc3RhbGwgLWMg
LW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjZm9udHJlbmRlcnByZXBh
cmUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2ZvbnRzZXRhZGQuaHRt
bCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250
Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2ZvbnRzZXRjcmVhdGUuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2ZvbnRzZXRkZXN0cm95Lmh0bWwgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNmb250c2V0bGlzdC5odG1sIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjZm9udHNldG1hdGNoLmh0bWwgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNmb250c2V0cHJpbnQuaHRtbCAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
Zm9udGNvbmZpZy1kZXZlbC9mY2ZvbnRzZXRzb3J0ZGVzdHJveS5odG1sIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9mb250Y29uZmlnLWRldmVsL2ZjZm9udHNldHNvcnQuaHRtbCAvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9u
dGNvbmZpZy1kZXZlbC9mY2ZvbnRzb3J0Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWct
ZGV2ZWwvZmNmcmVldHlwZWNoYXJpbmRleC5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL2ZjZnJlZXR5cGVjaGFyc2V0YW5kc3BhY2luZy5odG1sIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9m
b250Y29uZmlnLWRldmVsL2ZjZnJlZXR5cGVjaGFyc2V0Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwvZmNmcmVldHlwZXF1ZXJ5ZmFjZS5odG1sIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9m
b250Y29uZmlnLWRldmVsL2ZjZnJlZXR5cGVxdWVyeS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250
Y29uZmlnLWRldmVsL2ZjZ2V0ZGVmYXVsdGxhbmdzLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRj
b25maWctZGV2ZWwvZmNnZXRsYW5ncy5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRl
dmVsL2ZjZ2V0dmVyc2lvbi5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zj
aW5pdGJyaW5ndXB0b2RhdGUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9m
Y2luaXQuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2luaXRsb2FkY29u
ZmlnYW5kZm9udHMuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2luaXRs
b2FkY29uZmlnLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNpbml0cmVp
bml0aWFsaXplLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNpc2xvd2Vy
Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2Uv
Zm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNpc3VwcGVyLmh0bWwgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNsYW5nZ2V0Y2hhcnNldC5odG1sIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbGFuZ25vcm1hbGl6ZS5odG1sIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbGFuZ3NldGFkZC5odG1sIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9mb250Y29uZmlnLWRldmVsL2ZjbGFuZ3NldGNvbXBhcmUuaHRtbCAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
Zm9udGNvbmZpZy1kZXZlbC9mY2xhbmdzZXRjb250YWlucy5odG1sIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9m
b250Y29uZmlnLWRldmVsL2ZjbGFuZ3NldGNvcHkuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNv
bmZpZy1kZXZlbC9mY2xhbmdzZXRjcmVhdGUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZp
Zy1kZXZlbC9mY2xhbmdzZXRkZWwuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZl
bC9mY2xhbmdzZXRkZXN0cm95Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwv
ZmNsYW5nc2V0ZXF1YWwuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2xh
bmdzZXRnZXRsYW5ncy5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbGFu
Z3NldGhhc2guaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2xhbmdzZXRo
YXNsYW5nLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNsYW5nc2V0c3Vi
dHJhY3QuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY2xhbmdzZXR1bmlv
bi5odG1sICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qv
X2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290L3NoYXJlL2RvYy9mb250Y29uZmlnL2ZvbnRjb25maWctZGV2ZWwnCiAv
dXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZl
bC9mY21hdHJpeGNvcHkuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY21h
dHJpeGVxdWFsLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNtYXRyaXhp
bml0Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3Vy
Y2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNtYXRyaXhtdWx0aXBs
eS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbWF0cml4cm90YXRlLmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNtYXRyaXhzY2FsZS5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbWF0cml4c2hlYXIuaHRtbCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY25hbWVjb25zdGFudC5odG1sIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbmFtZWdldGNvbnN0YW50Lmh0bWwgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNuYW1lZ2V0b2JqZWN0dHlwZS5odG1sIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbmFtZXBhcnNlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwvZmNuYW1lcmVnaXN0ZXJjb25zdGFudHMuaHRtbCAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvZm9udGNvbmZpZy1kZXZlbC9mY25hbWVyZWdpc3Rlcm9iamVjdHR5cGVzLmh0bWwgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNuYW1ldW5wYXJzZS5odG1sIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9mb250Y29uZmlnLWRldmVsL2ZjbmFtZXVucmVnaXN0ZXJjb25zdGFudHMuaHRtbCAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY25hbWV1bnJlZ2lzdGVyb2JqZWN0dHlwZXMu
aHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY29iamVjdHNldGFkZC5odG1s
IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRj
b25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjb2JqZWN0c2V0YnVpbGQuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY29iamVjdHNldGNyZWF0ZS5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjb2JqZWN0c2V0ZGVzdHJveS5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjcGF0dGVybmFkZC5odG1sIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjcGF0dGVybmFkZC10eXBlLmh0bWwgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjEx
LjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNwYXR0ZXJuYWRkd2Vhay5odG1sIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9mb250Y29uZmlnLWRldmVsL2ZjcGF0dGVybmJ1aWxkLmh0bWwgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L2ZvbnRjb25maWctZGV2ZWwvZmNwYXR0ZXJuY3JlYXRlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2Zv
bnRjb25maWctZGV2ZWwvZmNwYXR0ZXJuZGVsLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25m
aWctZGV2ZWwvZmNwYXR0ZXJuZGVzdHJveS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL2ZjcGF0dGVybmR1cGxpY2F0ZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL2ZjcGF0dGVybmVxdWFsLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2
ZWwvZmNwYXR0ZXJuZXF1YWxzdWJzZXQuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1k
ZXZlbC9mY3BhdHRlcm5maWx0ZXIuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZl
bC9mY3BhdHRlcm5mb3JtYXQuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9m
Y3BhdHRlcm5nZXQuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3BhdHRl
cm5nZXQtdHlwZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjcGF0dGVy
bmhhc2guaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3BhdHRlcm5wcmlu
dC5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjcGF0dGVybnJlZmVyZW5j
ZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjcGF0dGVybnJlbW92ZS5o
dG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3RyYmFzZW5hbWUuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3N0cmNtcC5odG1sICcvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250
Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3No
YXJlL2RvYy9mb250Y29uZmlnL2ZvbnRjb25maWctZGV2ZWwnCiAvdXNyL2Jpbi9pbnN0YWxsIC1j
IC1tIDY0NCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3N0cmNtcGlnbm9yZWNh
c2UuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3N0cmNvcHlmaWxlbmFt
ZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3RyY29weS5odG1sIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3RyZGlybmFtZS5odG1sIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3RyZG93bmNhc2UuaHRtbCAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvZm9udGNvbmZpZy1kZXZlbC9mY3N0cmZyZWUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNv
bmZpZy1kZXZlbC9mY3N0cmxpc3RjcmVhdGUuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZp
Zy1kZXZlbC9mY3N0cmxpc3Rkb25lLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2
ZWwvZmNzdHJsaXN0Zmlyc3QuaHRtbCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9m
Y3N0cmxpc3RuZXh0Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNzdHJw
bHVzLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3Vy
Y2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNzdHJzZXRhZGRmaWxl
bmFtZS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3Ryc2V0YWRkLmh0
bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmNzdHJzZXRjcmVhdGUuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3N0cnNldGRlbC5odG1sIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3Ryc2V0ZGVzdHJveS5odG1sIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9mb250Y29uZmlnLWRldmVsL2Zjc3Ryc2V0ZXF1YWwuaHRtbCAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
Zm9udGNvbmZpZy1kZXZlbC9mY3N0cnNldG1lbWJlci5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250
Y29uZmlnLWRldmVsL2Zjc3Ryc3RyLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2
ZWwvZmNzdHJzdHJpZ25vcmVjYXNlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2
ZWwvZmN0b2xvd2VyLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmN1Y3M0
dG91dGY4Lmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvZmN1dGYxNmxlbi5o
dG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL2ZjdXRmMTZ0b3VjczQuaHRtbCAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3V0ZjhsZW4uaHRtbCAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvZm9udGNvbmZpZy1kZXZlbC9mY3V0Zjh0b3VjczQuaHRtbCAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
Zm9udGNvbmZpZy1kZXZlbC9mY3ZhbHVlZGVzdHJveS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250
Y29uZmlnLWRldmVsL2ZjdmFsdWVlcXVhbC5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL2ZjdmFsdWVwcmludC5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVs
L2ZjdmFsdWVzYXZlLmh0bWwgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL2ZvbnRjb25maWctZGV2ZWwvbG4xMi5o
dG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL3QxLmh0bWwgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL2ZvbnRjb25maWctZGV2ZWwveDEwMi5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmln
LWRldmVsL3gxOS5odG1sIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250Y29uZmlnLWRldmVsL3gzMS5odG1s
ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVp
bGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L3NoYXJlL2RvYy9mb250Y29uZmlnL2ZvbnRjb25maWctZGV2ZWwnCiAvYmluL21r
ZGlyIC1wICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qv
X2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290L3NoYXJlL21hbi9tYW4zJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2
NDQgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL0ZjQXRvbWljQ3JlYXRlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQXRv
bWljTG9jay4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0F0b21pY05ld0ZpbGUuMyAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvRmNBdG9taWNPcmlnRmlsZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0F0b21pY1JlcGxhY2VPcmln
LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL0ZjQXRvbWljRGVsZXRlTmV3LjMgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0Zj
QXRvbWljVW5sb2NrLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQXRvbWljRGVzdHJveS4zIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9GY0JsYW5rc0NyZWF0ZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0JsYW5rc0Rlc3Ryb3ku
MyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250
Y29uZmlnLTIuMTEuMS9kb2MvRmNCbGFua3NBZGQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNCbGFua3NJ
c01lbWJlci4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NhY2hlRGlyLjMgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0Zj
Q2FjaGVDb3B5U2V0LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQ2FjaGVTdWJkaXIuMyAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvRmNDYWNoZU51bVN1YmRpci4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NhY2hlTnVtRm9udC4z
IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRj
b25maWctMi4xMS4xL2RvYy9GY0RpckNhY2hlQ2xlYW4uMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDYWNo
ZUNyZWF0ZVRhZ0ZpbGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0Q3JlYXRlLjMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL0ZjQ2hhclNldERlc3Ryb3kuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0QWRk
Q2hhci4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NoYXJTZXREZWxDaGFyLjMgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L0ZjQ2hhclNldENvcHkuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0RXF1YWwuMyAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvRmNDaGFyU2V0SW50ZXJzZWN0LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQ2hhclNldFVu
aW9uLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2Uv
Zm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQ2hhclNldFN1YnRyYWN0LjMgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L0ZjQ2hhclNldE1lcmdlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQ2hhclNldEhhc0NoYXIuMyAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvRmNDaGFyU2V0Q291bnQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0SW50
ZXJzZWN0Q291bnQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0U3VidHJhY3RDb3VudC4zIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9GY0NoYXJTZXRJc1N1YnNldC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NoYXJT
ZXRGaXJzdFBhZ2UuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0TmV4dFBhZ2UuMyAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvRmNDaGFyU2V0Q292ZXJhZ2UuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDaGFyU2V0TmV3
LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL0ZjQ29uZmlnQ3JlYXRlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQ29u
ZmlnUmVmZXJlbmNlLjMgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjMnCiAvdXNyL2Jpbi9pbnN0YWxs
IC1jIC1tIDY0NCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdEZXN0cm95LjMgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL0ZjQ29uZmlnU2V0Q3VycmVudC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZpZ0dldEN1cnJl
bnQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdVcHRvRGF0ZS4zIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9G
Y0NvbmZpZ0hvbWUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdFbmFibGVIb21lLjMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL0ZjQ29uZmlnQnVpbGRGb250cy4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZpZ0dl
dENvbmZpZ0RpcnMuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdHZXRGb250RGlycy4zIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2RvYy9GY0NvbmZpZ0dldENvbmZpZ0ZpbGVzLjMgL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjQ29u
ZmlnR2V0Q2FjaGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdHZXRDYWNoZURpcnMuMyAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvRmNDb25maWdHZXRGb250cy4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZpZ0dl
dEJsYW5rcy4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZpZ0dldFJlc2NhbkludGVydmFsLjMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjQ29uZmlnU2V0UmVzY2FuSW50ZXJ2YWwuMyAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
RmNDb25maWdBcHBGb250QWRkRmlsZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZpZ0FwcEZvbnRB
ZGREaXIuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdBcHBGb250Q2xlYXIuMyAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvRmNDb25maWdTdWJzdGl0dXRlV2l0aFBhdC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZp
Z1N1YnN0aXR1dGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNGb250TWF0Y2guMyAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvRmNGb250U29ydC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0ZvbnRSZW5kZXJQcmVwYXJlLjMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjRm9udExpc3QuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdGaWxlbmFt
ZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9GY0NvbmZpZ1BhcnNlQW5kTG9hZC4zIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9GY0NvbmZpZ0dldFN5c1Jvb3QuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNDb25maWdTZXRTeXNSb290
LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZG9jL0ZjTmFtZVJlZ2lzdGVyQ29uc3RhbnRzLjMgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL0ZjTmFtZVVucmVnaXN0ZXJDb25zdGFudHMuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNOYW1lR2V0
Q29uc3RhbnQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNOYW1lQ29uc3RhbnQuMyAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvRmNEaXJDYWNoZVVubGluay4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0RpckNhY2hlVmFsaWQuMyAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvRmNEaXJDYWNoZUxvYWQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNEaXJDYWNo
ZVJlc2Nhbi4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0RpckNhY2hlUmVhZC4zIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9GY0RpckNhY2hlTG9hZEZpbGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNEaXJDYWNoZVVubG9hZC4z
ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVp
bGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L3NoYXJlL21hbi9tYW4zJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjRmlsZVNjYW4uMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNGaWxlSXNEaXIuMyAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvRmNEaXJTY2FuLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjRGlyU2F2ZS4zIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9GY0ZvbnRTZXRDcmVhdGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNGb250U2V0
RGVzdHJveS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0ZvbnRTZXRBZGQuMyAvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2Mv
RmNGb250U2V0TGlzdC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0ZvbnRTZXRNYXRjaC4zIC9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4x
MS4xL2RvYy9GY0ZvbnRTZXRQcmludC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0ZvbnRTZXRTb3J0LjMg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNv
bmZpZy0yLjExLjEvZG9jL0ZjRm9udFNldFNvcnREZXN0cm95LjMgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0Zj
UGF0dGVybkZvcm1hdC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0ZyZWVUeXBlQ2hhckluZGV4LjMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjRnJlZVR5cGVDaGFyU2V0LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjRnJlZVR5
cGVDaGFyU2V0QW5kU3BhY2luZy4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0ZyZWVUeXBlUXVlcnkuMyAv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29u
ZmlnLTIuMTEuMS9kb2MvRmNGcmVlVHlwZVF1ZXJ5RmFjZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0lu
aXRMb2FkQ29uZmlnLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjSW5pdExvYWRDb25maWdBbmRGb250cy4z
IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRj
b25maWctMi4xMS4xL2RvYy9GY0luaXQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNGaW5pLjMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL0ZjR2V0VmVyc2lvbi4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0luaXRSZWluaXRpYWxp
emUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvRmNJbml0QnJpbmdVcHRvRGF0ZS4zIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9GY0xhbmdTZXRDcmVhdGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNMYW5nU2V0RGVzdHJveS4zIC9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25m
aWctMi4xMS4xL2RvYy9GY0xhbmdTZXRDb3B5LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjTGFuZ1NldEFk
ZC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9GY0xhbmdTZXREZWwuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNMYW5n
U2V0VW5pb24uMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNMYW5nU2V0U3VidHJhY3QuMyAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvRmNMYW5nU2V0Q29tcGFyZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0xhbmdTZXRDb250YWlu
cy4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9GY0xhbmdTZXRFcXVhbC4zIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0xh
bmdTZXRIYXNoLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjTGFuZ1NldEhhc0xhbmcuMyAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvRmNHZXREZWZhdWx0TGFuZ3MuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNMYW5nU2V0R2V0TGFu
Z3MuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9m
b250Y29uZmlnLTIuMTEuMS9kb2MvRmNHZXRMYW5ncy4zICcvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL21hbi9tYW4z
JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjTGFuZ05vcm1h
bGl6ZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNl
L2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0xhbmdHZXRDaGFyU2V0LjMgL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9j
L0ZjTWF0cml4SW5pdC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY01hdHJpeENvcHkuMyAvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEu
MS9kb2MvRmNNYXRyaXhFcXVhbC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY01hdHJpeE11bHRpcGx5LjMg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNv
bmZpZy0yLjExLjEvZG9jL0ZjTWF0cml4Um90YXRlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjTWF0cml4
U2NhbGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNNYXRyaXhTaGVhci4zIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9G
Y09iamVjdFNldENyZWF0ZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY09iamVjdFNldEFkZC4zIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2RvYy9GY09iamVjdFNldERlc3Ryb3kuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNPYmplY3RT
ZXRCdWlsZC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY05hbWVSZWdpc3Rlck9iamVjdFR5cGVzLjMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjTmFtZVVucmVnaXN0ZXJPYmplY3RUeXBlcy4zIC9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2Rv
Yy9GY05hbWVHZXRPYmplY3RUeXBlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjUGF0dGVybkNyZWF0ZS4z
IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRj
b25maWctMi4xMS4xL2RvYy9GY1BhdHRlcm5EdXBsaWNhdGUuMyAvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNQ
YXR0ZXJuUmVmZXJlbmNlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjUGF0dGVybkRlc3Ryb3kuMyAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvRmNQYXR0ZXJuRXF1YWwuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNQYXR0ZXJuRXF1
YWxTdWJzZXQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Nv
dXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNQYXR0ZXJuRmlsdGVyLjMgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEv
ZG9jL0ZjUGF0dGVybkhhc2guMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNQYXR0ZXJuQWRkLjMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL0ZjUGF0dGVybkFkZFdlYWsuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNQYXR0ZXJuQWRk
LVR5cGUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNQYXR0ZXJuR2V0LjMgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0Zj
UGF0dGVybkdldC1UeXBlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjUGF0dGVybkJ1aWxkLjMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0y
LjExLjEvZG9jL0ZjUGF0dGVybkRlbC4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1BhdHRlcm5SZW1vdmUu
MyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250
Y29uZmlnLTIuMTEuMS9kb2MvRmNQYXR0ZXJuUHJpbnQuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNEZWZh
dWx0U3Vic3RpdHV0ZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY05hbWVQYXJzZS4zIC9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4x
L2RvYy9GY05hbWVVbnBhcnNlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVu
Y2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjVXRmOFRvVWNzNC4zIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2RvYy9GY1VjczRUb1V0ZjguMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNVdGY4TGVuLjMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjVXRmMTZUb1VjczQuMyAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9tYW4vbWFuMycKIC91
c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1V0ZjE2TGVuLjMgL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZp
Zy0yLjExLjEvZG9jL0ZjSXNMb3dlci4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY0lzVXBwZXIuMyAvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmln
LTIuMTEuMS9kb2MvRmNUb0xvd2VyLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyQ29weS4zIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWct
Mi4xMS4xL2RvYy9GY1N0ckRvd25jYXNlLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyQ29weUZpbGVu
YW1lLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2Uv
Zm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyQ21wLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyQ21w
SWdub3JlQ2FzZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsv
U291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1N0clN0ci4zIC9ob21lL3BpL3dlYmtpdC9X
ZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9G
Y1N0clN0cklnbm9yZUNhc2UuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNTdHJQbHVzLjMgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjEx
LjEvZG9jL0ZjU3RyRnJlZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1N0ckRpcm5hbWUuMyAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvRmNTdHJCYXNlbmFtZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1N0clNldENyZWF0ZS4z
IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRj
b25maWctMi4xMS4xL2RvYy9GY1N0clNldE1lbWJlci4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1N0clNl
dEVxdWFsLjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3Vy
Y2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyU2V0QWRkLjMgL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0Zj
U3RyU2V0QWRkRmlsZW5hbWUuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNTdHJTZXREZWwuMyAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvRmNTdHJTZXREZXN0cm95LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyTGlzdENyZWF0
ZS4zIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2Zv
bnRjb25maWctMi4xMS4xL2RvYy9GY1N0ckxpc3RGaXJzdC4zIC9ob21lL3BpL3dlYmtpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9GY1N0
ckxpc3ROZXh0LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjU3RyTGlzdERvbmUuMyAvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9k
b2MvRmNWYWx1ZURlc3Ryb3kuMyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIuMTEuMS9kb2MvRmNWYWx1ZVNhdmUuMyAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9kb2MvRmNWYWx1ZVByaW50LjMgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZG9jL0ZjVmFsdWVFcXVhbC4zICcv
aG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQv
cm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290L3NoYXJlL21hbi9tYW4zJwogL2Jpbi9ta2RpciAtcCAnL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9o
b21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9zaGFyZS9tYW4v
bWFuNScKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2RvYy9mb250cy1j
b25mLjUgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9f
amhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1Jvb3Qvc2hhcmUvbWFuL21hbjUnCm1ha2VbM106IExlYXZpbmcgZGlyZWN0b3J5
ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2ZvbnRj
b25maWctMi4xMS4xL2RvYycKbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEv
ZG9jJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMS9kb2MnCm1ha2VbMV06
IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVu
Y2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIuMTEuMScKbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0
b3J5ICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL0J1aWxkL2Zv
bnRjb25maWctMi4xMS4xJwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdpbnN0YWxs
LWV4ZWMtYW0nLgpzZWQgXAoJLWUgJ3MsQEZDX0NBQ0hFRElSXEAsL2hvbWUvcGkvd2Via2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3Zhci9jYWNoZS9mb250Y29uZmlnLGcnIFwK
CS1lICdzLEBGQ19ERUZBVUxUX0ZPTlRTXEAsL3Vzci9zaGFyZS9mb250cyxnJyBcCgktZSAncyxA
RkNfRk9OVFBBVEhcQCwsZycgXAoJLWUgJ3MsQENPTkZJR0RJUlxALGNvbmYuZCxnJyBcCgktZSAn
cyxAUEFDS0FHRVxALGZvbnRjb25maWcsZycgXAoJLWUgJ3MsQFZFUlNJT05cQCwyLjExLjEsZycg
XAoJL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9u
dGNvbmZpZy0yLjExLjEvZm9udHMuY29uZi5pbiA+IGZvbnRzLmNvbmYudG1wICYmIFwKbXYgZm9u
dHMuY29uZi50bXAgZm9udHMuY29uZgovYmluL2Jhc2ggL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvaW5zdGFsbC1zaCAt
ZCAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVp
bGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
c0dUSy9Sb290L2V0Yy9mb250cyAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3Zhci9jYWNoZS9mb250Y29uZmlnCmlmIFsgLWYg
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxk
L3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9ldGMvZm9udHMvZm9udHMuY29uZiBdOyB0aGVuIFwKICBlY2hvICJiYWNraW5nIHVw
IGV4aXN0aW5nIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9v
dC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3QvZXRjL2ZvbnRzL2ZvbnRzLmNvbmYiOyBcCiAgbXYgL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9u
dGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9l
dGMvZm9udHMvZm9udHMuY29uZiAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2V0Yy9mb250cy9mb250cy5jb25mLmJhazsgXApm
aQppZiBbIC1mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL2ZvbnRjb25maWctMi4xMS4xL2ZvbnRzLmNvbmYgXTsgdGhlbiBcCiAgZWNobyAiIC91c3Iv
YmluL2luc3RhbGwgLWMgLW0gNjQ0IC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL2ZvbnRjb25maWctMi4xMS4xL2ZvbnRzLmNvbmYgL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNv
bmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9ldGMv
Zm9udHMvZm9udHMuY29uZiI7IFwKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9mb250Y29uZmlnLTIu
MTEuMS9mb250cy5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvZXRjL2ZvbnRzL2ZvbnRzLmNvbmY7IFwKZWxzZSBpZiBb
IC1mIGZvbnRzLmNvbmYgXTsgdGhlbiBcCiAgZWNobyAiIC91c3IvYmluL2luc3RhbGwgLWMgLW0g
NjQ0IGZvbnRzLmNvbmYgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290L19qaGJ1aWxkL3Jvb3QtZm9udGNvbmZpZy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9ldGMvZm9udHMvZm9udHMuY29uZiI7IFwKICAvdXNyL2Jp
bi9pbnN0YWxsIC1jIC1tIDY0NCBmb250cy5jb25mIC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvZXRjL2ZvbnRzL2ZvbnRzLmNv
bmY7IFwKZmk7IGZpCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCBmb250cy5jb25mIC9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvUm9vdC9famhidWlsZC9yb290
LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jv
b3QvZXRjL2ZvbnRzL2ZvbnRzLmNvbmYKKioqCioqKiBXYXJuaW5nOiBmb250cy5jYWNoZSBub3Qg
YnVpbHQKKioqCioqKiBHZW5lcmF0ZSB0aGlzIGZpbGUgbWFudWFsbHkgb24gaG9zdCBzeXN0ZW0g
dXNpbmcgZmMtY2FjaGUKKioqCiAvYmluL21rZGlyIC1wICcvaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYi9wa2djb25maWcn
CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCBmb250Y29uZmlnLnBjICcvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29u
ZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L2xpYi9w
a2djb25maWcnCiAvYmluL21rZGlyIC1wICcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1mb250Y29uZmlnL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290L3NoYXJlL3htbC9mb250Y29uZmlnJwog
L3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvZm9udGNvbmZpZy0yLjExLjEvZm9udHMuZHRkICcvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QvX2poYnVpbGQvcm9vdC1m
b250Y29uZmlnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Sb290
L3NoYXJlL3htbC9mb250Y29uZmlnJwptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9mb250Y29uZmlnLTIu
MTEuMScKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvZm9udGNvbmZpZy0yLjExLjEnCkk6IERlbGV0aW5n
IC5sYSBmaWxlOiB1Jy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsv
Um9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1Jvb3QvbGliL2xpYmZvbnRjb25maWcubGEnCkk6IE1vdmluZyB0ZW1w
b3JhcnkgREVTVERJUiB1Jy9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvUm9vdC9famhidWlsZC9yb290LWZvbnRjb25maWcnIGludG8gYnVpbGQgcHJlZml4Ckk6IElu
c3RhbGwgY29tcGxldGU6IDQ2MSBmaWxlcyBjb3BpZWQKKioqIENoZWNraW5nIG91dCBwaXhtYW4g
KioqIFs0LzQzXQp3Z2V0IC0tY29udGludWUgaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnL3JlbGVh
c2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IC1PIC9ob21lL3BpLy5jYWNoZS9qaGJ1aWxkL2Rvd25s
b2Fkcy9waXhtYW4tMC4zMi42LnRhci5negotLTIwMTctMDEtMjUgMDY6NTY6MjktLSAgaHR0cDov
L2NhaXJvZ3JhcGhpY3Mub3JnL3JlbGVhc2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6ClJlc29sdmlu
ZyBjYWlyb2dyYXBoaWNzLm9yZyAoY2Fpcm9ncmFwaGljcy5vcmcpLi4uIDEzMS4yNTIuMjEwLjE3
NgpDb25uZWN0aW5nIHRvIGNhaXJvZ3JhcGhpY3Mub3JnIChjYWlyb2dyYXBoaWNzLm9yZyl8MTMx
LjI1Mi4yMTAuMTc2fDo4MC4uLiBjb25uZWN0ZWQuCkhUVFAgcmVxdWVzdCBzZW50LCBhd2FpdGlu
ZyByZXNwb25zZS4uLiAzMDEgTW92ZWQgUGVybWFuZW50bHkKTG9jYXRpb246IGh0dHBzOi8vd3d3
LmNhaXJvZ3JhcGhpY3Mub3JnL3JlbGVhc2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IFtmb2xsb3dp
bmddCi0tMjAxNy0wMS0yNSAwNjo1NjozMC0tICBodHRwczovL3d3dy5jYWlyb2dyYXBoaWNzLm9y
Zy9yZWxlYXNlcy9waXhtYW4tMC4zMi42LnRhci5negpSZXNvbHZpbmcgd3d3LmNhaXJvZ3JhcGhp
Y3Mub3JnICh3d3cuY2Fpcm9ncmFwaGljcy5vcmcpLi4uIDEzMS4yNTIuMjEwLjE3NgpDb25uZWN0
aW5nIHRvIHd3dy5jYWlyb2dyYXBoaWNzLm9yZyAod3d3LmNhaXJvZ3JhcGhpY3Mub3JnKXwxMzEu
MjUyLjIxMC4xNzZ8OjQ0My4uLiBjb25uZWN0ZWQuCkhUVFAgcmVxdWVzdCBzZW50LCBhd2FpdGlu
ZyByZXNwb25zZS4uLiAyMDAgT0sKTGVuZ3RoOiA4MTY3MDIgKDc5OEspIFthcHBsaWNhdGlvbi94
LWd6aXBdClNhdmluZyB0bzog4oCYL2hvbWUvcGkvLmNhY2hlL2poYnVpbGQvZG93bmxvYWRzL3Bp
eG1hbi0wLjMyLjYudGFyLmd64oCZCgovaG9tZS9waS8uY2FjaGUvamhidWlsZC9kb3cgMTAwJVs9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0+XSA3OTcuNTZLICAz
LjM1TUIvcyAgIGluIDAuMnMgICAKCjIwMTctMDEtMjUgMDY6NTY6MzIgKDMuMzUgTUIvcykgLSDi
gJgvaG9tZS9waS8uY2FjaGUvamhidWlsZC9kb3dubG9hZHMvcGl4bWFuLTAuMzIuNi50YXIuZ3ri
gJkgc2F2ZWQgWzgxNjcwMi84MTY3MDJdCgpnemlwIC1kYyAiL2hvbWUvcGkvLmNhY2hlL2poYnVp
bGQvZG93bmxvYWRzL3BpeG1hbi0wLjMyLjYudGFyLmd6IiB8IHRhciB4ZiAtCioqKiBDb25maWd1
cmluZyBwaXhtYW4gKioqIFs0LzQzXQovaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L2NvbmZpZ3VyZSAtLXByZWZpeCAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1Jvb3QgLS1kaXNhYmxlLVdlcnJv
ciAtLWVuYWJsZS1ndGs9bm8gLS1kaXNhYmxlLW1teCAtLWRpc2FibGUtc3RhdGljIC0tZGlzYWJs
ZS1ndGstZG9jIApjb25maWd1cmU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAtLWRp
c2FibGUtV2Vycm9yLCAtLWRpc2FibGUtZ3RrLWRvYwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0
aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBidWls
ZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwovaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L21pc3Npbmc6IFVua25vd24gYC0t
aXMtbGlnaHR3ZWlnaHQnIG9wdGlvbgpUcnkgYC9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvbWlzc2luZyAtLWhlbHAnIGZvciBt
b3JlIGluZm9ybWF0aW9uCmNvbmZpZ3VyZTogV0FSTklORzogJ21pc3NpbmcnIHNjcmlwdCBpcyB0
b28gb2xkIG9yIG1pc3NpbmcKY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4g
L2Jpbi9ta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBnYXdrCmNoZWNraW5nIHdoZXRoZXIg
bWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBu
ZXN0ZWQgdmFyaWFibGVzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVz
dGVkIHZhcmlhYmxlcy4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUu
Li4gYXJtdjdsLXVua25vd24tbGludXgtZ251ZWFiaWhmCmNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5
cGUuLi4gYXJtdjdsLXVua25vd24tbGludXgtZ251ZWFiaWhmCmNoZWNraW5nIGZvciBnY2MuLi4g
Z2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5n
IGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2lu
ZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBj
cm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMu
Li4gbwpjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4g
eWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBn
Y2Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uIG5vbmUgbmVlZGVkCmNoZWNraW5nIGZvciBz
dHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgbWFrZS4uLiBHTlUKY2hlY2tpbmcgZGVwZW5kZW5jeSBz
dHlsZSBvZiBnY2MuLi4gZ2NjMwpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYy4uLiBn
Y2MzCmNoZWNraW5nIGhvdyB0byBwcmludCBzdHJpbmdzLi4uIHByaW50ZgpjaGVja2luZyBmb3Ig
YSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gL2Jpbi9zZWQKY2hlY2tpbmcg
Zm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uIC9iaW4vZ3JlcApjaGVj
a2luZyBmb3IgZWdyZXAuLi4gL2Jpbi9ncmVwIC1FCmNoZWNraW5nIGZvciBmZ3JlcC4uLiAvYmlu
L2dyZXAgLUYKY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgZ2NjLi4uIC91c3IvYmluL2xkCmNoZWNr
aW5nIGlmIHRoZSBsaW5rZXIgKC91c3IvYmluL2xkKSBpcyBHTlUgbGQuLi4geWVzCmNoZWNraW5n
IGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAvdXNyL2Jpbi9u
bSAtQgpjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKC91c3IvYmluL25tIC1CKSBpbnRlcmZhY2Uu
Li4gQlNEIG5tCmNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4geWVzCmNoZWNraW5nIHRo
ZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uIDE1NzI4NjQKY2hl
Y2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0cy4u
LiB5ZXMKY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Ii4uLiB5ZXMK
Y2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgYXJtdjdsLXVua25vd24tbGludXgtZ251ZWFiaWhmIGZp
bGUgbmFtZXMgdG8gYXJtdjdsLXVua25vd24tbGludXgtZ251ZWFiaWhmIGZvcm1hdC4uLiBmdW5j
X2NvbnZlcnRfZmlsZV9ub29wCmNoZWNraW5nIGhvdyB0byBjb252ZXJ0IGFybXY3bC11bmtub3du
LWxpbnV4LWdudWVhYmloZiBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuLi4gZnVuY19j
b252ZXJ0X2ZpbGVfbm9vcApjaGVja2luZyBmb3IgL3Vzci9iaW4vbGQgb3B0aW9uIHRvIHJlbG9h
ZCBvYmplY3QgZmlsZXMuLi4gLXIKY2hlY2tpbmcgZm9yIG9iamR1bXAuLi4gb2JqZHVtcApjaGVj
a2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMuLi4gcGFzc19hbGwKY2hl
Y2tpbmcgZm9yIGRsbHRvb2wuLi4gbm8KY2hlY2tpbmcgaG93IHRvIGFzc29jaWF0ZSBydW50aW1l
IGFuZCBsaW5rIGxpYnJhcmllcy4uLiBwcmludGYgJXNcbgpjaGVja2luZyBmb3IgYXIuLi4gYXIK
Y2hlY2tpbmcgZm9yIGFyY2hpdmVyIEBGSUxFIHN1cHBvcnQuLi4gQApjaGVja2luZyBmb3Igc3Ry
aXAuLi4gc3RyaXAKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgY29tbWFu
ZCB0byBwYXJzZSAvdXNyL2Jpbi9ubSAtQiBvdXRwdXQgZnJvbSBnY2Mgb2JqZWN0Li4uIG9rCmNo
ZWNraW5nIGZvciBzeXNyb290Li4uIG5vCmNoZWNraW5nIGZvciBtdC4uLiBtdApjaGVja2luZyBp
ZiBtdCBpcyBhIG1hbmlmZXN0IHRvb2wuLi4gbm8KY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBw
cmVwcm9jZXNzb3IuLi4gZ2NjIC1FCmNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4u
IHllcwpjaGVja2luZyBmb3Igc3lzL3R5cGVzLmguLi4geWVzCmNoZWNraW5nIGZvciBzeXMvc3Rh
dC5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RkbGliLmguLi4geWVzCmNoZWNraW5nIGZvciBzdHJp
bmcuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIG1lbW9yeS5oLi4uIHllcwpjaGVja2luZyBmb3Igc3Ry
aW5ncy5oLi4uIHllcwpjaGVja2luZyBmb3IgaW50dHlwZXMuaC4uLiB5ZXMKY2hlY2tpbmcgZm9y
IHN0ZGludC5oLi4uIHllcwpjaGVja2luZyBmb3IgdW5pc3RkLmguLi4geWVzCmNoZWNraW5nIGZv
ciBkbGZjbi5oLi4uIHllcwpjaGVja2luZyBmb3Igb2JqZGlyLi4uIC5saWJzCmNoZWNraW5nIGlm
IGdjYyBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zLi4uIG5vCmNoZWNraW5nIGZv
ciBnY2Mgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uIC1mUElDIC1EUElDCmNoZWNraW5nIGlmIGdj
YyBQSUMgZmxhZyAtZlBJQyAtRFBJQyB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgaWYgZ2NjIHN0YXRp
YyBmbGFnIC1zdGF0aWMgd29ya3MuLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAtYyAt
byBmaWxlLm8uLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8uLi4g
KGNhY2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIGdjYyBsaW5rZXIgKC91c3IvYmluL2xk
KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIC1sYyBz
aG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gbm8KY2hlY2tpbmcgZHluYW1pYyBsaW5r
ZXIgY2hhcmFjdGVyaXN0aWNzLi4uIEdOVS9MaW51eCBsZC5zbwpjaGVja2luZyBob3cgdG8gaGFy
ZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uIGltbWVkaWF0ZQpjaGVja2luZyB3
aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUuLi4geWVzCmNoZWNraW5nIGlm
IGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhl
ciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRvIGJ1
aWxkIHN0YXRpYyBsaWJyYXJpZXMuLi4gbm8KY2hlY2tpbmcgZm9yIGdldGlzYXguLi4gbm8KY2hl
Y2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbi4uLiBubwpjaGVja2luZyBm
b3IgaW5saW5lLi4uIGlubGluZQpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0
cyAtV2Vycm9yLi4uIHllcwpjaGVja2luZyBzaXplIG9mIGxvbmcuLi4gNApjaGVja2luZyB3aGV0
aGVyIF9fU1VOUFJPX0MgaXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBfX2FtZDY0
IGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRz
IC1XYWxsLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyAtV2Rl
Y2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciB0aGUgY29t
cGlsZXIgc3VwcG9ydHMgLWZuby1zdHJpY3QtYWxpYXNpbmcuLi4geWVzCmNoZWNraW5nIGZvciBn
Y2Mgb3B0aW9uIHRvIHN1cHBvcnQgT3Blbk1QLi4uIC1mb3Blbm1wCmNoZWNraW5nIHdoZXRoZXIg
dGhlIGNvbXBpbGVyIHN1cHBvcnRzIC1mdmlzaWJpbGl0eT1oaWRkZW4uLi4geWVzCmNoZWNraW5n
IHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIC14bGRzY29wZT1oaWRkZW4uLi4gbm8KY2hl
Y2tpbmcgd2hldGhlciB0byB1c2UgTG9vbmdzb24gTU1JIGFzc2VtYmxlci4uLiBubwpjaGVja2lu
ZyB3aGV0aGVyIHRvIHVzZSBNTVggaW50cmluc2ljcy4uLiBkaXNhYmxlZApjaGVja2luZyB3aGV0
aGVyIHRvIHVzZSBTU0UyIGludHJpbnNpY3MuLi4gbm8KY2hlY2tpbmcgd2hldGhlciB0byB1c2Ug
U1NTRTMgaW50cmluc2ljcy4uLiBubwpjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBWTVgvQWx0aXZl
YyBpbnRyaW5zaWNzLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgdG8gdXNlIEFSTSBTSU1EIGFzc2Vt
Ymxlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciB0byB1c2UgQVJNIE5FT04gYXNzZW1ibGVyLi4u
IHllcwpjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBBUk0gSVdNTVhUIGludHJpbnNpY3MuLi4geWVz
CmNoZWNraW5nIHdoZXRoZXIgdG8gdXNlIE1JUFMgRFNQcjIgYXNzZW1ibGVyLi4uIG5vCmNoZWNr
aW5nIHdoZXRoZXIgdG8gdXNlIEdOVS1zdHlsZSBpbmxpbmUgYXNzZW1ibGVyLi4uIHllcwpjaGVj
a2luZyBmb3IgcGtnLWNvbmZpZy4uLiAvdXNyL2Jpbi9wa2ctY29uZmlnCmNoZWNraW5nIHBrZy1j
b25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAwLjkuMC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHBvc2l4
X21lbWFsaWduLi4uIHllcwpjaGVja2luZyBmb3Igc2lnYWN0aW9uLi4uIHllcwpjaGVja2luZyBm
b3IgYWxhcm0uLi4geWVzCmNoZWNraW5nIHN5cy9tbWFuLmggdXNhYmlsaXR5Li4uIHllcwpjaGVj
a2luZyBzeXMvbW1hbi5oIHByZXNlbmNlLi4uIHllcwpjaGVja2luZyBmb3Igc3lzL21tYW4uaC4u
LiB5ZXMKY2hlY2tpbmcgZm9yIG1tYXAuLi4geWVzCmNoZWNraW5nIGZvciBtcHJvdGVjdC4uLiB5
ZXMKY2hlY2tpbmcgZm9yIGdldHBhZ2VzaXplLi4uIHllcwpjaGVja2luZyBmZW52LmggdXNhYmls
aXR5Li4uIHllcwpjaGVja2luZyBmZW52LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBm
ZW52LmguLi4geWVzCmNoZWNraW5nIGZvciBmZWVuYWJsZWV4Y2VwdCBpbiAtbG0uLi4geWVzCmNo
ZWNraW5nIGZvciBnZXR0aW1lb2ZkYXkuLi4geWVzCmNoZWNraW5nIHN5cy90aW1lLmggdXNhYmls
aXR5Li4uIHllcwpjaGVja2luZyBzeXMvdGltZS5oIHByZXNlbmNlLi4uIHllcwpjaGVja2luZyBm
b3Igc3lzL3RpbWUuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzcXJ0
Zi4uLiAtbG0KY2hlY2tpbmcgZm9yIHRocmVhZCBsb2NhbCBzdG9yYWdlIChUTFMpIHN1cHBvcnQu
Li4gX190aHJlYWQKY2hlY2tpbmcgZm9yIHB0aHJlYWRzLi4uIHllcwpjaGVja2luZyBmb3IgX19h
dHRyaWJ1dGVfXygoY29uc3RydWN0b3IpKS4uLiB5ZXMKY2hlY2tpbmcgZm9yIF9fZmxvYXQxMjgu
Li4gbm8KY2hlY2tpbmcgZm9yIF9fYnVpbHRpbl9jbHouLi4geWVzCmNoZWNraW5nIGZvciBHQ0Mg
dmVjdG9yIGV4dGVuc2lvbnMuLi4geWVzCmNoZWNraW5nIGZvciBQTkcuLi4geWVzCmNoZWNraW5n
IHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4uLiBkb25lCmNv
bmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5n
IHBpeG1hbi0xLnBjCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIHBpeG1hbi0xLXVuaW5zdGFsbGVk
LnBjCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGNyZWF0
aW5nIHBpeG1hbi9NYWtlZmlsZQpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBwaXhtYW4vcGl4bWFu
LXZlcnNpb24uaApjb25maWcuc3RhdHVzOiBjcmVhdGluZyBkZW1vcy9NYWtlZmlsZQpjb25maWcu
c3RhdHVzOiBjcmVhdGluZyB0ZXN0L01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIGNv
bmZpZy5oCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwpjb25maWcu
c3RhdHVzOiBleGVjdXRpbmcgbGlidG9vbCBjb21tYW5kcwpjb25maWd1cmU6IFdBUk5JTkc6IHVu
cmVjb2duaXplZCBvcHRpb25zOiAtLWRpc2FibGUtV2Vycm9yLCAtLWRpc2FibGUtZ3RrLWRvYwoq
KiogQnVpbGRpbmcgcGl4bWFuICoqKiBbNC80M10KbWFrZSAtaiA1IAptYWtlICBhbGwtcmVjdXJz
aXZlCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9waXhtYW4tMC4zMi42JwpNYWtpbmcgYWxsIGluIHBp
eG1hbgptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvQnVpbGQvcGl4bWFuLTAuMzIuNi9waXhtYW4nCiAgQ0MgICAg
ICAgcGl4bWFuLmxvCiAgQ0MgICAgICAgcGl4bWFuLWFjY2Vzcy5sbwogIENDICAgICAgIHBpeG1h
bi1jb21iaW5lMzIubG8KICBDQyAgICAgICBwaXhtYW4tYml0cy1pbWFnZS5sbwogIENDICAgICAg
IHBpeG1hbi1hY2Nlc3MtYWNjZXNzb3JzLmxvCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9w
aS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42
L3BpeG1hbi9waXhtYW4uYzoyOTowOgovaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4uYzogSW4gZnVuY3Rp
b24gJ29wdGltaXplX29wZXJhdG9yJzoKL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLXByaXZhdGUuaDox
MDE5OjIyOiB3YXJuaW5nOiB0eXBlZGVmICdjb21waWxlX3RpbWVfYXNzZXJ0aW9uJyBsb2NhbGx5
IGRlZmluZWQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1sb2NhbC10eXBlZGVmc10KICAgICBkbyB7
IHR5cGVkZWYgaW50IGNvbXBpbGVfdGltZV9hc3NlcnRpb24gWyh4KT8xOi0xXTsgfSB3aGlsZSAo
MCkKICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLmM6MTQ0OjU6
IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnQ09NUElMRV9USU1FX0FTU0VSVCcKICAgICBD
T01QSUxFX1RJTUVfQVNTRVJUIChGQVNUX1BBVEhfSVNfT1BBUVVFID09ICgxIDw8IE9QQVFVRV9T
SElGVCkpOwogICAgIF4KICBDQyAgICAgICBwaXhtYW4tY29tYmluZS1mbG9hdC5sbwogIENDICAg
ICAgIHBpeG1hbi1jb25pY2FsLWdyYWRpZW50LmxvCiAgQ0MgICAgICAgcGl4bWFuLWZpbHRlci5s
bwogIENDICAgICAgIHBpeG1hbi14ODYubG8KICBDQyAgICAgICBwaXhtYW4tbWlwcy5sbwogIEND
ICAgICAgIHBpeG1hbi1hcm0ubG8KICBDQyAgICAgICBwaXhtYW4tcHBjLmxvCiAgQ0MgICAgICAg
cGl4bWFuLWVkZ2UubG8KICBDQyAgICAgICBwaXhtYW4tZWRnZS1hY2Nlc3NvcnMubG8KICBDQyAg
ICAgICBwaXhtYW4tZmFzdC1wYXRoLmxvCiAgQ0MgICAgICAgcGl4bWFuLWdseXBoLmxvCiAgQ0Mg
ICAgICAgcGl4bWFuLWdlbmVyYWwubG8KL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLWdseXBoLmM6NDA4
OjE6IHdhcm5pbmc6ICdfX2ZvcmNlX2FsaWduX2FyZ19wb2ludGVyX18nIGF0dHJpYnV0ZSBkaXJl
Y3RpdmUgaWdub3JlZCBbLVdhdHRyaWJ1dGVzXQogewogXgovaG9tZS9waS93ZWJraXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4t
Z2x5cGguYzo2NTU6MTogd2FybmluZzogJ19fZm9yY2VfYWxpZ25fYXJnX3BvaW50ZXJfXycgYXR0
cmlidXRlIGRpcmVjdGl2ZSBpZ25vcmVkIFstV2F0dHJpYnV0ZXNdCiB7CiBeCiAgQ0MgICAgICAg
cGl4bWFuLWdyYWRpZW50LXdhbGtlci5sbwogIENDICAgICAgIHBpeG1hbi1pbWFnZS5sbwogIEND
ICAgICAgIHBpeG1hbi1pbXBsZW1lbnRhdGlvbi5sbwogIENDICAgICAgIHBpeG1hbi1saW5lYXIt
Z3JhZGllbnQubG8KICBDQyAgICAgICBwaXhtYW4tbWF0cml4LmxvCiAgQ0MgICAgICAgcGl4bWFu
LW5vb3AubG8KICBDQyAgICAgICBwaXhtYW4tcmFkaWFsLWdyYWRpZW50LmxvCiAgQ0MgICAgICAg
cGl4bWFuLXJlZ2lvbjE2LmxvCiAgQ0MgICAgICAgcGl4bWFuLXJlZ2lvbjMyLmxvCiAgQ0MgICAg
ICAgcGl4bWFuLXNvbGlkLWZpbGwubG8KICBDQyAgICAgICBwaXhtYW4tdGltZXIubG8KICBDQyAg
ICAgICBwaXhtYW4tdHJhcC5sbwogIENDICAgICAgIHBpeG1hbi11dGlscy5sbwogIENDICAgICAg
IHBpeG1hbi1hcm0tc2ltZC5sbwogIENQUEFTICAgIHBpeG1hbi1hcm0tc2ltZC1hc20ubG8KICBD
UFBBUyAgICBwaXhtYW4tYXJtLXNpbWQtYXNtLXNjYWxlZC5sbwogIENDICAgICAgIHBpeG1hbi1h
cm0tbmVvbi5sbwogIENQUEFTICAgIHBpeG1hbi1hcm0tbmVvbi1hc20ubG8KICBDUFBBUyAgICBw
aXhtYW4tYXJtLW5lb24tYXNtLWJpbGluZWFyLmxvCiAgQ0MgICAgICAgbGlicGl4bWFuX2l3bW14
dF9sYS1waXhtYW4tbW14LmxvCiAgQ0NMRCAgICAgbGlicGl4bWFuLWFybS1zaW1kLmxhCi9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMy
LjYvcGl4bWFuL3BpeG1hbi1tbXguYzogSW4gZnVuY3Rpb24gJ21teF9mZXRjaF94OHI4ZzhiOCc6
Ci9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1h
bi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1tbXguYzozODEyOjE6IGludGVybmFsIGNvbXBpbGVyIGVy
cm9yOiBNYXguIG51bWJlciBvZiBnZW5lcmF0ZWQgcmVsb2FkIGluc25zIHBlciBpbnNuIGlzIGFj
aGlldmVkICg5MCkKCiB9CiBeClBsZWFzZSBzdWJtaXQgYSBmdWxsIGJ1ZyByZXBvcnQsCndpdGgg
cHJlcHJvY2Vzc2VkIHNvdXJjZSBpZiBhcHByb3ByaWF0ZS4KU2VlIDxmaWxlOi8vL3Vzci9zaGFy
ZS9kb2MvZ2NjLTQuOS9SRUFETUUuQnVncz4gZm9yIGluc3RydWN0aW9ucy4KUHJlcHJvY2Vzc2Vk
IHNvdXJjZSBzdG9yZWQgaW50byAvdG1wL2NjcXVIQ0hGLm91dCBmaWxlLCBwbGVhc2UgYXR0YWNo
IHRoaXMgdG8geW91ciBidWdyZXBvcnQuCk1ha2VmaWxlOjExMDc6IHJlY2lwZSBmb3IgdGFyZ2V0
ICdsaWJwaXhtYW5faXdtbXh0X2xhLXBpeG1hbi1tbXgubG8nIGZhaWxlZAptYWtlWzJdOiAqKiog
W2xpYnBpeG1hbl9pd21teHRfbGEtcGl4bWFuLW1teC5sb10gRXJyb3IgMQptYWtlWzJdOiAqKiog
V2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9y
eSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9CdWlsZC9waXht
YW4tMC4zMi42L3BpeG1hbicKTWFrZWZpbGU6NDkzOiByZWNpcGUgZm9yIHRhcmdldCAnYWxsLXJl
Y3Vyc2l2ZScgZmFpbGVkCm1ha2VbMV06ICoqKiBbYWxsLXJlY3Vyc2l2ZV0gRXJyb3IgMQptYWtl
WzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9CdWlsZC9waXhtYW4tMC4zMi42JwpNYWtlZmlsZTozOTk6IHJlY2lwZSBmb3Ig
dGFyZ2V0ICdhbGwnIGZhaWxlZAptYWtlOiAqKiogW2FsbF0gRXJyb3IgMgpGYWlsZWQgdG8gYnVp
bGQgR1RLKyBwb3J0IGRlcGVuZGVuY2llcyB3aXRoIGpoYnVpbGQKRGllZCBhdCBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyBsaW5lIDI0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299682</attachid>
            <date>2017-01-24 23:46:04 -0800</date>
            <delta_ts>2017-01-24 23:46:04 -0800</delta_ts>
            <desc>file that failed to compile from pixman</desc>
            <filename>pixman-mmx.c</filename>
            <type>application/octet-stream</type>
            <size>98331</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">LyoKICogQ29weXJpZ2h0IMKpIDIwMDQsIDIwMDUgUmVkIEhhdCwgSW5jLgogKiBDb3B5cmlnaHQg
wqkgMjAwNCBOaWNob2xhcyBNaWVsbAogKiBDb3B5cmlnaHQgwqkgMjAwNSBUcm9sbHRlY2ggQVMK
ICoKICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwgYW5kIHNl
bGwgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCiAqIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3Nl
IGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiAqIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZCB0aGF0IGJvdGggdGhh
dAogKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBp
biBzdXBwb3J0aW5nCiAqIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIFJlZCBI
YXQgbm90IGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3IKICogcHVibGljaXR5IHBlcnRhaW5pbmcg
dG8gZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLAogKiB3cml0
dGVuIHByaW9yIHBlcm1pc3Npb24uICBSZWQgSGF0IG1ha2VzIG5vIHJlcHJlc2VudGF0aW9ucyBh
Ym91dCB0aGUKICogc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2Uu
ICBJdCBpcyBwcm92aWRlZCAiYXMgaXMiCiAqIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdh
cnJhbnR5LgogKgogKiBUSEUgQ09QWVJJR0hUIEhPTERFUlMgRElTQ0xBSU0gQUxMIFdBUlJBTlRJ
RVMgV0lUSCBSRUdBUkQgVE8gVEhJUwogKiBTT0ZUV0FSRSwgSU5DTFVESU5HIEFMTCBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORAogKiBGSVRORVNTLCBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKICogU1BFQ0lB
TCwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCiAqIFdI
QVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hF
VEhFUiBJTgogKiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9S
VElPVVMgQUNUSU9OLCBBUklTSU5HCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
IFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTCiAqIFNPRlRXQVJFLgogKgogKiBBdXRob3I6ICBT
w7hyZW4gU2FuZG1hbm4gKHNhbmRtYW5uQHJlZGhhdC5jb20pCiAqIE1pbm9yIEltcHJvdmVtZW50
czogTmljaG9sYXMgTWllbGwgKG5taWVsbEBnbWFpbC5jb20pCiAqIE1NWCBjb2RlIHBhdGhzIGZv
ciBmYmNvbXBvc2UuYyBieSBMYXJzIEtub2xsIChsYXJzQHRyb2xsdGVjaC5jb20pCiAqCiAqIEJh
c2VkIG9uIHdvcmsgYnkgT3dlbiBUYXlsb3IKICovCgojaWZkZWYgSEFWRV9DT05GSUdfSAojaW5j
bHVkZSA8Y29uZmlnLmg+CiNlbmRpZgoKI2lmIGRlZmluZWQgVVNFX1g4Nl9NTVggfHwgZGVmaW5l
ZCBVU0VfQVJNX0lXTU1YVCB8fCBkZWZpbmVkIFVTRV9MT09OR1NPTl9NTUkKCiNpZmRlZiBVU0Vf
TE9PTkdTT05fTU1JCiNpbmNsdWRlIDxsb29uZ3Nvbi1tbWludHJpbi5oPgojZWxzZQojaW5jbHVk
ZSA8bW1pbnRyaW4uaD4KI2VuZGlmCiNpbmNsdWRlICJwaXhtYW4tcHJpdmF0ZS5oIgojaW5jbHVk
ZSAicGl4bWFuLWNvbWJpbmUzMi5oIgojaW5jbHVkZSAicGl4bWFuLWlubGluZXMuaCIKCiNpZmRl
ZiBWRVJCT1NFCiNkZWZpbmUgQ0hFQ0tQT0lOVCgpIGVycm9yX2YgKCJhdCAlcyAlZFxuIiwgX19G
VU5DVElPTl9fLCBfX0xJTkVfXykKI2Vsc2UKI2RlZmluZSBDSEVDS1BPSU5UKCkKI2VuZGlmCgoj
aWYgZGVmaW5lZCBVU0VfQVJNX0lXTU1YVCAmJiBfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5P
Ul9fIDwgOAovKiBFbXB0eSB0aGUgbXVsdGltZWRpYSBzdGF0ZS4gRm9yIHNvbWUgcmVhc29uLCBB
Uk0ncyBtbWludHJpbi5oIGRvZXNuJ3QgcHJvdmlkZSB0aGlzLiAgKi8KZXh0ZXJuIF9faW5saW5l
IHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpCl9tbV9lbXB0eSAodm9pZCkKewoKfQojZW5kaWYKCiNpZmRlZiBVU0Vf
WDg2X01NWAojIGlmIChkZWZpbmVkKF9fU1VOUFJPX0MpIHx8IGRlZmluZWQoX01TQ19WRVIpIHx8
IGRlZmluZWQoX1dJTjY0KSkKIyAgaW5jbHVkZSA8eG1taW50cmluLmg+CiMgZWxzZQovKiBXZSBo
YXZlIHRvIGNvbXBpbGUgd2l0aCAtbXNzZSB0byB1c2UgeG1taW50cmluLmgsIGJ1dCB0aGF0IGNh
dXNlcyBTU0UKICogaW5zdHJ1Y3Rpb25zIHRvIGJlIGdlbmVyYXRlZCB0aGF0IHdlIGRvbid0IHdh
bnQuIEp1c3QgZHVwbGljYXRlIHRoZQogKiBmdW5jdGlvbnMgd2Ugd2FudCB0byB1c2UuICAqLwpl
eHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5
c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZW1hc2tfcGk4IChfX202NCBfX0Ep
CnsKICAgIGludCByZXQ7CgogICAgYXNtICgicG1vdm1za2IgJTEsICUwXG5cdCIKCTogIj1yIiAo
cmV0KQoJOiAieSIgKF9fQSkKICAgICk7CgogICAgcmV0dXJuIHJldDsKfQoKZXh0ZXJuIF9faW5s
aW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsaGlfcHUxNiAoX19tNjQgX19BLCBfX202NCBfX0Ip
CnsKICAgIGFzbSAoInBtdWxodXcgJTEsICUwXG5cdCIKCTogIit5IiAoX19BKQoJOiAieSIgKF9f
QikKICAgICk7CiAgICByZXR1cm4gX19BOwp9CgojICBpZmRlZiBfX09QVElNSVpFX18KZXh0ZXJu
IF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2h1ZmZsZV9waTE2IChfX202NCBfX0EsIGlu
dDhfdCBjb25zdCBfX04pCnsKICAgIF9fbTY0IHJldDsKCiAgICBhc20gKCJwc2h1ZncgJTIsICUx
LCAlMFxuXHQiCgk6ICI9eSIgKHJldCkKCTogInkiIChfX0EpLCAiSyIgKF9fTikKICAgICk7Cgog
ICAgcmV0dXJuIHJldDsKfQojICBlbHNlCiMgICBkZWZpbmUgX21tX3NodWZmbGVfcGkxNihBLCBO
KQkJCQkJXAogICAgKHsJCQkJCQkJCQlcCglfX202NCByZXQ7CQkJCQkJCVwKCQkJCQkJCQkJXAoJ
YXNtICgicHNodWZ3ICUyLCAlMSwgJTBcblx0IgkJCQkJXAoJICAgICA6ICI9eSIgKHJldCkJCQkJ
CQlcCgkgICAgIDogInkiIChBKSwgIksiICgoY29uc3QgaW50OF90KU4pCQkJCVwKCSk7CQkJCQkJ
CQlcCgkJCQkJCQkJCVwKCXJldDsJCQkJCQkJCVwKICAgIH0pCiMgIGVuZGlmCiMgZW5kaWYKI2Vu
ZGlmCgojaWZuZGVmIF9NU0NfVkVSCiNkZWZpbmUgX01NX1NIVUZGTEUoZnAzLGZwMixmcDEsZnAw
KSBcCiAoKChmcDMpIDw8IDYpIHwgKChmcDIpIDw8IDQpIHwgKChmcDEpIDw8IDIpIHwgKGZwMCkp
CiNlbmRpZgoKLyogTm90ZXMgYWJvdXQgd3JpdGluZyBtbXggY29kZQogKgogKiBnaXZlIG1lbW9y
eSBvcGVyYW5kcyBhcyB0aGUgc2Vjb25kIG9wZXJhbmQuIElmIHlvdSBnaXZlIGl0IGFzIHRoZQog
KiBmaXJzdCwgZ2NjIHdpbGwgZmlyc3QgbG9hZCBpdCBpbnRvIGEgcmVnaXN0ZXIsIHRoZW4gdXNl
IHRoYXQKICogcmVnaXN0ZXIKICoKICogICBpZS4gdXNlCiAqCiAqICAgICAgICAgX21tX211bGxv
X3BpMTYgKHgsIG1teF9jb25zdGFudCk7CiAqCiAqICAgbm90CiAqCiAqICAgICAgICAgX21tX211
bGxvX3BpMTYgKG1teF9jb25zdGFudCwgeCk7CiAqCiAqIEFsc28gdHJ5IHRvIG1pbmltaXplIGRl
cGVuZGVuY2llcy4gaS5lLiB3aGVuIHlvdSBuZWVkIGEgdmFsdWUsIHRyeQogKiB0byBjYWxjdWxh
dGUgaXQgZnJvbSBhIHZhbHVlIHRoYXQgd2FzIGNhbGN1bGF0ZWQgYXMgZWFybHkgYXMKICogcG9z
c2libGUuCiAqLwoKLyogLS0tLS0tLS0tLS0tLS0tIE1NWCBwcmltaXRpdmVzIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCi8qIElmIF9fbTY0IGlzIGRlZmluZWQgYXMg
YSBzdHJ1Y3Qgb3IgdW5pb24sIHRoZW4gZGVmaW5lIE02NF9NRU1CRVIgdG8gYmUKICogdGhlIG5h
bWUgb2YgdGhlIG1lbWJlciB1c2VkIHRvIGFjY2VzcyB0aGUgZGF0YS4KICogSWYgX19tNjQgcmVx
dWlyZXMgdXNpbmcgbW1fY3Z0KiBpbnRyaW5zaWNzIGZ1bmN0aW9ucyB0byBjb252ZXJ0IGJldHdl
ZW4KICogdWludDY0X3QgYW5kIF9fbTY0IHZhbHVlcywgdGhlbiBkZWZpbmUgVVNFX0NWVF9JTlRS
SU5TSUNTLgogKiBJZiBfX202NCBhbmQgdWludDY0X3QgdmFsdWVzIGNhbiBqdXN0IGJlIGNhc3Qg
dG8gZWFjaCBvdGhlciBkaXJlY3RseSwKICogdGhlbiBkZWZpbmUgVVNFX002NF9DQVNUUy4KICog
SWYgX19tNjQgaXMgYSBkb3VibGUgZGF0YXR5cGUsIHRoZW4gZGVmaW5lIFVTRV9NNjRfRE9VQkxF
LgogKi8KI2lmZGVmIF9NU0NfVkVSCiMgZGVmaW5lIE02NF9NRU1CRVIgbTY0X3U2NAojZWxpZiBk
ZWZpbmVkKF9fSUNDKQojIGRlZmluZSBVU0VfQ1ZUX0lOVFJJTlNJQ1MKI2VsaWYgZGVmaW5lZChV
U0VfTE9PTkdTT05fTU1JKQojIGRlZmluZSBVU0VfTTY0X0RPVUJMRQojZWxpZiBkZWZpbmVkKF9f
R05VQ19fKQojIGRlZmluZSBVU0VfTTY0X0NBU1RTCiNlbGlmIGRlZmluZWQoX19TVU5QUk9fQykK
IyBpZiAoX19TVU5QUk9fQyA+PSAweDUxMjApICYmICFkZWZpbmVkKF9fTk9WRUNUT1JTSVpFX18p
Ci8qIFNvbGFyaXMgU3R1ZGlvIDEyLjMgKFN1biBDIDUuMTIpIGludHJvZHVjZXMgX19hdHRyaWJ1
dGVfXyhfX3ZlY3Rvcl9zaXplX18pCiAqIHN1cHBvcnQsIGFuZCBkZWZhdWx0cyB0byB1c2luZyBp
dCB0byBkZWZpbmUgX19tNjQsIHVubGVzcyBfX05PVkVDVE9SU0laRV9fCiAqIGlzIGRlZmluZWQu
ICAgSWYgaXQgaXMgdXNlZCwgdGhlbiB0aGUgbW1fY3Z0KiBpbnRyaW5zaWNzIG11c3QgYmUgdXNl
ZC4KICovCiMgIGRlZmluZSBVU0VfQ1ZUX0lOVFJJTlNJQ1MKIyBlbHNlCi8qIEZvciBTdHVkaW8g
MTIuMiBvciBvbGRlciwgb3Igd2hlbiBfX2F0dHJpYnV0ZV9fKF9fdmVjdG9yX3NpemVfXykgaXMK
ICogZGlzYWJsZWQsIF9fbTY0IGlzIGRlZmluZWQgYXMgYSBzdHJ1Y3QgY29udGFpbmluZyAidW5z
aWduZWQgbG9uZyBsb25nIGxfIi4KICovCiMgIGRlZmluZSBNNjRfTUVNQkVSIGxfCiMgZW5kaWYK
I2VuZGlmCgojaWYgZGVmaW5lZChVU0VfTTY0X0NBU1RTKSB8fCBkZWZpbmVkKFVTRV9DVlRfSU5U
UklOU0lDUykgfHwgZGVmaW5lZChVU0VfTTY0X0RPVUJMRSkKdHlwZWRlZiB1aW50NjRfdCBtbXhk
YXRhZmllbGQ7CiNlbHNlCnR5cGVkZWYgX19tNjQgbW14ZGF0YWZpZWxkOwojZW5kaWYKCnR5cGVk
ZWYgc3RydWN0CnsKICAgIG1teGRhdGFmaWVsZCBtbXhfNHgwMGZmOwogICAgbW14ZGF0YWZpZWxk
IG1teF80eDAwODA7CiAgICBtbXhkYXRhZmllbGQgbW14XzU2NV9yZ2I7CiAgICBtbXhkYXRhZmll
bGQgbW14XzU2NV91bnBhY2tfbXVsdGlwbGllcjsKICAgIG1teGRhdGFmaWVsZCBtbXhfNTY1X3Bh
Y2tfbXVsdGlwbGllcjsKICAgIG1teGRhdGFmaWVsZCBtbXhfNTY1X3I7CiAgICBtbXhkYXRhZmll
bGQgbW14XzU2NV9nOwogICAgbW14ZGF0YWZpZWxkIG1teF81NjVfYjsKICAgIG1teGRhdGFmaWVs
ZCBtbXhfcGFja2VkXzU2NV9yYjsKICAgIG1teGRhdGFmaWVsZCBtbXhfcGFja2VkXzU2NV9nOwog
ICAgbW14ZGF0YWZpZWxkIG1teF9leHBhbmRfNTY1X2c7CiAgICBtbXhkYXRhZmllbGQgbW14X2V4
cGFuZF81NjVfYjsKICAgIG1teGRhdGFmaWVsZCBtbXhfZXhwYW5kXzU2NV9yOwojaWZuZGVmIFVT
RV9MT09OR1NPTl9NTUkKICAgIG1teGRhdGFmaWVsZCBtbXhfbWFza18wOwogICAgbW14ZGF0YWZp
ZWxkIG1teF9tYXNrXzE7CiAgICBtbXhkYXRhZmllbGQgbW14X21hc2tfMjsKICAgIG1teGRhdGFm
aWVsZCBtbXhfbWFza18zOwojZW5kaWYKICAgIG1teGRhdGFmaWVsZCBtbXhfZnVsbF9hbHBoYTsK
ICAgIG1teGRhdGFmaWVsZCBtbXhfNHgwMTAxOwogICAgbW14ZGF0YWZpZWxkIG1teF9mZjAwMDAw
MDsKfSBtbXhfZGF0YV90OwoKI2lmIGRlZmluZWQoX01TQ19WRVIpCiMgZGVmaW5lIE1NWERBVEFf
SU5JVChmaWVsZCwgdmFsKSB7IHZhbCAjIyBVSTY0IH0KI2VsaWYgZGVmaW5lZChNNjRfTUVNQkVS
KSAgICAgICAvKiBfX202NCBpcyBhIHN0cnVjdCwgbm90IGFuIGludGVncmFsIHR5cGUgKi8KIyBk
ZWZpbmUgTU1YREFUQV9JTklUKGZpZWxkLCB2YWwpIGZpZWxkID0gICB7IHZhbCAjIyBVTEwgfQoj
ZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1teGRhdGFmaWVsZCBpcyBhbiBpbnRl
Z3JhbCB0eXBlICovCiMgZGVmaW5lIE1NWERBVEFfSU5JVChmaWVsZCwgdmFsKSBmaWVsZCA9ICAg
dmFsICMjIFVMTAojZW5kaWYKCnN0YXRpYyBjb25zdCBtbXhfZGF0YV90IGMgPQp7CiAgICBNTVhE
QVRBX0lOSVQgKC5tbXhfNHgwMGZmLCAgICAgICAgICAgICAgICAgICAweDAwZmYwMGZmMDBmZjAw
ZmYpLAogICAgTU1YREFUQV9JTklUICgubW14XzR4MDA4MCwgICAgICAgICAgICAgICAgICAgMHgw
MDgwMDA4MDAwODAwMDgwKSwKICAgIE1NWERBVEFfSU5JVCAoLm1teF81NjVfcmdiLCAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAxZjAwMDNmMDAxZiksCiAgICBNTVhEQVRBX0lOSVQgKC5tbXhfNTY1
X3VucGFja19tdWx0aXBsaWVyLCAgICAweDAwMDAwMDg0MDQxMDA4NDApLAogICAgTU1YREFUQV9J
TklUICgubW14XzU2NV9wYWNrX211bHRpcGxpZXIsICAgICAgMHgyMDAwMDAwNDIwMDAwMDA0KSwK
ICAgIE1NWERBVEFfSU5JVCAoLm1teF81NjVfciwgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
ZjgwMDAwMDAwMCksCiAgICBNTVhEQVRBX0lOSVQgKC5tbXhfNTY1X2csICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDBmYzAwMDApLAogICAgTU1YREFUQV9JTklUICgubW14XzU2NV9iLCAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMGY4KSwKICAgIE1NWERBVEFfSU5JVCAo
Lm1teF9wYWNrZWRfNTY1X3JiLCAgICAgICAgICAgIDB4MDBmODAwZjgwMGY4MDBmOCksCiAgICBN
TVhEQVRBX0lOSVQgKC5tbXhfcGFja2VkXzU2NV9nLCAgICAgICAgICAgICAweDAwMDBmYzAwMDAw
MGZjMDApLAogICAgTU1YREFUQV9JTklUICgubW14X2V4cGFuZF81NjVfZywgICAgICAgICAgICAg
MHgwN2UwMDdlMDA3ZTAwN2UwKSwKICAgIE1NWERBVEFfSU5JVCAoLm1teF9leHBhbmRfNTY1X2Is
ICAgICAgICAgICAgIDB4MDAxZjAwMWYwMDFmMDAxZiksCiAgICBNTVhEQVRBX0lOSVQgKC5tbXhf
ZXhwYW5kXzU2NV9yLCAgICAgICAgICAgICAweGY4MDBmODAwZjgwMGY4MDApLAojaWZuZGVmIFVT
RV9MT09OR1NPTl9NTUkKICAgIE1NWERBVEFfSU5JVCAoLm1teF9tYXNrXzAsICAgICAgICAgICAg
ICAgICAgIDB4ZmZmZmZmZmZmZmZmMDAwMCksCiAgICBNTVhEQVRBX0lOSVQgKC5tbXhfbWFza18x
LCAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmMDAwMGZmZmYpLAogICAgTU1YREFUQV9JTklU
ICgubW14X21hc2tfMiwgICAgICAgICAgICAgICAgICAgMHhmZmZmMDAwMGZmZmZmZmZmKSwKICAg
IE1NWERBVEFfSU5JVCAoLm1teF9tYXNrXzMsICAgICAgICAgICAgICAgICAgIDB4MDAwMGZmZmZm
ZmZmZmZmZiksCiNlbmRpZgogICAgTU1YREFUQV9JTklUICgubW14X2Z1bGxfYWxwaGEsICAgICAg
ICAgICAgICAgMHgwMGZmMDAwMDAwMDAwMDAwKSwKICAgIE1NWERBVEFfSU5JVCAoLm1teF80eDAx
MDEsICAgICAgICAgICAgICAgICAgIDB4MDEwMTAxMDEwMTAxMDEwMSksCiAgICBNTVhEQVRBX0lO
SVQgKC5tbXhfZmYwMDAwMDAsICAgICAgICAgICAgICAgICAweGZmMDAwMDAwZmYwMDAwMDApLAp9
OwoKI2lmZGVmIFVTRV9DVlRfSU5UUklOU0lDUwojICAgIGRlZmluZSBNQyh4KSB0b19tNjQgKGMu
bW14XyAjIyB4KQojZWxpZiBkZWZpbmVkKFVTRV9NNjRfQ0FTVFMpCiMgICAgZGVmaW5lIE1DKHgp
ICgoX19tNjQpYy5tbXhfICMjIHgpCiNlbGlmIGRlZmluZWQoVVNFX002NF9ET1VCTEUpCiMgICAg
ZGVmaW5lIE1DKHgpICgqKF9fbTY0ICopJmMubW14XyAjIyB4KQojZWxzZQojICAgIGRlZmluZSBN
Qyh4KSBjLm1teF8gIyMgeAojZW5kaWYKCnN0YXRpYyBmb3JjZV9pbmxpbmUgX19tNjQKdG9fbTY0
ICh1aW50NjRfdCB4KQp7CiNpZmRlZiBVU0VfQ1ZUX0lOVFJJTlNJQ1MKICAgIHJldHVybiBfbW1f
Y3Z0c2k2NF9tNjQgKHgpOwojZWxpZiBkZWZpbmVkIE02NF9NRU1CRVIgICAgICAgIC8qIF9fbTY0
IGlzIGEgc3RydWN0LCBub3QgYW4gaW50ZWdyYWwgdHlwZSAqLwogICAgX19tNjQgcmVzOwoKICAg
IHJlcy5NNjRfTUVNQkVSID0geDsKICAgIHJldHVybiByZXM7CiNlbGlmIGRlZmluZWQgVVNFX002
NF9ET1VCTEUKICAgIHJldHVybiAqKF9fbTY0ICopJng7CiNlbHNlIC8qIFVTRV9NNjRfQ0FTVFMg
Ki8KICAgIHJldHVybiAoX19tNjQpeDsKI2VuZGlmCn0KCnN0YXRpYyBmb3JjZV9pbmxpbmUgdWlu
dDY0X3QKdG9fdWludDY0IChfX202NCB4KQp7CiNpZmRlZiBVU0VfQ1ZUX0lOVFJJTlNJQ1MKICAg
IHJldHVybiBfbW1fY3Z0bTY0X3NpNjQgKHgpOwojZWxpZiBkZWZpbmVkIE02NF9NRU1CRVIgICAg
ICAgIC8qIF9fbTY0IGlzIGEgc3RydWN0LCBub3QgYW4gaW50ZWdyYWwgdHlwZSAqLwogICAgdWlu
dDY0X3QgcmVzID0geC5NNjRfTUVNQkVSOwogICAgcmV0dXJuIHJlczsKI2VsaWYgZGVmaW5lZCBV
U0VfTTY0X0RPVUJMRQogICAgcmV0dXJuICoodWludDY0X3QgKikmeDsKI2Vsc2UgLyogVVNFX002
NF9DQVNUUyAqLwogICAgcmV0dXJuICh1aW50NjRfdCl4OwojZW5kaWYKfQoKc3RhdGljIGZvcmNl
X2lubGluZSBfX202NApzaGlmdCAoX19tNjQgdiwKICAgICAgIGludCAgIHMpCnsKICAgIGlmIChz
ID4gMCkKCXJldHVybiBfbW1fc2xsaV9zaTY0ICh2LCBzKTsKICAgIGVsc2UgaWYgKHMgPCAwKQoJ
cmV0dXJuIF9tbV9zcmxpX3NpNjQgKHYsIC1zKTsKICAgIGVsc2UKCXJldHVybiB2Owp9CgpzdGF0
aWMgZm9yY2VfaW5saW5lIF9fbTY0Cm5lZ2F0ZSAoX19tNjQgbWFzaykKewogICAgcmV0dXJuIF9t
bV94b3Jfc2k2NCAobWFzaywgTUMgKDR4MDBmZikpOwp9CgovKiBDb21wdXRlcyB0aGUgcHJvZHVj
dCBvZiB0d28gdW5zaWduZWQgZml4ZWQtcG9pbnQgOC1iaXQgdmFsdWVzIGZyb20gMCB0byAxCiAq
IGFuZCBtYXBzIGl0cyByZXN1bHQgdG8gdGhlIHNhbWUgcmFuZ2UuCiAqCiAqIEppbSBCbGlubiBn
aXZlcyBtdWx0aXBsZSB3YXlzIHRvIGNvbXB1dGUgdGhpcyBpbiAiSmltIEJsaW5uJ3MgQ29ybmVy
OgogKiBOb3RhdGlvbiwgTm90YXRpb24sIE5vdGF0aW9uIiwgdGhlIGZpcnN0IG9mIHdoaWNoIGlz
CiAqCiAqICAgcHJvZChhLCBiKSA9IChhICogYiArIDEyOCkgLyAyNTUuCiAqCiAqIEJ5IGFwcHJv
eGltYXRpbmcgdGhlIGRpdmlzaW9uIGJ5IDI1NSBhcyAyNTcvNjU1MzYgaXQgY2FuIGJlIHJlcGxh
Y2VkIGJ5IGEKICogbXVsdGlwbHkgYW5kIGEgcmlnaHQgc2hpZnQuIFRoaXMgaXMgdGhlIGltcGxl
bWVudGF0aW9uIHRoYXQgd2UgdXNlIGluCiAqIHBpeF9tdWx0aXBseSgpLCBidXQgd2UgX21tX211
bGhpX3B1MTYoKSBieSAyNTcgKHBhcnQgb2YgU1NFMSBvciBFeHRlbmRlZAogKiAzRE5vdyEsIGFu
ZCB1bmF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgYm9vaydzIHB1YmxpY2F0aW9uKSB0byBw
ZXJmb3JtCiAqIHRoZSBtdWx0aXBsaWNhdGlvbiBhbmQgcmlnaHQgc2hpZnQgaW4gYSBzaW5nbGUg
b3BlcmF0aW9uLgogKgogKiAgIHByb2QoYSwgYikgPSAoKGEgKiBiICsgMTI4KSAqIDI1NykgPj4g
MTYuCiAqCiAqIEEgdGhpcmQgd2F5IChob3cgcGl4X211bHRpcGx5KCkgd2FzIGltcGxlbWVudGVk
IHByaW9yIHRvIDE0MjA4MzQ0KSBleGlzdHMKICogYWxzbyB0aGF0IHBlcmZvcm1zIHRoZSBtdWx0
aXBsaWNhdGlvbiBieSAyNTcgd2l0aCBhZGRzIGFuZCBzaGlmdHMuCiAqCiAqIFdoZXJlIHRlbXAg
PSBhICogYiArIDEyOAogKgogKiAgIHByb2QoYSwgYikgPSAodGVtcCArICh0ZW1wID4+IDgpKSA+
PiA4LgogKi8Kc3RhdGljIGZvcmNlX2lubGluZSBfX202NApwaXhfbXVsdGlwbHkgKF9fbTY0IGEs
IF9fbTY0IGIpCnsKICAgIF9fbTY0IHJlczsKCiAgICByZXMgPSBfbW1fbXVsbG9fcGkxNiAoYSwg
Yik7CiAgICByZXMgPSBfbW1fYWRkc19wdTE2IChyZXMsIE1DICg0eDAwODApKTsKICAgIHJlcyA9
IF9tbV9tdWxoaV9wdTE2IChyZXMsIE1DICg0eDAxMDEpKTsKCiAgICByZXR1cm4gcmVzOwp9Cgpz
dGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0CnBpeF9hZGQgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICAg
IHJldHVybiBfbW1fYWRkc19wdTggKGEsIGIpOwp9CgpzdGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0
CmV4cGFuZF9hbHBoYSAoX19tNjQgcGl4ZWwpCnsKICAgIHJldHVybiBfbW1fc2h1ZmZsZV9waTE2
IChwaXhlbCwgX01NX1NIVUZGTEUgKDMsIDMsIDMsIDMpKTsKfQoKc3RhdGljIGZvcmNlX2lubGlu
ZSBfX202NApleHBhbmRfYWxwaGFfcmV2IChfX202NCBwaXhlbCkKewogICAgcmV0dXJuIF9tbV9z
aHVmZmxlX3BpMTYgKHBpeGVsLCBfTU1fU0hVRkZMRSAoMCwgMCwgMCwgMCkpOwp9CgpzdGF0aWMg
Zm9yY2VfaW5saW5lIF9fbTY0CmludmVydF9jb2xvcnMgKF9fbTY0IHBpeGVsKQp7CiAgICByZXR1
cm4gX21tX3NodWZmbGVfcGkxNiAocGl4ZWwsIF9NTV9TSFVGRkxFICgzLCAwLCAxLCAyKSk7Cn0K
CnN0YXRpYyBmb3JjZV9pbmxpbmUgX19tNjQKb3ZlciAoX19tNjQgc3JjLAogICAgICBfX202NCBz
cmNhLAogICAgICBfX202NCBkZXN0KQp7CiAgICByZXR1cm4gX21tX2FkZHNfcHU4IChzcmMsIHBp
eF9tdWx0aXBseSAoZGVzdCwgbmVnYXRlIChzcmNhKSkpOwp9CgpzdGF0aWMgZm9yY2VfaW5saW5l
IF9fbTY0Cm92ZXJfcmV2X25vbl9wcmUgKF9fbTY0IHNyYywgX19tNjQgZGVzdCkKewogICAgX19t
NjQgc3JjYSA9IGV4cGFuZF9hbHBoYSAoc3JjKTsKICAgIF9fbTY0IHNyY2ZhYWEgPSBfbW1fb3Jf
c2k2NCAoc3JjYSwgTUMgKGZ1bGxfYWxwaGEpKTsKCiAgICByZXR1cm4gb3ZlciAocGl4X211bHRp
cGx5IChpbnZlcnRfY29sb3JzIChzcmMpLCBzcmNmYWFhKSwgc3JjYSwgZGVzdCk7Cn0KCnN0YXRp
YyBmb3JjZV9pbmxpbmUgX19tNjQKaW4gKF9fbTY0IHNyYywgX19tNjQgbWFzaykKewogICAgcmV0
dXJuIHBpeF9tdWx0aXBseSAoc3JjLCBtYXNrKTsKfQoKI2lmbmRlZiBfTVNDX1ZFUgpzdGF0aWMg
Zm9yY2VfaW5saW5lIF9fbTY0CmluX292ZXIgKF9fbTY0IHNyYywgX19tNjQgc3JjYSwgX19tNjQg
bWFzaywgX19tNjQgZGVzdCkKewogICAgcmV0dXJuIG92ZXIgKGluIChzcmMsIG1hc2spLCBwaXhf
bXVsdGlwbHkgKHNyY2EsIG1hc2spLCBkZXN0KTsKfQoKI2Vsc2UKCiNkZWZpbmUgaW5fb3Zlcihz
cmMsIHNyY2EsIG1hc2ssIGRlc3QpCQkJCQlcCiAgICBvdmVyIChpbiAoc3JjLCBtYXNrKSwgcGl4
X211bHRpcGx5IChzcmNhLCBtYXNrKSwgZGVzdCkKCiNlbmRpZgoKLyogRWxlbWVudGFsIHVuYWxp
Z25lZCBsb2FkcyAqLwoKc3RhdGljIGZvcmNlX2lubGluZSBfX202NCBsZHFfdShfX202NCAqcCkK
ewojaWZkZWYgVVNFX1g4Nl9NTVgKICAgIC8qIHg4NidzIGFsaWdubWVudCByZXN0cmljdGlvbnMg
YXJlIHZlcnkgcmVsYXhlZC4gKi8KICAgIHJldHVybiAqKF9fbTY0ICopcDsKI2VsaWYgZGVmaW5l
ZCBVU0VfQVJNX0lXTU1YVAogICAgaW50IGFsaWduID0gKHVpbnRwdHJfdClwICYgNzsKICAgIF9f
bTY0ICphbGlnbmVkX3A7CiAgICBpZiAoYWxpZ24gPT0gMCkKCXJldHVybiAqcDsKICAgIGFsaWdu
ZWRfcCA9IChfX202NCAqKSgodWludHB0cl90KXAgJiB+Nyk7CiAgICByZXR1cm4gKF9fbTY0KSBf
bW1fYWxpZ25fc2k2NCAoYWxpZ25lZF9wWzBdLCBhbGlnbmVkX3BbMV0sIGFsaWduKTsKI2Vsc2UK
ICAgIHN0cnVjdCBfX3VuYV91NjQgeyBfX202NCB4IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOyB9
OwogICAgY29uc3Qgc3RydWN0IF9fdW5hX3U2NCAqcHRyID0gKGNvbnN0IHN0cnVjdCBfX3VuYV91
NjQgKikgcDsKICAgIHJldHVybiAoX19tNjQpIHB0ci0+eDsKI2VuZGlmCn0KCnN0YXRpYyBmb3Jj
ZV9pbmxpbmUgdWludDMyX3QgbGRsX3UoY29uc3QgdWludDMyX3QgKnApCnsKI2lmZGVmIFVTRV9Y
ODZfTU1YCiAgICAvKiB4ODYncyBhbGlnbm1lbnQgcmVzdHJpY3Rpb25zIGFyZSB2ZXJ5IHJlbGF4
ZWQuICovCiAgICByZXR1cm4gKnA7CiNlbHNlCiAgICBzdHJ1Y3QgX191bmFfdTMyIHsgdWludDMy
X3QgeCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsgfTsKICAgIGNvbnN0IHN0cnVjdCBfX3VuYV91
MzIgKnB0ciA9IChjb25zdCBzdHJ1Y3QgX191bmFfdTMyICopIHA7CiAgICByZXR1cm4gcHRyLT54
OwojZW5kaWYKfQoKc3RhdGljIGZvcmNlX2lubGluZSBfX202NApsb2FkIChjb25zdCB1aW50MzJf
dCAqdikKewojaWZkZWYgVVNFX0xPT05HU09OX01NSQogICAgX19tNjQgcmV0OwogICAgYXNtICgi
bHdjMSAlMCwgJTFcblx0IgoJOiAiPWYiIChyZXQpCgk6ICJtIiAoKnYpCiAgICApOwogICAgcmV0
dXJuIHJldDsKI2Vsc2UKICAgIHJldHVybiBfbW1fY3Z0c2kzMl9zaTY0ICgqdik7CiNlbmRpZgp9
CgpzdGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0CmxvYWQ4ODg4IChjb25zdCB1aW50MzJfdCAqdikK
ewojaWZkZWYgVVNFX0xPT05HU09OX01NSQogICAgcmV0dXJuIF9tbV91bnBhY2tsb19waThfZiAo
KihfX20zMiAqKXYsIF9tbV9zZXR6ZXJvX3NpNjQgKCkpOwojZWxzZQogICAgcmV0dXJuIF9tbV91
bnBhY2tsb19waTggKGxvYWQgKHYpLCBfbW1fc2V0emVyb19zaTY0ICgpKTsKI2VuZGlmCn0KCnN0
YXRpYyBmb3JjZV9pbmxpbmUgX19tNjQKbG9hZDg4ODh1IChjb25zdCB1aW50MzJfdCAqdikKewog
ICAgdWludDMyX3QgbCA9IGxkbF91ICh2KTsKICAgIHJldHVybiBsb2FkODg4OCAoJmwpOwp9Cgpz
dGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0CnBhY2s4ODg4IChfX202NCBsbywgX19tNjQgaGkpCnsK
ICAgIHJldHVybiBfbW1fcGFja3NfcHUxNiAobG8sIGhpKTsKfQoKc3RhdGljIGZvcmNlX2lubGlu
ZSB2b2lkCnN0b3JlICh1aW50MzJfdCAqZGVzdCwgX19tNjQgdikKewojaWZkZWYgVVNFX0xPT05H
U09OX01NSQogICAgYXNtICgic3djMSAlMSwgJTBcblx0IgoJOiAiPW0iICgqZGVzdCkKCTogImYi
ICh2KQoJOiAibWVtb3J5IgogICAgKTsKI2Vsc2UKICAgICpkZXN0ID0gX21tX2N2dHNpNjRfc2kz
MiAodik7CiNlbmRpZgp9CgpzdGF0aWMgZm9yY2VfaW5saW5lIHZvaWQKc3RvcmU4ODg4ICh1aW50
MzJfdCAqZGVzdCwgX19tNjQgdikKewogICAgdiA9IHBhY2s4ODg4ICh2LCBfbW1fc2V0emVyb19z
aTY0ICgpKTsKICAgIHN0b3JlIChkZXN0LCB2KTsKfQoKc3RhdGljIGZvcmNlX2lubGluZSBwaXht
YW5fYm9vbF90CmlzX2VxdWFsIChfX202NCBhLCBfX202NCBiKQp7CiNpZmRlZiBVU0VfTE9PTkdT
T05fTU1JCiAgICAvKiBfX202NCBpcyBkb3VibGUsIHdlIGNhbiBjb21wYXJlIGRpcmVjdGx5LiAq
LwogICAgcmV0dXJuIGEgPT0gYjsKI2Vsc2UKICAgIHJldHVybiBfbW1fbW92ZW1hc2tfcGk4IChf
bW1fY21wZXFfcGk4IChhLCBiKSkgPT0gMHhmZjsKI2VuZGlmCn0KCnN0YXRpYyBmb3JjZV9pbmxp
bmUgcGl4bWFuX2Jvb2xfdAppc19vcGFxdWUgKF9fbTY0IHYpCnsKI2lmZGVmIFVTRV9MT09OR1NP
Tl9NTUkKICAgIHJldHVybiBpc19lcXVhbCAoX21tX2FuZF9zaTY0ICh2LCBNQyAoZnVsbF9hbHBo
YSkpLCBNQyAoZnVsbF9hbHBoYSkpOwojZWxzZQogICAgX19tNjQgZmZzID0gX21tX2NtcGVxX3Bp
OCAodiwgdik7CiAgICByZXR1cm4gKF9tbV9tb3ZlbWFza19waTggKF9tbV9jbXBlcV9waTggKHYs
IGZmcykpICYgMHg0MCk7CiNlbmRpZgp9CgpzdGF0aWMgZm9yY2VfaW5saW5lIHBpeG1hbl9ib29s
X3QKaXNfemVybyAoX19tNjQgdikKewogICAgcmV0dXJuIGlzX2VxdWFsICh2LCBfbW1fc2V0emVy
b19zaTY0ICgpKTsKfQoKLyogRXhwYW5kIDE2IGJpdHMgcG9zaXRpb25lZCBhdCBAcG9zICgwLTMp
IG9mIGEgbW14IHJlZ2lzdGVyIGludG8KICoKICogICAgMDBSUjAwR0cwMEJCCiAqCiAqIC0tLSBF
eHBhbmRpbmcgNTY1IGluIHRoZSBsb3cgd29yZCAtLS0KICoKICogbSA9IChtIDw8ICgzMiAtIDMp
KSB8IChtIDw8ICgxNiAtIDUpKSB8IG07CiAqIG0gPSBtICYgKDAxZjAwMDNmMDAxZik7CiAqIG0g
PSBtICogKDAwODQwNDEwMDg0MCk7CiAqIG0gPSBtID4+IDg7CiAqCiAqIE5vdGUgdGhlIHRyaWNr
IGhlcmUgLSB0aGUgdG9wIHdvcmQgaXMgc2hpZnRlZCBieSBhbm90aGVyIG5pYmJsZSB0bwogKiBh
dm9pZCBpdCBidW1waW5nIGludG8gdGhlIG1pZGRsZSB3b3JkCiAqLwpzdGF0aWMgZm9yY2VfaW5s
aW5lIF9fbTY0CmV4cGFuZDU2NSAoX19tNjQgcGl4ZWwsIGludCBwb3MpCnsKICAgIF9fbTY0IHAg
PSBwaXhlbDsKICAgIF9fbTY0IHQxLCB0MjsKCiAgICAvKiBtb3ZlIHBpeGVsIHRvIGxvdyAxNiBi
aXQgYW5kIHplcm8gdGhlIHJlc3QgKi8KI2lmZGVmIFVTRV9MT09OR1NPTl9NTUkKICAgIHAgPSBs
b29uZ3Nvbl9leHRyYWN0X3BpMTYgKHAsIHBvcyk7CiNlbHNlCiAgICBwID0gc2hpZnQgKHNoaWZ0
IChwLCAoMyAtIHBvcykgKiAxNiksIC00OCk7CiNlbmRpZgoKICAgIHQxID0gc2hpZnQgKHAsIDM2
IC0gMTEpOwogICAgdDIgPSBzaGlmdCAocCwgMTYgLSA1KTsKCiAgICBwID0gX21tX29yX3NpNjQg
KHQxLCBwKTsKICAgIHAgPSBfbW1fb3Jfc2k2NCAodDIsIHApOwogICAgcCA9IF9tbV9hbmRfc2k2
NCAocCwgTUMgKDU2NV9yZ2IpKTsKCiAgICBwaXhlbCA9IF9tbV9tdWxsb19waTE2IChwLCBNQyAo
NTY1X3VucGFja19tdWx0aXBsaWVyKSk7CiAgICByZXR1cm4gX21tX3NybGlfcGkxNiAocGl4ZWws
IDgpOwp9CgovKiBFeHBhbmQgNCAxNiBiaXQgcGl4ZWxzIGluIGFuIG1teCByZWdpc3RlciBpbnRv
IHR3byBtbXggcmVnaXN0ZXJzIG9mCiAqCiAqICAgIEFBUlJHR0JCUlJHR0JCCiAqLwpzdGF0aWMg
Zm9yY2VfaW5saW5lIHZvaWQKZXhwYW5kXzR4cGFja2VkNTY1IChfX202NCB2aW4sIF9fbTY0ICp2
b3V0MCwgX19tNjQgKnZvdXQxLCBpbnQgZnVsbF9hbHBoYSkKewogICAgX19tNjQgdDAsIHQxLCBh
bHBoYSA9IF9tbV9zZXR6ZXJvX3NpNjQgKCk7CiAgICBfX202NCByID0gX21tX2FuZF9zaTY0ICh2
aW4sIE1DIChleHBhbmRfNTY1X3IpKTsKICAgIF9fbTY0IGcgPSBfbW1fYW5kX3NpNjQgKHZpbiwg
TUMgKGV4cGFuZF81NjVfZykpOwogICAgX19tNjQgYiA9IF9tbV9hbmRfc2k2NCAodmluLCBNQyAo
ZXhwYW5kXzU2NV9iKSk7CiAgICBpZiAoZnVsbF9hbHBoYSkKCWFscGhhID0gX21tX2NtcGVxX3Bp
MzIgKGFscGhhLCBhbHBoYSk7CgogICAgLyogUmVwbGljYXRlIGhpZ2ggYml0cyBpbnRvIGVtcHR5
IGxvdyBiaXRzLiAqLwogICAgciA9IF9tbV9vcl9zaTY0IChfbW1fc3JsaV9waTE2IChyLCA4KSwg
X21tX3NybGlfcGkxNiAociwgMTMpKTsKICAgIGcgPSBfbW1fb3Jfc2k2NCAoX21tX3NybGlfcGkx
NiAoZywgMyksIF9tbV9zcmxpX3BpMTYgKGcsIDkpKTsKICAgIGIgPSBfbW1fb3Jfc2k2NCAoX21t
X3NsbGlfcGkxNiAoYiwgMyksIF9tbV9zcmxpX3BpMTYgKGIsIDIpKTsKCiAgICByID0gX21tX3Bh
Y2tzX3B1MTYgKHIsIF9tbV9zZXR6ZXJvX3NpNjQgKCkpOwkvKiAwMCAwMCAwMCAwMCBSMyBSMiBS
MSBSMCAqLwogICAgZyA9IF9tbV9wYWNrc19wdTE2IChnLCBfbW1fc2V0emVyb19zaTY0ICgpKTsJ
LyogMDAgMDAgMDAgMDAgRzMgRzIgRzEgRzAgKi8KICAgIGIgPSBfbW1fcGFja3NfcHUxNiAoYiwg
X21tX3NldHplcm9fc2k2NCAoKSk7CS8qIDAwIDAwIDAwIDAwIEIzIEIyIEIxIEIwICovCgogICAg
dDEgPSBfbW1fdW5wYWNrbG9fcGk4IChyLCBhbHBoYSk7CQkJLyogQTMgUjMgQTIgUjIgQTEgUjEg
QTAgUjAgKi8KICAgIHQwID0gX21tX3VucGFja2xvX3BpOCAoYiwgZyk7CQkJLyogRzMgQjMgRzIg
QjIgRzEgQjEgRzAgQjAgKi8KCiAgICAqdm91dDAgPSBfbW1fdW5wYWNrbG9fcGkxNiAodDAsIHQx
KTsJCS8qIEExIFIxIEcxIEIxIEEwIFIwIEcwIEIwICovCiAgICAqdm91dDEgPSBfbW1fdW5wYWNr
aGlfcGkxNiAodDAsIHQxKTsJCS8qIEEzIFIzIEczIEIzIEEyIFIyIEcyIEIyICovCn0KCnN0YXRp
YyBmb3JjZV9pbmxpbmUgX19tNjQKZXhwYW5kODg4OCAoX19tNjQgaW4sIGludCBwb3MpCnsKICAg
IGlmIChwb3MgPT0gMCkKCXJldHVybiBfbW1fdW5wYWNrbG9fcGk4IChpbiwgX21tX3NldHplcm9f
c2k2NCAoKSk7CiAgICBlbHNlCglyZXR1cm4gX21tX3VucGFja2hpX3BpOCAoaW4sIF9tbV9zZXR6
ZXJvX3NpNjQgKCkpOwp9CgpzdGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0CmV4cGFuZHg4ODggKF9f
bTY0IGluLCBpbnQgcG9zKQp7CiAgICByZXR1cm4gX21tX29yX3NpNjQgKGV4cGFuZDg4ODggKGlu
LCBwb3MpLCBNQyAoZnVsbF9hbHBoYSkpOwp9CgpzdGF0aWMgZm9yY2VfaW5saW5lIHZvaWQKZXhw
YW5kXzR4NTY1IChfX202NCB2aW4sIF9fbTY0ICp2b3V0MCwgX19tNjQgKnZvdXQxLCBfX202NCAq
dm91dDIsIF9fbTY0ICp2b3V0MywgaW50IGZ1bGxfYWxwaGEpCnsKICAgIF9fbTY0IHYwLCB2MTsK
ICAgIGV4cGFuZF80eHBhY2tlZDU2NSAodmluLCAmdjAsICZ2MSwgZnVsbF9hbHBoYSk7CiAgICAq
dm91dDAgPSBleHBhbmQ4ODg4ICh2MCwgMCk7CiAgICAqdm91dDEgPSBleHBhbmQ4ODg4ICh2MCwg
MSk7CiAgICAqdm91dDIgPSBleHBhbmQ4ODg4ICh2MSwgMCk7CiAgICAqdm91dDMgPSBleHBhbmQ4
ODg4ICh2MSwgMSk7Cn0KCnN0YXRpYyBmb3JjZV9pbmxpbmUgX19tNjQKcGFja181NjUgKF9fbTY0
IHBpeGVsLCBfX202NCB0YXJnZXQsIGludCBwb3MpCnsKICAgIF9fbTY0IHAgPSBwaXhlbDsKICAg
IF9fbTY0IHQgPSB0YXJnZXQ7CiAgICBfX202NCByLCBnLCBiOwoKICAgIHIgPSBfbW1fYW5kX3Np
NjQgKHAsIE1DICg1NjVfcikpOwogICAgZyA9IF9tbV9hbmRfc2k2NCAocCwgTUMgKDU2NV9nKSk7
CiAgICBiID0gX21tX2FuZF9zaTY0IChwLCBNQyAoNTY1X2IpKTsKCiNpZmRlZiBVU0VfTE9PTkdT
T05fTU1JCiAgICByID0gc2hpZnQgKHIsIC0oMzIgLSA4KSk7CiAgICBnID0gc2hpZnQgKGcsIC0o
MTYgLSAzKSk7CiAgICBiID0gc2hpZnQgKGIsIC0oMCAgKyAzKSk7CgogICAgcCA9IF9tbV9vcl9z
aTY0IChyLCBnKTsKICAgIHAgPSBfbW1fb3Jfc2k2NCAocCwgYik7CiAgICByZXR1cm4gbG9vbmdz
b25faW5zZXJ0X3BpMTYgKHQsIHAsIHBvcyk7CiNlbHNlCiAgICByID0gc2hpZnQgKHIsIC0oMzIg
LSA4KSArIHBvcyAqIDE2KTsKICAgIGcgPSBzaGlmdCAoZywgLSgxNiAtIDMpICsgcG9zICogMTYp
OwogICAgYiA9IHNoaWZ0IChiLCAtKDAgICsgMykgKyBwb3MgKiAxNik7CgogICAgaWYgKHBvcyA9
PSAwKQoJdCA9IF9tbV9hbmRfc2k2NCAodCwgTUMgKG1hc2tfMCkpOwogICAgZWxzZSBpZiAocG9z
ID09IDEpCgl0ID0gX21tX2FuZF9zaTY0ICh0LCBNQyAobWFza18xKSk7CiAgICBlbHNlIGlmIChw
b3MgPT0gMikKCXQgPSBfbW1fYW5kX3NpNjQgKHQsIE1DIChtYXNrXzIpKTsKICAgIGVsc2UgaWYg
KHBvcyA9PSAzKQoJdCA9IF9tbV9hbmRfc2k2NCAodCwgTUMgKG1hc2tfMykpOwoKICAgIHAgPSBf
bW1fb3Jfc2k2NCAociwgdCk7CiAgICBwID0gX21tX29yX3NpNjQgKGcsIHApOwoKICAgIHJldHVy
biBfbW1fb3Jfc2k2NCAoYiwgcCk7CiNlbmRpZgp9CgpzdGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0
CnBhY2tfNHhwYWNrZWQ1NjUgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICAgIF9fbTY0IHJiMCA9IF9t
bV9hbmRfc2k2NCAoYSwgTUMgKHBhY2tlZF81NjVfcmIpKTsKICAgIF9fbTY0IHJiMSA9IF9tbV9h
bmRfc2k2NCAoYiwgTUMgKHBhY2tlZF81NjVfcmIpKTsKCiAgICBfX202NCB0MCA9IF9tbV9tYWRk
X3BpMTYgKHJiMCwgTUMgKDU2NV9wYWNrX211bHRpcGxpZXIpKTsKICAgIF9fbTY0IHQxID0gX21t
X21hZGRfcGkxNiAocmIxLCBNQyAoNTY1X3BhY2tfbXVsdGlwbGllcikpOwoKICAgIF9fbTY0IGcw
ID0gX21tX2FuZF9zaTY0IChhLCBNQyAocGFja2VkXzU2NV9nKSk7CiAgICBfX202NCBnMSA9IF9t
bV9hbmRfc2k2NCAoYiwgTUMgKHBhY2tlZF81NjVfZykpOwoKICAgIHQwID0gX21tX29yX3NpNjQg
KHQwLCBnMCk7CiAgICB0MSA9IF9tbV9vcl9zaTY0ICh0MSwgZzEpOwoKICAgIHQwID0gc2hpZnQo
dDAsIC01KTsKI2lmZGVmIFVTRV9BUk1fSVdNTVhUCiAgICB0MSA9IHNoaWZ0KHQxLCAtNSk7CiAg
ICByZXR1cm4gX21tX3BhY2tzX3B1MzIgKHQwLCB0MSk7CiNlbHNlCiAgICB0MSA9IHNoaWZ0KHQx
LCAtNSArIDE2KTsKICAgIHJldHVybiBfbW1fc2h1ZmZsZV9waTE2IChfbW1fb3Jfc2k2NCAodDAs
IHQxKSwgX01NX1NIVUZGTEUgKDMsIDEsIDIsIDApKTsKI2VuZGlmCn0KCiNpZm5kZWYgX01TQ19W
RVIKCnN0YXRpYyBmb3JjZV9pbmxpbmUgX19tNjQKcGFja180eDU2NSAoX19tNjQgdjAsIF9fbTY0
IHYxLCBfX202NCB2MiwgX19tNjQgdjMpCnsKICAgIHJldHVybiBwYWNrXzR4cGFja2VkNTY1IChw
YWNrODg4OCAodjAsIHYxKSwgcGFjazg4ODggKHYyLCB2MykpOwp9CgpzdGF0aWMgZm9yY2VfaW5s
aW5lIF9fbTY0CnBpeF9hZGRfbXVsIChfX202NCB4LCBfX202NCBhLCBfX202NCB5LCBfX202NCBi
KQp7CiAgICB4ID0gcGl4X211bHRpcGx5ICh4LCBhKTsKICAgIHkgPSBwaXhfbXVsdGlwbHkgKHks
IGIpOwoKICAgIHJldHVybiBwaXhfYWRkICh4LCB5KTsKfQoKI2Vsc2UKCi8qIE1TVkMgb25seSBo
YW5kbGVzIGEgInBhc3MgYnkgcmVnaXN0ZXIiIG9mIHVwIHRvIHRocmVlIFNTRSBpbnRyaW5zaWNz
ICovCgojZGVmaW5lIHBhY2tfNHg1NjUodjAsIHYxLCB2MiwgdjMpIFwKICAgIHBhY2tfNHhwYWNr
ZWQ1NjUgKHBhY2s4ODg4ICh2MCwgdjEpLCBwYWNrODg4OCAodjIsIHYzKSkKCiNkZWZpbmUgcGl4
X2FkZF9tdWwoeCwgYSwgeSwgYikJIFwKICAgICggeCA9IHBpeF9tdWx0aXBseSAoeCwgYSksCSBc
CiAgICAgIHkgPSBwaXhfbXVsdGlwbHkgKHksIGIpLAkgXAogICAgICBwaXhfYWRkICh4LCB5KSAp
CgojZW5kaWYKCi8qIC0tLS0tLS0tLS0tLS0tLSBNTVggY29kZSBwYXRjaCBmb3IgZmJjb21wb3Nl
LmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpzdGF0aWMgZm9yY2VfaW5saW5lIF9fbTY0CmNv
bWJpbmUgKGNvbnN0IHVpbnQzMl90ICpzcmMsIGNvbnN0IHVpbnQzMl90ICptYXNrKQp7CiAgICBf
X202NCB2c3JjID0gbG9hZDg4ODggKHNyYyk7CgogICAgaWYgKG1hc2spCiAgICB7CglfX202NCBt
ID0gbG9hZDg4ODggKG1hc2spOwoKCW0gPSBleHBhbmRfYWxwaGEgKG0pOwoJdnNyYyA9IHBpeF9t
dWx0aXBseSAodnNyYywgbSk7CiAgICB9CgogICAgcmV0dXJuIHZzcmM7Cn0KCnN0YXRpYyBmb3Jj
ZV9pbmxpbmUgX19tNjQKY29yZV9jb21iaW5lX292ZXJfdV9waXhlbF9tbXggKF9fbTY0IHZzcmMs
IF9fbTY0IHZkc3QpCnsKICAgIHZzcmMgPSBfbW1fdW5wYWNrbG9fcGk4ICh2c3JjLCBfbW1fc2V0
emVyb19zaTY0ICgpKTsKCiAgICBpZiAoaXNfb3BhcXVlICh2c3JjKSkKICAgIHsKCXJldHVybiB2
c3JjOwogICAgfQogICAgZWxzZSBpZiAoIWlzX3plcm8gKHZzcmMpKQogICAgewoJcmV0dXJuIG92
ZXIgKHZzcmMsIGV4cGFuZF9hbHBoYSAodnNyYyksCgkJICAgICBfbW1fdW5wYWNrbG9fcGk4ICh2
ZHN0LCBfbW1fc2V0emVyb19zaTY0ICgpKSk7CiAgICB9CgogICAgcmV0dXJuIF9tbV91bnBhY2ts
b19waTggKHZkc3QsIF9tbV9zZXR6ZXJvX3NpNjQgKCkpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29t
YmluZV9vdmVyX3UgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAg
ICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAgICAgICAgICAgIHVp
bnQzMl90ICogICAgICAgICAgICAgICBkZXN0LAogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp
bnQzMl90ICogICAgICAgICBzcmMsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3Qg
KiAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gZGVzdCArIHdpZHRoOwoKICAg
IHdoaWxlIChkZXN0IDwgZW5kKQogICAgewoJX19tNjQgdnNyYyA9IGNvbWJpbmUgKHNyYywgbWFz
ayk7CgoJaWYgKGlzX29wYXF1ZSAodnNyYykpCgl7CgkgICAgc3RvcmU4ODg4IChkZXN0LCB2c3Jj
KTsKCX0KCWVsc2UgaWYgKCFpc196ZXJvICh2c3JjKSkKCXsKCSAgICBfX202NCBzYSA9IGV4cGFu
ZF9hbHBoYSAodnNyYyk7CgkgICAgc3RvcmU4ODg4IChkZXN0LCBvdmVyICh2c3JjLCBzYSwgbG9h
ZDg4ODggKGRlc3QpKSk7Cgl9CgoJKytkZXN0OwoJKytzcmM7CglpZiAobWFzaykKCSAgICArK21h
c2s7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX292
ZXJfcmV2ZXJzZV91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqICAgICAgICAgc3JjLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgd2lkdGgpCnsKICAg
IGNvbnN0IHVpbnQzMl90ICplbmQgPSBkZXN0ICsgd2lkdGg7CgogICAgd2hpbGUgKGRlc3QgPCBl
bmQpCiAgICB7CglfX202NCBkLCBkYTsKCV9fbTY0IHMgPSBjb21iaW5lIChzcmMsIG1hc2spOwoK
CWQgPSBsb2FkODg4OCAoZGVzdCk7CglkYSA9IGV4cGFuZF9hbHBoYSAoZCk7CglzdG9yZTg4ODgg
KGRlc3QsIG92ZXIgKGQsIGRhLCBzKSk7CgoJKytkZXN0OwoJKytzcmM7CglpZiAobWFzaykKCSAg
ICBtYXNrKys7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21i
aW5lX2luX3UgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAg
IHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwKICAgICAgICAgICAgICAgICAgdWludDMyX3Qg
KiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICog
ICAgICAgICBzcmMsCiAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBt
YXNrLAogICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgd2lkdGgpCnsK
ICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBkZXN0ICsgd2lkdGg7CgogICAgd2hpbGUgKGRlc3Qg
PCBlbmQpCiAgICB7CglfX202NCBhOwoJX19tNjQgeCA9IGNvbWJpbmUgKHNyYywgbWFzayk7CgoJ
YSA9IGxvYWQ4ODg4IChkZXN0KTsKCWEgPSBleHBhbmRfYWxwaGEgKGEpOwoJeCA9IHBpeF9tdWx0
aXBseSAoeCwgYSk7CgoJc3RvcmU4ODg4IChkZXN0LCB4KTsKCgkrK2Rlc3Q7CgkrK3NyYzsKCWlm
IChtYXNrKQoJICAgIG1hc2srKzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZv
aWQKbW14X2NvbWJpbmVfaW5fcmV2ZXJzZV91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1w
LAogICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZGVzdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqICAgICAgICAgc3JjLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBtYXNrLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB3aWR0aCkK
ewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IGRlc3QgKyB3aWR0aDsKCiAgICB3aGlsZSAoZGVz
dCA8IGVuZCkKICAgIHsKCV9fbTY0IGEgPSBjb21iaW5lIChzcmMsIG1hc2spOwoJX19tNjQgeDsK
Cgl4ID0gbG9hZDg4ODggKGRlc3QpOwoJYSA9IGV4cGFuZF9hbHBoYSAoYSk7Cgl4ID0gcGl4X211
bHRpcGx5ICh4LCBhKTsKCXN0b3JlODg4OCAoZGVzdCwgeCk7CgoJKytkZXN0OwoJKytzcmM7Cglp
ZiAobWFzaykKCSAgICBtYXNrKys7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2
b2lkCm1teF9jb21iaW5lX291dF91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAg
ICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAgICBj
b25zdCB1aW50MzJfdCAqICAgICAgICAgc3JjLAogICAgICAgICAgICAgICAgICAgY29uc3QgdWlu
dDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBkZXN0ICsgd2lkdGg7
CgogICAgd2hpbGUgKGRlc3QgPCBlbmQpCiAgICB7CglfX202NCBhOwoJX19tNjQgeCA9IGNvbWJp
bmUgKHNyYywgbWFzayk7CgoJYSA9IGxvYWQ4ODg4IChkZXN0KTsKCWEgPSBleHBhbmRfYWxwaGEg
KGEpOwoJYSA9IG5lZ2F0ZSAoYSk7Cgl4ID0gcGl4X211bHRpcGx5ICh4LCBhKTsKCXN0b3JlODg4
OCAoZGVzdCwgeCk7CgoJKytkZXN0OwoJKytzcmM7CglpZiAobWFzaykKCSAgICBtYXNrKys7CiAg
ICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX291dF9yZXZl
cnNlX3UgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBzcmMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBtYXNrLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgd2lkdGgpCnsKICAgIGNvbnN0IHVpbnQz
Ml90ICplbmQgPSBkZXN0ICsgd2lkdGg7CgogICAgd2hpbGUgKGRlc3QgPCBlbmQpCiAgICB7Cglf
X202NCBhID0gY29tYmluZSAoc3JjLCBtYXNrKTsKCV9fbTY0IHg7CgoJeCA9IGxvYWQ4ODg4IChk
ZXN0KTsKCWEgPSBleHBhbmRfYWxwaGEgKGEpOwoJYSA9IG5lZ2F0ZSAoYSk7Cgl4ID0gcGl4X211
bHRpcGx5ICh4LCBhKTsKCglzdG9yZTg4ODggKGRlc3QsIHgpOwoKCSsrZGVzdDsKCSsrc3JjOwoJ
aWYgKG1hc2spCgkgICAgbWFzaysrOwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMg
dm9pZAptbXhfY29tYmluZV9hdG9wX3UgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAg
ICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICogICAgICAgICAgICAgICBkZXN0LAogICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBzcmMsCiAgICAgICAgICAgICAgICAgICAgY29u
c3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gZGVzdCAr
IHdpZHRoOwoKICAgIHdoaWxlIChkZXN0IDwgZW5kKQogICAgewoJX19tNjQgZGEsIGQsIHNpYTsK
CV9fbTY0IHMgPSBjb21iaW5lIChzcmMsIG1hc2spOwoKCWQgPSBsb2FkODg4OCAoZGVzdCk7Cglz
aWEgPSBleHBhbmRfYWxwaGEgKHMpOwoJc2lhID0gbmVnYXRlIChzaWEpOwoJZGEgPSBleHBhbmRf
YWxwaGEgKGQpOwoJcyA9IHBpeF9hZGRfbXVsIChzLCBkYSwgZCwgc2lhKTsKCXN0b3JlODg4OCAo
ZGVzdCwgcyk7CgoJKytkZXN0OwoJKytzcmM7CglpZiAobWFzaykKCSAgICBtYXNrKys7CiAgICB9
CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2F0b3BfcmV2ZXJz
ZV91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB1aW50MzJfdCAqICAgICAgICAgc3JjLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgd2lkdGgpCnsKICAgIGNvbnN0IHVp
bnQzMl90ICplbmQ7CgogICAgZW5kID0gZGVzdCArIHdpZHRoOwoKICAgIHdoaWxlIChkZXN0IDwg
ZW5kKQogICAgewoJX19tNjQgZGlhLCBkLCBzYTsKCV9fbTY0IHMgPSBjb21iaW5lIChzcmMsIG1h
c2spOwoKCWQgPSBsb2FkODg4OCAoZGVzdCk7CglzYSA9IGV4cGFuZF9hbHBoYSAocyk7CglkaWEg
PSBleHBhbmRfYWxwaGEgKGQpOwoJZGlhID0gbmVnYXRlIChkaWEpOwoJcyA9IHBpeF9hZGRfbXVs
IChzLCBkaWEsIGQsIHNhKTsKCXN0b3JlODg4OCAoZGVzdCwgcyk7CgoJKytkZXN0OwoJKytzcmM7
CglpZiAobWFzaykKCSAgICBtYXNrKys7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRp
YyB2b2lkCm1teF9jb21iaW5lX3hvcl91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAog
ICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAg
ICAgICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAg
ICBjb25zdCB1aW50MzJfdCAqICAgICAgICAgc3JjLAogICAgICAgICAgICAgICAgICAgY29uc3Qg
dWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBkZXN0ICsgd2lk
dGg7CgogICAgd2hpbGUgKGRlc3QgPCBlbmQpCiAgICB7CglfX202NCBkaWEsIGQsIHNpYTsKCV9f
bTY0IHMgPSBjb21iaW5lIChzcmMsIG1hc2spOwoKCWQgPSBsb2FkODg4OCAoZGVzdCk7CglzaWEg
PSBleHBhbmRfYWxwaGEgKHMpOwoJZGlhID0gZXhwYW5kX2FscGhhIChkKTsKCXNpYSA9IG5lZ2F0
ZSAoc2lhKTsKCWRpYSA9IG5lZ2F0ZSAoZGlhKTsKCXMgPSBwaXhfYWRkX211bCAocywgZGlhLCBk
LCBzaWEpOwoJc3RvcmU4ODg4IChkZXN0LCBzKTsKCgkrK2Rlc3Q7CgkrK3NyYzsKCWlmIChtYXNr
KQoJICAgIG1hc2srKzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14
X2NvbWJpbmVfYWRkX3UgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAg
ICAgICAgICBwaXhtYW5fb3BfdCAgICAgICAgICAgICAgb3AsCiAgICAgICAgICAgICAgICAgICB1
aW50MzJfdCAqICAgICAgICAgICAgICAgZGVzdCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp
bnQzMl90ICogICAgICAgICBzcmMsCiAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAq
ICAgICAgICAgbWFzaywKICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAg
ICB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IGRlc3QgKyB3aWR0aDsKCiAgICB3
aGlsZSAoZGVzdCA8IGVuZCkKICAgIHsKCV9fbTY0IGQ7CglfX202NCBzID0gY29tYmluZSAoc3Jj
LCBtYXNrKTsKCglkID0gbG9hZDg4ODggKGRlc3QpOwoJcyA9IHBpeF9hZGQgKHMsIGQpOwoJc3Rv
cmU4ODg4IChkZXN0LCBzKTsKCgkrK2Rlc3Q7CgkrK3NyYzsKCWlmIChtYXNrKQoJICAgIG1hc2sr
KzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbWJpbmVfc2F0
dXJhdGVfdSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgdWludDMyX3QgKiAgICAgICAgIHNyYywKICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgIGludCAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IGRl
c3QgKyB3aWR0aDsKCiAgICB3aGlsZSAoZGVzdCA8IGVuZCkKICAgIHsKCXVpbnQzMl90IHMsIHNh
LCBkYTsKCXVpbnQzMl90IGQgPSAqZGVzdDsKCV9fbTY0IG1zID0gY29tYmluZSAoc3JjLCBtYXNr
KTsKCV9fbTY0IG1kID0gbG9hZDg4ODggKGRlc3QpOwoKCXN0b3JlODg4OCgmcywgbXMpOwoJZGEg
PSB+ZCA+PiAyNDsKCXNhID0gcyA+PiAyNDsKCglpZiAoc2EgPiBkYSkKCXsKCSAgICB1aW50MzJf
dCBxdW90ID0gRElWX1VOOCAoZGEsIHNhKSA8PCAyNDsKCSAgICBfX202NCBtc2EgPSBsb2FkODg4
OCAoJnF1b3QpOwoJICAgIG1zYSA9IGV4cGFuZF9hbHBoYSAobXNhKTsKCSAgICBtcyA9IHBpeF9t
dWx0aXBseSAobXMsIG1zYSk7Cgl9CgoJbWQgPSBwaXhfYWRkIChtZCwgbXMpOwoJc3RvcmU4ODg4
IChkZXN0LCBtZCk7CgoJKytzcmM7CgkrK2Rlc3Q7CglpZiAobWFzaykKCSAgICBtYXNrKys7CiAg
ICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX3NyY19jYSAo
cGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICBwaXhtYW5f
b3BfdCAgICAgICAgICAgICAgb3AsCiAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiAgICAg
ICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAg
ICAgIHNyYywKICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqICAgICAgICAgbWFz
aywKICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgd2lkdGgpCnsK
ICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBzcmMgKyB3aWR0aDsKCiAgICB3aGlsZSAoc3JjIDwg
ZW5kKQogICAgewoJX19tNjQgYSA9IGxvYWQ4ODg4IChtYXNrKTsKCV9fbTY0IHMgPSBsb2FkODg4
OCAoc3JjKTsKCglzID0gcGl4X211bHRpcGx5IChzLCBhKTsKCXN0b3JlODg4OCAoZGVzdCwgcyk7
CgoJKytzcmM7CgkrK21hc2s7CgkrK2Rlc3Q7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0
YXRpYyB2b2lkCm1teF9jb21iaW5lX292ZXJfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICpp
bXAsCiAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwKICAg
ICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBzcmMsCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBtYXNrLAogICAgICAgICAgICAgICAgICAg
ICBpbnQgICAgICAgICAgICAgICAgICAgICAgd2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICpl
bmQgPSBzcmMgKyB3aWR0aDsKCiAgICB3aGlsZSAoc3JjIDwgZW5kKQogICAgewoJX19tNjQgYSA9
IGxvYWQ4ODg4IChtYXNrKTsKCV9fbTY0IHMgPSBsb2FkODg4OCAoc3JjKTsKCV9fbTY0IGQgPSBs
b2FkODg4OCAoZGVzdCk7CglfX202NCBzYSA9IGV4cGFuZF9hbHBoYSAocyk7CgoJc3RvcmU4ODg4
IChkZXN0LCBpbl9vdmVyIChzLCBzYSwgYSwgZCkpOwoKCSsrc3JjOwoJKytkZXN0OwoJKyttYXNr
OwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tYmluZV9vdmVy
X3JldmVyc2VfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90ICogICAgICAgICAgICAgICBkZXN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBzcmMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKQp7
CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gc3JjICsgd2lkdGg7CgogICAgd2hpbGUgKHNyYyA8
IGVuZCkKICAgIHsKCV9fbTY0IGEgPSBsb2FkODg4OCAobWFzayk7CglfX202NCBzID0gbG9hZDg4
ODggKHNyYyk7CglfX202NCBkID0gbG9hZDg4ODggKGRlc3QpOwoJX19tNjQgZGEgPSBleHBhbmRf
YWxwaGEgKGQpOwoKCXN0b3JlODg4OCAoZGVzdCwgb3ZlciAoZCwgZGEsIGluIChzLCBhKSkpOwoK
CSsrc3JjOwoJKytkZXN0OwoJKyttYXNrOwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0
aWMgdm9pZAptbXhfY29tYmluZV9pbl9jYSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwK
ICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwKICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICogICAgICAgICAgICAgICBkZXN0LAogICAgICAgICAgICAgICAg
ICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIHNyYywKICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQzMl90ICogICAgICAgICBtYXNrLAogICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gc3JjICsgd2lk
dGg7CgogICAgd2hpbGUgKHNyYyA8IGVuZCkKICAgIHsKCV9fbTY0IGEgPSBsb2FkODg4OCAobWFz
ayk7CglfX202NCBzID0gbG9hZDg4ODggKHNyYyk7CglfX202NCBkID0gbG9hZDg4ODggKGRlc3Qp
OwoJX19tNjQgZGEgPSBleHBhbmRfYWxwaGEgKGQpOwoKCXMgPSBwaXhfbXVsdGlwbHkgKHMsIGEp
OwoJcyA9IHBpeF9tdWx0aXBseSAocywgZGEpOwoJc3RvcmU4ODg4IChkZXN0LCBzKTsKCgkrK3Ny
YzsKCSsrZGVzdDsKCSsrbWFzazsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZv
aWQKbW14X2NvbWJpbmVfaW5fcmV2ZXJzZV9jYSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmlt
cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9w
LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZGVz
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIHNy
YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIG1h
c2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB3
aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IHNyYyArIHdpZHRoOwoKICAgIHdoaWxl
IChzcmMgPCBlbmQpCiAgICB7CglfX202NCBhID0gbG9hZDg4ODggKG1hc2spOwoJX19tNjQgcyA9
IGxvYWQ4ODg4IChzcmMpOwoJX19tNjQgZCA9IGxvYWQ4ODg4IChkZXN0KTsKCV9fbTY0IHNhID0g
ZXhwYW5kX2FscGhhIChzKTsKCglhID0gcGl4X211bHRpcGx5IChhLCBzYSk7CglkID0gcGl4X211
bHRpcGx5IChkLCBhKTsKCXN0b3JlODg4OCAoZGVzdCwgZCk7CgoJKytzcmM7CgkrK2Rlc3Q7Cgkr
K21hc2s7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5l
X291dF9jYSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAg
ICBwaXhtYW5fb3BfdCAgICAgICAgICAgICAgb3AsCiAgICAgICAgICAgICAgICAgICAgdWludDMy
X3QgKiAgICAgICAgICAgICAgIGRlc3QsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMy
X3QgKiAgICAgICAgIHNyYywKICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqICAg
ICAgICAgbWFzaywKICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBzcmMgKyB3aWR0aDsKCiAgICB3aGls
ZSAoc3JjIDwgZW5kKQogICAgewoJX19tNjQgYSA9IGxvYWQ4ODg4IChtYXNrKTsKCV9fbTY0IHMg
PSBsb2FkODg4OCAoc3JjKTsKCV9fbTY0IGQgPSBsb2FkODg4OCAoZGVzdCk7CglfX202NCBkYSA9
IGV4cGFuZF9hbHBoYSAoZCk7CgoJZGEgPSBuZWdhdGUgKGRhKTsKCXMgPSBwaXhfbXVsdGlwbHkg
KHMsIGEpOwoJcyA9IHBpeF9tdWx0aXBseSAocywgZGEpOwoJc3RvcmU4ODg4IChkZXN0LCBzKTsK
CgkrK3NyYzsKCSsrZGVzdDsKCSsrbWFzazsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3Rh
dGljIHZvaWQKbW14X2NvbWJpbmVfb3V0X3JldmVyc2VfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlv
bl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fb3BfdCAgICAgICAg
ICAgICAgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqICAgICAgICAg
ICAgICAgZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICog
ICAgICAgICBzcmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAq
ICAgICAgICAgbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IHNyYyArIHdpZHRo
OwoKICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CglfX202NCBhID0gbG9hZDg4ODggKG1hc2sp
OwoJX19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwoJX19tNjQgZCA9IGxvYWQ4ODg4IChkZXN0KTsK
CV9fbTY0IHNhID0gZXhwYW5kX2FscGhhIChzKTsKCglhID0gcGl4X211bHRpcGx5IChhLCBzYSk7
CglhID0gbmVnYXRlIChhKTsKCWQgPSBwaXhfbXVsdGlwbHkgKGQsIGEpOwoJc3RvcmU4ODg4IChk
ZXN0LCBkKTsKCgkrK3NyYzsKCSsrZGVzdDsKCSsrbWFzazsKICAgIH0KICAgIF9tbV9lbXB0eSAo
KTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbWJpbmVfYXRvcF9jYSAocGl4bWFuX2ltcGxlbWVudGF0
aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAg
IG9wLAogICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZGVzdCwK
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIHNyYywKICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ssCiAgICAgICAgICAg
ICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB3aWR0aCkKewogICAgY29uc3QgdWlu
dDMyX3QgKmVuZCA9IHNyYyArIHdpZHRoOwoKICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7Cglf
X202NCBhID0gbG9hZDg4ODggKG1hc2spOwoJX19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwoJX19t
NjQgZCA9IGxvYWQ4ODg4IChkZXN0KTsKCV9fbTY0IGRhID0gZXhwYW5kX2FscGhhIChkKTsKCV9f
bTY0IHNhID0gZXhwYW5kX2FscGhhIChzKTsKCglzID0gcGl4X211bHRpcGx5IChzLCBhKTsKCWEg
PSBwaXhfbXVsdGlwbHkgKGEsIHNhKTsKCWEgPSBuZWdhdGUgKGEpOwoJZCA9IHBpeF9hZGRfbXVs
IChkLCBhLCBzLCBkYSk7CglzdG9yZTg4ODggKGRlc3QsIGQpOwoKCSsrc3JjOwoJKytkZXN0OwoJ
KyttYXNrOwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tYmlu
ZV9hdG9wX3JldmVyc2VfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3QgICAgICAgICAgICAgIG9wLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICogICAgICAgICAgICAgICBkZXN0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBzcmMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiAgICAgICAgIG1hc2ss
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gc3JjICsgd2lkdGg7CgogICAgd2hpbGUg
KHNyYyA8IGVuZCkKICAgIHsKCV9fbTY0IGEgPSBsb2FkODg4OCAobWFzayk7CglfX202NCBzID0g
bG9hZDg4ODggKHNyYyk7CglfX202NCBkID0gbG9hZDg4ODggKGRlc3QpOwoJX19tNjQgZGEgPSBl
eHBhbmRfYWxwaGEgKGQpOwoJX19tNjQgc2EgPSBleHBhbmRfYWxwaGEgKHMpOwoKCXMgPSBwaXhf
bXVsdGlwbHkgKHMsIGEpOwoJYSA9IHBpeF9tdWx0aXBseSAoYSwgc2EpOwoJZGEgPSBuZWdhdGUg
KGRhKTsKCWQgPSBwaXhfYWRkX211bCAoZCwgYSwgcywgZGEpOwoJc3RvcmU4ODg4IChkZXN0LCBk
KTsKCgkrK3NyYzsKCSsrZGVzdDsKCSsrbWFzazsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoK
c3RhdGljIHZvaWQKbW14X2NvbWJpbmVfeG9yX2NhIChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAq
aW1wLAogICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwKICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZGVzdCwKICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqICAgICAgICAgc3JjLAogICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHVpbnQzMl90ICogICAgICAgICBtYXNrLAogICAgICAgICAgICAgICAgICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9
IHNyYyArIHdpZHRoOwoKICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CglfX202NCBhID0gbG9h
ZDg4ODggKG1hc2spOwoJX19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwoJX19tNjQgZCA9IGxvYWQ4
ODg4IChkZXN0KTsKCV9fbTY0IGRhID0gZXhwYW5kX2FscGhhIChkKTsKCV9fbTY0IHNhID0gZXhw
YW5kX2FscGhhIChzKTsKCglzID0gcGl4X211bHRpcGx5IChzLCBhKTsKCWEgPSBwaXhfbXVsdGlw
bHkgKGEsIHNhKTsKCWRhID0gbmVnYXRlIChkYSk7CglhID0gbmVnYXRlIChhKTsKCWQgPSBwaXhf
YWRkX211bCAoZCwgYSwgcywgZGEpOwoJc3RvcmU4ODg4IChkZXN0LCBkKTsKCgkrK3NyYzsKCSsr
ZGVzdDsKCSsrbWFzazsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14
X2NvbWJpbmVfYWRkX2NhIChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAg
ICAgICAgICAgIHBpeG1hbl9vcF90ICAgICAgICAgICAgICBvcCwKICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZGVzdCwKICAgICAgICAgICAgICAgICAgICBjb25z
dCB1aW50MzJfdCAqICAgICAgICAgc3JjLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQz
Ml90ICogICAgICAgICBtYXNrLAogICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IHNyYyArIHdpZHRoOwoK
ICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CglfX202NCBhID0gbG9hZDg4ODggKG1hc2spOwoJ
X19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwoJX19tNjQgZCA9IGxvYWQ4ODg4IChkZXN0KTsKCglz
ID0gcGl4X211bHRpcGx5IChzLCBhKTsKCWQgPSBwaXhfYWRkIChzLCBkKTsKCXN0b3JlODg4OCAo
ZGVzdCwgZCk7CgoJKytzcmM7CgkrK2Rlc3Q7CgkrK21hc2s7CiAgICB9CiAgICBfbW1fZW1wdHkg
KCk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0gTU1YIGNvZGUgcGF0aHMgY2FsbGVkIGZyb20gZmJwaWN0
LmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVfb3Zl
cl9uXzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBQSVhNQU5fQ09N
UE9TSVRFX0FSR1MgKGluZm8pOwogICAgdWludDMyX3Qgc3JjOwogICAgdWludDMyX3QgICAgKmRz
dF9saW5lLCAqZHN0OwogICAgaW50MzJfdCB3OwogICAgaW50IGRzdF9zdHJpZGU7CiAgICBfX202
NCB2c3JjLCB2c3JjYTsKCiAgICBDSEVDS1BPSU5UICgpOwoKICAgIHNyYyA9IF9waXhtYW5faW1h
Z2VfZ2V0X3NvbGlkIChpbXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOwoK
ICAgIGlmIChzcmMgPT0gMCkKCXJldHVybjsKCiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUgKGRl
c3RfaW1hZ2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MzJfdCwgZHN0X3N0cmlkZSwgZHN0X2xpbmUs
IDEpOwoKICAgIHZzcmMgPSBsb2FkODg4OCAoJnNyYyk7CiAgICB2c3JjYSA9IGV4cGFuZF9hbHBo
YSAodnNyYyk7CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewoJZHN0ID0gZHN0X2xpbmU7Cglk
c3RfbGluZSArPSBkc3Rfc3RyaWRlOwoJdyA9IHdpZHRoOwoKCUNIRUNLUE9JTlQgKCk7CgoJd2hp
bGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3KQoJewoJICAgIHN0b3JlODg4OCAoZHN0LCBvdmVy
ICh2c3JjLCB2c3JjYSwgbG9hZDg4ODggKGRzdCkpKTsKCgkgICAgdy0tOwoJICAgIGRzdCsrOwoJ
fQoKCXdoaWxlICh3ID49IDIpCgl7CgkgICAgX19tNjQgdmRlc3Q7CgkgICAgX19tNjQgZGVzdDAs
IGRlc3QxOwoKCSAgICB2ZGVzdCA9ICooX19tNjQgKilkc3Q7CgoJICAgIGRlc3QwID0gb3ZlciAo
dnNyYywgdnNyY2EsIGV4cGFuZDg4ODggKHZkZXN0LCAwKSk7CgkgICAgZGVzdDEgPSBvdmVyICh2
c3JjLCB2c3JjYSwgZXhwYW5kODg4OCAodmRlc3QsIDEpKTsKCgkgICAgKihfX202NCAqKWRzdCA9
IHBhY2s4ODg4IChkZXN0MCwgZGVzdDEpOwoKCSAgICBkc3QgKz0gMjsKCSAgICB3IC09IDI7Cgl9
CgoJQ0hFQ0tQT0lOVCAoKTsKCglpZiAodykKCXsKCSAgICBzdG9yZTg4ODggKGRzdCwgb3ZlciAo
dnNyYywgdnNyY2EsIGxvYWQ4ODg4IChkc3QpKSk7Cgl9CiAgICB9CgogICAgX21tX2VtcHR5ICgp
Owp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX292ZXJfbl8wNTY1IChwaXhtYW5faW1wbGVt
ZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9z
aXRlX2luZm9fdCAqaW5mbykKewogICAgUElYTUFOX0NPTVBPU0lURV9BUkdTIChpbmZvKTsKICAg
IHVpbnQzMl90IHNyYzsKICAgIHVpbnQxNl90ICAgICpkc3RfbGluZSwgKmRzdDsKICAgIGludDMy
X3QgdzsKICAgIGludCBkc3Rfc3RyaWRlOwogICAgX19tNjQgdnNyYywgdnNyY2E7CgogICAgQ0hF
Q0tQT0lOVCAoKTsKCiAgICBzcmMgPSBfcGl4bWFuX2ltYWdlX2dldF9zb2xpZCAoaW1wLCBzcmNf
aW1hZ2UsIGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsKCiAgICBpZiAoc3JjID09IDApCglyZXR1
cm47CgogICAgUElYTUFOX0lNQUdFX0dFVF9MSU5FIChkZXN0X2ltYWdlLCBkZXN0X3gsIGRlc3Rf
eSwgdWludDE2X3QsIGRzdF9zdHJpZGUsIGRzdF9saW5lLCAxKTsKCiAgICB2c3JjID0gbG9hZDg4
ODggKCZzcmMpOwogICAgdnNyY2EgPSBleHBhbmRfYWxwaGEgKHZzcmMpOwoKICAgIHdoaWxlICho
ZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsK
CXcgPSB3aWR0aDsKCglDSEVDS1BPSU5UICgpOwoKCXdoaWxlICh3ICYmICh1aW50cHRyX3QpZHN0
ICYgNykKCXsKCSAgICB1aW50NjRfdCBkID0gKmRzdDsKCSAgICBfX202NCB2ZGVzdCA9IGV4cGFu
ZDU2NSAodG9fbTY0IChkKSwgMCk7CgoJICAgIHZkZXN0ID0gcGFja181NjUgKG92ZXIgKHZzcmMs
IHZzcmNhLCB2ZGVzdCksIHZkZXN0LCAwKTsKCSAgICAqZHN0ID0gdG9fdWludDY0ICh2ZGVzdCk7
CgoJICAgIHctLTsKCSAgICBkc3QrKzsKCX0KCgl3aGlsZSAodyA+PSA0KQoJewoJICAgIF9fbTY0
IHZkZXN0ID0gKihfX202NCAqKWRzdDsKCSAgICBfX202NCB2MCwgdjEsIHYyLCB2MzsKCgkgICAg
ZXhwYW5kXzR4NTY1ICh2ZGVzdCwgJnYwLCAmdjEsICZ2MiwgJnYzLCAwKTsKCgkgICAgdjAgPSBv
dmVyICh2c3JjLCB2c3JjYSwgdjApOwoJICAgIHYxID0gb3ZlciAodnNyYywgdnNyY2EsIHYxKTsK
CSAgICB2MiA9IG92ZXIgKHZzcmMsIHZzcmNhLCB2Mik7CgkgICAgdjMgPSBvdmVyICh2c3JjLCB2
c3JjYSwgdjMpOwoKCSAgICAqKF9fbTY0ICopZHN0ID0gcGFja180eDU2NSAodjAsIHYxLCB2Miwg
djMpOwoKCSAgICBkc3QgKz0gNDsKCSAgICB3IC09IDQ7Cgl9CgoJQ0hFQ0tQT0lOVCAoKTsKCgl3
aGlsZSAodykKCXsKCSAgICB1aW50NjRfdCBkID0gKmRzdDsKCSAgICBfX202NCB2ZGVzdCA9IGV4
cGFuZDU2NSAodG9fbTY0IChkKSwgMCk7CgoJICAgIHZkZXN0ID0gcGFja181NjUgKG92ZXIgKHZz
cmMsIHZzcmNhLCB2ZGVzdCksIHZkZXN0LCAwKTsKCSAgICAqZHN0ID0gdG9fdWludDY0ICh2ZGVz
dCk7CgoJICAgIHctLTsKCSAgICBkc3QrKzsKCX0KICAgIH0KCiAgICBfbW1fZW1wdHkgKCk7Cn0K
CnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVfb3Zlcl9uXzg4ODhfODg4OF9jYSAocGl4bWFuX2lt
cGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
aXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgUElYTUFOX0NPTVBPU0lURV9BUkdT
IChpbmZvKTsKICAgIHVpbnQzMl90IHNyYzsKICAgIHVpbnQzMl90ICAgICpkc3RfbGluZTsKICAg
IHVpbnQzMl90ICAgICptYXNrX2xpbmU7CiAgICBpbnQgZHN0X3N0cmlkZSwgbWFza19zdHJpZGU7
CiAgICBfX202NCB2c3JjLCB2c3JjYTsKCiAgICBDSEVDS1BPSU5UICgpOwoKICAgIHNyYyA9IF9w
aXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5m
b3JtYXQpOwoKICAgIGlmIChzcmMgPT0gMCkKCXJldHVybjsKCiAgICBQSVhNQU5fSU1BR0VfR0VU
X0xJTkUgKGRlc3RfaW1hZ2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MzJfdCwgZHN0X3N0cmlkZSwg
ZHN0X2xpbmUsIDEpOwogICAgUElYTUFOX0lNQUdFX0dFVF9MSU5FIChtYXNrX2ltYWdlLCBtYXNr
X3gsIG1hc2tfeSwgdWludDMyX3QsIG1hc2tfc3RyaWRlLCBtYXNrX2xpbmUsIDEpOwoKICAgIHZz
cmMgPSBsb2FkODg4OCAoJnNyYyk7CiAgICB2c3JjYSA9IGV4cGFuZF9hbHBoYSAodnNyYyk7Cgog
ICAgd2hpbGUgKGhlaWdodC0tKQogICAgewoJaW50IHR3aWR0aCA9IHdpZHRoOwoJdWludDMyX3Qg
KnAgPSAodWludDMyX3QgKiltYXNrX2xpbmU7Cgl1aW50MzJfdCAqcSA9ICh1aW50MzJfdCAqKWRz
dF9saW5lOwoKCXdoaWxlICh0d2lkdGggJiYgKHVpbnRwdHJfdClxICYgNykKCXsKCSAgICB1aW50
MzJfdCBtID0gKih1aW50MzJfdCAqKXA7CgoJICAgIGlmIChtKQoJICAgIHsKCQlfX202NCB2ZGVz
dCA9IGxvYWQ4ODg4IChxKTsKCQl2ZGVzdCA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBsb2FkODg4
OCAoJm0pLCB2ZGVzdCk7CgkJc3RvcmU4ODg4IChxLCB2ZGVzdCk7CgkgICAgfQoKCSAgICB0d2lk
dGgtLTsKCSAgICBwKys7CgkgICAgcSsrOwoJfQoKCXdoaWxlICh0d2lkdGggPj0gMikKCXsKCSAg
ICB1aW50MzJfdCBtMCwgbTE7CgkgICAgbTAgPSAqcDsKCSAgICBtMSA9ICoocCArIDEpOwoKCSAg
ICBpZiAobTAgfCBtMSkKCSAgICB7CgkJX19tNjQgZGVzdDAsIGRlc3QxOwoJCV9fbTY0IHZkZXN0
ID0gKihfX202NCAqKXE7CgoJCWRlc3QwID0gaW5fb3ZlciAodnNyYywgdnNyY2EsIGxvYWQ4ODg4
ICgmbTApLAoJCSAgICAgICAgICAgICAgICAgZXhwYW5kODg4OCAodmRlc3QsIDApKTsKCQlkZXN0
MSA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBsb2FkODg4OCAoJm0xKSwKCQkgICAgICAgICAgICAg
ICAgIGV4cGFuZDg4ODggKHZkZXN0LCAxKSk7CgoJCSooX19tNjQgKilxID0gcGFjazg4ODggKGRl
c3QwLCBkZXN0MSk7CgkgICAgfQoKCSAgICBwICs9IDI7CgkgICAgcSArPSAyOwoJICAgIHR3aWR0
aCAtPSAyOwoJfQoKCWlmICh0d2lkdGgpCgl7CgkgICAgdWludDMyX3QgbSA9ICoodWludDMyX3Qg
KilwOwoKCSAgICBpZiAobSkKCSAgICB7CgkJX19tNjQgdmRlc3QgPSBsb2FkODg4OCAocSk7CgkJ
dmRlc3QgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgbG9hZDg4ODggKCZtKSwgdmRlc3QpOwoJCXN0
b3JlODg4OCAocSwgdmRlc3QpOwoJICAgIH0KCgkgICAgdHdpZHRoLS07CgkgICAgcCsrOwoJICAg
IHErKzsKCX0KCglkc3RfbGluZSArPSBkc3Rfc3RyaWRlOwoJbWFza19saW5lICs9IG1hc2tfc3Ry
aWRlOwogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0
ZV9vdmVyXzg4ODhfbl84ODg4IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7
CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwogICAgdWludDMyX3QgICAgKmRzdF9s
aW5lLCAqZHN0OwogICAgdWludDMyX3QgICAgKnNyY19saW5lLCAqc3JjOwogICAgdWludDMyX3Qg
bWFzazsKICAgIF9fbTY0IHZtYXNrOwogICAgaW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAg
ICBpbnQzMl90IHc7CgogICAgQ0hFQ0tQT0lOVCAoKTsKCiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJ
TkUgKGRlc3RfaW1hZ2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MzJfdCwgZHN0X3N0cmlkZSwgZHN0
X2xpbmUsIDEpOwogICAgUElYTUFOX0lNQUdFX0dFVF9MSU5FIChzcmNfaW1hZ2UsIHNyY194LCBz
cmNfeSwgdWludDMyX3QsIHNyY19zdHJpZGUsIHNyY19saW5lLCAxKTsKCiAgICBtYXNrID0gX3Bp
eG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5m
b3JtYXQpOwogICAgdm1hc2sgPSBleHBhbmRfYWxwaGEgKGxvYWQ4ODg4ICgmbWFzaykpOwoKICAg
IHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJZHN0X2xpbmUgKz0gZHN0
X3N0cmlkZTsKCXNyYyA9IHNyY19saW5lOwoJc3JjX2xpbmUgKz0gc3JjX3N0cmlkZTsKCXcgPSB3
aWR0aDsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCgl7CgkgICAgX19tNjQgcyA9
IGxvYWQ4ODg4IChzcmMpOwoJICAgIF9fbTY0IGQgPSBsb2FkODg4OCAoZHN0KTsKCgkgICAgc3Rv
cmU4ODg4IChkc3QsIGluX292ZXIgKHMsIGV4cGFuZF9hbHBoYSAocyksIHZtYXNrLCBkKSk7CgoJ
ICAgIHctLTsKCSAgICBkc3QrKzsKCSAgICBzcmMrKzsKCX0KCgl3aGlsZSAodyA+PSAyKQoJewoJ
ICAgIF9fbTY0IHZzID0gbGRxX3UgKChfX202NCAqKXNyYyk7CgkgICAgX19tNjQgdmQgPSAqKF9f
bTY0ICopZHN0OwoJICAgIF9fbTY0IHZzcmMwID0gZXhwYW5kODg4OCAodnMsIDApOwoJICAgIF9f
bTY0IHZzcmMxID0gZXhwYW5kODg4OCAodnMsIDEpOwoKCSAgICAqKF9fbTY0ICopZHN0ID0gcGFj
azg4ODggKAoJICAgICAgICBpbl9vdmVyICh2c3JjMCwgZXhwYW5kX2FscGhhICh2c3JjMCksIHZt
YXNrLCBleHBhbmQ4ODg4ICh2ZCwgMCkpLAoJICAgICAgICBpbl9vdmVyICh2c3JjMSwgZXhwYW5k
X2FscGhhICh2c3JjMSksIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZCwgMSkpKTsKCgkgICAgdyAtPSAy
OwoJICAgIGRzdCArPSAyOwoJICAgIHNyYyArPSAyOwoJfQoKCWlmICh3KQoJewoJICAgIF9fbTY0
IHMgPSBsb2FkODg4OCAoc3JjKTsKCSAgICBfX202NCBkID0gbG9hZDg4ODggKGRzdCk7CgoJICAg
IHN0b3JlODg4OCAoZHN0LCBpbl9vdmVyIChzLCBleHBhbmRfYWxwaGEgKHMpLCB2bWFzaywgZCkp
OwoJfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0
ZV9vdmVyX3g4ODhfbl84ODg4IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7
CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwogICAgdWludDMyX3QgKmRzdF9saW5l
LCAqZHN0OwogICAgdWludDMyX3QgKnNyY19saW5lLCAqc3JjOwogICAgdWludDMyX3QgbWFzazsK
ICAgIF9fbTY0IHZtYXNrOwogICAgaW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAgICBpbnQz
Ml90IHc7CiAgICBfX202NCBzcmNhOwoKICAgIENIRUNLUE9JTlQgKCk7CgogICAgUElYTUFOX0lN
QUdFX0dFVF9MSU5FIChkZXN0X2ltYWdlLCBkZXN0X3gsIGRlc3RfeSwgdWludDMyX3QsIGRzdF9z
dHJpZGUsIGRzdF9saW5lLCAxKTsKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoc3JjX2ltYWdl
LCBzcmNfeCwgc3JjX3ksIHVpbnQzMl90LCBzcmNfc3RyaWRlLCBzcmNfbGluZSwgMSk7CiAgICBt
YXNrID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwgZGVzdF9pbWFn
ZS0+Yml0cy5mb3JtYXQpOwoKICAgIHZtYXNrID0gZXhwYW5kX2FscGhhIChsb2FkODg4OCAoJm1h
c2spKTsKICAgIHNyY2EgPSBNQyAoNHgwMGZmKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7
Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7CglzcmMgPSBzcmNfbGlu
ZTsKCXNyY19saW5lICs9IHNyY19zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJd2hpbGUgKHcgJiYgKHVp
bnRwdHJfdClkc3QgJiA3KQoJewoJICAgIHVpbnQzMl90IHNzcmMgPSAqc3JjIHwgMHhmZjAwMDAw
MDsKCSAgICBfX202NCBzID0gbG9hZDg4ODggKCZzc3JjKTsKCSAgICBfX202NCBkID0gbG9hZDg4
ODggKGRzdCk7CgoJICAgIHN0b3JlODg4OCAoZHN0LCBpbl9vdmVyIChzLCBzcmNhLCB2bWFzaywg
ZCkpOwoKCSAgICB3LS07CgkgICAgZHN0Kys7CgkgICAgc3JjKys7Cgl9CgoJd2hpbGUgKHcgPj0g
MTYpCgl7CgkgICAgX19tNjQgdmQwID0gKihfX202NCAqKShkc3QgKyAwKTsKCSAgICBfX202NCB2
ZDEgPSAqKF9fbTY0ICopKGRzdCArIDIpOwoJICAgIF9fbTY0IHZkMiA9ICooX19tNjQgKikoZHN0
ICsgNCk7CgkgICAgX19tNjQgdmQzID0gKihfX202NCAqKShkc3QgKyA2KTsKCSAgICBfX202NCB2
ZDQgPSAqKF9fbTY0ICopKGRzdCArIDgpOwoJICAgIF9fbTY0IHZkNSA9ICooX19tNjQgKikoZHN0
ICsgMTApOwoJICAgIF9fbTY0IHZkNiA9ICooX19tNjQgKikoZHN0ICsgMTIpOwoJICAgIF9fbTY0
IHZkNyA9ICooX19tNjQgKikoZHN0ICsgMTQpOwoKCSAgICBfX202NCB2czAgPSBsZHFfdSAoKF9f
bTY0ICopKHNyYyArIDApKTsKCSAgICBfX202NCB2czEgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyAr
IDIpKTsKCSAgICBfX202NCB2czIgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDQpKTsKCSAgICBf
X202NCB2czMgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDYpKTsKCSAgICBfX202NCB2czQgPSBs
ZHFfdSAoKF9fbTY0ICopKHNyYyArIDgpKTsKCSAgICBfX202NCB2czUgPSBsZHFfdSAoKF9fbTY0
ICopKHNyYyArIDEwKSk7CgkgICAgX19tNjQgdnM2ID0gbGRxX3UgKChfX202NCAqKShzcmMgKyAx
MikpOwoJICAgIF9fbTY0IHZzNyA9IGxkcV91ICgoX19tNjQgKikoc3JjICsgMTQpKTsKCgkgICAg
dmQwID0gcGFjazg4ODggKAoJICAgICAgICBpbl9vdmVyIChleHBhbmR4ODg4ICh2czAsIDApLCBz
cmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQwLCAwKSksCgkgICAgICAgIGluX292ZXIgKGV4cGFu
ZHg4ODggKHZzMCwgMSksIHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDAsIDEpKSk7CgoJICAg
IHZkMSA9IHBhY2s4ODg4ICgKCSAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4OCAodnMxLCAwKSwg
c3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkMSwgMCkpLAoJICAgICAgICBpbl9vdmVyIChleHBh
bmR4ODg4ICh2czEsIDEpLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQxLCAxKSkpOwoKCSAg
ICB2ZDIgPSBwYWNrODg4OCAoCgkgICAgICAgIGluX292ZXIgKGV4cGFuZHg4ODggKHZzMiwgMCks
IHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDIsIDApKSwKCSAgICAgICAgaW5fb3ZlciAoZXhw
YW5keDg4OCAodnMyLCAxKSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkMiwgMSkpKTsKCgkg
ICAgdmQzID0gcGFjazg4ODggKAoJICAgICAgICBpbl9vdmVyIChleHBhbmR4ODg4ICh2czMsIDAp
LCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQzLCAwKSksCgkgICAgICAgIGluX292ZXIgKGV4
cGFuZHg4ODggKHZzMywgMSksIHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDMsIDEpKSk7CgoJ
ICAgIHZkNCA9IHBhY2s4ODg4ICgKCSAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4OCAodnM0LCAw
KSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkNCwgMCkpLAoJICAgICAgICBpbl9vdmVyIChl
eHBhbmR4ODg4ICh2czQsIDEpLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQ0LCAxKSkpOwoK
CSAgICB2ZDUgPSBwYWNrODg4OCAoCgkgICAgICAgIGluX292ZXIgKGV4cGFuZHg4ODggKHZzNSwg
MCksIHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDUsIDApKSwKCSAgICAgICAgaW5fb3ZlciAo
ZXhwYW5keDg4OCAodnM1LCAxKSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkNSwgMSkpKTsK
CgkgICAgdmQ2ID0gcGFjazg4ODggKAoJICAgICAgICBpbl9vdmVyIChleHBhbmR4ODg4ICh2czYs
IDApLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQ2LCAwKSksCgkgICAgICAgIGluX292ZXIg
KGV4cGFuZHg4ODggKHZzNiwgMSksIHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDYsIDEpKSk7
CgoJICAgIHZkNyA9IHBhY2s4ODg4ICgKCSAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4OCAodnM3
LCAwKSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkNywgMCkpLAoJICAgICAgICBpbl9vdmVy
IChleHBhbmR4ODg4ICh2czcsIDEpLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQ3LCAxKSkp
OwoKCSAgICAqKF9fbTY0ICopKGRzdCArIDApID0gdmQwOwoJICAgICooX19tNjQgKikoZHN0ICsg
MikgPSB2ZDE7CgkgICAgKihfX202NCAqKShkc3QgKyA0KSA9IHZkMjsKCSAgICAqKF9fbTY0ICop
KGRzdCArIDYpID0gdmQzOwoJICAgICooX19tNjQgKikoZHN0ICsgOCkgPSB2ZDQ7CgkgICAgKihf
X202NCAqKShkc3QgKyAxMCkgPSB2ZDU7CgkgICAgKihfX202NCAqKShkc3QgKyAxMikgPSB2ZDY7
CgkgICAgKihfX202NCAqKShkc3QgKyAxNCkgPSB2ZDc7CgoJICAgIHcgLT0gMTY7CgkgICAgZHN0
ICs9IDE2OwoJICAgIHNyYyArPSAxNjsKCX0KCgl3aGlsZSAodykKCXsKCSAgICB1aW50MzJfdCBz
c3JjID0gKnNyYyB8IDB4ZmYwMDAwMDA7CgkgICAgX19tNjQgcyA9IGxvYWQ4ODg4ICgmc3NyYyk7
CgkgICAgX19tNjQgZCA9IGxvYWQ4ODg4IChkc3QpOwoKCSAgICBzdG9yZTg4ODggKGRzdCwgaW5f
b3ZlciAocywgc3JjYSwgdm1hc2ssIGQpKTsKCgkgICAgdy0tOwoJICAgIGRzdCsrOwoJICAgIHNy
YysrOwoJfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBv
c2l0ZV9vdmVyXzg4ODhfODg4OCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsK
ICAgIFBJWE1BTl9DT01QT1NJVEVfQVJHUyAoaW5mbyk7CiAgICB1aW50MzJfdCAqZHN0X2xpbmUs
ICpkc3Q7CiAgICB1aW50MzJfdCAqc3JjX2xpbmUsICpzcmM7CiAgICB1aW50MzJfdCBzOwogICAg
aW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAgICB1aW50OF90IGE7CiAgICBpbnQzMl90IHc7
CgogICAgQ0hFQ0tQT0lOVCAoKTsKCiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUgKGRlc3RfaW1h
Z2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MzJfdCwgZHN0X3N0cmlkZSwgZHN0X2xpbmUsIDEpOwog
ICAgUElYTUFOX0lNQUdFX0dFVF9MSU5FIChzcmNfaW1hZ2UsIHNyY194LCBzcmNfeSwgdWludDMy
X3QsIHNyY19zdHJpZGUsIHNyY19saW5lLCAxKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7
Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7CglzcmMgPSBzcmNfbGlu
ZTsKCXNyY19saW5lICs9IHNyY19zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJd2hpbGUgKHctLSkKCXsK
CSAgICBzID0gKnNyYysrOwoJICAgIGEgPSBzID4+IDI0OwoKCSAgICBpZiAoYSA9PSAweGZmKQoJ
ICAgIHsKCQkqZHN0ID0gczsKCSAgICB9CgkgICAgZWxzZSBpZiAocykKCSAgICB7CgkJX19tNjQg
bXMsIHNhOwoJCW1zID0gbG9hZDg4ODggKCZzKTsKCQlzYSA9IGV4cGFuZF9hbHBoYSAobXMpOwoJ
CXN0b3JlODg4OCAoZHN0LCBvdmVyIChtcywgc2EsIGxvYWQ4ODg4IChkc3QpKSk7CgkgICAgfQoK
CSAgICBkc3QrKzsKCX0KICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14
X2NvbXBvc2l0ZV9vdmVyXzg4ODhfMDU2NSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmlu
Zm8pCnsKICAgIFBJWE1BTl9DT01QT1NJVEVfQVJHUyAoaW5mbyk7CiAgICB1aW50MTZfdCAgICAq
ZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50MzJfdCAgICAqc3JjX2xpbmUsICpzcmM7CiAgICBpbnQg
ZHN0X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBDSEVDS1BPSU5UICgp
OwoKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwgZGVzdF94LCBkZXN0X3ks
IHVpbnQxNl90LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1BR0VfR0VU
X0xJTkUgKHNyY19pbWFnZSwgc3JjX3gsIHNyY195LCB1aW50MzJfdCwgc3JjX3N0cmlkZSwgc3Jj
X2xpbmUsIDEpOwoKI2lmIDAKICAgIC8qIEZJWE1FICovCiAgICBhc3NlcnQgKHNyY19pbWFnZS0+
ZHJhd2FibGUgPT0gbWFza19pbWFnZS0+ZHJhd2FibGUpOwojZW5kaWYKCiAgICB3aGlsZSAoaGVp
Z2h0LS0pCiAgICB7Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7Cglz
cmMgPSBzcmNfbGluZTsKCXNyY19saW5lICs9IHNyY19zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJQ0hF
Q0tQT0lOVCAoKTsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCgl7CgkgICAgX19t
NjQgdnNyYyA9IGxvYWQ4ODg4IChzcmMpOwoJICAgIHVpbnQ2NF90IGQgPSAqZHN0OwoJICAgIF9f
bTY0IHZkZXN0ID0gZXhwYW5kNTY1ICh0b19tNjQgKGQpLCAwKTsKCgkgICAgdmRlc3QgPSBwYWNr
XzU2NSAoCgkJb3ZlciAodnNyYywgZXhwYW5kX2FscGhhICh2c3JjKSwgdmRlc3QpLCB2ZGVzdCwg
MCk7CgoJICAgICpkc3QgPSB0b191aW50NjQgKHZkZXN0KTsKCgkgICAgdy0tOwoJICAgIGRzdCsr
OwoJICAgIHNyYysrOwoJfQoKCUNIRUNLUE9JTlQgKCk7CgoJd2hpbGUgKHcgPj0gNCkKCXsKCSAg
ICBfX202NCB2ZGVzdCA9ICooX19tNjQgKilkc3Q7CgkgICAgX19tNjQgdjAsIHYxLCB2MiwgdjM7
CgkgICAgX19tNjQgdnNyYzAsIHZzcmMxLCB2c3JjMiwgdnNyYzM7CgoJICAgIGV4cGFuZF80eDU2
NSAodmRlc3QsICZ2MCwgJnYxLCAmdjIsICZ2MywgMCk7CgoJICAgIHZzcmMwID0gbG9hZDg4ODgg
KChzcmMgKyAwKSk7CgkgICAgdnNyYzEgPSBsb2FkODg4OCAoKHNyYyArIDEpKTsKCSAgICB2c3Jj
MiA9IGxvYWQ4ODg4ICgoc3JjICsgMikpOwoJICAgIHZzcmMzID0gbG9hZDg4ODggKChzcmMgKyAz
KSk7CgoJICAgIHYwID0gb3ZlciAodnNyYzAsIGV4cGFuZF9hbHBoYSAodnNyYzApLCB2MCk7Cgkg
ICAgdjEgPSBvdmVyICh2c3JjMSwgZXhwYW5kX2FscGhhICh2c3JjMSksIHYxKTsKCSAgICB2MiA9
IG92ZXIgKHZzcmMyLCBleHBhbmRfYWxwaGEgKHZzcmMyKSwgdjIpOwoJICAgIHYzID0gb3ZlciAo
dnNyYzMsIGV4cGFuZF9hbHBoYSAodnNyYzMpLCB2Myk7CgoJICAgICooX19tNjQgKilkc3QgPSBw
YWNrXzR4NTY1ICh2MCwgdjEsIHYyLCB2Myk7CgoJICAgIHcgLT0gNDsKCSAgICBkc3QgKz0gNDsK
CSAgICBzcmMgKz0gNDsKCX0KCglDSEVDS1BPSU5UICgpOwoKCXdoaWxlICh3KQoJewoJICAgIF9f
bTY0IHZzcmMgPSBsb2FkODg4OCAoc3JjKTsKCSAgICB1aW50NjRfdCBkID0gKmRzdDsKCSAgICBf
X202NCB2ZGVzdCA9IGV4cGFuZDU2NSAodG9fbTY0IChkKSwgMCk7CgoJICAgIHZkZXN0ID0gcGFj
a181NjUgKG92ZXIgKHZzcmMsIGV4cGFuZF9hbHBoYSAodnNyYyksIHZkZXN0KSwgdmRlc3QsIDAp
OwoKCSAgICAqZHN0ID0gdG9fdWludDY0ICh2ZGVzdCk7CgoJICAgIHctLTsKCSAgICBkc3QrKzsK
CSAgICBzcmMrKzsKCX0KICAgIH0KCiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1t
eF9jb21wb3NpdGVfb3Zlcl9uXzhfODg4OCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5m
bykKewogICAgUElYTUFOX0NPTVBPU0lURV9BUkdTIChpbmZvKTsKICAgIHVpbnQzMl90IHNyYywg
c3JjYTsKICAgIHVpbnQzMl90ICpkc3RfbGluZSwgKmRzdDsKICAgIHVpbnQ4X3QgKm1hc2tfbGlu
ZSwgKm1hc2s7CiAgICBpbnQgZHN0X3N0cmlkZSwgbWFza19zdHJpZGU7CiAgICBpbnQzMl90IHc7
CiAgICBfX202NCB2c3JjLCB2c3JjYTsKICAgIHVpbnQ2NF90IHNyY3NyYzsKCiAgICBDSEVDS1BP
SU5UICgpOwoKICAgIHNyYyA9IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAsIHNyY19pbWFn
ZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOwoKICAgIHNyY2EgPSBzcmMgPj4gMjQ7CiAgICBp
ZiAoc3JjID09IDApCglyZXR1cm47CgogICAgc3Jjc3JjID0gKHVpbnQ2NF90KXNyYyA8PCAzMiB8
IHNyYzsKCiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUgKGRlc3RfaW1hZ2UsIGRlc3RfeCwgZGVz
dF95LCB1aW50MzJfdCwgZHN0X3N0cmlkZSwgZHN0X2xpbmUsIDEpOwogICAgUElYTUFOX0lNQUdF
X0dFVF9MSU5FIChtYXNrX2ltYWdlLCBtYXNrX3gsIG1hc2tfeSwgdWludDhfdCwgbWFza19zdHJp
ZGUsIG1hc2tfbGluZSwgMSk7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgmc3JjKTsKICAgIHZzcmNh
ID0gZXhwYW5kX2FscGhhICh2c3JjKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7Cglkc3Qg
PSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7CgltYXNrID0gbWFza19saW5lOwoJ
bWFza19saW5lICs9IG1hc2tfc3RyaWRlOwoJdyA9IHdpZHRoOwoKCUNIRUNLUE9JTlQgKCk7CgoJ
d2hpbGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3KQoJewoJICAgIHVpbnQ2NF90IG0gPSAqbWFz
azsKCgkgICAgaWYgKG0pCgkgICAgewoJCV9fbTY0IHZkZXN0ID0gaW5fb3ZlciAodnNyYywgdnNy
Y2EsCgkJCQkgICAgICAgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtKSksCgkJCQkgICAgICAg
bG9hZDg4ODggKGRzdCkpOwoKCQlzdG9yZTg4ODggKGRzdCwgdmRlc3QpOwoJICAgIH0KCgkgICAg
dy0tOwoJICAgIG1hc2srKzsKCSAgICBkc3QrKzsKCX0KCglDSEVDS1BPSU5UICgpOwoKCXdoaWxl
ICh3ID49IDIpCgl7CgkgICAgdWludDY0X3QgbTAsIG0xOwoKCSAgICBtMCA9ICptYXNrOwoJICAg
IG0xID0gKihtYXNrICsgMSk7CgoJICAgIGlmIChzcmNhID09IDB4ZmYgJiYgKG0wICYgbTEpID09
IDB4ZmYpCgkgICAgewoJCSoodWludDY0X3QgKilkc3QgPSBzcmNzcmM7CgkgICAgfQoJICAgIGVs
c2UgaWYgKG0wIHwgbTEpCgkgICAgewoJCV9fbTY0IHZkZXN0OwoJCV9fbTY0IGRlc3QwLCBkZXN0
MTsKCgkJdmRlc3QgPSAqKF9fbTY0ICopZHN0OwoKCQlkZXN0MCA9IGluX292ZXIgKHZzcmMsIHZz
cmNhLCBleHBhbmRfYWxwaGFfcmV2ICh0b19tNjQgKG0wKSksCgkJCQkgZXhwYW5kODg4OCAodmRl
c3QsIDApKTsKCQlkZXN0MSA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBleHBhbmRfYWxwaGFfcmV2
ICh0b19tNjQgKG0xKSksCgkJCQkgZXhwYW5kODg4OCAodmRlc3QsIDEpKTsKCgkJKihfX202NCAq
KWRzdCA9IHBhY2s4ODg4IChkZXN0MCwgZGVzdDEpOwoJICAgIH0KCgkgICAgbWFzayArPSAyOwoJ
ICAgIGRzdCArPSAyOwoJICAgIHcgLT0gMjsKCX0KCglDSEVDS1BPSU5UICgpOwoKCWlmICh3KQoJ
ewoJICAgIHVpbnQ2NF90IG0gPSAqbWFzazsKCgkgICAgaWYgKG0pCgkgICAgewoJCV9fbTY0IHZk
ZXN0ID0gbG9hZDg4ODggKGRzdCk7CgoJCXZkZXN0ID0gaW5fb3ZlciAoCgkJICAgIHZzcmMsIHZz
cmNhLCBleHBhbmRfYWxwaGFfcmV2ICh0b19tNjQgKG0pKSwgdmRlc3QpOwoJCXN0b3JlODg4OCAo
ZHN0LCB2ZGVzdCk7CgkgICAgfQoJfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGlj
IHBpeG1hbl9ib29sX3QKbW14X2ZpbGwgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAg
ICAgICAgICB1aW50MzJfdCAqICAgICAgICAgICAgICAgYml0cywKICAgICAgICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICBzdHJpZGUsCiAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAg
ICAgYnBwLAogICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHgsCiAgICAgICAgICBp
bnQgICAgICAgICAgICAgICAgICAgICAgeSwKICAgICAgICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aCwKICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCiAg
ICAgICAgICB1aW50MzJfdAkJICAgZmlsbGVyKQp7CiAgICB1aW50NjRfdCBmaWxsOwogICAgX19t
NjQgdmZpbGw7CiAgICB1aW50MzJfdCBieXRlX3dpZHRoOwogICAgdWludDhfdCAgICAgKmJ5dGVf
bGluZTsKCiNpZiBkZWZpbmVkIF9fR05VQ19fICYmIGRlZmluZWQgVVNFX1g4Nl9NTVgKICAgIF9f
bTY0IHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3OwojZW5kaWYKCiAgICBpZiAoYnBwICE9IDE2
ICYmIGJwcCAhPSAzMiAmJiBicHAgIT0gOCkKCXJldHVybiBGQUxTRTsKCiAgICBpZiAoYnBwID09
IDgpCiAgICB7CglzdHJpZGUgPSBzdHJpZGUgKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIDE7
CglieXRlX2xpbmUgPSAodWludDhfdCAqKSgoKHVpbnQ4X3QgKiliaXRzKSArIHN0cmlkZSAqIHkg
KyB4KTsKCWJ5dGVfd2lkdGggPSB3aWR0aDsKCXN0cmlkZSAqPSAxOwogICAgICAgIGZpbGxlciA9
IChmaWxsZXIgJiAweGZmKSAqIDB4MDEwMTAxMDE7CiAgICB9CiAgICBlbHNlIGlmIChicHAgPT0g
MTYpCiAgICB7CglzdHJpZGUgPSBzdHJpZGUgKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIDI7
CglieXRlX2xpbmUgPSAodWludDhfdCAqKSgoKHVpbnQxNl90ICopYml0cykgKyBzdHJpZGUgKiB5
ICsgeCk7CglieXRlX3dpZHRoID0gMiAqIHdpZHRoOwoJc3RyaWRlICo9IDI7CiAgICAgICAgZmls
bGVyID0gKGZpbGxlciAmIDB4ZmZmZikgKiAweDAwMDEwMDAxOwogICAgfQogICAgZWxzZQogICAg
ewoJc3RyaWRlID0gc3RyaWRlICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyA0OwoJYnl0ZV9s
aW5lID0gKHVpbnQ4X3QgKikoKCh1aW50MzJfdCAqKWJpdHMpICsgc3RyaWRlICogeSArIHgpOwoJ
Ynl0ZV93aWR0aCA9IDQgKiB3aWR0aDsKCXN0cmlkZSAqPSA0OwogICAgfQoKICAgIGZpbGwgPSAo
KHVpbnQ2NF90KWZpbGxlciA8PCAzMikgfCBmaWxsZXI7CiAgICB2ZmlsbCA9IHRvX202NCAoZmls
bCk7CgojaWYgZGVmaW5lZCBfX0dOVUNfXyAmJiBkZWZpbmVkIFVTRV9YODZfTU1YCiAgICBfX2Fz
bV9fICgKICAgICAgICAibW92cQkJJTcsCSUwXG4iCiAgICAgICAgIm1vdnEJCSU3LAklMVxuIgog
ICAgICAgICJtb3ZxCQklNywJJTJcbiIKICAgICAgICAibW92cQkJJTcsCSUzXG4iCiAgICAgICAg
Im1vdnEJCSU3LAklNFxuIgogICAgICAgICJtb3ZxCQklNywJJTVcbiIKICAgICAgICAibW92cQkJ
JTcsCSU2XG4iCgk6ICI9JnkiICh2MSksICI9JnkiICh2MiksICI9JnkiICh2MyksCgkgICI9Jnki
ICh2NCksICI9JnkiICh2NSksICI9JnkiICh2NiksICI9eSIgKHY3KQoJOiAieSIgKHZmaWxsKSk7
CiNlbmRpZgoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWludCB3OwoJdWludDhfdCAqZCA9
IGJ5dGVfbGluZTsKCglieXRlX2xpbmUgKz0gc3RyaWRlOwoJdyA9IGJ5dGVfd2lkdGg7CgoJaWYg
KHcgPj0gMSAmJiAoKHVpbnRwdHJfdClkICYgMSkpCgl7CgkgICAgKih1aW50OF90ICopZCA9IChm
aWxsZXIgJiAweGZmKTsKCSAgICB3LS07CgkgICAgZCsrOwoJfQoKCWlmICh3ID49IDIgJiYgKCh1
aW50cHRyX3QpZCAmIDMpKQoJewoJICAgICoodWludDE2X3QgKilkID0gZmlsbGVyOwoJICAgIHcg
LT0gMjsKCSAgICBkICs9IDI7Cgl9CgoJd2hpbGUgKHcgPj0gNCAmJiAoKHVpbnRwdHJfdClkICYg
NykpCgl7CgkgICAgKih1aW50MzJfdCAqKWQgPSBmaWxsZXI7CgoJICAgIHcgLT0gNDsKCSAgICBk
ICs9IDQ7Cgl9CgoJd2hpbGUgKHcgPj0gNjQpCgl7CiNpZiBkZWZpbmVkIF9fR05VQ19fICYmIGRl
ZmluZWQgVVNFX1g4Nl9NTVgKCSAgICBfX2FzbV9fICgKCSAgICAgICAgIm1vdnEJJTEsCSAgKCUw
KVxuIgoJICAgICAgICAibW92cQklMiwJIDgoJTApXG4iCgkgICAgICAgICJtb3ZxCSUzLAkxNigl
MClcbiIKCSAgICAgICAgIm1vdnEJJTQsCTI0KCUwKVxuIgoJICAgICAgICAibW92cQklNSwJMzIo
JTApXG4iCgkgICAgICAgICJtb3ZxCSU2LAk0MCglMClcbiIKCSAgICAgICAgIm1vdnEJJTcsCTQ4
KCUwKVxuIgoJICAgICAgICAibW92cQklOCwJNTYoJTApXG4iCgkJOgoJCTogInIiIChkKSwKCQkg
ICJ5IiAodmZpbGwpLCAieSIgKHYxKSwgInkiICh2MiksICJ5IiAodjMpLAoJCSAgInkiICh2NCks
ICJ5IiAodjUpLCAieSIgKHY2KSwgInkiICh2NykKCQk6ICJtZW1vcnkiKTsKI2Vsc2UKCSAgICAq
KF9fbTY0KikgKGQgKyAgMCkgPSB2ZmlsbDsKCSAgICAqKF9fbTY0KikgKGQgKyAgOCkgPSB2Zmls
bDsKCSAgICAqKF9fbTY0KikgKGQgKyAxNikgPSB2ZmlsbDsKCSAgICAqKF9fbTY0KikgKGQgKyAy
NCkgPSB2ZmlsbDsKCSAgICAqKF9fbTY0KikgKGQgKyAzMikgPSB2ZmlsbDsKCSAgICAqKF9fbTY0
KikgKGQgKyA0MCkgPSB2ZmlsbDsKCSAgICAqKF9fbTY0KikgKGQgKyA0OCkgPSB2ZmlsbDsKCSAg
ICAqKF9fbTY0KikgKGQgKyA1NikgPSB2ZmlsbDsKI2VuZGlmCgkgICAgdyAtPSA2NDsKCSAgICBk
ICs9IDY0OwoJfQoKCXdoaWxlICh3ID49IDQpCgl7CgkgICAgKih1aW50MzJfdCAqKWQgPSBmaWxs
ZXI7CgoJICAgIHcgLT0gNDsKCSAgICBkICs9IDQ7Cgl9CglpZiAodyA+PSAyKQoJewoJICAgICoo
dWludDE2X3QgKilkID0gZmlsbGVyOwoJICAgIHcgLT0gMjsKCSAgICBkICs9IDI7Cgl9CglpZiAo
dyA+PSAxKQoJewoJICAgICoodWludDhfdCAqKWQgPSAoZmlsbGVyICYgMHhmZik7CgkgICAgdy0t
OwoJICAgIGQrKzsKCX0KCiAgICB9CgogICAgX21tX2VtcHR5ICgpOwogICAgcmV0dXJuIFRSVUU7
Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVfc3JjX3g4ODhfMDU2NSAocGl4bWFuX2ltcGxl
bWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29t
cG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgUElYTUFOX0NPTVBPU0lURV9BUkdTIChpbmZvKTsK
ICAgIHVpbnQxNl90ICAgICpkc3RfbGluZSwgKmRzdDsKICAgIHVpbnQzMl90ICAgICpzcmNfbGlu
ZSwgKnNyYywgczsKICAgIGludCBkc3Rfc3RyaWRlLCBzcmNfc3RyaWRlOwogICAgaW50MzJfdCB3
OwoKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoc3JjX2ltYWdlLCBzcmNfeCwgc3JjX3ksIHVp
bnQzMl90LCBzcmNfc3RyaWRlLCBzcmNfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJ
TkUgKGRlc3RfaW1hZ2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MTZfdCwgZHN0X3N0cmlkZSwgZHN0
X2xpbmUsIDEpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJ
ZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsKCXNyYyA9IHNyY19saW5lOwoJc3JjX2xpbmUgKz0gc3Jj
X3N0cmlkZTsKCXcgPSB3aWR0aDsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCgl7
CgkgICAgcyA9ICpzcmMrKzsKCSAgICAqZHN0ID0gY29udmVydF84ODg4X3RvXzA1NjUgKHMpOwoJ
ICAgIGRzdCsrOwoJICAgIHctLTsKCX0KCgl3aGlsZSAodyA+PSA0KQoJewoJICAgIF9fbTY0IHZk
ZXN0OwoJICAgIF9fbTY0IHZzcmMwID0gbGRxX3UgKChfX202NCAqKShzcmMgKyAwKSk7CgkgICAg
X19tNjQgdnNyYzEgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDIpKTsKCgkgICAgdmRlc3QgPSBw
YWNrXzR4cGFja2VkNTY1ICh2c3JjMCwgdnNyYzEpOwoKCSAgICAqKF9fbTY0ICopZHN0ID0gdmRl
c3Q7CgoJICAgIHcgLT0gNDsKCSAgICBzcmMgKz0gNDsKCSAgICBkc3QgKz0gNDsKCX0KCgl3aGls
ZSAodykKCXsKCSAgICBzID0gKnNyYysrOwoJICAgICpkc3QgPSBjb252ZXJ0Xzg4ODhfdG9fMDU2
NSAocyk7CgkgICAgZHN0Kys7CgkgICAgdy0tOwoJfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsK
fQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9zcmNfbl84Xzg4ODggKHBpeG1hbl9pbXBsZW1l
bnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9z
aXRlX2luZm9fdCAqaW5mbykKewogICAgUElYTUFOX0NPTVBPU0lURV9BUkdTIChpbmZvKTsKICAg
IHVpbnQzMl90IHNyYywgc3JjYTsKICAgIHVpbnQzMl90ICAgICpkc3RfbGluZSwgKmRzdDsKICAg
IHVpbnQ4X3QgICAgICptYXNrX2xpbmUsICptYXNrOwogICAgaW50IGRzdF9zdHJpZGUsIG1hc2tf
c3RyaWRlOwogICAgaW50MzJfdCB3OwogICAgX19tNjQgdnNyYzsKICAgIHVpbnQ2NF90IHNyY3Ny
YzsKCiAgICBDSEVDS1BPSU5UICgpOwoKICAgIHNyYyA9IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlk
IChpbXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOwoKICAgIHNyY2EgPSBz
cmMgPj4gMjQ7CiAgICBpZiAoc3JjID09IDApCiAgICB7CgltbXhfZmlsbCAoaW1wLCBkZXN0X2lt
YWdlLT5iaXRzLmJpdHMsIGRlc3RfaW1hZ2UtPmJpdHMucm93c3RyaWRlLAoJCSAgUElYTUFOX0ZP
Uk1BVF9CUFAgKGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KSwKCQkgIGRlc3RfeCwgZGVzdF95LCB3
aWR0aCwgaGVpZ2h0LCAwKTsKCXJldHVybjsKICAgIH0KCiAgICBzcmNzcmMgPSAodWludDY0X3Qp
c3JjIDw8IDMyIHwgc3JjOwoKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwg
ZGVzdF94LCBkZXN0X3ksIHVpbnQzMl90LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CiAgICBQ
SVhNQU5fSU1BR0VfR0VUX0xJTkUgKG1hc2tfaW1hZ2UsIG1hc2tfeCwgbWFza195LCB1aW50OF90
LCBtYXNrX3N0cmlkZSwgbWFza19saW5lLCAxKTsKCiAgICB2c3JjID0gbG9hZDg4ODggKCZzcmMp
OwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJZHN0X2xpbmUg
Kz0gZHN0X3N0cmlkZTsKCW1hc2sgPSBtYXNrX2xpbmU7CgltYXNrX2xpbmUgKz0gbWFza19zdHJp
ZGU7Cgl3ID0gd2lkdGg7CgoJQ0hFQ0tQT0lOVCAoKTsKCgl3aGlsZSAodyAmJiAodWludHB0cl90
KWRzdCAmIDcpCgl7CgkgICAgdWludDY0X3QgbSA9ICptYXNrOwoKCSAgICBpZiAobSkKCSAgICB7
CgkJX19tNjQgdmRlc3QgPSBpbiAodnNyYywgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtKSkp
OwoKCQlzdG9yZTg4ODggKGRzdCwgdmRlc3QpOwoJICAgIH0KCSAgICBlbHNlCgkgICAgewoJCSpk
c3QgPSAwOwoJICAgIH0KCgkgICAgdy0tOwoJICAgIG1hc2srKzsKCSAgICBkc3QrKzsKCX0KCglD
SEVDS1BPSU5UICgpOwoKCXdoaWxlICh3ID49IDIpCgl7CgkgICAgdWludDY0X3QgbTAsIG0xOwoJ
ICAgIG0wID0gKm1hc2s7CgkgICAgbTEgPSAqKG1hc2sgKyAxKTsKCgkgICAgaWYgKHNyY2EgPT0g
MHhmZiAmJiAobTAgJiBtMSkgPT0gMHhmZikKCSAgICB7CgkJKih1aW50NjRfdCAqKWRzdCA9IHNy
Y3NyYzsKCSAgICB9CgkgICAgZWxzZSBpZiAobTAgfCBtMSkKCSAgICB7CgkJX19tNjQgZGVzdDAs
IGRlc3QxOwoKCQlkZXN0MCA9IGluICh2c3JjLCBleHBhbmRfYWxwaGFfcmV2ICh0b19tNjQgKG0w
KSkpOwoJCWRlc3QxID0gaW4gKHZzcmMsIGV4cGFuZF9hbHBoYV9yZXYgKHRvX202NCAobTEpKSk7
CgoJCSooX19tNjQgKilkc3QgPSBwYWNrODg4OCAoZGVzdDAsIGRlc3QxKTsKCSAgICB9CgkgICAg
ZWxzZQoJICAgIHsKCQkqKHVpbnQ2NF90ICopZHN0ID0gMDsKCSAgICB9CgoJICAgIG1hc2sgKz0g
MjsKCSAgICBkc3QgKz0gMjsKCSAgICB3IC09IDI7Cgl9CgoJQ0hFQ0tQT0lOVCAoKTsKCglpZiAo
dykKCXsKCSAgICB1aW50NjRfdCBtID0gKm1hc2s7CgoJICAgIGlmIChtKQoJICAgIHsKCQlfX202
NCB2ZGVzdCA9IGxvYWQ4ODg4IChkc3QpOwoKCQl2ZGVzdCA9IGluICh2c3JjLCBleHBhbmRfYWxw
aGFfcmV2ICh0b19tNjQgKG0pKSk7CgkJc3RvcmU4ODg4IChkc3QsIHZkZXN0KTsKCSAgICB9Cgkg
ICAgZWxzZQoJICAgIHsKCQkqZHN0ID0gMDsKCSAgICB9Cgl9CiAgICB9CgogICAgX21tX2VtcHR5
ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX292ZXJfbl84XzA1NjUgKHBpeG1hbl9p
bXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFu
X2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIFBJWE1BTl9DT01QT1NJVEVfQVJHUyAoaW5m
byk7CiAgICB1aW50MzJfdCBzcmMsIHNyY2E7CiAgICB1aW50MTZfdCAqZHN0X2xpbmUsICpkc3Q7
CiAgICB1aW50OF90ICptYXNrX2xpbmUsICptYXNrOwogICAgaW50IGRzdF9zdHJpZGUsIG1hc2tf
c3RyaWRlOwogICAgaW50MzJfdCB3OwogICAgX19tNjQgdnNyYywgdnNyY2EsIHRtcDsKICAgIF9f
bTY0IHNyY3NyY3NyY3NyYzsKCiAgICBDSEVDS1BPSU5UICgpOwoKICAgIHNyYyA9IF9waXhtYW5f
aW1hZ2VfZ2V0X3NvbGlkIChpbXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQp
OwoKICAgIHNyY2EgPSBzcmMgPj4gMjQ7CiAgICBpZiAoc3JjID09IDApCglyZXR1cm47CgogICAg
UElYTUFOX0lNQUdFX0dFVF9MSU5FIChkZXN0X2ltYWdlLCBkZXN0X3gsIGRlc3RfeSwgdWludDE2
X3QsIGRzdF9zdHJpZGUsIGRzdF9saW5lLCAxKTsKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAo
bWFza19pbWFnZSwgbWFza194LCBtYXNrX3ksIHVpbnQ4X3QsIG1hc2tfc3RyaWRlLCBtYXNrX2xp
bmUsIDEpOwoKICAgIHZzcmMgPSBsb2FkODg4OCAoJnNyYyk7CiAgICB2c3JjYSA9IGV4cGFuZF9h
bHBoYSAodnNyYyk7CgogICAgdG1wID0gcGFja181NjUgKHZzcmMsIF9tbV9zZXR6ZXJvX3NpNjQg
KCksIDApOwogICAgc3Jjc3Jjc3Jjc3JjID0gZXhwYW5kX2FscGhhX3JldiAodG1wKTsKCiAgICB3
aGlsZSAoaGVpZ2h0LS0pCiAgICB7Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9z
dHJpZGU7CgltYXNrID0gbWFza19saW5lOwoJbWFza19saW5lICs9IG1hc2tfc3RyaWRlOwoJdyA9
IHdpZHRoOwoKCUNIRUNLUE9JTlQgKCk7CgoJd2hpbGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3
KQoJewoJICAgIHVpbnQ2NF90IG0gPSAqbWFzazsKCgkgICAgaWYgKG0pCgkgICAgewoJCXVpbnQ2
NF90IGQgPSAqZHN0OwoJCV9fbTY0IHZkID0gdG9fbTY0IChkKTsKCQlfX202NCB2ZGVzdCA9IGlu
X292ZXIgKAoJCSAgICB2c3JjLCB2c3JjYSwgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtKSks
IGV4cGFuZDU2NSAodmQsIDApKTsKCgkJdmQgPSBwYWNrXzU2NSAodmRlc3QsIF9tbV9zZXR6ZXJv
X3NpNjQgKCksIDApOwoJCSpkc3QgPSB0b191aW50NjQgKHZkKTsKCSAgICB9CgoJICAgIHctLTsK
CSAgICBtYXNrKys7CgkgICAgZHN0Kys7Cgl9CgoJQ0hFQ0tQT0lOVCAoKTsKCgl3aGlsZSAodyA+
PSA0KQoJewoJICAgIHVpbnQ2NF90IG0wLCBtMSwgbTIsIG0zOwoJICAgIG0wID0gKm1hc2s7Cgkg
ICAgbTEgPSAqKG1hc2sgKyAxKTsKCSAgICBtMiA9ICoobWFzayArIDIpOwoJICAgIG0zID0gKiht
YXNrICsgMyk7CgoJICAgIGlmIChzcmNhID09IDB4ZmYgJiYgKG0wICYgbTEgJiBtMiAmIG0zKSA9
PSAweGZmKQoJICAgIHsKCQkqKF9fbTY0ICopZHN0ID0gc3Jjc3Jjc3Jjc3JjOwoJICAgIH0KCSAg
ICBlbHNlIGlmIChtMCB8IG0xIHwgbTIgfCBtMykKCSAgICB7CgkJX19tNjQgdmRlc3QgPSAqKF9f
bTY0ICopZHN0OwoJCV9fbTY0IHYwLCB2MSwgdjIsIHYzOwoJCV9fbTY0IHZtMCwgdm0xLCB2bTIs
IHZtMzsKCgkJZXhwYW5kXzR4NTY1ICh2ZGVzdCwgJnYwLCAmdjEsICZ2MiwgJnYzLCAwKTsKCgkJ
dm0wID0gdG9fbTY0IChtMCk7CgkJdjAgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgZXhwYW5kX2Fs
cGhhX3JldiAodm0wKSwgdjApOwoKCQl2bTEgPSB0b19tNjQgKG0xKTsKCQl2MSA9IGluX292ZXIg
KHZzcmMsIHZzcmNhLCBleHBhbmRfYWxwaGFfcmV2ICh2bTEpLCB2MSk7CgoJCXZtMiA9IHRvX202
NCAobTIpOwoJCXYyID0gaW5fb3ZlciAodnNyYywgdnNyY2EsIGV4cGFuZF9hbHBoYV9yZXYgKHZt
MiksIHYyKTsKCgkJdm0zID0gdG9fbTY0IChtMyk7CgkJdjMgPSBpbl9vdmVyICh2c3JjLCB2c3Jj
YSwgZXhwYW5kX2FscGhhX3JldiAodm0zKSwgdjMpOwoKCQkqKF9fbTY0ICopZHN0ID0gcGFja180
eDU2NSAodjAsIHYxLCB2MiwgdjMpOzsKCSAgICB9CgoJICAgIHcgLT0gNDsKCSAgICBtYXNrICs9
IDQ7CgkgICAgZHN0ICs9IDQ7Cgl9CgoJQ0hFQ0tQT0lOVCAoKTsKCgl3aGlsZSAodykKCXsKCSAg
ICB1aW50NjRfdCBtID0gKm1hc2s7CgoJICAgIGlmIChtKQoJICAgIHsKCQl1aW50NjRfdCBkID0g
KmRzdDsKCQlfX202NCB2ZCA9IHRvX202NCAoZCk7CgkJX19tNjQgdmRlc3QgPSBpbl9vdmVyICh2
c3JjLCB2c3JjYSwgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtKSksCgkJCQkgICAgICAgZXhw
YW5kNTY1ICh2ZCwgMCkpOwoJCXZkID0gcGFja181NjUgKHZkZXN0LCBfbW1fc2V0emVyb19zaTY0
ICgpLCAwKTsKCQkqZHN0ID0gdG9fdWludDY0ICh2ZCk7CgkgICAgfQoKCSAgICB3LS07CgkgICAg
bWFzaysrOwoJICAgIGRzdCsrOwoJfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGlj
IHZvaWQKbW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1Zl8wNTY1IChwaXhtYW5faW1wbGVtZW50YXRp
b25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3Np
dGVfaW5mb190ICppbmZvKQp7CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwogICAg
dWludDE2X3QgICAgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDMyX3QgICAgKnNyY19saW5lLCAq
c3JjOwogICAgaW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAgICBpbnQzMl90IHc7CgogICAg
Q0hFQ0tQT0lOVCAoKTsKCiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUgKGRlc3RfaW1hZ2UsIGRl
c3RfeCwgZGVzdF95LCB1aW50MTZfdCwgZHN0X3N0cmlkZSwgZHN0X2xpbmUsIDEpOwogICAgUElY
TUFOX0lNQUdFX0dFVF9MSU5FIChzcmNfaW1hZ2UsIHNyY194LCBzcmNfeSwgdWludDMyX3QsIHNy
Y19zdHJpZGUsIHNyY19saW5lLCAxKTsKCiNpZiAwCiAgICAvKiBGSVhNRSAqLwogICAgYXNzZXJ0
IChzcmNfaW1hZ2UtPmRyYXdhYmxlID09IG1hc2tfaW1hZ2UtPmRyYXdhYmxlKTsKI2VuZGlmCgog
ICAgd2hpbGUgKGhlaWdodC0tKQogICAgewoJZHN0ID0gZHN0X2xpbmU7Cglkc3RfbGluZSArPSBk
c3Rfc3RyaWRlOwoJc3JjID0gc3JjX2xpbmU7CglzcmNfbGluZSArPSBzcmNfc3RyaWRlOwoJdyA9
IHdpZHRoOwoKCUNIRUNLUE9JTlQgKCk7CgoJd2hpbGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3
KQoJewoJICAgIF9fbTY0IHZzcmMgPSBsb2FkODg4OCAoc3JjKTsKCSAgICB1aW50NjRfdCBkID0g
KmRzdDsKCSAgICBfX202NCB2ZGVzdCA9IGV4cGFuZDU2NSAodG9fbTY0IChkKSwgMCk7CgoJICAg
IHZkZXN0ID0gcGFja181NjUgKG92ZXJfcmV2X25vbl9wcmUgKHZzcmMsIHZkZXN0KSwgdmRlc3Qs
IDApOwoKCSAgICAqZHN0ID0gdG9fdWludDY0ICh2ZGVzdCk7CgoJICAgIHctLTsKCSAgICBkc3Qr
KzsKCSAgICBzcmMrKzsKCX0KCglDSEVDS1BPSU5UICgpOwoKCXdoaWxlICh3ID49IDQpCgl7Cgkg
ICAgdWludDMyX3QgczAsIHMxLCBzMiwgczM7CgkgICAgdW5zaWduZWQgY2hhciBhMCwgYTEsIGEy
LCBhMzsKCgkgICAgczAgPSAqc3JjOwoJICAgIHMxID0gKihzcmMgKyAxKTsKCSAgICBzMiA9ICoo
c3JjICsgMik7CgkgICAgczMgPSAqKHNyYyArIDMpOwoKCSAgICBhMCA9IChzMCA+PiAyNCk7Cgkg
ICAgYTEgPSAoczEgPj4gMjQpOwoJICAgIGEyID0gKHMyID4+IDI0KTsKCSAgICBhMyA9IChzMyA+
PiAyNCk7CgoJICAgIGlmICgoYTAgJiBhMSAmIGEyICYgYTMpID09IDB4RkYpCgkgICAgewoJCV9f
bTY0IHYwID0gaW52ZXJ0X2NvbG9ycyAobG9hZDg4ODggKCZzMCkpOwoJCV9fbTY0IHYxID0gaW52
ZXJ0X2NvbG9ycyAobG9hZDg4ODggKCZzMSkpOwoJCV9fbTY0IHYyID0gaW52ZXJ0X2NvbG9ycyAo
bG9hZDg4ODggKCZzMikpOwoJCV9fbTY0IHYzID0gaW52ZXJ0X2NvbG9ycyAobG9hZDg4ODggKCZz
MykpOwoKCQkqKF9fbTY0ICopZHN0ID0gcGFja180eDU2NSAodjAsIHYxLCB2MiwgdjMpOwoJICAg
IH0KCSAgICBlbHNlIGlmIChzMCB8IHMxIHwgczIgfCBzMykKCSAgICB7CgkJX19tNjQgdmRlc3Qg
PSAqKF9fbTY0ICopZHN0OwoJCV9fbTY0IHYwLCB2MSwgdjIsIHYzOwoKCQlfX202NCB2c3JjMCA9
IGxvYWQ4ODg4ICgmczApOwoJCV9fbTY0IHZzcmMxID0gbG9hZDg4ODggKCZzMSk7CgkJX19tNjQg
dnNyYzIgPSBsb2FkODg4OCAoJnMyKTsKCQlfX202NCB2c3JjMyA9IGxvYWQ4ODg4ICgmczMpOwoK
CQlleHBhbmRfNHg1NjUgKHZkZXN0LCAmdjAsICZ2MSwgJnYyLCAmdjMsIDApOwoKCQl2MCA9IG92
ZXJfcmV2X25vbl9wcmUgKHZzcmMwLCB2MCk7CgkJdjEgPSBvdmVyX3Jldl9ub25fcHJlICh2c3Jj
MSwgdjEpOwoJCXYyID0gb3Zlcl9yZXZfbm9uX3ByZSAodnNyYzIsIHYyKTsKCQl2MyA9IG92ZXJf
cmV2X25vbl9wcmUgKHZzcmMzLCB2Myk7CgoJCSooX19tNjQgKilkc3QgPSBwYWNrXzR4NTY1ICh2
MCwgdjEsIHYyLCB2Myk7CgkgICAgfQoKCSAgICB3IC09IDQ7CgkgICAgZHN0ICs9IDQ7CgkgICAg
c3JjICs9IDQ7Cgl9CgoJQ0hFQ0tQT0lOVCAoKTsKCgl3aGlsZSAodykKCXsKCSAgICBfX202NCB2
c3JjID0gbG9hZDg4ODggKHNyYyk7CgkgICAgdWludDY0X3QgZCA9ICpkc3Q7CgkgICAgX19tNjQg
dmRlc3QgPSBleHBhbmQ1NjUgKHRvX202NCAoZCksIDApOwoKCSAgICB2ZGVzdCA9IHBhY2tfNTY1
IChvdmVyX3Jldl9ub25fcHJlICh2c3JjLCB2ZGVzdCksIHZkZXN0LCAwKTsKCgkgICAgKmRzdCA9
IHRvX3VpbnQ2NCAodmRlc3QpOwoKCSAgICB3LS07CgkgICAgZHN0Kys7CgkgICAgc3JjKys7Cgl9
CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX292
ZXJfcGl4YnVmXzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAg
IFBJWE1BTl9DT01QT1NJVEVfQVJHUyAoaW5mbyk7CiAgICB1aW50MzJfdCAgICAqZHN0X2xpbmUs
ICpkc3Q7CiAgICB1aW50MzJfdCAgICAqc3JjX2xpbmUsICpzcmM7CiAgICBpbnQgZHN0X3N0cmlk
ZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBDSEVDS1BPSU5UICgpOwoKICAgIFBJ
WE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwgZGVzdF94LCBkZXN0X3ksIHVpbnQzMl90
LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUgKHNy
Y19pbWFnZSwgc3JjX3gsIHNyY195LCB1aW50MzJfdCwgc3JjX3N0cmlkZSwgc3JjX2xpbmUsIDEp
OwoKI2lmIDAKICAgIC8qIEZJWE1FICovCiAgICBhc3NlcnQgKHNyY19pbWFnZS0+ZHJhd2FibGUg
PT0gbWFza19pbWFnZS0+ZHJhd2FibGUpOwojZW5kaWYKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAg
ICB7Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7CglzcmMgPSBzcmNf
bGluZTsKCXNyY19saW5lICs9IHNyY19zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJd2hpbGUgKHcgJiYg
KHVpbnRwdHJfdClkc3QgJiA3KQoJewoJICAgIF9fbTY0IHMgPSBsb2FkODg4OCAoc3JjKTsKCSAg
ICBfX202NCBkID0gbG9hZDg4ODggKGRzdCk7CgoJICAgIHN0b3JlODg4OCAoZHN0LCBvdmVyX3Jl
dl9ub25fcHJlIChzLCBkKSk7CgoJICAgIHctLTsKCSAgICBkc3QrKzsKCSAgICBzcmMrKzsKCX0K
Cgl3aGlsZSAodyA+PSAyKQoJewoJICAgIHVpbnQzMl90IHMwLCBzMTsKCSAgICB1bnNpZ25lZCBj
aGFyIGEwLCBhMTsKCSAgICBfX202NCBkMCwgZDE7CgoJICAgIHMwID0gKnNyYzsKCSAgICBzMSA9
ICooc3JjICsgMSk7CgoJICAgIGEwID0gKHMwID4+IDI0KTsKCSAgICBhMSA9IChzMSA+PiAyNCk7
CgoJICAgIGlmICgoYTAgJiBhMSkgPT0gMHhGRikKCSAgICB7CgkJZDAgPSBpbnZlcnRfY29sb3Jz
IChsb2FkODg4OCAoJnMwKSk7CgkJZDEgPSBpbnZlcnRfY29sb3JzIChsb2FkODg4OCAoJnMxKSk7
CgoJCSooX19tNjQgKilkc3QgPSBwYWNrODg4OCAoZDAsIGQxKTsKCSAgICB9CgkgICAgZWxzZSBp
ZiAoczAgfCBzMSkKCSAgICB7CgkJX19tNjQgdmRlc3QgPSAqKF9fbTY0ICopZHN0OwoKCQlkMCA9
IG92ZXJfcmV2X25vbl9wcmUgKGxvYWQ4ODg4ICgmczApLCBleHBhbmQ4ODg4ICh2ZGVzdCwgMCkp
OwoJCWQxID0gb3Zlcl9yZXZfbm9uX3ByZSAobG9hZDg4ODggKCZzMSksIGV4cGFuZDg4ODggKHZk
ZXN0LCAxKSk7CgoJCSooX19tNjQgKilkc3QgPSBwYWNrODg4OCAoZDAsIGQxKTsKCSAgICB9CgoJ
ICAgIHcgLT0gMjsKCSAgICBkc3QgKz0gMjsKCSAgICBzcmMgKz0gMjsKCX0KCglpZiAodykKCXsK
CSAgICBfX202NCBzID0gbG9hZDg4ODggKHNyYyk7CgkgICAgX19tNjQgZCA9IGxvYWQ4ODg4IChk
c3QpOwoKCSAgICBzdG9yZTg4ODggKGRzdCwgb3Zlcl9yZXZfbm9uX3ByZSAocywgZCkpOwoJfQog
ICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9vdmVy
X25fODg4OF8wNTY1X2NhIChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7
CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwogICAgdWludDMyX3Qgc3JjOwogICAg
dWludDE2X3QgICAgKmRzdF9saW5lOwogICAgdWludDMyX3QgICAgKm1hc2tfbGluZTsKICAgIGlu
dCBkc3Rfc3RyaWRlLCBtYXNrX3N0cmlkZTsKICAgIF9fbTY0IHZzcmMsIHZzcmNhOwoKICAgIENI
RUNLUE9JTlQgKCk7CgogICAgc3JjID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgc3Jj
X2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7CgogICAgaWYgKHNyYyA9PSAwKQoJcmV0
dXJuOwoKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwgZGVzdF94LCBkZXN0
X3ksIHVpbnQxNl90LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1BR0Vf
R0VUX0xJTkUgKG1hc2tfaW1hZ2UsIG1hc2tfeCwgbWFza195LCB1aW50MzJfdCwgbWFza19zdHJp
ZGUsIG1hc2tfbGluZSwgMSk7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgmc3JjKTsKICAgIHZzcmNh
ID0gZXhwYW5kX2FscGhhICh2c3JjKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CglpbnQg
dHdpZHRoID0gd2lkdGg7Cgl1aW50MzJfdCAqcCA9ICh1aW50MzJfdCAqKW1hc2tfbGluZTsKCXVp
bnQxNl90ICpxID0gKHVpbnQxNl90ICopZHN0X2xpbmU7CgoJd2hpbGUgKHR3aWR0aCAmJiAoKHVp
bnRwdHJfdClxICYgNykpCgl7CgkgICAgdWludDMyX3QgbSA9ICoodWludDMyX3QgKilwOwoKCSAg
ICBpZiAobSkKCSAgICB7CgkJdWludDY0X3QgZCA9ICpxOwoJCV9fbTY0IHZkZXN0ID0gZXhwYW5k
NTY1ICh0b19tNjQgKGQpLCAwKTsKCQl2ZGVzdCA9IHBhY2tfNTY1IChpbl9vdmVyICh2c3JjLCB2
c3JjYSwgbG9hZDg4ODggKCZtKSwgdmRlc3QpLCB2ZGVzdCwgMCk7CgkJKnEgPSB0b191aW50NjQg
KHZkZXN0KTsKCSAgICB9CgoJICAgIHR3aWR0aC0tOwoJICAgIHArKzsKCSAgICBxKys7Cgl9CgoJ
d2hpbGUgKHR3aWR0aCA+PSA0KQoJewoJICAgIHVpbnQzMl90IG0wLCBtMSwgbTIsIG0zOwoKCSAg
ICBtMCA9ICpwOwoJICAgIG0xID0gKihwICsgMSk7CgkgICAgbTIgPSAqKHAgKyAyKTsKCSAgICBt
MyA9ICoocCArIDMpOwoKCSAgICBpZiAoKG0wIHwgbTEgfCBtMiB8IG0zKSkKCSAgICB7CgkJX19t
NjQgdmRlc3QgPSAqKF9fbTY0ICopcTsKCQlfX202NCB2MCwgdjEsIHYyLCB2MzsKCgkJZXhwYW5k
XzR4NTY1ICh2ZGVzdCwgJnYwLCAmdjEsICZ2MiwgJnYzLCAwKTsKCgkJdjAgPSBpbl9vdmVyICh2
c3JjLCB2c3JjYSwgbG9hZDg4ODggKCZtMCksIHYwKTsKCQl2MSA9IGluX292ZXIgKHZzcmMsIHZz
cmNhLCBsb2FkODg4OCAoJm0xKSwgdjEpOwoJCXYyID0gaW5fb3ZlciAodnNyYywgdnNyY2EsIGxv
YWQ4ODg4ICgmbTIpLCB2Mik7CgkJdjMgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgbG9hZDg4ODgg
KCZtMyksIHYzKTsKCgkJKihfX202NCAqKXEgPSBwYWNrXzR4NTY1ICh2MCwgdjEsIHYyLCB2Myk7
CgkgICAgfQoJICAgIHR3aWR0aCAtPSA0OwoJICAgIHAgKz0gNDsKCSAgICBxICs9IDQ7Cgl9CgoJ
d2hpbGUgKHR3aWR0aCkKCXsKCSAgICB1aW50MzJfdCBtOwoKCSAgICBtID0gKih1aW50MzJfdCAq
KXA7CgkgICAgaWYgKG0pCgkgICAgewoJCXVpbnQ2NF90IGQgPSAqcTsKCQlfX202NCB2ZGVzdCA9
IGV4cGFuZDU2NSAodG9fbTY0IChkKSwgMCk7CgkJdmRlc3QgPSBwYWNrXzU2NSAoaW5fb3ZlciAo
dnNyYywgdnNyY2EsIGxvYWQ4ODg4ICgmbSksIHZkZXN0KSwgdmRlc3QsIDApOwoJCSpxID0gdG9f
dWludDY0ICh2ZGVzdCk7CgkgICAgfQoKCSAgICB0d2lkdGgtLTsKCSAgICBwKys7CgkgICAgcSsr
OwoJfQoKCW1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7
CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX2lu
X25fOF84IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAg
ICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgUElYTUFOX0NPTVBPU0lU
RV9BUkdTIChpbmZvKTsKICAgIHVpbnQ4X3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDhfdCAq
bWFza19saW5lLCAqbWFzazsKICAgIGludCBkc3Rfc3RyaWRlLCBtYXNrX3N0cmlkZTsKICAgIGlu
dDMyX3QgdzsKICAgIHVpbnQzMl90IHNyYzsKICAgIHVpbnQ4X3Qgc2E7CiAgICBfX202NCB2c3Jj
LCB2c3JjYTsKCiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUgKGRlc3RfaW1hZ2UsIGRlc3RfeCwg
ZGVzdF95LCB1aW50OF90LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1B
R0VfR0VUX0xJTkUgKG1hc2tfaW1hZ2UsIG1hc2tfeCwgbWFza195LCB1aW50OF90LCBtYXNrX3N0
cmlkZSwgbWFza19saW5lLCAxKTsKCiAgICBzcmMgPSBfcGl4bWFuX2ltYWdlX2dldF9zb2xpZCAo
aW1wLCBzcmNfaW1hZ2UsIGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsKCiAgICBzYSA9IHNyYyA+
PiAyNDsKCiAgICB2c3JjID0gbG9hZDg4ODggKCZzcmMpOwogICAgdnNyY2EgPSBleHBhbmRfYWxw
aGEgKHZzcmMpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJ
ZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsKCW1hc2sgPSBtYXNrX2xpbmU7CgltYXNrX2xpbmUgKz0g
bWFza19zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJd2hpbGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3
KQoJewoJICAgIHVpbnQxNl90IHRtcDsKCSAgICB1aW50OF90IGE7CgkgICAgdWludDMyX3QgbSwg
ZDsKCgkgICAgYSA9ICptYXNrKys7CgkgICAgZCA9ICpkc3Q7CgoJICAgIG0gPSBNVUxfVU44IChz
YSwgYSwgdG1wKTsKCSAgICBkID0gTVVMX1VOOCAobSwgZCwgdG1wKTsKCgkgICAgKmRzdCsrID0g
ZDsKCSAgICB3LS07Cgl9CgoJd2hpbGUgKHcgPj0gNCkKCXsKCSAgICBfX202NCB2bWFzazsKCSAg
ICBfX202NCB2ZGVzdDsKCgkgICAgdm1hc2sgPSBsb2FkODg4OHUgKCh1aW50MzJfdCAqKW1hc2sp
OwoJICAgIHZkZXN0ID0gbG9hZDg4ODggKCh1aW50MzJfdCAqKWRzdCk7CgoJICAgIHN0b3JlODg4
OCAoKHVpbnQzMl90ICopZHN0LCBpbiAoaW4gKHZzcmNhLCB2bWFzayksIHZkZXN0KSk7CgoJICAg
IGRzdCArPSA0OwoJICAgIG1hc2sgKz0gNDsKCSAgICB3IC09IDQ7Cgl9CgoJd2hpbGUgKHctLSkK
CXsKCSAgICB1aW50MTZfdCB0bXA7CgkgICAgdWludDhfdCBhOwoJICAgIHVpbnQzMl90IG0sIGQ7
CgoJICAgIGEgPSAqbWFzaysrOwoJICAgIGQgPSAqZHN0OwoKCSAgICBtID0gTVVMX1VOOCAoc2Es
IGEsIHRtcCk7CgkgICAgZCA9IE1VTF9VTjggKG0sIGQsIHRtcCk7CgoJICAgICpkc3QrKyA9IGQ7
Cgl9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRl
X2luXzhfOCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAg
ICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBQSVhNQU5fQ09NUE9TSVRF
X0FSR1MgKGluZm8pOwogICAgdWludDhfdCAgICAgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDhf
dCAgICAgKnNyY19saW5lLCAqc3JjOwogICAgaW50IHNyY19zdHJpZGUsIGRzdF9zdHJpZGU7CiAg
ICBpbnQzMl90IHc7CgogICAgUElYTUFOX0lNQUdFX0dFVF9MSU5FIChkZXN0X2ltYWdlLCBkZXN0
X3gsIGRlc3RfeSwgdWludDhfdCwgZHN0X3N0cmlkZSwgZHN0X2xpbmUsIDEpOwogICAgUElYTUFO
X0lNQUdFX0dFVF9MSU5FIChzcmNfaW1hZ2UsIHNyY194LCBzcmNfeSwgdWludDhfdCwgc3JjX3N0
cmlkZSwgc3JjX2xpbmUsIDEpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRz
dF9saW5lOwoJZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsKCXNyYyA9IHNyY19saW5lOwoJc3JjX2xp
bmUgKz0gc3JjX3N0cmlkZTsKCXcgPSB3aWR0aDsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRz
dCAmIDMpCgl7CgkgICAgdWludDhfdCBzLCBkOwoJICAgIHVpbnQxNl90IHRtcDsKCgkgICAgcyA9
ICpzcmM7CgkgICAgZCA9ICpkc3Q7CgoJICAgICpkc3QgPSBNVUxfVU44IChzLCBkLCB0bXApOwoK
CSAgICBzcmMrKzsKCSAgICBkc3QrKzsKCSAgICB3LS07Cgl9CgoJd2hpbGUgKHcgPj0gNCkKCXsK
CSAgICB1aW50MzJfdCAqcyA9ICh1aW50MzJfdCAqKXNyYzsKCSAgICB1aW50MzJfdCAqZCA9ICh1
aW50MzJfdCAqKWRzdDsKCgkgICAgc3RvcmU4ODg4IChkLCBpbiAobG9hZDg4ODh1IChzKSwgbG9h
ZDg4ODggKGQpKSk7CgoJICAgIHcgLT0gNDsKCSAgICBkc3QgKz0gNDsKCSAgICBzcmMgKz0gNDsK
CX0KCgl3aGlsZSAody0tKQoJewoJICAgIHVpbnQ4X3QgcywgZDsKCSAgICB1aW50MTZfdCB0bXA7
CgoJICAgIHMgPSAqc3JjOwoJICAgIGQgPSAqZHN0OwoKCSAgICAqZHN0ID0gTVVMX1VOOCAocywg
ZCwgdG1wKTsKCgkgICAgc3JjKys7CgkgICAgZHN0Kys7Cgl9CiAgICB9CgogICAgX21tX2VtcHR5
ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX2FkZF9uXzhfOCAocGl4bWFuX2ltcGxl
bWVudGF0aW9uX3QgKmltcCwKCQkJIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAg
ICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwogICAgdWludDhfdCAgICAgKmRzdF9saW5l
LCAqZHN0OwogICAgdWludDhfdCAgICAgKm1hc2tfbGluZSwgKm1hc2s7CiAgICBpbnQgZHN0X3N0
cmlkZSwgbWFza19zdHJpZGU7CiAgICBpbnQzMl90IHc7CiAgICB1aW50MzJfdCBzcmM7CiAgICB1
aW50OF90IHNhOwogICAgX19tNjQgdnNyYywgdnNyY2E7CgogICAgUElYTUFOX0lNQUdFX0dFVF9M
SU5FIChkZXN0X2ltYWdlLCBkZXN0X3gsIGRlc3RfeSwgdWludDhfdCwgZHN0X3N0cmlkZSwgZHN0
X2xpbmUsIDEpOwogICAgUElYTUFOX0lNQUdFX0dFVF9MSU5FIChtYXNrX2ltYWdlLCBtYXNrX3gs
IG1hc2tfeSwgdWludDhfdCwgbWFza19zdHJpZGUsIG1hc2tfbGluZSwgMSk7CgogICAgc3JjID0g
X3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgc3JjX2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRz
LmZvcm1hdCk7CgogICAgc2EgPSBzcmMgPj4gMjQ7CgogICAgaWYgKHNyYyA9PSAwKQoJcmV0dXJu
OwoKICAgIHZzcmMgPSBsb2FkODg4OCAoJnNyYyk7CiAgICB2c3JjYSA9IGV4cGFuZF9hbHBoYSAo
dnNyYyk7CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewoJZHN0ID0gZHN0X2xpbmU7Cglkc3Rf
bGluZSArPSBkc3Rfc3RyaWRlOwoJbWFzayA9IG1hc2tfbGluZTsKCW1hc2tfbGluZSArPSBtYXNr
X3N0cmlkZTsKCXcgPSB3aWR0aDsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDMpCgl7
CgkgICAgdWludDE2X3QgdG1wOwoJICAgIHVpbnQxNl90IGE7CgkgICAgdWludDMyX3QgbSwgZDsK
CSAgICB1aW50MzJfdCByOwoKCSAgICBhID0gKm1hc2srKzsKCSAgICBkID0gKmRzdDsKCgkgICAg
bSA9IE1VTF9VTjggKHNhLCBhLCB0bXApOwoJICAgIHIgPSBBRERfVU44IChtLCBkLCB0bXApOwoK
CSAgICAqZHN0KysgPSByOwoJICAgIHctLTsKCX0KCgl3aGlsZSAodyA+PSA0KQoJewoJICAgIF9f
bTY0IHZtYXNrOwoJICAgIF9fbTY0IHZkZXN0OwoKCSAgICB2bWFzayA9IGxvYWQ4ODg4dSAoKHVp
bnQzMl90ICopbWFzayk7CgkgICAgdmRlc3QgPSBsb2FkODg4OCAoKHVpbnQzMl90ICopZHN0KTsK
CgkgICAgc3RvcmU4ODg4ICgodWludDMyX3QgKilkc3QsIF9tbV9hZGRzX3B1OCAoaW4gKHZzcmNh
LCB2bWFzayksIHZkZXN0KSk7CgoJICAgIGRzdCArPSA0OwoJICAgIG1hc2sgKz0gNDsKCSAgICB3
IC09IDQ7Cgl9CgoJd2hpbGUgKHctLSkKCXsKCSAgICB1aW50MTZfdCB0bXA7CgkgICAgdWludDE2
X3QgYTsKCSAgICB1aW50MzJfdCBtLCBkOwoJICAgIHVpbnQzMl90IHI7CgoJICAgIGEgPSAqbWFz
aysrOwoJICAgIGQgPSAqZHN0OwoKCSAgICBtID0gTVVMX1VOOCAoc2EsIGEsIHRtcCk7CgkgICAg
ciA9IEFERF9VTjggKG0sIGQsIHRtcCk7CgoJICAgICpkc3QrKyA9IHI7Cgl9CiAgICB9CgogICAg
X21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX2FkZF84XzggKHBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCgkJICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190
ICppbmZvKQp7CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwogICAgdWludDhfdCAq
ZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50OF90ICpzcmNfbGluZSwgKnNyYzsKICAgIGludCBkc3Rf
c3RyaWRlLCBzcmNfc3RyaWRlOwogICAgaW50MzJfdCB3OwogICAgdWludDhfdCBzLCBkOwogICAg
dWludDE2X3QgdDsKCiAgICBDSEVDS1BPSU5UICgpOwoKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElO
RSAoc3JjX2ltYWdlLCBzcmNfeCwgc3JjX3ksIHVpbnQ4X3QsIHNyY19zdHJpZGUsIHNyY19saW5l
LCAxKTsKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwgZGVzdF94LCBkZXN0
X3ksIHVpbnQ4X3QsIGRzdF9zdHJpZGUsIGRzdF9saW5lLCAxKTsKCiAgICB3aGlsZSAoaGVpZ2h0
LS0pCiAgICB7Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9saW5lICs9IGRzdF9zdHJpZGU7CglzcmMg
PSBzcmNfbGluZTsKCXNyY19saW5lICs9IHNyY19zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJd2hpbGUg
KHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3KQoJewoJICAgIHMgPSAqc3JjOwoJICAgIGQgPSAqZHN0
OwoJICAgIHQgPSBkICsgczsKCSAgICBzID0gdCB8ICgwIC0gKHQgPj4gOCkpOwoJICAgICpkc3Qg
PSBzOwoKCSAgICBkc3QrKzsKCSAgICBzcmMrKzsKCSAgICB3LS07Cgl9CgoJd2hpbGUgKHcgPj0g
OCkKCXsKCSAgICAqKF9fbTY0Kilkc3QgPSBfbW1fYWRkc19wdTggKGxkcV91ICgoX19tNjQgKilz
cmMpLCAqKF9fbTY0Kilkc3QpOwoJICAgIGRzdCArPSA4OwoJICAgIHNyYyArPSA4OwoJICAgIHcg
LT0gODsKCX0KCgl3aGlsZSAodykKCXsKCSAgICBzID0gKnNyYzsKCSAgICBkID0gKmRzdDsKCSAg
ICB0ID0gZCArIHM7CgkgICAgcyA9IHQgfCAoMCAtICh0ID4+IDgpKTsKCSAgICAqZHN0ID0gczsK
CgkgICAgZHN0Kys7CgkgICAgc3JjKys7CgkgICAgdy0tOwoJfQogICAgfQoKICAgIF9tbV9lbXB0
eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9hZGRfMDU2NV8wNTY1IChwaXhtYW5f
aW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1h
bl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGlu
Zm8pOwogICAgdWludDE2X3QgICAgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDMyX3QJZDsKICAg
IHVpbnQxNl90ICAgICpzcmNfbGluZSwgKnNyYzsKICAgIHVpbnQzMl90CXM7CiAgICBpbnQgZHN0
X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBDSEVDS1BPSU5UICgpOwoK
ICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoc3JjX2ltYWdlLCBzcmNfeCwgc3JjX3ksIHVpbnQx
Nl90LCBzcmNfc3RyaWRlLCBzcmNfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUg
KGRlc3RfaW1hZ2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MTZfdCwgZHN0X3N0cmlkZSwgZHN0X2xp
bmUsIDEpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJZHN0
X2xpbmUgKz0gZHN0X3N0cmlkZTsKCXNyYyA9IHNyY19saW5lOwoJc3JjX2xpbmUgKz0gc3JjX3N0
cmlkZTsKCXcgPSB3aWR0aDsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCgl7Cgkg
ICAgcyA9ICpzcmMrKzsKCSAgICBpZiAocykKCSAgICB7CgkJZCA9ICpkc3Q7CgkJcyA9IGNvbnZl
cnRfMDU2NV90b184ODg4IChzKTsKCQlpZiAoZCkKCQl7CgkJICAgIGQgPSBjb252ZXJ0XzA1NjVf
dG9fODg4OCAoZCk7CgkJICAgIFVOOHg0X0FERF9VTjh4NCAocywgZCk7CgkJfQoJCSpkc3QgPSBj
b252ZXJ0Xzg4ODhfdG9fMDU2NSAocyk7CgkgICAgfQoJICAgIGRzdCsrOwoJICAgIHctLTsKCX0K
Cgl3aGlsZSAodyA+PSA0KQoJewoJICAgIF9fbTY0IHZkZXN0ID0gKihfX202NCAqKWRzdDsKCSAg
ICBfX202NCB2c3JjID0gbGRxX3UgKChfX202NCAqKXNyYyk7CgkgICAgX19tNjQgdmQwLCB2ZDE7
CgkgICAgX19tNjQgdnMwLCB2czE7CgoJICAgIGV4cGFuZF80eHBhY2tlZDU2NSAodmRlc3QsICZ2
ZDAsICZ2ZDEsIDApOwoJICAgIGV4cGFuZF80eHBhY2tlZDU2NSAodnNyYywgJnZzMCwgJnZzMSwg
MCk7CgoJICAgIHZkMCA9IF9tbV9hZGRzX3B1OCAodmQwLCB2czApOwoJICAgIHZkMSA9IF9tbV9h
ZGRzX3B1OCAodmQxLCB2czEpOwoKCSAgICAqKF9fbTY0ICopZHN0ID0gcGFja180eHBhY2tlZDU2
NSAodmQwLCB2ZDEpOwoKCSAgICBkc3QgKz0gNDsKCSAgICBzcmMgKz0gNDsKCSAgICB3IC09IDQ7
Cgl9CgoJd2hpbGUgKHctLSkKCXsKCSAgICBzID0gKnNyYysrOwoJICAgIGlmIChzKQoJICAgIHsK
CQlkID0gKmRzdDsKCQlzID0gY29udmVydF8wNTY1X3RvXzg4ODggKHMpOwoJCWlmIChkKQoJCXsK
CQkgICAgZCA9IGNvbnZlcnRfMDU2NV90b184ODg4IChkKTsKCQkgICAgVU44eDRfQUREX1VOOHg0
IChzLCBkKTsKCQl9CgkJKmRzdCA9IGNvbnZlcnRfODg4OF90b18wNTY1IChzKTsKCSAgICB9Cgkg
ICAgZHN0Kys7Cgl9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhf
Y29tcG9zaXRlX2FkZF84ODg4Xzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8p
CnsKICAgIFBJWE1BTl9DT01QT1NJVEVfQVJHUyAoaW5mbyk7CiAgICB1aW50MzJfdCAgICAqZHN0
X2xpbmUsICpkc3Q7CiAgICB1aW50MzJfdCAgICAqc3JjX2xpbmUsICpzcmM7CiAgICBpbnQgZHN0
X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBDSEVDS1BPSU5UICgpOwoK
ICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoc3JjX2ltYWdlLCBzcmNfeCwgc3JjX3ksIHVpbnQz
Ml90LCBzcmNfc3RyaWRlLCBzcmNfbGluZSwgMSk7CiAgICBQSVhNQU5fSU1BR0VfR0VUX0xJTkUg
KGRlc3RfaW1hZ2UsIGRlc3RfeCwgZGVzdF95LCB1aW50MzJfdCwgZHN0X3N0cmlkZSwgZHN0X2xp
bmUsIDEpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKCWRzdCA9IGRzdF9saW5lOwoJZHN0
X2xpbmUgKz0gZHN0X3N0cmlkZTsKCXNyYyA9IHNyY19saW5lOwoJc3JjX2xpbmUgKz0gc3JjX3N0
cmlkZTsKCXcgPSB3aWR0aDsKCgl3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCgl7Cgkg
ICAgc3RvcmUgKGRzdCwgX21tX2FkZHNfcHU4IChsb2FkICgoY29uc3QgdWludDMyX3QgKilzcmMp
LAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZCAoKGNvbnN0IHVpbnQzMl90ICop
ZHN0KSkpOwoJICAgIGRzdCsrOwoJICAgIHNyYysrOwoJICAgIHctLTsKCX0KCgl3aGlsZSAodyA+
PSAyKQoJewoJICAgICooX19tNjQgKilkc3QgPSBfbW1fYWRkc19wdTggKGxkcV91ICgoX19tNjQg
KilzcmMpLCAqKF9fbTY0Kilkc3QpOwoJICAgIGRzdCArPSAyOwoJICAgIHNyYyArPSAyOwoJICAg
IHcgLT0gMjsKCX0KCglpZiAodykKCXsKCSAgICBzdG9yZSAoZHN0LCBfbW1fYWRkc19wdTggKGxv
YWQgKChjb25zdCB1aW50MzJfdCAqKXNyYyksCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2FkICgoY29uc3QgdWludDMyX3QgKilkc3QpKSk7CgoJfQogICAgfQoKICAgIF9tbV9lbXB0
eSAoKTsKfQoKc3RhdGljIHBpeG1hbl9ib29sX3QKbW14X2JsdCAocGl4bWFuX2ltcGxlbWVudGF0
aW9uX3QgKmltcCwKICAgICAgICAgdWludDMyX3QgKiAgICAgICAgICAgICAgIHNyY19iaXRzLAog
ICAgICAgICB1aW50MzJfdCAqICAgICAgICAgICAgICAgZHN0X2JpdHMsCiAgICAgICAgIGludCAg
ICAgICAgICAgICAgICAgICAgICBzcmNfc3RyaWRlLAogICAgICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgZHN0X3N0cmlkZSwKICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHNy
Y19icHAsCiAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICBkc3RfYnBwLAogICAgICAg
ICBpbnQgICAgICAgICAgICAgICAgICAgICAgc3JjX3gsCiAgICAgICAgIGludCAgICAgICAgICAg
ICAgICAgICAgICBzcmNfeSwKICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIGRlc3Rf
eCwKICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIGRlc3RfeSwKICAgICAgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAogICAgICAgICBpbnQgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0KQp7CiAgICB1aW50OF90ICogICBzcmNfYnl0ZXM7CiAgICB1aW50OF90ICog
ICBkc3RfYnl0ZXM7CiAgICBpbnQgYnl0ZV93aWR0aDsKCiAgICBpZiAoc3JjX2JwcCAhPSBkc3Rf
YnBwKQoJcmV0dXJuIEZBTFNFOwoKICAgIGlmIChzcmNfYnBwID09IDE2KQogICAgewoJc3JjX3N0
cmlkZSA9IHNyY19zdHJpZGUgKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIDI7Cglkc3Rfc3Ry
aWRlID0gZHN0X3N0cmlkZSAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gMjsKCXNyY19ieXRl
cyA9ICh1aW50OF90ICopKCgodWludDE2X3QgKilzcmNfYml0cykgKyBzcmNfc3RyaWRlICogKHNy
Y195KSArIChzcmNfeCkpOwoJZHN0X2J5dGVzID0gKHVpbnQ4X3QgKikoKCh1aW50MTZfdCAqKWRz
dF9iaXRzKSArIGRzdF9zdHJpZGUgKiAoZGVzdF95KSArIChkZXN0X3gpKTsKCWJ5dGVfd2lkdGgg
PSAyICogd2lkdGg7CglzcmNfc3RyaWRlICo9IDI7Cglkc3Rfc3RyaWRlICo9IDI7CiAgICB9CiAg
ICBlbHNlIGlmIChzcmNfYnBwID09IDMyKQogICAgewoJc3JjX3N0cmlkZSA9IHNyY19zdHJpZGUg
KiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIDQ7Cglkc3Rfc3RyaWRlID0gZHN0X3N0cmlkZSAq
IChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gNDsKCXNyY19ieXRlcyA9ICh1aW50OF90ICopKCgo
dWludDMyX3QgKilzcmNfYml0cykgKyBzcmNfc3RyaWRlICogKHNyY195KSArIChzcmNfeCkpOwoJ
ZHN0X2J5dGVzID0gKHVpbnQ4X3QgKikoKCh1aW50MzJfdCAqKWRzdF9iaXRzKSArIGRzdF9zdHJp
ZGUgKiAoZGVzdF95KSArIChkZXN0X3gpKTsKCWJ5dGVfd2lkdGggPSA0ICogd2lkdGg7CglzcmNf
c3RyaWRlICo9IDQ7Cglkc3Rfc3RyaWRlICo9IDQ7CiAgICB9CiAgICBlbHNlCiAgICB7CglyZXR1
cm4gRkFMU0U7CiAgICB9CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewoJaW50IHc7Cgl1aW50
OF90ICpzID0gc3JjX2J5dGVzOwoJdWludDhfdCAqZCA9IGRzdF9ieXRlczsKCXNyY19ieXRlcyAr
PSBzcmNfc3RyaWRlOwoJZHN0X2J5dGVzICs9IGRzdF9zdHJpZGU7Cgl3ID0gYnl0ZV93aWR0aDsK
CglpZiAodyA+PSAxICYmICgodWludHB0cl90KWQgJiAxKSkKCXsKCSAgICAqKHVpbnQ4X3QgKilk
ID0gKih1aW50OF90ICopczsKCSAgICB3IC09IDE7CgkgICAgcyArPSAxOwoJICAgIGQgKz0gMTsK
CX0KCglpZiAodyA+PSAyICYmICgodWludHB0cl90KWQgJiAzKSkKCXsKCSAgICAqKHVpbnQxNl90
ICopZCA9ICoodWludDE2X3QgKilzOwoJICAgIHcgLT0gMjsKCSAgICBzICs9IDI7CgkgICAgZCAr
PSAyOwoJfQoKCXdoaWxlICh3ID49IDQgJiYgKCh1aW50cHRyX3QpZCAmIDcpKQoJewoJICAgICoo
dWludDMyX3QgKilkID0gbGRsX3UgKCh1aW50MzJfdCAqKXMpOwoKCSAgICB3IC09IDQ7CgkgICAg
cyArPSA0OwoJICAgIGQgKz0gNDsKCX0KCgl3aGlsZSAodyA+PSA2NCkKCXsKI2lmIChkZWZpbmVk
IChfX0dOVUNfXykgfHwgKGRlZmluZWQoX19TVU5QUk9fQykgJiYgKF9fU1VOUFJPX0MgPj0gMHg1
OTApKSkgJiYgZGVmaW5lZCBVU0VfWDg2X01NWAoJICAgIF9fYXNtX18gKAoJICAgICAgICAibW92
cQkgICglMSksCSAgJSVtbTBcbiIKCSAgICAgICAgIm1vdnEJIDgoJTEpLAkgICUlbW0xXG4iCgkg
ICAgICAgICJtb3ZxCTE2KCUxKSwJICAlJW1tMlxuIgoJICAgICAgICAibW92cQkyNCglMSksCSAg
JSVtbTNcbiIKCSAgICAgICAgIm1vdnEJMzIoJTEpLAkgICUlbW00XG4iCgkgICAgICAgICJtb3Zx
CTQwKCUxKSwJICAlJW1tNVxuIgoJICAgICAgICAibW92cQk0OCglMSksCSAgJSVtbTZcbiIKCSAg
ICAgICAgIm1vdnEJNTYoJTEpLAkgICUlbW03XG4iCgoJICAgICAgICAibW92cQklJW1tMCwJICAo
JTApXG4iCgkgICAgICAgICJtb3ZxCSUlbW0xLAkgOCglMClcbiIKCSAgICAgICAgIm1vdnEJJSVt
bTIsCTE2KCUwKVxuIgoJICAgICAgICAibW92cQklJW1tMywJMjQoJTApXG4iCgkgICAgICAgICJt
b3ZxCSUlbW00LAkzMiglMClcbiIKCSAgICAgICAgIm1vdnEJJSVtbTUsCTQwKCUwKVxuIgoJICAg
ICAgICAibW92cQklJW1tNiwJNDgoJTApXG4iCgkgICAgICAgICJtb3ZxCSUlbW03LAk1NiglMClc
biIKCQk6CgkJOiAiciIgKGQpLCAiciIgKHMpCgkJOiAibWVtb3J5IiwKCQkgICIlbW0wIiwgIiVt
bTEiLCAiJW1tMiIsICIlbW0zIiwKCQkgICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03Iik7
CiNlbHNlCgkgICAgX19tNjQgdjAgPSBsZHFfdSAoKF9fbTY0ICopKHMgKyAwKSk7CgkgICAgX19t
NjQgdjEgPSBsZHFfdSAoKF9fbTY0ICopKHMgKyA4KSk7CgkgICAgX19tNjQgdjIgPSBsZHFfdSAo
KF9fbTY0ICopKHMgKyAxNikpOwoJICAgIF9fbTY0IHYzID0gbGRxX3UgKChfX202NCAqKShzICsg
MjQpKTsKCSAgICBfX202NCB2NCA9IGxkcV91ICgoX19tNjQgKikocyArIDMyKSk7CgkgICAgX19t
NjQgdjUgPSBsZHFfdSAoKF9fbTY0ICopKHMgKyA0MCkpOwoJICAgIF9fbTY0IHY2ID0gbGRxX3Ug
KChfX202NCAqKShzICsgNDgpKTsKCSAgICBfX202NCB2NyA9IGxkcV91ICgoX19tNjQgKikocyAr
IDU2KSk7CgkgICAgKihfX202NCAqKShkICsgMCkgID0gdjA7CgkgICAgKihfX202NCAqKShkICsg
OCkgID0gdjE7CgkgICAgKihfX202NCAqKShkICsgMTYpID0gdjI7CgkgICAgKihfX202NCAqKShk
ICsgMjQpID0gdjM7CgkgICAgKihfX202NCAqKShkICsgMzIpID0gdjQ7CgkgICAgKihfX202NCAq
KShkICsgNDApID0gdjU7CgkgICAgKihfX202NCAqKShkICsgNDgpID0gdjY7CgkgICAgKihfX202
NCAqKShkICsgNTYpID0gdjc7CiNlbmRpZgoKCSAgICB3IC09IDY0OwoJICAgIHMgKz0gNjQ7Cgkg
ICAgZCArPSA2NDsKCX0KCXdoaWxlICh3ID49IDQpCgl7CgkgICAgKih1aW50MzJfdCAqKWQgPSBs
ZGxfdSAoKHVpbnQzMl90ICopcyk7CgoJICAgIHcgLT0gNDsKCSAgICBzICs9IDQ7CgkgICAgZCAr
PSA0OwoJfQoJaWYgKHcgPj0gMikKCXsKCSAgICAqKHVpbnQxNl90ICopZCA9ICoodWludDE2X3Qg
KilzOwoJICAgIHcgLT0gMjsKCSAgICBzICs9IDI7CgkgICAgZCArPSAyOwoJfQogICAgfQoKICAg
IF9tbV9lbXB0eSAoKTsKCiAgICByZXR1cm4gVFJVRTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBv
c2l0ZV9jb3B5X2FyZWEgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgUElYTUFO
X0NPTVBPU0lURV9BUkdTIChpbmZvKTsKCiAgICBtbXhfYmx0IChpbXAsIHNyY19pbWFnZS0+Yml0
cy5iaXRzLAoJICAgICBkZXN0X2ltYWdlLT5iaXRzLmJpdHMsCgkgICAgIHNyY19pbWFnZS0+Yml0
cy5yb3dzdHJpZGUsCgkgICAgIGRlc3RfaW1hZ2UtPmJpdHMucm93c3RyaWRlLAoJICAgICBQSVhN
QU5fRk9STUFUX0JQUCAoc3JjX2ltYWdlLT5iaXRzLmZvcm1hdCksCgkgICAgIFBJWE1BTl9GT1JN
QVRfQlBQIChkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCksCgkgICAgIHNyY194LCBzcmNfeSwgZGVz
dF94LCBkZXN0X3ksIHdpZHRoLCBoZWlnaHQpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRl
X292ZXJfeDg4OF84Xzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsK
ICAgIFBJWE1BTl9DT01QT1NJVEVfQVJHUyAoaW5mbyk7CiAgICB1aW50MzJfdCAgKnNyYywgKnNy
Y19saW5lOwogICAgdWludDMyX3QgICpkc3QsICpkc3RfbGluZTsKICAgIHVpbnQ4X3QgICptYXNr
LCAqbWFza19saW5lOwogICAgaW50IHNyY19zdHJpZGUsIG1hc2tfc3RyaWRlLCBkc3Rfc3RyaWRl
OwogICAgaW50MzJfdCB3OwoKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwg
ZGVzdF94LCBkZXN0X3ksIHVpbnQzMl90LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CiAgICBQ
SVhNQU5fSU1BR0VfR0VUX0xJTkUgKG1hc2tfaW1hZ2UsIG1hc2tfeCwgbWFza195LCB1aW50OF90
LCBtYXNrX3N0cmlkZSwgbWFza19saW5lLCAxKTsKICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAo
c3JjX2ltYWdlLCBzcmNfeCwgc3JjX3ksIHVpbnQzMl90LCBzcmNfc3RyaWRlLCBzcmNfbGluZSwg
MSk7CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewoJc3JjID0gc3JjX2xpbmU7CglzcmNfbGlu
ZSArPSBzcmNfc3RyaWRlOwoJZHN0ID0gZHN0X2xpbmU7Cglkc3RfbGluZSArPSBkc3Rfc3RyaWRl
OwoJbWFzayA9IG1hc2tfbGluZTsKCW1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsKCgl3ID0gd2lk
dGg7CgoJd2hpbGUgKHctLSkKCXsKCSAgICB1aW50NjRfdCBtID0gKm1hc2s7CgoJICAgIGlmICht
KQoJICAgIHsKCQl1aW50MzJfdCBzc3JjID0gKnNyYyB8IDB4ZmYwMDAwMDA7CgkJX19tNjQgcyA9
IGxvYWQ4ODg4ICgmc3NyYyk7CgoJCWlmIChtID09IDB4ZmYpCgkJewoJCSAgICBzdG9yZTg4ODgg
KGRzdCwgcyk7CgkJfQoJCWVsc2UKCQl7CgkJICAgIF9fbTY0IHNhID0gZXhwYW5kX2FscGhhIChz
KTsKCQkgICAgX19tNjQgdm0gPSBleHBhbmRfYWxwaGFfcmV2ICh0b19tNjQgKG0pKTsKCQkgICAg
X19tNjQgdmRlc3QgPSBpbl9vdmVyIChzLCBzYSwgdm0sIGxvYWQ4ODg4IChkc3QpKTsKCgkJICAg
IHN0b3JlODg4OCAoZHN0LCB2ZGVzdCk7CgkJfQoJICAgIH0KCgkgICAgbWFzaysrOwoJICAgIGRz
dCsrOwoJICAgIHNyYysrOwoJfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZv
aWQKbW14X2NvbXBvc2l0ZV9vdmVyX3JldmVyc2Vfbl84ODg4IChwaXhtYW5faW1wbGVtZW50YXRp
b25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21w
b3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBQSVhNQU5fQ09NUE9TSVRFX0FSR1MgKGluZm8pOwog
ICAgdWludDMyX3Qgc3JjOwogICAgdWludDMyX3QgICAgKmRzdF9saW5lLCAqZHN0OwogICAgaW50
MzJfdCB3OwogICAgaW50IGRzdF9zdHJpZGU7CiAgICBfX202NCB2c3JjOwoKICAgIENIRUNLUE9J
TlQgKCk7CgogICAgc3JjID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgc3JjX2ltYWdl
LCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7CgogICAgaWYgKHNyYyA9PSAwKQoJcmV0dXJuOwoK
ICAgIFBJWE1BTl9JTUFHRV9HRVRfTElORSAoZGVzdF9pbWFnZSwgZGVzdF94LCBkZXN0X3ksIHVp
bnQzMl90LCBkc3Rfc3RyaWRlLCBkc3RfbGluZSwgMSk7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgm
c3JjKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7Cglkc3QgPSBkc3RfbGluZTsKCWRzdF9s
aW5lICs9IGRzdF9zdHJpZGU7Cgl3ID0gd2lkdGg7CgoJQ0hFQ0tQT0lOVCAoKTsKCgl3aGlsZSAo
dyAmJiAodWludHB0cl90KWRzdCAmIDcpCgl7CgkgICAgX19tNjQgdmRlc3QgPSBsb2FkODg4OCAo
ZHN0KTsKCgkgICAgc3RvcmU4ODg4IChkc3QsIG92ZXIgKHZkZXN0LCBleHBhbmRfYWxwaGEgKHZk
ZXN0KSwgdnNyYykpOwoKCSAgICB3LS07CgkgICAgZHN0Kys7Cgl9CgoJd2hpbGUgKHcgPj0gMikK
CXsKCSAgICBfX202NCB2ZGVzdCA9ICooX19tNjQgKilkc3Q7CgkgICAgX19tNjQgZGVzdDAgPSBl
eHBhbmQ4ODg4ICh2ZGVzdCwgMCk7CgkgICAgX19tNjQgZGVzdDEgPSBleHBhbmQ4ODg4ICh2ZGVz
dCwgMSk7CgoKCSAgICBkZXN0MCA9IG92ZXIgKGRlc3QwLCBleHBhbmRfYWxwaGEgKGRlc3QwKSwg
dnNyYyk7CgkgICAgZGVzdDEgPSBvdmVyIChkZXN0MSwgZXhwYW5kX2FscGhhIChkZXN0MSksIHZz
cmMpOwoKCSAgICAqKF9fbTY0ICopZHN0ID0gcGFjazg4ODggKGRlc3QwLCBkZXN0MSk7CgoJICAg
IGRzdCArPSAyOwoJICAgIHcgLT0gMjsKCX0KCglDSEVDS1BPSU5UICgpOwoKCWlmICh3KQoJewoJ
ICAgIF9fbTY0IHZkZXN0ID0gbG9hZDg4ODggKGRzdCk7CgoJICAgIHN0b3JlODg4OCAoZHN0LCBv
dmVyICh2ZGVzdCwgZXhwYW5kX2FscGhhICh2ZGVzdCksIHZzcmMpKTsKCX0KICAgIH0KCiAgICBf
bW1fZW1wdHkgKCk7Cn0KCiNkZWZpbmUgQlNISUZUICgoMSA8PCBCSUxJTkVBUl9JTlRFUlBPTEFU
SU9OX0JJVFMpKQojZGVmaW5lIEJNU0sgKEJTSElGVCAtIDEpCgojZGVmaW5lIEJJTElORUFSX0RF
Q0xBUkVfVkFSSUFCTEVTCQkJCQkJXAogICAgY29uc3QgX19tNjQgbW1fd3QgPSBfbW1fc2V0X3Bp
MTYgKHd0LCB3dCwgd3QsIHd0KTsJCQkJXAogICAgY29uc3QgX19tNjQgbW1fd2IgPSBfbW1fc2V0
X3BpMTYgKHdiLCB3Yiwgd2IsIHdiKTsJCQkJXAogICAgY29uc3QgX19tNjQgbW1fYWRkYzcgPSBf
bW1fc2V0X3BpMTYgKDAsIDEsIDAsIDEpOwkJCQlcCiAgICBjb25zdCBfX202NCBtbV94b3JjNyA9
IF9tbV9zZXRfcGkxNiAoMCwgQk1TSywgMCwgQk1TSyk7CQkJXAogICAgY29uc3QgX19tNjQgbW1f
dXggPSBfbW1fc2V0X3BpMTYgKHVuaXRfeCwgdW5pdF94LCB1bml0X3gsIHVuaXRfeCk7CQlcCiAg
ICBjb25zdCBfX202NCBtbV96ZXJvID0gX21tX3NldHplcm9fc2k2NCAoKTsJCQkJCVwKICAgIF9f
bTY0IG1tX3ggPSBfbW1fc2V0X3BpMTYgKHZ4LCB2eCwgdngsIHZ4KQoKI2RlZmluZSBCSUxJTkVB
Ul9JTlRFUlBPTEFURV9PTkVfUElYRUwocGl4KQkJCQkJXApkbyB7CQkJCQkJCQkJCVwKICAgIC8q
IGZldGNoIDJ4MiBwaXhlbCBibG9jayBpbnRvIDIgbW14IHJlZ2lzdGVycyAqLwkJCQlcCiAgICBf
X202NCB0ID0gbGRxX3UgKChfX202NCAqKSZzcmNfdG9wIFtwaXhtYW5fZml4ZWRfdG9faW50ICh2
eCldKTsJCVwKICAgIF9fbTY0IGIgPSBsZHFfdSAoKF9fbTY0ICopJnNyY19ib3R0b20gW3BpeG1h
bl9maXhlZF90b19pbnQgKHZ4KV0pOwkJXAogICAgLyogdmVydGljYWwgaW50ZXJwb2xhdGlvbiAq
LwkJCQkJCVwKICAgIF9fbTY0IHRfaGkgPSBfbW1fbXVsbG9fcGkxNiAoX21tX3VucGFja2hpX3Bp
OCAodCwgbW1femVybyksIG1tX3d0KTsJCVwKICAgIF9fbTY0IHRfbG8gPSBfbW1fbXVsbG9fcGkx
NiAoX21tX3VucGFja2xvX3BpOCAodCwgbW1femVybyksIG1tX3d0KTsJCVwKICAgIF9fbTY0IGJf
aGkgPSBfbW1fbXVsbG9fcGkxNiAoX21tX3VucGFja2hpX3BpOCAoYiwgbW1femVybyksIG1tX3di
KTsJCVwKICAgIF9fbTY0IGJfbG8gPSBfbW1fbXVsbG9fcGkxNiAoX21tX3VucGFja2xvX3BpOCAo
YiwgbW1femVybyksIG1tX3diKTsJCVwKICAgIF9fbTY0IGhpID0gX21tX2FkZF9waTE2ICh0X2hp
LCBiX2hpKTsJCQkJCVwKICAgIF9fbTY0IGxvID0gX21tX2FkZF9waTE2ICh0X2xvLCBiX2xvKTsJ
CQkJCVwKICAgIC8qIGNhbGN1bGF0ZSBob3Jpem9udGFsIHdlaWdodHMgKi8JCQkJCQlcCiAgICBf
X202NCBtbV93aCA9IF9tbV9hZGRfcGkxNiAobW1fYWRkYzcsIF9tbV94b3Jfc2k2NCAobW1feG9y
YzcsCQlcCgkJCSAgX21tX3NybGlfcGkxNiAobW1feCwJCQkJCVwKCQkJCQkgMTYgLSBCSUxJTkVB
Ul9JTlRFUlBPTEFUSU9OX0JJVFMpKSk7CVwKICAgIC8qIGhvcml6b250YWwgaW50ZXJwb2xhdGlv
biAqLwkJCQkJCVwKICAgIF9fbTY0IHAgPSBfbW1fdW5wYWNrbG9fcGkxNiAobG8sIGhpKTsJCQkJ
CVwKICAgIF9fbTY0IHEgPSBfbW1fdW5wYWNraGlfcGkxNiAobG8sIGhpKTsJCQkJCVwKICAgIHZ4
ICs9IHVuaXRfeDsJCQkJCQkJCVwKICAgIGxvID0gX21tX21hZGRfcGkxNiAocCwgbW1fd2gpOwkJ
CQkJCVwKICAgIGhpID0gX21tX21hZGRfcGkxNiAocSwgbW1fd2gpOwkJCQkJCVwKICAgIG1tX3gg
PSBfbW1fYWRkX3BpMTYgKG1tX3gsIG1tX3V4KTsJCQkJCQlcCiAgICAvKiBzaGlmdCBhbmQgcGFj
ayB0aGUgcmVzdWx0ICovCQkJCQkJXAogICAgaGkgPSBfbW1fc3JsaV9waTMyIChoaSwgQklMSU5F
QVJfSU5URVJQT0xBVElPTl9CSVRTICogMik7CQkJXAogICAgbG8gPSBfbW1fc3JsaV9waTMyIChs
bywgQklMSU5FQVJfSU5URVJQT0xBVElPTl9CSVRTICogMik7CQkJXAogICAgbG8gPSBfbW1fcGFj
a3NfcGkzMiAobG8sIGhpKTsJCQkJCQlcCiAgICBsbyA9IF9tbV9wYWNrc19wdTE2IChsbywgbG8p
OwkJCQkJCVwKICAgIHBpeCA9IGxvOwkJCQkJCQkJCVwKfSB3aGlsZSAoMCkKCiNkZWZpbmUgQklM
SU5FQVJfU0tJUF9PTkVfUElYRUwoKQkJCQkJCVwKZG8gewkJCQkJCQkJCQlcCiAgICB2eCArPSB1
bml0X3g7CQkJCQkJCQlcCiAgICBtbV94ID0gX21tX2FkZF9waTE2IChtbV94LCBtbV91eCk7CQkJ
CQkJXAp9IHdoaWxlKDApCgpzdGF0aWMgZm9yY2VfaW5saW5lIHZvaWQKc2NhbGVkX2JpbGluZWFy
X3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDICh1aW50MzJfdCAqICAgICAgIGRzdCwKCQkJCQkg
ICAgY29uc3QgdWludDMyX3QgKiBtYXNrLAoJCQkJCSAgICBjb25zdCB1aW50MzJfdCAqIHNyY190
b3AsCgkJCQkJICAgIGNvbnN0IHVpbnQzMl90ICogc3JjX2JvdHRvbSwKCQkJCQkgICAgaW50MzJf
dCAgICAgICAgICB3LAoJCQkJCSAgICBpbnQgICAgICAgICAgICAgIHd0LAoJCQkJCSAgICBpbnQg
ICAgICAgICAgICAgIHdiLAoJCQkJCSAgICBwaXhtYW5fZml4ZWRfdCAgIHZ4LAoJCQkJCSAgICBw
aXhtYW5fZml4ZWRfdCAgIHVuaXRfeCwKCQkJCQkgICAgcGl4bWFuX2ZpeGVkX3QgICBtYXhfdngs
CgkJCQkJICAgIHBpeG1hbl9ib29sX3QgICAgemVyb19zcmMpCnsKICAgIEJJTElORUFSX0RFQ0xB
UkVfVkFSSUFCTEVTOwogICAgX19tNjQgcGl4OwoKICAgIHdoaWxlICh3LS0pCiAgICB7CglCSUxJ
TkVBUl9JTlRFUlBPTEFURV9PTkVfUElYRUwgKHBpeCk7CglzdG9yZSAoZHN0LCBwaXgpOwoJZHN0
Kys7CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpGQVNUX0JJTElORUFSX01BSU5MT09QX0NP
TU1PTiAobW14Xzg4ODhfODg4OF9jb3Zlcl9TUkMsCgkJCSAgICAgICBzY2FsZWRfYmlsaW5lYXJf
c2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMsCgkJCSAgICAgICB1aW50MzJfdCwgdWludDMyX3Qs
IHVpbnQzMl90LAoJCQkgICAgICAgQ09WRVIsIEZMQUdfTk9ORSkKRkFTVF9CSUxJTkVBUl9NQUlO
TE9PUF9DT01NT04gKG1teF84ODg4Xzg4ODhfcGFkX1NSQywKCQkJICAgICAgIHNjYWxlZF9iaWxp
bmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQywKCQkJICAgICAgIHVpbnQzMl90LCB1aW50
MzJfdCwgdWludDMyX3QsCgkJCSAgICAgICBQQUQsIEZMQUdfTk9ORSkKRkFTVF9CSUxJTkVBUl9N
QUlOTE9PUF9DT01NT04gKG1teF84ODg4Xzg4ODhfbm9uZV9TUkMsCgkJCSAgICAgICBzY2FsZWRf
YmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMsCgkJCSAgICAgICB1aW50MzJfdCwg
dWludDMyX3QsIHVpbnQzMl90LAoJCQkgICAgICAgTk9ORSwgRkxBR19OT05FKQpGQVNUX0JJTElO
RUFSX01BSU5MT09QX0NPTU1PTiAobW14Xzg4ODhfODg4OF9ub3JtYWxfU1JDLAoJCQkgICAgICAg
c2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDLAoJCQkgICAgICAgdWlu
dDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwKCQkJICAgICAgIE5PUk1BTCwgRkxBR19OT05FKQoK
c3RhdGljIGZvcmNlX2lubGluZSB2b2lkCnNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4
OF84ODg4X09WRVIgKHVpbnQzMl90ICogICAgICAgZHN0LAoJCQkJCSAgICAgY29uc3QgdWludDMy
X3QgKiBtYXNrLAoJCQkJCSAgICAgY29uc3QgdWludDMyX3QgKiBzcmNfdG9wLAoJCQkJCSAgICAg
Y29uc3QgdWludDMyX3QgKiBzcmNfYm90dG9tLAoJCQkJCSAgICAgaW50MzJfdCAgICAgICAgICB3
LAoJCQkJCSAgICAgaW50ICAgICAgICAgICAgICB3dCwKCQkJCQkgICAgIGludCAgICAgICAgICAg
ICAgd2IsCgkJCQkJICAgICBwaXhtYW5fZml4ZWRfdCAgIHZ4LAoJCQkJCSAgICAgcGl4bWFuX2Zp
eGVkX3QgICB1bml0X3gsCgkJCQkJICAgICBwaXhtYW5fZml4ZWRfdCAgIG1heF92eCwKCQkJCQkg
ICAgIHBpeG1hbl9ib29sX3QgICAgemVyb19zcmMpCnsKICAgIEJJTElORUFSX0RFQ0xBUkVfVkFS
SUFCTEVTOwogICAgX19tNjQgcGl4MSwgcGl4MjsKCiAgICB3aGlsZSAodykKICAgIHsKCUJJTElO
RUFSX0lOVEVSUE9MQVRFX09ORV9QSVhFTCAocGl4MSk7CgoJaWYgKCFpc196ZXJvIChwaXgxKSkK
CXsKCSAgICBwaXgyID0gbG9hZCAoZHN0KTsKCSAgICBzdG9yZTg4ODggKGRzdCwgY29yZV9jb21i
aW5lX292ZXJfdV9waXhlbF9tbXggKHBpeDEsIHBpeDIpKTsKCX0KCgl3LS07Cglkc3QrKzsKICAg
IH0KCiAgICBfbW1fZW1wdHkgKCk7Cn0KCkZBU1RfQklMSU5FQVJfTUFJTkxPT1BfQ09NTU9OICht
bXhfODg4OF84ODg4X2NvdmVyX09WRVIsCgkJCSAgICAgICBzY2FsZWRfYmlsaW5lYXJfc2Nhbmxp
bmVfbW14Xzg4ODhfODg4OF9PVkVSLAoJCQkgICAgICAgdWludDMyX3QsIHVpbnQzMl90LCB1aW50
MzJfdCwKCQkJICAgICAgIENPVkVSLCBGTEFHX05PTkUpCkZBU1RfQklMSU5FQVJfTUFJTkxPT1Bf
Q09NTU9OIChtbXhfODg4OF84ODg4X3BhZF9PVkVSLAoJCQkgICAgICAgc2NhbGVkX2JpbGluZWFy
X3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiwKCQkJICAgICAgIHVpbnQzMl90LCB1aW50MzJf
dCwgdWludDMyX3QsCgkJCSAgICAgICBQQUQsIEZMQUdfTk9ORSkKRkFTVF9CSUxJTkVBUl9NQUlO
TE9PUF9DT01NT04gKG1teF84ODg4Xzg4ODhfbm9uZV9PVkVSLAoJCQkgICAgICAgc2NhbGVkX2Jp
bGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiwKCQkJICAgICAgIHVpbnQzMl90LCB1
aW50MzJfdCwgdWludDMyX3QsCgkJCSAgICAgICBOT05FLCBGTEFHX05PTkUpCkZBU1RfQklMSU5F
QVJfTUFJTkxPT1BfQ09NTU9OIChtbXhfODg4OF84ODg4X25vcm1hbF9PVkVSLAoJCQkgICAgICAg
c2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiwKCQkJICAgICAgIHVp
bnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsCgkJCSAgICAgICBOT1JNQUwsIEZMQUdfTk9ORSkK
CnN0YXRpYyBmb3JjZV9pbmxpbmUgdm9pZApzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4
ODhfOF84ODg4X09WRVIgKHVpbnQzMl90ICogICAgICAgZHN0LAoJCQkJCSAgICAgICBjb25zdCB1
aW50OF90ICAqIG1hc2ssCgkJCQkJICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3JjX3RvcCwKCQkJ
CQkgICAgICAgY29uc3QgdWludDMyX3QgKiBzcmNfYm90dG9tLAoJCQkJCSAgICAgICBpbnQzMl90
ICAgICAgICAgIHcsCgkJCQkJICAgICAgIGludCAgICAgICAgICAgICAgd3QsCgkJCQkJICAgICAg
IGludCAgICAgICAgICAgICAgd2IsCgkJCQkJICAgICAgIHBpeG1hbl9maXhlZF90ICAgdngsCgkJ
CQkJICAgICAgIHBpeG1hbl9maXhlZF90ICAgdW5pdF94LAoJCQkJCSAgICAgICBwaXhtYW5fZml4
ZWRfdCAgIG1heF92eCwKCQkJCQkgICAgICAgcGl4bWFuX2Jvb2xfdCAgICB6ZXJvX3NyYykKewog
ICAgQklMSU5FQVJfREVDTEFSRV9WQVJJQUJMRVM7CiAgICBfX202NCBwaXgxLCBwaXgyOwogICAg
dWludDMyX3QgbTsKCiAgICB3aGlsZSAodykKICAgIHsKCW0gPSAodWludDMyX3QpICptYXNrKys7
CgoJaWYgKG0pCgl7CgkgICAgQklMSU5FQVJfSU5URVJQT0xBVEVfT05FX1BJWEVMIChwaXgxKTsK
CgkgICAgaWYgKG0gPT0gMHhmZiAmJiBpc19vcGFxdWUgKHBpeDEpKQoJICAgIHsKCQlzdG9yZSAo
ZHN0LCBwaXgxKTsKCSAgICB9CgkgICAgZWxzZQoJICAgIHsKCQlfX202NCBtcywgbWQsIG1hLCBt
c2E7CgoJCXBpeDIgPSBsb2FkIChkc3QpOwoJCW1hID0gZXhwYW5kX2FscGhhX3JldiAodG9fbTY0
IChtKSk7CgkJbXMgPSBfbW1fdW5wYWNrbG9fcGk4IChwaXgxLCBfbW1fc2V0emVyb19zaTY0ICgp
KTsKCQltZCA9IF9tbV91bnBhY2tsb19waTggKHBpeDIsIF9tbV9zZXR6ZXJvX3NpNjQgKCkpOwoK
CQltc2EgPSBleHBhbmRfYWxwaGEgKG1zKTsKCgkJc3RvcmU4ODg4IChkc3QsIChpbl9vdmVyICht
cywgbXNhLCBtYSwgbWQpKSk7CgkgICAgfQoJfQoJZWxzZQoJewoJICAgIEJJTElORUFSX1NLSVBf
T05FX1BJWEVMICgpOwoJfQoKCXctLTsKCWRzdCsrOwogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsK
fQoKRkFTVF9CSUxJTkVBUl9NQUlOTE9PUF9DT01NT04gKG1teF84ODg4XzhfODg4OF9jb3Zlcl9P
VkVSLAoJCQkgICAgICAgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4XzhfODg4OF9P
VkVSLAoJCQkgICAgICAgdWludDMyX3QsIHVpbnQ4X3QsIHVpbnQzMl90LAoJCQkgICAgICAgQ09W
RVIsIEZMQUdfSEFWRV9OT05fU09MSURfTUFTSykKRkFTVF9CSUxJTkVBUl9NQUlOTE9PUF9DT01N
T04gKG1teF84ODg4XzhfODg4OF9wYWRfT1ZFUiwKCQkJICAgICAgIHNjYWxlZF9iaWxpbmVhcl9z
Y2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiwKCQkJICAgICAgIHVpbnQzMl90LCB1aW50OF90
LCB1aW50MzJfdCwKCQkJICAgICAgIFBBRCwgRkxBR19IQVZFX05PTl9TT0xJRF9NQVNLKQpGQVNU
X0JJTElORUFSX01BSU5MT09QX0NPTU1PTiAobW14Xzg4ODhfOF84ODg4X25vbmVfT1ZFUiwKCQkJ
ICAgICAgIHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiwKCQkJ
ICAgICAgIHVpbnQzMl90LCB1aW50OF90LCB1aW50MzJfdCwKCQkJICAgICAgIE5PTkUsIEZMQUdf
SEFWRV9OT05fU09MSURfTUFTSykKRkFTVF9CSUxJTkVBUl9NQUlOTE9PUF9DT01NT04gKG1teF84
ODg4XzhfODg4OF9ub3JtYWxfT1ZFUiwKCQkJICAgICAgIHNjYWxlZF9iaWxpbmVhcl9zY2FubGlu
ZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiwKCQkJICAgICAgIHVpbnQzMl90LCB1aW50OF90LCB1aW50
MzJfdCwKCQkJICAgICAgIE5PUk1BTCwgRkxBR19IQVZFX05PTl9TT0xJRF9NQVNLKQoKc3RhdGlj
IHVpbnQzMl90ICoKbW14X2ZldGNoX3g4cjhnOGI4IChwaXhtYW5faXRlcl90ICppdGVyLCBjb25z
dCB1aW50MzJfdCAqbWFzaykKewogICAgaW50IHcgPSBpdGVyLT53aWR0aDsKICAgIHVpbnQzMl90
ICpkc3QgPSBpdGVyLT5idWZmZXI7CiAgICB1aW50MzJfdCAqc3JjID0gKHVpbnQzMl90ICopaXRl
ci0+Yml0czsKCiAgICBpdGVyLT5iaXRzICs9IGl0ZXItPnN0cmlkZTsKCiAgICB3aGlsZSAodyAm
JiAoKHVpbnRwdHJfdClkc3QpICYgNykKICAgIHsKCSpkc3QrKyA9ICgqc3JjKyspIHwgMHhmZjAw
MDAwMDsKCXctLTsKICAgIH0KCiAgICB3aGlsZSAodyA+PSA4KQogICAgewoJX19tNjQgdnNyYzEg
PSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDApKTsKCV9fbTY0IHZzcmMyID0gbGRxX3UgKChfX202
NCAqKShzcmMgKyAyKSk7CglfX202NCB2c3JjMyA9IGxkcV91ICgoX19tNjQgKikoc3JjICsgNCkp
OwoJX19tNjQgdnNyYzQgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDYpKTsKCgkqKF9fbTY0ICop
KGRzdCArIDApID0gX21tX29yX3NpNjQgKHZzcmMxLCBNQyAoZmYwMDAwMDApKTsKCSooX19tNjQg
KikoZHN0ICsgMikgPSBfbW1fb3Jfc2k2NCAodnNyYzIsIE1DIChmZjAwMDAwMCkpOwoJKihfX202
NCAqKShkc3QgKyA0KSA9IF9tbV9vcl9zaTY0ICh2c3JjMywgTUMgKGZmMDAwMDAwKSk7CgkqKF9f
bTY0ICopKGRzdCArIDYpID0gX21tX29yX3NpNjQgKHZzcmM0LCBNQyAoZmYwMDAwMDApKTsKCglk
c3QgKz0gODsKCXNyYyArPSA4OwoJdyAtPSA4OwogICAgfQoKICAgIHdoaWxlICh3KQogICAgewoJ
KmRzdCsrID0gKCpzcmMrKykgfCAweGZmMDAwMDAwOwoJdy0tOwogICAgfQoKICAgIF9tbV9lbXB0
eSAoKTsKICAgIHJldHVybiBpdGVyLT5idWZmZXI7Cn0KCnN0YXRpYyB1aW50MzJfdCAqCm1teF9m
ZXRjaF9yNWc2YjUgKHBpeG1hbl9pdGVyX3QgKml0ZXIsIGNvbnN0IHVpbnQzMl90ICptYXNrKQp7
CiAgICBpbnQgdyA9IGl0ZXItPndpZHRoOwogICAgdWludDMyX3QgKmRzdCA9IGl0ZXItPmJ1ZmZl
cjsKICAgIHVpbnQxNl90ICpzcmMgPSAodWludDE2X3QgKilpdGVyLT5iaXRzOwoKICAgIGl0ZXIt
PmJpdHMgKz0gaXRlci0+c3RyaWRlOwoKICAgIHdoaWxlICh3ICYmICgodWludHB0cl90KWRzdCkg
JiAweDBmKQogICAgewoJdWludDE2X3QgcyA9ICpzcmMrKzsKCgkqZHN0KysgPSBjb252ZXJ0XzA1
NjVfdG9fODg4OCAocyk7Cgl3LS07CiAgICB9CgogICAgd2hpbGUgKHcgPj0gNCkKICAgIHsKCV9f
bTY0IHZzcmMgPSBsZHFfdSAoKF9fbTY0ICopc3JjKTsKCV9fbTY0IG1tMCwgbW0xOwoKCWV4cGFu
ZF80eHBhY2tlZDU2NSAodnNyYywgJm1tMCwgJm1tMSwgMSk7CgoJKihfX202NCAqKShkc3QgKyAw
KSA9IG1tMDsKCSooX19tNjQgKikoZHN0ICsgMikgPSBtbTE7CgoJZHN0ICs9IDQ7CglzcmMgKz0g
NDsKCXcgLT0gNDsKICAgIH0KCiAgICB3aGlsZSAodykKICAgIHsKCXVpbnQxNl90IHMgPSAqc3Jj
Kys7CgoJKmRzdCsrID0gY29udmVydF8wNTY1X3RvXzg4ODggKHMpOwoJdy0tOwogICAgfQoKICAg
IF9tbV9lbXB0eSAoKTsKICAgIHJldHVybiBpdGVyLT5idWZmZXI7Cn0KCnN0YXRpYyB1aW50MzJf
dCAqCm1teF9mZXRjaF9hOCAocGl4bWFuX2l0ZXJfdCAqaXRlciwgY29uc3QgdWludDMyX3QgKm1h
c2spCnsKICAgIGludCB3ID0gaXRlci0+d2lkdGg7CiAgICB1aW50MzJfdCAqZHN0ID0gaXRlci0+
YnVmZmVyOwogICAgdWludDhfdCAqc3JjID0gaXRlci0+Yml0czsKCiAgICBpdGVyLT5iaXRzICs9
IGl0ZXItPnN0cmlkZTsKCiAgICB3aGlsZSAodyAmJiAoKCh1aW50cHRyX3QpZHN0KSAmIDE1KSkK
ICAgIHsKICAgICAgICAqZHN0KysgPSAqKHNyYysrKSA8PCAyNDsKICAgICAgICB3LS07CiAgICB9
CgogICAgd2hpbGUgKHcgPj0gOCkKICAgIHsKCV9fbTY0IG1tMCA9IGxkcV91ICgoX19tNjQgKilz
cmMpOwoKCV9fbTY0IG1tMSA9IF9tbV91bnBhY2tsb19waTggIChfbW1fc2V0emVyb19zaTY0KCks
IG1tMCk7CglfX202NCBtbTIgPSBfbW1fdW5wYWNraGlfcGk4ICAoX21tX3NldHplcm9fc2k2NCgp
LCBtbTApOwoJX19tNjQgbW0zID0gX21tX3VucGFja2xvX3BpMTYgKF9tbV9zZXR6ZXJvX3NpNjQo
KSwgbW0xKTsKCV9fbTY0IG1tNCA9IF9tbV91bnBhY2toaV9waTE2IChfbW1fc2V0emVyb19zaTY0
KCksIG1tMSk7CglfX202NCBtbTUgPSBfbW1fdW5wYWNrbG9fcGkxNiAoX21tX3NldHplcm9fc2k2
NCgpLCBtbTIpOwoJX19tNjQgbW02ID0gX21tX3VucGFja2hpX3BpMTYgKF9tbV9zZXR6ZXJvX3Np
NjQoKSwgbW0yKTsKCgkqKF9fbTY0ICopKGRzdCArIDApID0gbW0zOwoJKihfX202NCAqKShkc3Qg
KyAyKSA9IG1tNDsKCSooX19tNjQgKikoZHN0ICsgNCkgPSBtbTU7CgkqKF9fbTY0ICopKGRzdCAr
IDYpID0gbW02OwoKCWRzdCArPSA4OwoJc3JjICs9IDg7Cgl3IC09IDg7CiAgICB9CgogICAgd2hp
bGUgKHcpCiAgICB7CgkqZHN0KysgPSAqKHNyYysrKSA8PCAyNDsKCXctLTsKICAgIH0KCiAgICBf
bW1fZW1wdHkgKCk7CiAgICByZXR1cm4gaXRlci0+YnVmZmVyOwp9CgojZGVmaW5lIElNQUdFX0ZM
QUdTCQkJCQkJCVwKICAgIChGQVNUX1BBVEhfU1RBTkRBUkRfRkxBR1MgfCBGQVNUX1BBVEhfSURf
VFJBTlNGT1JNIHwJCVwKICAgICBGQVNUX1BBVEhfQklUU19JTUFHRSB8IEZBU1RfUEFUSF9TQU1Q
TEVTX0NPVkVSX0NMSVBfTkVBUkVTVCkKCnN0YXRpYyBjb25zdCBwaXhtYW5faXRlcl9pbmZvX3Qg
bW14X2l0ZXJzW10gPSAKewogICAgeyBQSVhNQU5feDhyOGc4YjgsIElNQUdFX0ZMQUdTLCBJVEVS
X05BUlJPVywKICAgICAgX3BpeG1hbl9pdGVyX2luaXRfYml0c19zdHJpZGUsIG1teF9mZXRjaF94
OHI4ZzhiOCwgTlVMTAogICAgfSwKICAgIHsgUElYTUFOX3I1ZzZiNSwgSU1BR0VfRkxBR1MsIElU
RVJfTkFSUk9XLAogICAgICBfcGl4bWFuX2l0ZXJfaW5pdF9iaXRzX3N0cmlkZSwgbW14X2ZldGNo
X3I1ZzZiNSwgTlVMTAogICAgfSwKICAgIHsgUElYTUFOX2E4LCBJTUFHRV9GTEFHUywgSVRFUl9O
QVJST1csCiAgICAgIF9waXhtYW5faXRlcl9pbml0X2JpdHNfc3RyaWRlLCBtbXhfZmV0Y2hfYTgs
IE5VTEwKICAgIH0sCiAgICB7IFBJWE1BTl9udWxsIH0sCn07CgpzdGF0aWMgY29uc3QgcGl4bWFu
X2Zhc3RfcGF0aF90IG1teF9mYXN0X3BhdGhzW10gPQp7CiAgICBQSVhNQU5fU1REX0ZBU1RfUEFU
SCAgICAoT1ZFUiwgc29saWQsICAgIGE4LCAgICAgICByNWc2YjUsICAgbW14X2NvbXBvc2l0ZV9v
dmVyX25fOF8wNTY1ICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwg
c29saWQsICAgIGE4LCAgICAgICBiNWc2cjUsICAgbW14X2NvbXBvc2l0ZV9vdmVyX25fOF8wNTY1
ICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgc29saWQsICAgIGE4
LCAgICAgICBhOHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25fOF84ODg4ICAgICAgICksCiAg
ICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgc29saWQsICAgIGE4LCAgICAgICB4OHI4
ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25fOF84ODg4ICAgICAgICksCiAgICBQSVhNQU5fU1RE
X0ZBU1RfUEFUSCAgICAoT1ZFUiwgc29saWQsICAgIGE4LCAgICAgICBhOGI4ZzhyOCwgbW14X2Nv
bXBvc2l0ZV9vdmVyX25fOF84ODg4ICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAg
ICAoT1ZFUiwgc29saWQsICAgIGE4LCAgICAgICB4OGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVy
X25fOF84ODg4ICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSF9DQSAoT1ZFUiwgc29s
aWQsICAgIGE4cjhnOGI4LCBhOHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OF84ODg4
X2NhICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSF9DQSAoT1ZFUiwgc29saWQsICAgIGE4cjhn
OGI4LCB4OHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OF84ODg4X2NhICksCiAgICBQ
SVhNQU5fU1REX0ZBU1RfUEFUSF9DQSAoT1ZFUiwgc29saWQsICAgIGE4cjhnOGI4LCByNWc2YjUs
ICAgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OF8wNTY1X2NhICksCiAgICBQSVhNQU5fU1REX0ZB
U1RfUEFUSF9DQSAoT1ZFUiwgc29saWQsICAgIGE4YjhnOHI4LCBhOGI4ZzhyOCwgbW14X2NvbXBv
c2l0ZV9vdmVyX25fODg4OF84ODg4X2NhICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSF9DQSAo
T1ZFUiwgc29saWQsICAgIGE4YjhnOHI4LCB4OGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25f
ODg4OF84ODg4X2NhICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSF9DQSAoT1ZFUiwgc29saWQs
ICAgIGE4YjhnOHI4LCBiNWc2cjUsICAgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OF8wNTY1X2Nh
ICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgcGl4YnVmLCAgIHBpeGJ1Ziwg
ICBhOHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1Zl84ODg4ICAgICksCiAgICBQSVhN
QU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgcGl4YnVmLCAgIHBpeGJ1ZiwgICB4OHI4ZzhiOCwg
bW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1Zl84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1Rf
UEFUSCAgICAoT1ZFUiwgcGl4YnVmLCAgIHBpeGJ1ZiwgICByNWc2YjUsICAgbW14X2NvbXBvc2l0
ZV9vdmVyX3BpeGJ1Zl8wNTY1ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZF
UiwgcnBpeGJ1ZiwgIHJwaXhidWYsICBhOGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1
Zl84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgcnBpeGJ1Ziwg
IHJwaXhidWYsICB4OGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1Zl84ODg4ICAgICks
CiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgcnBpeGJ1ZiwgIHJwaXhidWYsICBi
NWc2cjUsICAgbW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1Zl8wNTY1ICAgICksCiAgICBQSVhNQU5f
U1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgeDhyOGc4YjgsIHNvbGlkLCAgICBhOHI4ZzhiOCwgbW14
X2NvbXBvc2l0ZV9vdmVyX3g4ODhfbl84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFU
SCAgICAoT1ZFUiwgeDhyOGc4YjgsIHNvbGlkLCAgICB4OHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9v
dmVyX3g4ODhfbl84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwg
eDhiOGc4cjgsIHNvbGlkLCAgICBhOGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfbl84
ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgeDhiOGc4cjgsIHNv
bGlkLCAgICB4OGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfbl84ODg4ICAgICksCiAg
ICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgYThyOGc4YjgsIHNvbGlkLCAgICBhOHI4
ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyXzg4ODhfbl84ODg4ICAgICksCiAgICBQSVhNQU5fU1RE
X0ZBU1RfUEFUSCAgICAoT1ZFUiwgYThyOGc4YjgsIHNvbGlkLCAgICB4OHI4ZzhiOCwgbW14X2Nv
bXBvc2l0ZV9vdmVyXzg4ODhfbl84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAg
ICAoT1ZFUiwgYThiOGc4cjgsIHNvbGlkLCAgICBhOGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVy
Xzg4ODhfbl84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgYThi
OGc4cjgsIHNvbGlkLCAgICB4OGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyXzg4ODhfbl84ODg4
ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgeDhyOGc4YjgsIGE4LCAg
ICAgICB4OHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfOF84ODg4ICAgICksCiAgICBQ
SVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgeDhyOGc4YjgsIGE4LCAgICAgICBhOHI4Zzhi
OCwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfOF84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZB
U1RfUEFUSCAgICAoT1ZFUiwgeDhiOGc4cjgsIGE4LCAgICAgICB4OGI4ZzhyOCwgbW14X2NvbXBv
c2l0ZV9vdmVyX3g4ODhfOF84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAo
T1ZFUiwgeDhiOGc4cjgsIGE4LCAgICAgICBhOGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4
ODhfOF84ODg4ICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgc29saWQs
ICAgIG51bGwsICAgICBhOHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OCAgICAgICAg
ICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgc29saWQsICAgIG51bGwsICAg
ICB4OHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OCAgICAgICAgICksCiAgICBQSVhN
QU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgc29saWQsICAgIG51bGwsICAgICByNWc2YjUsICAg
bW14X2NvbXBvc2l0ZV9vdmVyX25fMDU2NSAgICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1Rf
UEFUSCAgICAoT1ZFUiwgc29saWQsICAgIG51bGwsICAgICBiNWc2cjUsICAgbW14X2NvbXBvc2l0
ZV9vdmVyX25fMDU2NSAgICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZF
UiwgeDhyOGc4YjgsIG51bGwsICAgICB4OHI4ZzhiOCwgbW14X2NvbXBvc2l0ZV9jb3B5X2FyZWEg
ICAgICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoT1ZFUiwgeDhiOGc4cjgs
IG51bGwsICAgICB4OGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9jb3B5X2FyZWEgICAgICAgICAgICks
CgogICAgUElYTUFOX1NURF9GQVNUX1BBVEggICAgKE9WRVIsIGE4cjhnOGI4LCBudWxsLCAgICAg
YThyOGc4YjgsIG1teF9jb21wb3NpdGVfb3Zlcl84ODg4Xzg4ODggICAgICApLAogICAgUElYTUFO
X1NURF9GQVNUX1BBVEggICAgKE9WRVIsIGE4cjhnOGI4LCBudWxsLCAgICAgeDhyOGc4YjgsIG1t
eF9jb21wb3NpdGVfb3Zlcl84ODg4Xzg4ODggICAgICApLAogICAgUElYTUFOX1NURF9GQVNUX1BB
VEggICAgKE9WRVIsIGE4cjhnOGI4LCBudWxsLCAgICAgcjVnNmI1LCAgIG1teF9jb21wb3NpdGVf
b3Zlcl84ODg4XzA1NjUgICAgICApLAogICAgUElYTUFOX1NURF9GQVNUX1BBVEggICAgKE9WRVIs
IGE4YjhnOHI4LCBudWxsLCAgICAgYThiOGc4cjgsIG1teF9jb21wb3NpdGVfb3Zlcl84ODg4Xzg4
ODggICAgICApLAogICAgUElYTUFOX1NURF9GQVNUX1BBVEggICAgKE9WRVIsIGE4YjhnOHI4LCBu
dWxsLCAgICAgeDhiOGc4cjgsIG1teF9jb21wb3NpdGVfb3Zlcl84ODg4Xzg4ODggICAgICApLAog
ICAgUElYTUFOX1NURF9GQVNUX1BBVEggICAgKE9WRVIsIGE4YjhnOHI4LCBudWxsLCAgICAgYjVn
NnI1LCAgIG1teF9jb21wb3NpdGVfb3Zlcl84ODg4XzA1NjUgICAgICApLAoKICAgIFBJWE1BTl9T
VERfRkFTVF9QQVRIICAgIChPVkVSX1JFVkVSU0UsIHNvbGlkLCBudWxsLCBhOHI4ZzhiOCwgbW14
X2NvbXBvc2l0ZV9vdmVyX3JldmVyc2Vfbl84ODg4KSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRI
ICAgIChPVkVSX1JFVkVSU0UsIHNvbGlkLCBudWxsLCBhOGI4ZzhyOCwgbW14X2NvbXBvc2l0ZV9v
dmVyX3JldmVyc2Vfbl84ODg4KSwKCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoQURELCAg
cjVnNmI1LCAgIG51bGwsICAgICByNWc2YjUsICAgbW14X2NvbXBvc2l0ZV9hZGRfMDU2NV8wNTY1
ICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoQURELCAgYjVnNnI1LCAgIG51
bGwsICAgICBiNWc2cjUsICAgbW14X2NvbXBvc2l0ZV9hZGRfMDU2NV8wNTY1ICAgICAgICksCiAg
ICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoQURELCAgYThyOGc4YjgsIG51bGwsICAgICBhOHI4
ZzhiOCwgbW14X2NvbXBvc2l0ZV9hZGRfODg4OF84ODg4ICAgICAgICksCiAgICBQSVhNQU5fU1RE
X0ZBU1RfUEFUSCAgICAoQURELCAgYThiOGc4cjgsIG51bGwsICAgICBhOGI4ZzhyOCwgbW14X2Nv
bXBvc2l0ZV9hZGRfODg4OF84ODg4ICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAg
ICAoQURELCAgYTgsICAgICAgIG51bGwsICAgICBhOCwgICAgICAgbW14X2NvbXBvc2l0ZV9hZGRf
OF84CQkgICApLAogICAgUElYTUFOX1NURF9GQVNUX1BBVEggICAgKEFERCwgIHNvbGlkLCAgICBh
OCwgICAgICAgYTgsICAgICAgIG1teF9jb21wb3NpdGVfYWRkX25fOF84ICAgICAgICAgICApLAoK
ICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBhOHI4ZzhiOCwgbnVsbCwgICAgIHI1
ZzZiNSwgICBtbXhfY29tcG9zaXRlX3NyY194ODg4XzA1NjUgICAgICAgKSwKICAgIFBJWE1BTl9T
VERfRkFTVF9QQVRIICAgIChTUkMsICBhOGI4ZzhyOCwgbnVsbCwgICAgIGI1ZzZyNSwgICBtbXhf
Y29tcG9zaXRlX3NyY194ODg4XzA1NjUgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRI
ICAgIChTUkMsICB4OHI4ZzhiOCwgbnVsbCwgICAgIHI1ZzZiNSwgICBtbXhfY29tcG9zaXRlX3Ny
Y194ODg4XzA1NjUgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICB4
OGI4ZzhyOCwgbnVsbCwgICAgIGI1ZzZyNSwgICBtbXhfY29tcG9zaXRlX3NyY194ODg4XzA1NjUg
ICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBzb2xpZCwgICAgYTgs
ICAgICAgIGE4cjhnOGI4LCBtbXhfY29tcG9zaXRlX3NyY19uXzhfODg4OCAgICAgICAgKSwKICAg
IFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBzb2xpZCwgICAgYTgsICAgICAgIHg4cjhn
OGI4LCBtbXhfY29tcG9zaXRlX3NyY19uXzhfODg4OCAgICAgICAgKSwKICAgIFBJWE1BTl9TVERf
RkFTVF9QQVRIICAgIChTUkMsICBzb2xpZCwgICAgYTgsICAgICAgIGE4YjhnOHI4LCBtbXhfY29t
cG9zaXRlX3NyY19uXzhfODg4OCAgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAg
IChTUkMsICBzb2xpZCwgICAgYTgsICAgICAgIHg4YjhnOHI4LCBtbXhfY29tcG9zaXRlX3NyY19u
XzhfODg4OCAgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBhOHI4
ZzhiOCwgbnVsbCwgICAgIGE4cjhnOGI4LCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSAgICAgICAg
ICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBhOGI4ZzhyOCwgbnVsbCwg
ICAgIGE4YjhnOHI4LCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSAgICAgICAgICAgKSwKICAgIFBJ
WE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBhOHI4ZzhiOCwgbnVsbCwgICAgIHg4cjhnOGI4
LCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSAgICAgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFT
VF9QQVRIICAgIChTUkMsICBhOGI4ZzhyOCwgbnVsbCwgICAgIHg4YjhnOHI4LCBtbXhfY29tcG9z
aXRlX2NvcHlfYXJlYSAgICAgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChT
UkMsICB4OHI4ZzhiOCwgbnVsbCwgICAgIHg4cjhnOGI4LCBtbXhfY29tcG9zaXRlX2NvcHlfYXJl
YSAgICAgICAgICAgKSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICB4OGI4Zzhy
OCwgbnVsbCwgICAgIHg4YjhnOHI4LCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSAgICAgICAgICAg
KSwKICAgIFBJWE1BTl9TVERfRkFTVF9QQVRIICAgIChTUkMsICByNWc2YjUsICAgbnVsbCwgICAg
IHI1ZzZiNSwgICBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSAgICAgICAgICAgKSwKICAgIFBJWE1B
Tl9TVERfRkFTVF9QQVRIICAgIChTUkMsICBiNWc2cjUsICAgbnVsbCwgICAgIGI1ZzZyNSwgICBt
bXhfY29tcG9zaXRlX2NvcHlfYXJlYSAgICAgICAgICAgKSwKCiAgICBQSVhNQU5fU1REX0ZBU1Rf
UEFUSCAgICAoSU4sICAgYTgsICAgICAgIG51bGwsICAgICBhOCwgICAgICAgbW14X2NvbXBvc2l0
ZV9pbl84XzggICAgICAgICAgICAgICksCiAgICBQSVhNQU5fU1REX0ZBU1RfUEFUSCAgICAoSU4s
ICAgc29saWQsICAgIGE4LCAgICAgICBhOCwgICAgICAgbW14X2NvbXBvc2l0ZV9pbl9uXzhfOCAg
ICAgICAgICAgICksCgogICAgU0lNUExFX0JJTElORUFSX0ZBU1RfUEFUSCAoU1JDLCBhOHI4Zzhi
OCwgICAgICAgICAgYThyOGc4YjgsIG1teF84ODg4Xzg4ODggICAgICAgICAgICAgICAgICAgICAp
LAogICAgU0lNUExFX0JJTElORUFSX0ZBU1RfUEFUSCAoU1JDLCBhOHI4ZzhiOCwgICAgICAgICAg
eDhyOGc4YjgsIG1teF84ODg4Xzg4ODggICAgICAgICAgICAgICAgICAgICApLAogICAgU0lNUExF
X0JJTElORUFSX0ZBU1RfUEFUSCAoU1JDLCB4OHI4ZzhiOCwgICAgICAgICAgeDhyOGc4YjgsIG1t
eF84ODg4Xzg4ODggICAgICAgICAgICAgICAgICAgICApLAogICAgU0lNUExFX0JJTElORUFSX0ZB
U1RfUEFUSCAoU1JDLCBhOGI4ZzhyOCwgICAgICAgICAgYThiOGc4cjgsIG1teF84ODg4Xzg4ODgg
ICAgICAgICAgICAgICAgICAgICApLAogICAgU0lNUExFX0JJTElORUFSX0ZBU1RfUEFUSCAoU1JD
LCBhOGI4ZzhyOCwgICAgICAgICAgeDhiOGc4cjgsIG1teF84ODg4Xzg4ODggICAgICAgICAgICAg
ICAgICAgICApLAogICAgU0lNUExFX0JJTElORUFSX0ZBU1RfUEFUSCAoU1JDLCB4OGI4ZzhyOCwg
ICAgICAgICAgeDhiOGc4cjgsIG1teF84ODg4Xzg4ODggICAgICAgICAgICAgICAgICAgICApLAoK
ICAgIFNJTVBMRV9CSUxJTkVBUl9GQVNUX1BBVEggKE9WRVIsIGE4cjhnOGI4LCAgICAgICAgIHg4
cjhnOGI4LCBtbXhfODg4OF84ODg4ICAgICAgICAgICAgICAgICAgICAgKSwKICAgIFNJTVBMRV9C
SUxJTkVBUl9GQVNUX1BBVEggKE9WRVIsIGE4YjhnOHI4LCAgICAgICAgIHg4YjhnOHI4LCBtbXhf
ODg4OF84ODg4ICAgICAgICAgICAgICAgICAgICAgKSwKICAgIFNJTVBMRV9CSUxJTkVBUl9GQVNU
X1BBVEggKE9WRVIsIGE4cjhnOGI4LCAgICAgICAgIGE4cjhnOGI4LCBtbXhfODg4OF84ODg4ICAg
ICAgICAgICAgICAgICAgICAgKSwKICAgIFNJTVBMRV9CSUxJTkVBUl9GQVNUX1BBVEggKE9WRVIs
IGE4YjhnOHI4LCAgICAgICAgIGE4YjhnOHI4LCBtbXhfODg4OF84ODg4ICAgICAgICAgICAgICAg
ICAgICAgKSwKCiAgICBTSU1QTEVfQklMSU5FQVJfQThfTUFTS19GQVNUX1BBVEggKE9WRVIsIGE4
cjhnOGI4LCB4OHI4ZzhiOCwgbW14Xzg4ODhfOF84ODg4ICAgICAgICAgICAgICAgICAgICksCiAg
ICBTSU1QTEVfQklMSU5FQVJfQThfTUFTS19GQVNUX1BBVEggKE9WRVIsIGE4YjhnOHI4LCB4OGI4
ZzhyOCwgbW14Xzg4ODhfOF84ODg4ICAgICAgICAgICAgICAgICAgICksCiAgICBTSU1QTEVfQklM
SU5FQVJfQThfTUFTS19GQVNUX1BBVEggKE9WRVIsIGE4cjhnOGI4LCBhOHI4ZzhiOCwgbW14Xzg4
ODhfOF84ODg4ICAgICAgICAgICAgICAgICAgICksCiAgICBTSU1QTEVfQklMSU5FQVJfQThfTUFT
S19GQVNUX1BBVEggKE9WRVIsIGE4YjhnOHI4LCBhOGI4ZzhyOCwgbW14Xzg4ODhfOF84ODg4ICAg
ICAgICAgICAgICAgICAgICksCgogICAgeyBQSVhNQU5fT1BfTk9ORSB9LAp9OwoKcGl4bWFuX2lt
cGxlbWVudGF0aW9uX3QgKgpfcGl4bWFuX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9tbXggKHBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICpmYWxsYmFjaykKewogICAgcGl4bWFuX2ltcGxlbWVudGF0aW9u
X3QgKmltcCA9IF9waXhtYW5faW1wbGVtZW50YXRpb25fY3JlYXRlIChmYWxsYmFjaywgbW14X2Zh
c3RfcGF0aHMpOwoKICAgIGltcC0+Y29tYmluZV8zMltQSVhNQU5fT1BfT1ZFUl0gPSBtbXhfY29t
YmluZV9vdmVyX3U7CiAgICBpbXAtPmNvbWJpbmVfMzJbUElYTUFOX09QX09WRVJfUkVWRVJTRV0g
PSBtbXhfY29tYmluZV9vdmVyX3JldmVyc2VfdTsKICAgIGltcC0+Y29tYmluZV8zMltQSVhNQU5f
T1BfSU5dID0gbW14X2NvbWJpbmVfaW5fdTsKICAgIGltcC0+Y29tYmluZV8zMltQSVhNQU5fT1Bf
SU5fUkVWRVJTRV0gPSBtbXhfY29tYmluZV9pbl9yZXZlcnNlX3U7CiAgICBpbXAtPmNvbWJpbmVf
MzJbUElYTUFOX09QX09VVF0gPSBtbXhfY29tYmluZV9vdXRfdTsKICAgIGltcC0+Y29tYmluZV8z
MltQSVhNQU5fT1BfT1VUX1JFVkVSU0VdID0gbW14X2NvbWJpbmVfb3V0X3JldmVyc2VfdTsKICAg
IGltcC0+Y29tYmluZV8zMltQSVhNQU5fT1BfQVRPUF0gPSBtbXhfY29tYmluZV9hdG9wX3U7CiAg
ICBpbXAtPmNvbWJpbmVfMzJbUElYTUFOX09QX0FUT1BfUkVWRVJTRV0gPSBtbXhfY29tYmluZV9h
dG9wX3JldmVyc2VfdTsKICAgIGltcC0+Y29tYmluZV8zMltQSVhNQU5fT1BfWE9SXSA9IG1teF9j
b21iaW5lX3hvcl91OwogICAgaW1wLT5jb21iaW5lXzMyW1BJWE1BTl9PUF9BRERdID0gbW14X2Nv
bWJpbmVfYWRkX3U7CiAgICBpbXAtPmNvbWJpbmVfMzJbUElYTUFOX09QX1NBVFVSQVRFXSA9IG1t
eF9jb21iaW5lX3NhdHVyYXRlX3U7CgogICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9T
UkNdID0gbW14X2NvbWJpbmVfc3JjX2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9P
UF9PVkVSXSA9IG1teF9jb21iaW5lX292ZXJfY2E7CiAgICBpbXAtPmNvbWJpbmVfMzJfY2FbUElY
TUFOX09QX09WRVJfUkVWRVJTRV0gPSBtbXhfY29tYmluZV9vdmVyX3JldmVyc2VfY2E7CiAgICBp
bXAtPmNvbWJpbmVfMzJfY2FbUElYTUFOX09QX0lOXSA9IG1teF9jb21iaW5lX2luX2NhOwogICAg
aW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9JTl9SRVZFUlNFXSA9IG1teF9jb21iaW5lX2lu
X3JldmVyc2VfY2E7CiAgICBpbXAtPmNvbWJpbmVfMzJfY2FbUElYTUFOX09QX09VVF0gPSBtbXhf
Y29tYmluZV9vdXRfY2E7CiAgICBpbXAtPmNvbWJpbmVfMzJfY2FbUElYTUFOX09QX09VVF9SRVZF
UlNFXSA9IG1teF9jb21iaW5lX291dF9yZXZlcnNlX2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2Nh
W1BJWE1BTl9PUF9BVE9QXSA9IG1teF9jb21iaW5lX2F0b3BfY2E7CiAgICBpbXAtPmNvbWJpbmVf
MzJfY2FbUElYTUFOX09QX0FUT1BfUkVWRVJTRV0gPSBtbXhfY29tYmluZV9hdG9wX3JldmVyc2Vf
Y2E7CiAgICBpbXAtPmNvbWJpbmVfMzJfY2FbUElYTUFOX09QX1hPUl0gPSBtbXhfY29tYmluZV94
b3JfY2E7CiAgICBpbXAtPmNvbWJpbmVfMzJfY2FbUElYTUFOX09QX0FERF0gPSBtbXhfY29tYmlu
ZV9hZGRfY2E7CgogICAgaW1wLT5ibHQgPSBtbXhfYmx0OwogICAgaW1wLT5maWxsID0gbW14X2Zp
bGw7CgogICAgaW1wLT5pdGVyX2luZm8gPSBtbXhfaXRlcnM7CgogICAgcmV0dXJuIGltcDsKfQoK
I2VuZGlmIC8qIFVTRV9YODZfTU1YIHx8IFVTRV9BUk1fSVdNTVhUIHx8IFVTRV9MT09OR1NPTl9N
TUkgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299683</attachid>
            <date>2017-01-24 23:46:28 -0800</date>
            <delta_ts>2017-01-24 23:46:28 -0800</delta_ts>
            <desc>preprocessed output mentioned in build output</desc>
            <filename>ccquHCHF.out</filename>
            <type>application/octet-stream</type>
            <size>414165</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">Ly8gL3Vzci9saWIvZ2NjL2FybS1saW51eC1nbnVlYWJpaGYvNC45L2NjMSAtcXVpZXQgLUkgLiAt
SSAvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXht
YW4tMC4zMi42L3BpeG1hbiAtSSAuLiAtaW11bHRpbGliIC4gLWltdWx0aWFyY2ggYXJtLWxpbnV4
LWdudWVhYmloZiAtTUQgLmxpYnMvbGlicGl4bWFuX2l3bW14dF9sYS1waXhtYW4tbW14LmQgLU1G
IC5kZXBzL2xpYnBpeG1hbl9pd21teHRfbGEtcGl4bWFuLW1teC5UcG8gLU1QIC1NVCBsaWJwaXht
YW5faXdtbXh0X2xhLXBpeG1hbi1tbXgubG8gLUQgSEFWRV9DT05GSUdfSCAtRCBQSUMgL2hvbWUv
cGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIu
Ni9waXhtYW4vcGl4bWFuLW1teC5jIC1xdWlldCAtZHVtcGJhc2UgcGl4bWFuLW1teC5jIC1tYXJj
aD1pd21teHQyIC1tZmxvYXQtYWJpPWhhcmQgLW1mcHU9dmZwIC1tdGxzLWRpYWxlY3Q9Z251IC1h
dXhiYXNlLXN0cmlwIC5saWJzL2xpYnBpeG1hbl9pd21teHRfbGEtcGl4bWFuLW1teC5vIC1nMSAt
TzIgLVduby1lcnJvciAtV2FsbCAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2lubGlu
ZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnZpc2liaWxpdHk9aGlkZGVuIC1mbGF4LXZlY3Rvci1j
b252ZXJzaW9ucyAtZlBJQyAtbyAtIC1mcmFuZG9tLXNlZWQ9MAojIDEgIi9ob21lL3BpL3dlYmtp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFu
L3BpeG1hbi1tbXguYyIKIyAxICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzR1RLL0J1aWxkL3BpeG1hbi0wLjMyLjYvcGl4bWFuLy8iCiMgMSAiPGJ1aWx0LWluPiIKIyAx
ICI8Y29tbWFuZC1saW5lPiIKIyAxICIvdXNyL2luY2x1ZGUvc3RkYy1wcmVkZWYuaCIgMSAzIDQK
IyAxICI8Y29tbWFuZC1saW5lPiIgMgojIDEgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1tbXguYyIK
IyAzMyAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2Uv
cGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLW1teC5jIgojIDEgIi4uL2NvbmZpZy5oIiAxCiMg
MzQgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3Bp
eG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1tbXguYyIgMgoKCgoKCgoKIyAxICIvdXNyL2xpYi9n
Y2MvYXJtLWxpbnV4LWdudWVhYmloZi80LjkvaW5jbHVkZS9tbWludHJpbi5oIiAxIDMgNAojIDM4
ICIvdXNyL2xpYi9nY2MvYXJtLWxpbnV4LWdudWVhYmloZi80LjkvaW5jbHVkZS9tbWludHJpbi5o
IiAzIDQKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX19tNjQsIF9faW50NjQ7CgoKdHlwZWRl
ZiBpbnQgX192MnNpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoOCkpKTsKdHlwZWRlZiBz
aG9ydCBfX3Y0aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg4KSkpOwp0eXBlZGVmIHNp
Z25lZCBjaGFyIF9fdjhxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDgpKSk7CgoKZXh0
ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9lbXB0eSAodm9pZCkKewp9CgoKc3RhdGlj
IF9faW5saW5lIF9fbTY0Cl9tbV9jdnRzaTY0X202NCAoX19pbnQ2NCBfX2kpCnsKICByZXR1cm4g
X19pOwp9CgpzdGF0aWMgX19pbmxpbmUgX19pbnQ2NApfbW1fY3Z0bTY0X3NpNjQgKF9fbTY0IF9f
aSkKewogIHJldHVybiBfX2k7Cn0KCnN0YXRpYyBfX2lubGluZSBpbnQKX21tX2N2dHNpNjRfc2kz
MiAoX19pbnQ2NCBfX2kpCnsKICByZXR1cm4gX19pOwp9CgpzdGF0aWMgX19pbmxpbmUgX19pbnQ2
NApfbW1fY3Z0c2kzMl9zaTY0IChpbnQgX19pKQp7CiAgcmV0dXJuIChfX2kgJiAweGZmZmZmZmZm
KTsKfQoKCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9wYWNrc19waTE2IChfX202NCBfX20x
LCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93cGFja2hzcyAo
KF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX3BhY2tzX3BpMzIgKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0
KSBfX2J1aWx0aW5fYXJtX3dwYWNrd3NzICgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0K
CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fcGFja3NfcGk2NCAoX19tNjQgX19tMSwgX19t
NjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3BhY2tkc3MgKChsb25n
IGxvbmcpX19tMSwgKGxvbmcgbG9uZylfX20yKTsKfQoKCgoKc3RhdGljIF9faW5saW5lIF9fbTY0
Cl9tbV9wYWNrc19wdTE2IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93cGFja2h1cyAoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9
CgoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3BhY2tzX3B1MzIgKF9fbTY0IF9fbTEsIF9f
bTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dwYWNrd3VzICgoX192
MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1f
cGFja3NfcHU2NCAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9f
YnVpbHRpbl9hcm1fd3BhY2tkdXMgKChsb25nIGxvbmcpX19tMSwgKGxvbmcgbG9uZylfX20yKTsK
fQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3VucGFja2hpX3BpOCAoX19tNjQgX19tMSwg
X19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3VucGNraWhiICgo
X192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9t
bV91bnBhY2toaV9waTE2IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93dW5wY2tpaGggKChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsK
fQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3VucGFja2hpX3BpMzIgKF9fbTY0IF9fbTEs
IF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3d1bnBja2lodyAo
KF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApf
bW1fdW5wYWNrbG9fcGk4IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93dW5wY2tpbGIgKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsK
fQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3VucGFja2xvX3BpMTYgKF9fbTY0IF9fbTEs
IF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3d1bnBja2lsaCAo
KF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApf
bW1fdW5wYWNrbG9fcGkzMiAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19t
NjQpIF9fYnVpbHRpbl9hcm1fd3VucGNraWx3ICgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7
Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV91bnBhY2tlbF9waTggKF9fbTY0IF9fbTEp
CnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3d1bnBja2Vsc2IgKChfX3Y4cWkpX19t
MSk7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV91bnBhY2tlbF9waTE2IChfX202NCBf
X20xKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93dW5wY2tlbHNoICgoX192NGhp
KV9fbTEpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fdW5wYWNrZWxfcGkzMiAoX19t
NjQgX19tMSkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3VucGNrZWxzdyAoKF9f
djJzaSlfX20xKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3VucGFja2VoX3BpOCAo
X19tNjQgX19tMSkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3VucGNrZWhzYiAo
KF9fdjhxaSlfX20xKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3VucGFja2VoX3Bp
MTYgKF9fbTY0IF9fbTEpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3d1bnBja2Vo
c2ggKChfX3Y0aGkpX19tMSk7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV91bnBhY2tl
aF9waTMyIChfX202NCBfX20xKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93dW5w
Y2tlaHN3ICgoX192MnNpKV9fbTEpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fdW5w
YWNrZWxfcHU4IChfX202NCBfX20xKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93
dW5wY2tlbHViICgoX192OHFpKV9fbTEpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1f
dW5wYWNrZWxfcHUxNiAoX19tNjQgX19tMSkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9h
cm1fd3VucGNrZWx1aCAoKF9fdjRoaSlfX20xKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX3VucGFja2VsX3B1MzIgKF9fbTY0IF9fbTEpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0
aW5fYXJtX3d1bnBja2VsdXcgKChfX3Yyc2kpX19tMSk7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9f
bTY0Cl9tbV91bnBhY2tlaF9wdTggKF9fbTY0IF9fbTEpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1
aWx0aW5fYXJtX3d1bnBja2VodWIgKChfX3Y4cWkpX19tMSk7Cn0KCgoKc3RhdGljIF9faW5saW5l
IF9fbTY0Cl9tbV91bnBhY2tlaF9wdTE2IChfX202NCBfX20xKQp7CiAgcmV0dXJuIChfX202NCkg
X19idWlsdGluX2FybV93dW5wY2tlaHVoICgoX192NGhpKV9fbTEpOwp9CgoKCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fdW5wYWNrZWhfcHUzMiAoX19tNjQgX19tMSkKewogIHJldHVybiAoX19t
NjQpIF9fYnVpbHRpbl9hcm1fd3VucGNrZWh1dyAoKF9fdjJzaSlfX20xKTsKfQoKCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fYWRkX3BpOCAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJl
dHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2FkZGIgKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlf
X20yKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fYWRkX3BpMTYgKF9fbTY0IF9fbTEs
IF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhZGRoICgoX192
NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2Fk
ZF9waTMyIChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWls
dGluX2FybV93YWRkdyAoKF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9CgoKCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fYWRkc19waTggKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICBy
ZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhZGRic3MgKChfX3Y4cWkpX19tMSwgKF9fdjhx
aSlfX20yKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2FkZHNfcGkxNiAoX19tNjQg
X19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2FkZGhz
cyAoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202
NApfbW1fYWRkc19waTMyIChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93YWRkd3NzICgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0K
CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hZGRzX3B1OCAoX19tNjQgX19tMSwgX19tNjQg
X19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2FkZGJ1cyAoKF9fdjhxaSlf
X20xLCAoX192OHFpKV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fYWRkc19w
dTE2IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGlu
X2FybV93YWRkaHVzICgoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCgoKc3RhdGljIF9f
aW5saW5lIF9fbTY0Cl9tbV9hZGRzX3B1MzIgKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICBy
ZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhZGR3dXMgKChfX3Yyc2kpX19tMSwgKF9fdjJz
aSlfX20yKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc3ViX3BpOCAoX19tNjQgX19t
MSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3N1YmIgKChf
X3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1f
c3ViX3BpMTYgKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1
aWx0aW5fYXJtX3dzdWJoICgoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCgpzdGF0aWMg
X19pbmxpbmUgX19tNjQKX21tX3N1Yl9waTMyIChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAg
cmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c3VidyAoKF9fdjJzaSlfX20xLCAoX192MnNp
KV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc3Vic19waTggKF9fbTY0IF9f
bTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzdWJic3Mg
KChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX3N1YnNfcGkxNiAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQp
IF9fYnVpbHRpbl9hcm1fd3N1YmhzcyAoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgoK
CnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc3Vic19waTMyIChfX202NCBfX20xLCBfX202NCBf
X20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c3Vid3NzICgoX192MnNpKV9f
bTEsIChfX3Yyc2kpX19tMik7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zdWJzX3B1
OCAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9h
cm1fd3N1YmJ1cyAoKF9fdjhxaSlfX20xLCAoX192OHFpKV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fc3Vic19wdTE2IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0
dXJuIChfX202NCkgX19idWlsdGluX2FybV93c3ViaHVzICgoX192NGhpKV9fbTEsIChfX3Y0aGkp
X19tMik7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zdWJzX3B1MzIgKF9fbTY0IF9f
bTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzdWJ3dXMg
KChfX3Yyc2kpX19tMSwgKF9fdjJzaSlfX20yKTsKfQoKCgoKc3RhdGljIF9faW5saW5lIF9fbTY0
Cl9tbV9tYWRkX3BpMTYgKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0
KSBfX2J1aWx0aW5fYXJtX3dtYWRkcyAoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgoK
CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21hZGRfcHUxNiAoX19tNjQgX19tMSwgX19tNjQg
X19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21hZGR1ICgoX192NGhpKV9f
bTEsIChfX3Y0aGkpX19tMik7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9tdWxoaV9w
aTE2IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGlu
X2FybV93bXVsc20gKChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKCgpzdGF0aWMgX19p
bmxpbmUgX19tNjQKX21tX211bGhpX3B1MTYgKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICBy
ZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtdWx1bSAoKF9fdjRoaSlfX20xLCAoX192NGhp
KV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbXVsbG9fcGkxNiAoX19tNjQg
X19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd211bHVs
ICgoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX3NsbF9waTE2IChfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0
KSBfX2J1aWx0aW5fYXJtX3dzbGxoICgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fc2xsaV9waTE2IChfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAg
cmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c2xsaGkgKChfX3Y0aGkpX19tLCBfX2NvdW50
KTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc2xsX3BpMzIgKF9fbTY0IF9fbSwgX19t
NjQgX19jb3VudCkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NsbHcgKChfX3Yy
c2kpX19tLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zbGxpX3BpMzIg
KF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJt
X3dzbGx3aSAoKF9fdjJzaSlfX20sIF9fY291bnQpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0
Cl9tbV9zbGxfc2k2NCAoX19tNjQgX19tLCBfX202NCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93c2xsZCAoX19tLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5l
IF9fbTY0Cl9tbV9zbGxpX3NpNjQgKF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICByZXR1cm4g
KF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzbGxkaSAoX19tLCBfX2NvdW50KTsKfQoKCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fc3JhX3BpMTYgKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewog
IHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NyYWggKChfX3Y0aGkpX19tLCBfX2NvdW50
KTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zcmFpX3BpMTYgKF9fbTY0IF9fbSwgaW50
IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzcmFoaSAoKF9fdjRo
aSlfX20sIF9fY291bnQpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zcmFfcGkzMiAo
X19tNjQgX19tLCBfX202NCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2Fy
bV93c3JhdyAoKF9fdjJzaSlfX20sIF9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX3NyYWlfcGkzMiAoX19tNjQgX19tLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tNjQp
IF9fYnVpbHRpbl9hcm1fd3NyYXdpICgoX192MnNpKV9fbSwgX19jb3VudCk7Cn0KCgpzdGF0aWMg
X19pbmxpbmUgX19tNjQKX21tX3NyYV9zaTY0IChfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsK
ICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzcmFkIChfX20sIF9fY291bnQpOwp9Cgpz
dGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3NyYWlfc2k2NCAoX19tNjQgX19tLCBpbnQgX19jb3Vu
dCkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NyYWRpIChfX20sIF9fY291bnQp
Owp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zcmxfcGkxNiAoX19tNjQgX19tLCBfX202
NCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c3JsaCAoKF9fdjRo
aSlfX20sIF9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3NybGlfcGkxNiAo
X19tNjQgX19tLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1f
d3NybGhpICgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX3NybF9waTMyIChfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0
KSBfX2J1aWx0aW5fYXJtX3dzcmx3ICgoX192MnNpKV9fbSwgX19jb3VudCk7Cn0KCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fc3JsaV9waTMyIChfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAg
cmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c3Jsd2kgKChfX3Yyc2kpX19tLCBfX2NvdW50
KTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc3JsX3NpNjQgKF9fbTY0IF9fbSwgX19t
NjQgX19jb3VudCkKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NybGQgKF9fbSwg
X19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc3JsaV9zaTY0IChfX202NCBf
X20sIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c3JsZGkg
KF9fbSwgX19jb3VudCk7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3Jvcl9waTE2IChf
X202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJt
X3dyb3JoICgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApf
bW1fcm9yaV9waTE2IChfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX202NCkg
X19idWlsdGluX2FybV93cm9yaGkgKChfX3Y0aGkpX19tLCBfX2NvdW50KTsKfQoKCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fcm9yX3BpMzIgKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewog
IHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3JvcncgKChfX3Yyc2kpX19tLCBfX2NvdW50
KTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9yb3JpX3BpMzIgKF9fbTY0IF9fbSwgaW50
IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dyb3J3aSAoKF9fdjJz
aSlfX20sIF9fY291bnQpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9yb3Jfc2k2NCAo
X19tNjQgX19tLCBfX202NCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2Fy
bV93cm9yZCAoX19tLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9yb3Jp
X3NpNjQgKF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0
aW5fYXJtX3dyb3JkaSAoX19tLCBfX2NvdW50KTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApf
bW1fYW5kX3NpNjQgKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gX19idWlsdGlu
X2FybV93YW5kIChfX20xLCBfX20yKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2Fu
ZG5vdF9zaTY0IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9h
cm1fd2FuZG4gKF9fbTIsIF9fbTEpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9vcl9z
aTY0IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fd29y
IChfX20xLCBfX20yKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1feG9yX3NpNjQgKF9f
bTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICByZXR1cm4gX19idWlsdGluX2FybV93eG9yIChfX20x
LCBfX20yKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2NtcGVxX3BpOCAoX19tNjQg
X19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2NtcGVx
YiAoKF9fdjhxaSlfX20xLCAoX192OHFpKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX2NtcGd0X3BpOCAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQp
IF9fYnVpbHRpbl9hcm1fd2NtcGd0c2IgKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoK
c3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9jbXBndF9wdTggKF9fbTY0IF9fbTEsIF9fbTY0IF9f
bTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3djbXBndHViICgoX192OHFpKV9f
bTEsIChfX3Y4cWkpX19tMik7Cn0KCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9jbXBlcV9w
aTE2IChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGlu
X2FybV93Y21wZXFoICgoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fY21wZ3RfcGkxNiAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJl
dHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2NtcGd0c2ggKChfX3Y0aGkpX19tMSwgKF9fdjRo
aSlfX20yKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9jbXBndF9wdTE2IChfX202NCBf
X20xLCBfX202NCBfX20yKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93Y21wZ3R1
aCAoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgoKCnN0YXRpYyBfX2lubGluZSBfX202
NApfbW1fY21wZXFfcGkzMiAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19t
NjQpIF9fYnVpbHRpbl9hcm1fd2NtcGVxdyAoKF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9
CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2NtcGd0X3BpMzIgKF9fbTY0IF9fbTEsIF9fbTY0
IF9fbTIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3djbXBndHN3ICgoX192MnNp
KV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fY21wZ3Rf
cHUzMiAoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRp
bl9hcm1fd2NtcGd0dXcgKChfX3Yyc2kpX19tMSwgKF9fdjJzaSlfX20yKTsKfQoKCgpzdGF0aWMg
X19pbmxpbmUgX19tNjQKX21tX21hY19wdTE2IChfX202NCBfX0EsIF9fbTY0IF9fQiwgX19tNjQg
X19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fd21hY3UgKF9fQSwgKF9fdjRoaSlfX0IsIChf
X3Y0aGkpX19DKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21hY19waTE2IChfX202
NCBfX0EsIF9fbTY0IF9fQiwgX19tNjQgX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fd21h
Y3MgKF9fQSwgKF9fdjRoaSlfX0IsIChfX3Y0aGkpX19DKTsKfQoKCgpzdGF0aWMgX19pbmxpbmUg
X19tNjQKX21tX21hY3pfcHUxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4gX19i
dWlsdGluX2FybV93bWFjdXogKChfX3Y0aGkpX19BLCAoX192NGhpKV9fQik7Cn0KCgoKc3RhdGlj
IF9faW5saW5lIF9fbTY0Cl9tbV9tYWN6X3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAg
cmV0dXJuIF9fYnVpbHRpbl9hcm1fd21hY3N6ICgoX192NGhpKV9fQSwgKF9fdjRoaSlfX0IpOwp9
CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hY2NfcHU4IChfX202NCBfX0EpCnsKICByZXR1
cm4gX19idWlsdGluX2FybV93YWNjYiAoKF9fdjhxaSlfX0EpOwp9CgoKc3RhdGljIF9faW5saW5l
IF9fbTY0Cl9tbV9hY2NfcHUxNiAoX19tNjQgX19BKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1f
d2FjY2ggKChfX3Y0aGkpX19BKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fYWNjX3B1
MzIgKF9fbTY0IF9fQSkKewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3dhY2N3ICgoX192MnNpKV9f
QSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWlhX3NpNjQgKF9fbTY0IF9fQSwgaW50
IF9fQiwgaW50IF9fQykKewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3RtaWEgKF9fQSwgX19CLCBf
X0MpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21pYXBoX3NpNjQgKF9fbTY0IF9fQSwg
aW50IF9fQiwgaW50IF9fQykKewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3RtaWFwaCAoX19BLCBf
X0IsIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWlhYmJfc2k2NCAoX19tNjQg
X19BLCBpbnQgX19CLCBpbnQgX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdG1pYWJiIChf
X0EsIF9fQiwgX19DKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9taWFidF9zaTY0IChf
X202NCBfX0EsIGludCBfX0IsIGludCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2FybV90bWlh
YnQgKF9fQSwgX19CLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21pYXRiX3Np
NjQgKF9fbTY0IF9fQSwgaW50IF9fQiwgaW50IF9fQykKewogIHJldHVybiBfX2J1aWx0aW5fYXJt
X3RtaWF0YiAoX19BLCBfX0IsIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWlh
dHRfc2k2NCAoX19tNjQgX19BLCBpbnQgX19CLCBpbnQgX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRp
bl9hcm1fdG1pYXR0IChfX0EsIF9fQiwgX19DKTsKfQojIDgxMCAiL3Vzci9saWIvZ2NjL2FybS1s
aW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvbW1pbnRyaW4uaCIgMyA0CnN0YXRpYyBfX2lubGlu
ZSBfX202NApfbW1fbWF4X3BpOCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4gKF9f
bTY0KSBfX2J1aWx0aW5fYXJtX3dtYXhzYiAoKF9fdjhxaSlfX0EsIChfX3Y4cWkpX19CKTsKfQoK
CnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWF4X3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19C
KQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93bWF4c2ggKChfX3Y0aGkpX19BLCAo
X192NGhpKV9fQik7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21heF9waTMyIChfX202
NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21heHN3
ICgoX192MnNpKV9fQSwgKF9fdjJzaSlfX0IpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9t
bV9tYXhfcHU4IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiAoX19tNjQpIF9fYnVp
bHRpbl9hcm1fd21heHViICgoX192OHFpKV9fQSwgKF9fdjhxaSlfX0IpOwp9CgoKc3RhdGljIF9f
aW5saW5lIF9fbTY0Cl9tbV9tYXhfcHUxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1
cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtYXh1aCAoKF9fdjRoaSlfX0EsIChfX3Y0aGkpX19C
KTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWF4X3B1MzIgKF9fbTY0IF9fQSwgX19t
NjQgX19CKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93bWF4dXcgKChfX3Yyc2kp
X19BLCAoX192MnNpKV9fQik7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21pbl9waTgg
KF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93
bWluc2IgKChfX3Y4cWkpX19BLCAoX192OHFpKV9fQik7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19t
NjQKX21tX21pbl9waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiAoX19tNjQp
IF9fYnVpbHRpbl9hcm1fd21pbnNoICgoX192NGhpKV9fQSwgKF9fdjRoaSlfX0IpOwp9CgoKc3Rh
dGljIF9faW5saW5lIF9fbTY0Cl9tbV9taW5fcGkzMiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsK
ICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtaW5zdyAoKF9fdjJzaSlfX0EsIChfX3Yy
c2kpX19CKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWluX3B1OCAoX19tNjQgX19B
LCBfX202NCBfX0IpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtaW51YiAoKF9f
djhxaSlfX0EsIChfX3Y4cWkpX19CKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWlu
X3B1MTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGlu
X2FybV93bWludWggKChfX3Y0aGkpX19BLCAoX192NGhpKV9fQik7Cn0KCgpzdGF0aWMgX19pbmxp
bmUgX19tNjQKX21tX21pbl9wdTMyIChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiAo
X19tNjQpIF9fYnVpbHRpbl9hcm1fd21pbnV3ICgoX192MnNpKV9fQSwgKF9fdjJzaSlfX0IpOwp9
CgoKc3RhdGljIF9faW5saW5lIGludApfbW1fbW92ZW1hc2tfcGk4IChfX202NCBfX0EpCnsKICBy
ZXR1cm4gX19idWlsdGluX2FybV90bW92bXNrYiAoKF9fdjhxaSlfX0EpOwp9CgoKc3RhdGljIF9f
aW5saW5lIGludApfbW1fbW92ZW1hc2tfcGkxNiAoX19tNjQgX19BKQp7CiAgcmV0dXJuIF9fYnVp
bHRpbl9hcm1fdG1vdm1za2ggKChfX3Y0aGkpX19BKTsKfQoKCnN0YXRpYyBfX2lubGluZSBpbnQK
X21tX21vdmVtYXNrX3BpMzIgKF9fbTY0IF9fQSkKewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Rt
b3Ztc2t3ICgoX192MnNpKV9fQSk7Cn0KIyA5MjEgIi91c3IvbGliL2djYy9hcm0tbGludXgtZ251
ZWFiaWhmLzQuOS9pbmNsdWRlL21taW50cmluLmgiIDMgNApzdGF0aWMgX19pbmxpbmUgX19tNjQK
X21tX2F2Z19wdTggKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIChfX202NCkgX19i
dWlsdGluX2FybV93YXZnMmJyICgoX192OHFpKV9fQSwgKF9fdjhxaSlfX0IpOwp9CgoKc3RhdGlj
IF9faW5saW5lIF9fbTY0Cl9tbV9hdmdfcHUxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBy
ZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhdmcyaHIgKChfX3Y0aGkpX19BLCAoX192NGhp
KV9fQik7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2F2ZzJfcHU4IChfX202NCBfX0Es
IF9fbTY0IF9fQikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2F2ZzJiICgoX192
OHFpKV9fQSwgKF9fdjhxaSlfX0IpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hdmcy
X3B1MTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGlu
X2FybV93YXZnMmggKChfX3Y0aGkpX19BLCAoX192NGhpKV9fQik7Cn0KCgoKCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fc2FkX3B1OCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4g
KF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzYWRieiAoKF9fdjhxaSlfX0EsIChfX3Y4cWkpX19CKTsK
fQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zYWRhX3B1OCAoX19tNjQgX19BLCBfX202NCBf
X0IsIF9fbTY0IF9fQykKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NhZGIgKChf
X3Yyc2kpX19BLCAoX192OHFpKV9fQiwgKF9fdjhxaSlfX0MpOwp9CgoKCgpzdGF0aWMgX19pbmxp
bmUgX19tNjQKX21tX3NhZF9wdTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiAo
X19tNjQpIF9fYnVpbHRpbl9hcm1fd3NhZGh6ICgoX192NGhpKV9fQSwgKF9fdjRoaSlfX0IpOwp9
CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3NhZGFfcHUxNiAoX19tNjQgX19BLCBfX202NCBf
X0IsIF9fbTY0IF9fQykKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NhZGggKChf
X3Yyc2kpX19BLCAoX192NGhpKV9fQiwgKF9fdjRoaSlfX0MpOwp9CgoKCgoKc3RhdGljIF9faW5s
aW5lIF9fbTY0Cl9tbV9zYWR6X3B1OCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4g
KF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dzYWRieiAoKF9fdjhxaSlfX0EsIChfX3Y4cWkpX19CKTsK
fQoKCgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zYWR6X3B1MTYgKF9fbTY0IF9fQSwgX19t
NjQgX19CKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93c2FkaHogKChfX3Y0aGkp
X19BLCAoX192NGhpKV9fQik7Cn0KCgoKCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX3NldHpl
cm9fc2k2NCAodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3d6ZXJvICgpOwp9CgoKCgoK
c3RhdGljIF9faW5saW5lIHZvaWQKX21tX3NldHdjeCAoY29uc3QgaW50IF9fdmFsdWUsIGNvbnN0
IGludCBfX3JlZ25vKQp7CiAgc3dpdGNoIChfX3JlZ25vKQogICAgewogICAgY2FzZSAwOgogICAg
ICBfX2FzbSBfX3ZvbGF0aWxlICgidG1jciB3Y2lkLCAlMCIgOjogInIiKF9fdmFsdWUpKTsKICAg
ICAgYnJlYWs7CiAgICBjYXNlIDE6CiAgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJ0bWNyIHdjb24s
ICUwIiA6OiAiciIoX192YWx1ZSkpOwogICAgICBicmVhazsKICAgIGNhc2UgMjoKICAgICAgX19h
c20gX192b2xhdGlsZSAoInRtY3Igd2Nzc2YsICUwIiA6OiAiciIoX192YWx1ZSkpOwogICAgICBi
cmVhazsKICAgIGNhc2UgMzoKICAgICAgX19hc20gX192b2xhdGlsZSAoInRtY3Igd2Nhc2YsICUw
IiA6OiAiciIoX192YWx1ZSkpOwogICAgICBicmVhazsKICAgIGNhc2UgODoKICAgICAgX19idWls
dGluX2FybV9zZXR3Y2dyMCAoX192YWx1ZSk7CiAgICAgIGJyZWFrOwogICAgY2FzZSA5OgogICAg
ICBfX2J1aWx0aW5fYXJtX3NldHdjZ3IxIChfX3ZhbHVlKTsKICAgICAgYnJlYWs7CiAgICBjYXNl
IDEwOgogICAgICBfX2J1aWx0aW5fYXJtX3NldHdjZ3IyIChfX3ZhbHVlKTsKICAgICAgYnJlYWs7
CiAgICBjYXNlIDExOgogICAgICBfX2J1aWx0aW5fYXJtX3NldHdjZ3IzIChfX3ZhbHVlKTsKICAg
ICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICBicmVhazsKICAgIH0KfQoKc3RhdGljIF9faW5s
aW5lIGludApfbW1fZ2V0d2N4IChjb25zdCBpbnQgX19yZWdubykKewogIGludCBfX3ZhbHVlOwog
IHN3aXRjaCAoX19yZWdubykKICAgIHsKICAgIGNhc2UgMDoKICAgICAgX19hc20gX192b2xhdGls
ZSAoInRtcmMgJTAsIHdjaWQiIDogIj1yIihfX3ZhbHVlKSk7CiAgICAgIGJyZWFrOwogICAgY2Fz
ZSAxOgogICAgICBfX2FzbSBfX3ZvbGF0aWxlICgidG1yYyAlMCwgd2NvbiIgOiAiPXIiKF9fdmFs
dWUpKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDI6CiAgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJ0
bXJjICUwLCB3Y3NzZiIgOiAiPXIiKF9fdmFsdWUpKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDM6
CiAgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJ0bXJjICUwLCB3Y2FzZiIgOiAiPXIiKF9fdmFsdWUp
KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDg6CiAgICAgIHJldHVybiBfX2J1aWx0aW5fYXJtX2dl
dHdjZ3IwICgpOwogICAgY2FzZSA5OgogICAgICByZXR1cm4gX19idWlsdGluX2FybV9nZXR3Y2dy
MSAoKTsKICAgIGNhc2UgMTA6CiAgICAgIHJldHVybiBfX2J1aWx0aW5fYXJtX2dldHdjZ3IyICgp
OwogICAgY2FzZSAxMToKICAgICAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZ2V0d2NncjMgKCk7CiAg
ICBkZWZhdWx0OgogICAgICBicmVhazsKICAgIH0KICByZXR1cm4gX192YWx1ZTsKfQoKCnN0YXRp
YyBfX2lubGluZSBfX202NApfbW1fc2V0X3BpMzIgKGludCBfX2kxLCBpbnQgX19pMCkKewogIHVu
aW9uCiAgewogICAgX19tNjQgX19xOwogICAgc3RydWN0CiAgICB7CiAgICAgIHVuc2lnbmVkIGlu
dCBfX2kwOwogICAgICB1bnNpZ25lZCBpbnQgX19pMTsKICAgIH0gX19zOwogIH0gX191OwoKICBf
X3UuX19zLl9faTAgPSBfX2kwOwogIF9fdS5fX3MuX19pMSA9IF9faTE7CgogIHJldHVybiBfX3Uu
X19xOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zZXRfcGkxNiAoc2hvcnQgX193Mywg
c2hvcnQgX193Miwgc2hvcnQgX193MSwgc2hvcnQgX193MCkKewogIHVuc2lnbmVkIGludCBfX2kx
ID0gKHVuc2lnbmVkIHNob3J0KSBfX3czIDw8IDE2IHwgKHVuc2lnbmVkIHNob3J0KSBfX3cyOwog
IHVuc2lnbmVkIGludCBfX2kwID0gKHVuc2lnbmVkIHNob3J0KSBfX3cxIDw8IDE2IHwgKHVuc2ln
bmVkIHNob3J0KSBfX3cwOwoKICByZXR1cm4gX21tX3NldF9waTMyIChfX2kxLCBfX2kwKTsKfQoK
CnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc2V0X3BpOCAoY2hhciBfX2I3LCBjaGFyIF9fYjYs
IGNoYXIgX19iNSwgY2hhciBfX2I0LAogICAgICBjaGFyIF9fYjMsIGNoYXIgX19iMiwgY2hhciBf
X2IxLCBjaGFyIF9fYjApCnsKICB1bnNpZ25lZCBpbnQgX19pMSwgX19pMDsKCiAgX19pMSA9ICh1
bnNpZ25lZCBjaGFyKV9fYjc7CiAgX19pMSA9IF9faTEgPDwgOCB8ICh1bnNpZ25lZCBjaGFyKV9f
YjY7CiAgX19pMSA9IF9faTEgPDwgOCB8ICh1bnNpZ25lZCBjaGFyKV9fYjU7CiAgX19pMSA9IF9f
aTEgPDwgOCB8ICh1bnNpZ25lZCBjaGFyKV9fYjQ7CgogIF9faTAgPSAodW5zaWduZWQgY2hhcilf
X2IzOwogIF9faTAgPSBfX2kwIDw8IDggfCAodW5zaWduZWQgY2hhcilfX2IyOwogIF9faTAgPSBf
X2kwIDw8IDggfCAodW5zaWduZWQgY2hhcilfX2IxOwogIF9faTAgPSBfX2kwIDw8IDggfCAodW5z
aWduZWQgY2hhcilfX2IwOwoKICByZXR1cm4gX21tX3NldF9waTMyIChfX2kxLCBfX2kwKTsKfQoK
CnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc2V0cl9waTMyIChpbnQgX19pMCwgaW50IF9faTEp
CnsKICByZXR1cm4gX21tX3NldF9waTMyIChfX2kxLCBfX2kwKTsKfQoKc3RhdGljIF9faW5saW5l
IF9fbTY0Cl9tbV9zZXRyX3BpMTYgKHNob3J0IF9fdzAsIHNob3J0IF9fdzEsIHNob3J0IF9fdzIs
IHNob3J0IF9fdzMpCnsKICByZXR1cm4gX21tX3NldF9waTE2IChfX3czLCBfX3cyLCBfX3cxLCBf
X3cwKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zZXRyX3BpOCAoY2hhciBfX2IwLCBj
aGFyIF9fYjEsIGNoYXIgX19iMiwgY2hhciBfX2IzLAogICAgICAgY2hhciBfX2I0LCBjaGFyIF9f
YjUsIGNoYXIgX19iNiwgY2hhciBfX2I3KQp7CiAgcmV0dXJuIF9tbV9zZXRfcGk4IChfX2I3LCBf
X2I2LCBfX2I1LCBfX2I0LCBfX2IzLCBfX2IyLCBfX2IxLCBfX2IwKTsKfQoKCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fc2V0MV9waTMyIChpbnQgX19pKQp7CiAgcmV0dXJuIF9tbV9zZXRfcGkz
MiAoX19pLCBfX2kpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9zZXQxX3BpMTYgKHNo
b3J0IF9fdykKewogIHVuc2lnbmVkIGludCBfX2kgPSAodW5zaWduZWQgc2hvcnQpX193IDw8IDE2
IHwgKHVuc2lnbmVkIHNob3J0KV9fdzsKICByZXR1cm4gX21tX3NldDFfcGkzMiAoX19pKTsKfQoK
CnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fc2V0MV9waTggKGNoYXIgX19iKQp7CiAgdW5zaWdu
ZWQgaW50IF9fdyA9ICh1bnNpZ25lZCBjaGFyKV9fYiA8PCA4IHwgKHVuc2lnbmVkIGNoYXIpX19i
OwogIHVuc2lnbmVkIGludCBfX2kgPSBfX3cgPDwgMTYgfCBfX3c7CiAgcmV0dXJuIF9tbV9zZXQx
X3BpMzIgKF9faSk7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2Fic19waTggKF9fbTY0
IG0xKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93YWJzYiAoKF9fdjhxaSltMSk7
Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fYWJzX3BpMTYgKF9fbTY0IG0xKQp7CiAgcmV0
dXJuIChfX202NCkgX19idWlsdGluX2FybV93YWJzaCAoKF9fdjRoaSltMSk7Cgp9CgpzdGF0aWMg
X19pbmxpbmUgX19tNjQKX21tX2Fic19waTMyIChfX202NCBtMSkKewogIHJldHVybiAoX19tNjQp
IF9fYnVpbHRpbl9hcm1fd2Fic3cgKChfX3Yyc2kpbTEpOwoKfQoKc3RhdGljIF9faW5saW5lIF9f
bTY0Cl9tbV9hZGRzdWJoeF9waTE2IChfX202NCBhLCBfX202NCBiKQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93YWRkc3ViaHggKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoKc3Rh
dGljIF9faW5saW5lIF9fbTY0Cl9tbV9hYnNkaWZmX3B1OCAoX19tNjQgYSwgX19tNjQgYikKewog
IHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2Fic2RpZmZiICgoX192OHFpKWEsIChfX3Y4
cWkpYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fYWJzZGlmZl9wdTE2IChfX202NCBh
LCBfX202NCBiKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93YWJzZGlmZmggKChf
X3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hYnNkaWZm
X3B1MzIgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJt
X3dhYnNkaWZmdyAoKF9fdjJzaSlhLCAoX192MnNpKWIpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19t
NjQKX21tX2FkZGNfcHUxNiAoX19tNjQgYSwgX19tNjQgYikKewogIF9fbTY0IHJlc3VsdDsKICBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIndhZGRoYwklMCwgJTEsICUyIiA6ICI9eSIgKHJlc3VsdCkg
OiAieSIgKGEpLCAieSIgKGIpKTsKICByZXR1cm4gcmVzdWx0Owp9CgpzdGF0aWMgX19pbmxpbmUg
X19tNjQKX21tX2FkZGNfcHUzMiAoX19tNjQgYSwgX19tNjQgYikKewogIF9fbTY0IHJlc3VsdDsK
ICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIndhZGR3YwklMCwgJTEsICUyIiA6ICI9eSIgKHJlc3Vs
dCkgOiAieSIgKGEpLCAieSIgKGIpKTsKICByZXR1cm4gcmVzdWx0Owp9CgpzdGF0aWMgX19pbmxp
bmUgX19tNjQKX21tX2F2ZzRfcHU4IChfX202NCBhLCBfX202NCBiKQp7CiAgcmV0dXJuIChfX202
NCkgX19idWlsdGluX2FybV93YXZnNCAoKF9fdjhxaSlhLCAoX192OHFpKWIpOwp9CgpzdGF0aWMg
X19pbmxpbmUgX19tNjQKX21tX2F2ZzRyX3B1OCAoX19tNjQgYSwgX19tNjQgYikKewogIHJldHVy
biAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2F2ZzRyICgoX192OHFpKWEsIChfX3Y4cWkpYik7Cn0K
CnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbWFkZHhfcGkxNiAoX19tNjQgYSwgX19tNjQgYikK
ewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21hZGRzeCAoKF9fdjRoaSlhLCAoX192
NGhpKWIpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX21hZGR4X3B1MTYgKF9fbTY0IGEs
IF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtYWRkdXggKChfX3Y0
aGkpYSwgKF9fdjRoaSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9tc3ViX3BpMTYg
KF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtYWRk
c24gKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9t
c3ViX3B1MTYgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5f
YXJtX3dtYWRkdW4gKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9f
bTY0Cl9tbV9tdWxoaV9waTMyIChfX202NCBhLCBfX202NCBiKQp7CiAgcmV0dXJuIChfX202NCkg
X19idWlsdGluX2FybV93bXVsd3NtICgoX192MnNpKWEsIChfX3Yyc2kpYik7Cn0KCnN0YXRpYyBf
X2lubGluZSBfX202NApfbW1fbXVsaGlfcHUzMiAoX19tNjQgYSwgX19tNjQgYikKewogIHJldHVy
biAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd211bHd1bSAoKF9fdjJzaSlhLCAoX192MnNpKWIpOwp9
CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX211bGhpcl9waTE2IChfX202NCBhLCBfX202NCBi
KQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93bXVsc21yICgoX192NGhpKWEsIChf
X3Y0aGkpYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbXVsaGlyX3BpMzIgKF9fbTY0
IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtdWx3c21yICgo
X192MnNpKWEsIChfX3Yyc2kpYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fbXVsaGly
X3B1MTYgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJt
X3dtdWx1bXIgKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0
Cl9tbV9tdWxoaXJfcHUzMiAoX19tNjQgYSwgX19tNjQgYikKewogIHJldHVybiAoX19tNjQpIF9f
YnVpbHRpbl9hcm1fd211bHd1bXIgKChfX3Yyc2kpYSwgKF9fdjJzaSliKTsKfQoKc3RhdGljIF9f
aW5saW5lIF9fbTY0Cl9tbV9tdWxsb19waTMyIChfX202NCBhLCBfX202NCBiKQp7CiAgcmV0dXJu
IChfX202NCkgX19idWlsdGluX2FybV93bXVsd2wgKChfX3Yyc2kpYSwgKF9fdjJzaSliKTsKfQoK
c3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9xbXVsbV9waTE2IChfX202NCBhLCBfX202NCBiKQp7
CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93cW11bG0gKChfX3Y0aGkpYSwgKF9fdjRo
aSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9xbXVsbV9waTMyIChfX202NCBhLCBf
X202NCBiKQp7CiAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93cW11bHdtICgoX192MnNp
KWEsIChfX3Yyc2kpYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX202NApfbW1fcW11bG1yX3BpMTYg
KF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dxbXVs
bXIgKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9x
bXVsbXJfcGkzMiAoX19tNjQgYSwgX19tNjQgYikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRp
bl9hcm1fd3FtdWx3bXIgKChfX3Yyc2kpYSwgKF9fdjJzaSliKTsKfQoKc3RhdGljIF9faW5saW5l
IF9fbTY0Cl9tbV9zdWJhZGRoeF9waTE2IChfX202NCBhLCBfX202NCBiKQp7CiAgcmV0dXJuIChf
X202NCkgX19idWlsdGluX2FybV93c3ViYWRkaHggKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKfQoK
c3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hZGRiaHVzbF9wdTggKF9fbTY0IGEsIF9fbTY0IGIp
CnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhZGRiaHVzbCAoKF9fdjRoaSlhLCAo
X192OHFpKWIpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNjQKX21tX2FkZGJodXNtX3B1OCAoX19t
NjQgYSwgX19tNjQgYikKewogIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2FkZGJodXNt
ICgoX192NGhpKWEsIChfX3Y4cWkpYik7Cn0KIyAxNTc3ICIvdXNyL2xpYi9nY2MvYXJtLWxpbnV4
LWdudWVhYmloZi80LjkvaW5jbHVkZS9tbWludHJpbi5oIiAzIDQKc3RhdGljIF9faW5saW5lIF9f
bTY0Cl9tbV9hbGlnbnIwX3NpNjQgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0
KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIwICgoX192OHFpKSBhLCAoX192OHFpKSBiKTsKfQoKc3Rh
dGljIF9faW5saW5lIF9fbTY0Cl9tbV9hbGlnbnIxX3NpNjQgKF9fbTY0IGEsIF9fbTY0IGIpCnsK
ICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIxICgoX192OHFpKSBhLCAoX192
OHFpKSBiKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hbGlnbnIyX3NpNjQgKF9fbTY0
IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIyICgo
X192OHFpKSBhLCAoX192OHFpKSBiKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTY0Cl9tbV9hbGln
bnIzX3NpNjQgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5f
YXJtX3dhbGlnbnIzICgoX192OHFpKSBhLCAoX192OHFpKSBiKTsKfQoKc3RhdGljIF9faW5saW5l
IHZvaWQKX21tX3RhbmRjYiAoKQp7CiAgX19hc20gX192b2xhdGlsZSAoInRhbmRjYiByMTUiKTsK
fQoKc3RhdGljIF9faW5saW5lIHZvaWQKX21tX3RhbmRjaCAoKQp7CiAgX19hc20gX192b2xhdGls
ZSAoInRhbmRjaCByMTUiKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQKX21tX3RhbmRjdyAoKQp7
CiAgX19hc20gX192b2xhdGlsZSAoInRhbmRjdyByMTUiKTsKfQojIDE2MzcgIi91c3IvbGliL2dj
Yy9hcm0tbGludXgtZ251ZWFiaWhmLzQuOS9pbmNsdWRlL21taW50cmluLmgiIDMgNApzdGF0aWMg
X19pbmxpbmUgdm9pZApfbW1fdG9yY2IgKCkKewogIF9fYXNtIF9fdm9sYXRpbGUgKCJ0b3JjYiBy
MTUiKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQKX21tX3RvcmNoICgpCnsKICBfX2FzbSBfX3Zv
bGF0aWxlICgidG9yY2ggcjE1Iik7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkCl9tbV90b3JjdyAo
KQp7CiAgX19hc20gX192b2xhdGlsZSAoInRvcmN3IHIxNSIpOwp9CgoKc3RhdGljIF9faW5saW5l
IHZvaWQKX21tX3RvcnZzY2IgKCkKewogIF9fYXNtIF9fdm9sYXRpbGUgKCJ0b3J2c2NiIHIxNSIp
Owp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZApfbW1fdG9ydnNjaCAoKQp7CiAgX19hc20gX192b2xh
dGlsZSAoInRvcnZzY2ggcjE1Iik7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkCl9tbV90b3J2c2N3
ICgpCnsKICBfX2FzbSBfX3ZvbGF0aWxlICgidG9ydnNjdyByMTUiKTsKfQoKCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fdGJjc3RfcGk4IChpbnQgdmFsdWUpCnsKICByZXR1cm4gKF9fbTY0KSBf
X2J1aWx0aW5fYXJtX3RiY3N0YiAoKHNpZ25lZCBjaGFyKSB2YWx1ZSk7Cn0KCnN0YXRpYyBfX2lu
bGluZSBfX202NApfbW1fdGJjc3RfcGkxNiAoaW50IHZhbHVlKQp7CiAgcmV0dXJuIChfX202NCkg
X19idWlsdGluX2FybV90YmNzdGggKChzaG9ydCkgdmFsdWUpOwp9CgpzdGF0aWMgX19pbmxpbmUg
X19tNjQKX21tX3RiY3N0X3BpMzIgKGludCB2YWx1ZSkKewogIHJldHVybiAoX19tNjQpIF9fYnVp
bHRpbl9hcm1fdGJjc3R3ICh2YWx1ZSk7Cn0KIyA0MiAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLW1t
eC5jIiAyCgojIDEgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsv
U291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiIDEKIyAxICIvdXNy
L2xpYi9nY2MvYXJtLWxpbnV4LWdudWVhYmloZi80LjkvaW5jbHVkZS9mbG9hdC5oIiAxIDMgNAoj
IDIgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3Bp
eG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiIDIKIyAyNyAiL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXht
YW4vcGl4bWFuLXByaXZhdGUuaCIKIyAxICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4uaCIgMQojIDcy
ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXht
YW4tMC4zMi42L3BpeG1hbi9waXhtYW4uaCIKIyAxICIuL3BpeG1hbi12ZXJzaW9uLmgiIDEKIyA3
MyAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4
bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLmgiIDIKIyA4MiAiL2hvbWUvcGkvd2Via2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFu
LmgiCgojIDEwNSAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLmgiCiMgMSAiL3Vzci9saWIvZ2NjL2Fy
bS1saW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvc3RkaW50LmgiIDEgMyA0CiMgOSAiL3Vzci9s
aWIvZ2NjL2FybS1saW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvc3RkaW50LmgiIDMgNAojIDEg
Ii91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMSAzIDQKIyAyNSAiL3Vzci9pbmNsdWRlL3N0ZGludC5o
IiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzIDQKIyAzNzQgIi91c3IvaW5j
bHVkZS9mZWF0dXJlcy5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmlo
Zi9zeXMvY2RlZnMuaCIgMSAzIDQKIyAzODUgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFi
aWhmL3N5cy9jZGVmcy5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmlo
Zi9iaXRzL3dvcmRzaXplLmgiIDEgMyA0CiMgMzg2ICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdu
dWVhYmloZi9zeXMvY2RlZnMuaCIgMiAzIDQKIyAzNzUgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5o
IiAyIDMgNAojIDM5OCAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMgNAojIDEgIi91c3IvaW5j
bHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2dudS9zdHVicy5oIiAxIDMgNAojIDEwICIvdXNyL2lu
Y2x1ZGUvYXJtLWxpbnV4LWdudWVhYmloZi9nbnUvc3R1YnMuaCIgMyA0CiMgMSAiL3Vzci9pbmNs
dWRlL2FybS1saW51eC1nbnVlYWJpaGYvZ251L3N0dWJzLWhhcmQuaCIgMSAzIDQKIyAxMSAiL3Vz
ci9pbmNsdWRlL2FybS1saW51eC1nbnVlYWJpaGYvZ251L3N0dWJzLmgiIDIgMyA0CiMgMzk5ICIv
dXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzIDQKIyAyNiAiL3Vzci9pbmNsdWRlL3N0ZGludC5o
IiAyIDMgNAojIDEgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvd2NoYXIu
aCIgMSAzIDQKIyAyNyAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAyIDMgNAojIDEgIi91c3IvaW5j
bHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvd29yZHNpemUuaCIgMSAzIDQKIyAyOCAiL3Vz
ci9pbmNsdWRlL3N0ZGludC5oIiAyIDMgNAojIDM2ICIvdXNyL2luY2x1ZGUvc3RkaW50LmgiIDMg
NAp0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhfdDsKdHlwZWRlZiBzaG9ydCBpbnQgaW50MTZfdDsK
dHlwZWRlZiBpbnQgaW50MzJfdDsKCgoKX19leHRlbnNpb25fXwp0eXBlZGVmIGxvbmcgbG9uZyBp
bnQgaW50NjRfdDsKCgoKCnR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50OF90Owp0eXBlZGVmIHVu
c2lnbmVkIHNob3J0IGludCB1aW50MTZfdDsKCnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnQzMl90
OwoKCgoKCl9fZXh0ZW5zaW9uX18KdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnQ2
NF90OwoKCgoKCgp0eXBlZGVmIHNpZ25lZCBjaGFyIGludF9sZWFzdDhfdDsKdHlwZWRlZiBzaG9y
dCBpbnQgaW50X2xlYXN0MTZfdDsKdHlwZWRlZiBpbnQgaW50X2xlYXN0MzJfdDsKCgoKX19leHRl
bnNpb25fXwp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgaW50X2xlYXN0NjRfdDsKCgoKdHlwZWRlZiB1
bnNpZ25lZCBjaGFyIHVpbnRfbGVhc3Q4X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVp
bnRfbGVhc3QxNl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50X2xlYXN0MzJfdDsKCgoKX19l
eHRlbnNpb25fXwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludF9sZWFzdDY0X3Q7
CgoKCgoKCnR5cGVkZWYgc2lnbmVkIGNoYXIgaW50X2Zhc3Q4X3Q7CgoKCgoKdHlwZWRlZiBpbnQg
aW50X2Zhc3QxNl90Owp0eXBlZGVmIGludCBpbnRfZmFzdDMyX3Q7Cl9fZXh0ZW5zaW9uX18KdHlw
ZWRlZiBsb25nIGxvbmcgaW50IGludF9mYXN0NjRfdDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFy
IHVpbnRfZmFzdDhfdDsKCgoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50X2Zhc3QxNl90Owp0
eXBlZGVmIHVuc2lnbmVkIGludCB1aW50X2Zhc3QzMl90OwpfX2V4dGVuc2lvbl9fCnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBsb25nIGludCB1aW50X2Zhc3Q2NF90OwojIDEyNSAiL3Vzci9pbmNsdWRl
L3N0ZGludC5oIiAzIDQKdHlwZWRlZiBpbnQgaW50cHRyX3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgdWludHB0cl90OwojIDEzNyAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAzIDQKX19leHRlbnNp
b25fXwp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgaW50bWF4X3Q7Cl9fZXh0ZW5zaW9uX18KdHlwZWRl
ZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnRtYXhfdDsKIyAxMCAiL3Vzci9saWIvZ2NjL2Fy
bS1saW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvc3RkaW50LmgiIDIgMyA0CiMgMTA2ICIvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4z
Mi42L3BpeG1hbi9waXhtYW4uaCIgMgoKCgoKCgoKdHlwZWRlZiBpbnQgcGl4bWFuX2Jvb2xfdDsK
CgoKCnR5cGVkZWYgaW50NjRfdCBwaXhtYW5fZml4ZWRfMzJfMzJfdDsKdHlwZWRlZiBwaXhtYW5f
Zml4ZWRfMzJfMzJfdCBwaXhtYW5fZml4ZWRfNDhfMTZfdDsKdHlwZWRlZiB1aW50MzJfdCBwaXht
YW5fZml4ZWRfMV8zMV90Owp0eXBlZGVmIHVpbnQzMl90IHBpeG1hbl9maXhlZF8xXzE2X3Q7CnR5
cGVkZWYgaW50MzJfdCBwaXhtYW5fZml4ZWRfMTZfMTZfdDsKdHlwZWRlZiBwaXhtYW5fZml4ZWRf
MTZfMTZfdCBwaXhtYW5fZml4ZWRfdDsKIyAxNDQgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi5oIgp0
eXBlZGVmIHN0cnVjdCBwaXhtYW5fY29sb3IgcGl4bWFuX2NvbG9yX3Q7CnR5cGVkZWYgc3RydWN0
IHBpeG1hbl9wb2ludF9maXhlZCBwaXhtYW5fcG9pbnRfZml4ZWRfdDsKdHlwZWRlZiBzdHJ1Y3Qg
cGl4bWFuX2xpbmVfZml4ZWQgcGl4bWFuX2xpbmVfZml4ZWRfdDsKdHlwZWRlZiBzdHJ1Y3QgcGl4
bWFuX3ZlY3RvciBwaXhtYW5fdmVjdG9yX3Q7CnR5cGVkZWYgc3RydWN0IHBpeG1hbl90cmFuc2Zv
cm0gcGl4bWFuX3RyYW5zZm9ybV90OwoKc3RydWN0IHBpeG1hbl9jb2xvcgp7CiAgICB1aW50MTZf
dCByZWQ7CiAgICB1aW50MTZfdCBncmVlbjsKICAgIHVpbnQxNl90IGJsdWU7CiAgICB1aW50MTZf
dCBhbHBoYTsKfTsKCnN0cnVjdCBwaXhtYW5fcG9pbnRfZml4ZWQKewogICAgcGl4bWFuX2ZpeGVk
X3QgeDsKICAgIHBpeG1hbl9maXhlZF90IHk7Cn07CgpzdHJ1Y3QgcGl4bWFuX2xpbmVfZml4ZWQK
ewogICAgcGl4bWFuX3BvaW50X2ZpeGVkX3QgcDEsIHAyOwp9OwoKCgoKCnN0cnVjdCBwaXhtYW5f
dmVjdG9yCnsKICAgIHBpeG1hbl9maXhlZF90IHZlY3RvclszXTsKfTsKCnN0cnVjdCBwaXhtYW5f
dHJhbnNmb3JtCnsKICAgIHBpeG1hbl9maXhlZF90IG1hdHJpeFszXVszXTsKfTsKCgpzdHJ1Y3Qg
cGl4bWFuX2JveDE2Owp0eXBlZGVmIHVuaW9uIHBpeG1hbl9pbWFnZSBwaXhtYW5faW1hZ2VfdDsK
CnZvaWQgcGl4bWFuX3RyYW5zZm9ybV9pbml0X2lkZW50aXR5IChzdHJ1Y3QgcGl4bWFuX3RyYW5z
Zm9ybSAqbWF0cml4KTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fdHJhbnNmb3JtX3BvaW50XzNkIChj
b25zdCBzdHJ1Y3QgcGl4bWFuX3RyYW5zZm9ybSAqdHJhbnNmb3JtLAogICAgICAgc3RydWN0IHBp
eG1hbl92ZWN0b3IgKnZlY3Rvcik7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3RyYW5zZm9ybV9wb2lu
dCAoY29uc3Qgc3RydWN0IHBpeG1hbl90cmFuc2Zvcm0gKnRyYW5zZm9ybSwKICAgICAgIHN0cnVj
dCBwaXhtYW5fdmVjdG9yICp2ZWN0b3IpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl90cmFuc2Zvcm1f
bXVsdGlwbHkgKHN0cnVjdCBwaXhtYW5fdHJhbnNmb3JtICpkc3QsCiAgICAgICBjb25zdCBzdHJ1
Y3QgcGl4bWFuX3RyYW5zZm9ybSAqbCwKICAgICAgIGNvbnN0IHN0cnVjdCBwaXhtYW5fdHJhbnNm
b3JtICpyKTsKdm9pZCBwaXhtYW5fdHJhbnNmb3JtX2luaXRfc2NhbGUgKHN0cnVjdCBwaXhtYW5f
dHJhbnNmb3JtICp0LAogICAgICAgcGl4bWFuX2ZpeGVkX3Qgc3gsCiAgICAgICBwaXhtYW5fZml4
ZWRfdCBzeSk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3RyYW5zZm9ybV9zY2FsZSAoc3RydWN0IHBp
eG1hbl90cmFuc2Zvcm0gKmZvcndhcmQsCiAgICAgICBzdHJ1Y3QgcGl4bWFuX3RyYW5zZm9ybSAq
cmV2ZXJzZSwKICAgICAgIHBpeG1hbl9maXhlZF90IHN4LAogICAgICAgcGl4bWFuX2ZpeGVkX3Qg
c3kpOwp2b2lkIHBpeG1hbl90cmFuc2Zvcm1faW5pdF9yb3RhdGUgKHN0cnVjdCBwaXhtYW5fdHJh
bnNmb3JtICp0LAogICAgICAgcGl4bWFuX2ZpeGVkX3QgY29zLAogICAgICAgcGl4bWFuX2ZpeGVk
X3Qgc2luKTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fdHJhbnNmb3JtX3JvdGF0ZSAoc3RydWN0IHBp
eG1hbl90cmFuc2Zvcm0gKmZvcndhcmQsCiAgICAgICBzdHJ1Y3QgcGl4bWFuX3RyYW5zZm9ybSAq
cmV2ZXJzZSwKICAgICAgIHBpeG1hbl9maXhlZF90IGMsCiAgICAgICBwaXhtYW5fZml4ZWRfdCBz
KTsKdm9pZCBwaXhtYW5fdHJhbnNmb3JtX2luaXRfdHJhbnNsYXRlIChzdHJ1Y3QgcGl4bWFuX3Ry
YW5zZm9ybSAqdCwKICAgICAgIHBpeG1hbl9maXhlZF90IHR4LAogICAgICAgcGl4bWFuX2ZpeGVk
X3QgdHkpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl90cmFuc2Zvcm1fdHJhbnNsYXRlIChzdHJ1Y3Qg
cGl4bWFuX3RyYW5zZm9ybSAqZm9yd2FyZCwKICAgICAgIHN0cnVjdCBwaXhtYW5fdHJhbnNmb3Jt
ICpyZXZlcnNlLAogICAgICAgcGl4bWFuX2ZpeGVkX3QgdHgsCiAgICAgICBwaXhtYW5fZml4ZWRf
dCB0eSk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3RyYW5zZm9ybV9ib3VuZHMgKGNvbnN0IHN0cnVj
dCBwaXhtYW5fdHJhbnNmb3JtICptYXRyaXgsCiAgICAgICBzdHJ1Y3QgcGl4bWFuX2JveDE2ICpi
KTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fdHJhbnNmb3JtX2ludmVydCAoc3RydWN0IHBpeG1hbl90
cmFuc2Zvcm0gKmRzdCwKICAgICAgIGNvbnN0IHN0cnVjdCBwaXhtYW5fdHJhbnNmb3JtICpzcmMp
OwpwaXhtYW5fYm9vbF90IHBpeG1hbl90cmFuc2Zvcm1faXNfaWRlbnRpdHkgKGNvbnN0IHN0cnVj
dCBwaXhtYW5fdHJhbnNmb3JtICp0KTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fdHJhbnNmb3JtX2lz
X3NjYWxlIChjb25zdCBzdHJ1Y3QgcGl4bWFuX3RyYW5zZm9ybSAqdCk7CnBpeG1hbl9ib29sX3Qg
cGl4bWFuX3RyYW5zZm9ybV9pc19pbnRfdHJhbnNsYXRlIChjb25zdCBzdHJ1Y3QgcGl4bWFuX3Ry
YW5zZm9ybSAqdCk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3RyYW5zZm9ybV9pc19pbnZlcnNlIChj
b25zdCBzdHJ1Y3QgcGl4bWFuX3RyYW5zZm9ybSAqYSwKICAgICAgIGNvbnN0IHN0cnVjdCBwaXht
YW5fdHJhbnNmb3JtICpiKTsKCgoKCnR5cGVkZWYgc3RydWN0IHBpeG1hbl9mX3RyYW5zZm9ybSBw
aXhtYW5fZl90cmFuc2Zvcm1fdDsKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2ZfdmVjdG9yIHBpeG1h
bl9mX3ZlY3Rvcl90OwoKc3RydWN0IHBpeG1hbl9mX3ZlY3Rvcgp7CiAgICBkb3VibGUgdlszXTsK
fTsKCnN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0KewogICAgZG91YmxlIG1bM11bM107Cn07Cgpw
aXhtYW5fYm9vbF90IHBpeG1hbl90cmFuc2Zvcm1fZnJvbV9waXhtYW5fZl90cmFuc2Zvcm0gKHN0
cnVjdCBwaXhtYW5fdHJhbnNmb3JtICp0LAogICAgICAgY29uc3Qgc3RydWN0IHBpeG1hbl9mX3Ry
YW5zZm9ybSAqZnQpOwp2b2lkIHBpeG1hbl9mX3RyYW5zZm9ybV9mcm9tX3BpeG1hbl90cmFuc2Zv
cm0gKHN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0gKmZ0LAogICAgICAgY29uc3Qgc3RydWN0IHBp
eG1hbl90cmFuc2Zvcm0gKnQpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl9mX3RyYW5zZm9ybV9pbnZl
cnQgKHN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0gKmRzdCwKICAgICAgIGNvbnN0IHN0cnVjdCBw
aXhtYW5fZl90cmFuc2Zvcm0gKnNyYyk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX2ZfdHJhbnNmb3Jt
X3BvaW50IChjb25zdCBzdHJ1Y3QgcGl4bWFuX2ZfdHJhbnNmb3JtICp0LAogICAgICAgc3RydWN0
IHBpeG1hbl9mX3ZlY3RvciAqdik7CnZvaWQgcGl4bWFuX2ZfdHJhbnNmb3JtX3BvaW50XzNkIChj
b25zdCBzdHJ1Y3QgcGl4bWFuX2ZfdHJhbnNmb3JtICp0LAogICAgICAgc3RydWN0IHBpeG1hbl9m
X3ZlY3RvciAqdik7CnZvaWQgcGl4bWFuX2ZfdHJhbnNmb3JtX211bHRpcGx5IChzdHJ1Y3QgcGl4
bWFuX2ZfdHJhbnNmb3JtICpkc3QsCiAgICAgICBjb25zdCBzdHJ1Y3QgcGl4bWFuX2ZfdHJhbnNm
b3JtICpsLAogICAgICAgY29uc3Qgc3RydWN0IHBpeG1hbl9mX3RyYW5zZm9ybSAqcik7CnZvaWQg
cGl4bWFuX2ZfdHJhbnNmb3JtX2luaXRfc2NhbGUgKHN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0g
KnQsCiAgICAgICBkb3VibGUgc3gsCiAgICAgICBkb3VibGUgc3kpOwpwaXhtYW5fYm9vbF90IHBp
eG1hbl9mX3RyYW5zZm9ybV9zY2FsZSAoc3RydWN0IHBpeG1hbl9mX3RyYW5zZm9ybSAqZm9yd2Fy
ZCwKICAgICAgIHN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0gKnJldmVyc2UsCiAgICAgICBkb3Vi
bGUgc3gsCiAgICAgICBkb3VibGUgc3kpOwp2b2lkIHBpeG1hbl9mX3RyYW5zZm9ybV9pbml0X3Jv
dGF0ZSAoc3RydWN0IHBpeG1hbl9mX3RyYW5zZm9ybSAqdCwKICAgICAgIGRvdWJsZSBjb3MsCiAg
ICAgICBkb3VibGUgc2luKTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fZl90cmFuc2Zvcm1fcm90YXRl
IChzdHJ1Y3QgcGl4bWFuX2ZfdHJhbnNmb3JtICpmb3J3YXJkLAogICAgICAgc3RydWN0IHBpeG1h
bl9mX3RyYW5zZm9ybSAqcmV2ZXJzZSwKICAgICAgIGRvdWJsZSBjLAogICAgICAgZG91YmxlIHMp
Owp2b2lkIHBpeG1hbl9mX3RyYW5zZm9ybV9pbml0X3RyYW5zbGF0ZSAoc3RydWN0IHBpeG1hbl9m
X3RyYW5zZm9ybSAqdCwKICAgICAgIGRvdWJsZSB0eCwKICAgICAgIGRvdWJsZSB0eSk7CnBpeG1h
bl9ib29sX3QgcGl4bWFuX2ZfdHJhbnNmb3JtX3RyYW5zbGF0ZSAoc3RydWN0IHBpeG1hbl9mX3Ry
YW5zZm9ybSAqZm9yd2FyZCwKICAgICAgIHN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0gKnJldmVy
c2UsCiAgICAgICBkb3VibGUgdHgsCiAgICAgICBkb3VibGUgdHkpOwpwaXhtYW5fYm9vbF90IHBp
eG1hbl9mX3RyYW5zZm9ybV9ib3VuZHMgKGNvbnN0IHN0cnVjdCBwaXhtYW5fZl90cmFuc2Zvcm0g
KnQsCiAgICAgICBzdHJ1Y3QgcGl4bWFuX2JveDE2ICpiKTsKdm9pZCBwaXhtYW5fZl90cmFuc2Zv
cm1faW5pdF9pZGVudGl0eSAoc3RydWN0IHBpeG1hbl9mX3RyYW5zZm9ybSAqdCk7Cgp0eXBlZGVm
IGVudW0KewogICAgUElYTUFOX1JFUEVBVF9OT05FLAogICAgUElYTUFOX1JFUEVBVF9OT1JNQUws
CiAgICBQSVhNQU5fUkVQRUFUX1BBRCwKICAgIFBJWE1BTl9SRVBFQVRfUkVGTEVDVAp9IHBpeG1h
bl9yZXBlYXRfdDsKCnR5cGVkZWYgZW51bQp7CiAgICBQSVhNQU5fRklMVEVSX0ZBU1QsCiAgICBQ
SVhNQU5fRklMVEVSX0dPT0QsCiAgICBQSVhNQU5fRklMVEVSX0JFU1QsCiAgICBQSVhNQU5fRklM
VEVSX05FQVJFU1QsCiAgICBQSVhNQU5fRklMVEVSX0JJTElORUFSLAogICAgUElYTUFOX0ZJTFRF
Ul9DT05WT0xVVElPTiwKIyAzMTYgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi5oIgogICAgUElYTUFO
X0ZJTFRFUl9TRVBBUkFCTEVfQ09OVk9MVVRJT04KfSBwaXhtYW5fZmlsdGVyX3Q7Cgp0eXBlZGVm
IGVudW0KewogICAgUElYTUFOX09QX0NMRUFSID0gMHgwMCwKICAgIFBJWE1BTl9PUF9TUkMgPSAw
eDAxLAogICAgUElYTUFOX09QX0RTVCA9IDB4MDIsCiAgICBQSVhNQU5fT1BfT1ZFUiA9IDB4MDMs
CiAgICBQSVhNQU5fT1BfT1ZFUl9SRVZFUlNFID0gMHgwNCwKICAgIFBJWE1BTl9PUF9JTiA9IDB4
MDUsCiAgICBQSVhNQU5fT1BfSU5fUkVWRVJTRSA9IDB4MDYsCiAgICBQSVhNQU5fT1BfT1VUID0g
MHgwNywKICAgIFBJWE1BTl9PUF9PVVRfUkVWRVJTRSA9IDB4MDgsCiAgICBQSVhNQU5fT1BfQVRP
UCA9IDB4MDksCiAgICBQSVhNQU5fT1BfQVRPUF9SRVZFUlNFID0gMHgwYSwKICAgIFBJWE1BTl9P
UF9YT1IgPSAweDBiLAogICAgUElYTUFOX09QX0FERCA9IDB4MGMsCiAgICBQSVhNQU5fT1BfU0FU
VVJBVEUgPSAweDBkLAoKICAgIFBJWE1BTl9PUF9ESVNKT0lOVF9DTEVBUiA9IDB4MTAsCiAgICBQ
SVhNQU5fT1BfRElTSk9JTlRfU1JDID0gMHgxMSwKICAgIFBJWE1BTl9PUF9ESVNKT0lOVF9EU1Qg
PSAweDEyLAogICAgUElYTUFOX09QX0RJU0pPSU5UX09WRVIgPSAweDEzLAogICAgUElYTUFOX09Q
X0RJU0pPSU5UX09WRVJfUkVWRVJTRSA9IDB4MTQsCiAgICBQSVhNQU5fT1BfRElTSk9JTlRfSU4g
PSAweDE1LAogICAgUElYTUFOX09QX0RJU0pPSU5UX0lOX1JFVkVSU0UgPSAweDE2LAogICAgUElY
TUFOX09QX0RJU0pPSU5UX09VVCA9IDB4MTcsCiAgICBQSVhNQU5fT1BfRElTSk9JTlRfT1VUX1JF
VkVSU0UgPSAweDE4LAogICAgUElYTUFOX09QX0RJU0pPSU5UX0FUT1AgPSAweDE5LAogICAgUElY
TUFOX09QX0RJU0pPSU5UX0FUT1BfUkVWRVJTRSA9IDB4MWEsCiAgICBQSVhNQU5fT1BfRElTSk9J
TlRfWE9SID0gMHgxYiwKCiAgICBQSVhNQU5fT1BfQ09OSk9JTlRfQ0xFQVIgPSAweDIwLAogICAg
UElYTUFOX09QX0NPTkpPSU5UX1NSQyA9IDB4MjEsCiAgICBQSVhNQU5fT1BfQ09OSk9JTlRfRFNU
ID0gMHgyMiwKICAgIFBJWE1BTl9PUF9DT05KT0lOVF9PVkVSID0gMHgyMywKICAgIFBJWE1BTl9P
UF9DT05KT0lOVF9PVkVSX1JFVkVSU0UgPSAweDI0LAogICAgUElYTUFOX09QX0NPTkpPSU5UX0lO
ID0gMHgyNSwKICAgIFBJWE1BTl9PUF9DT05KT0lOVF9JTl9SRVZFUlNFID0gMHgyNiwKICAgIFBJ
WE1BTl9PUF9DT05KT0lOVF9PVVQgPSAweDI3LAogICAgUElYTUFOX09QX0NPTkpPSU5UX09VVF9S
RVZFUlNFID0gMHgyOCwKICAgIFBJWE1BTl9PUF9DT05KT0lOVF9BVE9QID0gMHgyOSwKICAgIFBJ
WE1BTl9PUF9DT05KT0lOVF9BVE9QX1JFVkVSU0UgPSAweDJhLAogICAgUElYTUFOX09QX0NPTkpP
SU5UX1hPUiA9IDB4MmIsCgogICAgUElYTUFOX09QX01VTFRJUExZID0gMHgzMCwKICAgIFBJWE1B
Tl9PUF9TQ1JFRU4gPSAweDMxLAogICAgUElYTUFOX09QX09WRVJMQVkgPSAweDMyLAogICAgUElY
TUFOX09QX0RBUktFTiA9IDB4MzMsCiAgICBQSVhNQU5fT1BfTElHSFRFTiA9IDB4MzQsCiAgICBQ
SVhNQU5fT1BfQ09MT1JfRE9ER0UgPSAweDM1LAogICAgUElYTUFOX09QX0NPTE9SX0JVUk4gPSAw
eDM2LAogICAgUElYTUFOX09QX0hBUkRfTElHSFQgPSAweDM3LAogICAgUElYTUFOX09QX1NPRlRf
TElHSFQgPSAweDM4LAogICAgUElYTUFOX09QX0RJRkZFUkVOQ0UgPSAweDM5LAogICAgUElYTUFO
X09QX0VYQ0xVU0lPTiA9IDB4M2EsCiAgICBQSVhNQU5fT1BfSFNMX0hVRSA9IDB4M2IsCiAgICBQ
SVhNQU5fT1BfSFNMX1NBVFVSQVRJT04gPSAweDNjLAogICAgUElYTUFOX09QX0hTTF9DT0xPUiA9
IDB4M2QsCiAgICBQSVhNQU5fT1BfSFNMX0xVTUlOT1NJVFkgPSAweDNlCgoKICAgICwKICAgIFBJ
WE1BTl9OX09QRVJBVE9SUywKICAgIFBJWE1BTl9PUF9OT05FID0gUElYTUFOX05fT1BFUkFUT1JT
Cgp9IHBpeG1hbl9vcF90OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX3JlZ2lvbjE2X2RhdGEg
cGl4bWFuX3JlZ2lvbjE2X2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2JveDE2IHBpeG1h
bl9ib3gxNl90Owp0eXBlZGVmIHN0cnVjdCBwaXhtYW5fcmVjdGFuZ2xlMTYgcGl4bWFuX3JlY3Rh
bmdsZTE2X3Q7CnR5cGVkZWYgc3RydWN0IHBpeG1hbl9yZWdpb24xNiBwaXhtYW5fcmVnaW9uMTZf
dDsKCnN0cnVjdCBwaXhtYW5fcmVnaW9uMTZfZGF0YSB7CiAgICBsb25nIHNpemU7CiAgICBsb25n
IG51bVJlY3RzOwoKfTsKCnN0cnVjdCBwaXhtYW5fcmVjdGFuZ2xlMTYKewogICAgaW50MTZfdCB4
LCB5OwogICAgdWludDE2X3Qgd2lkdGgsIGhlaWdodDsKfTsKCnN0cnVjdCBwaXhtYW5fYm94MTYK
ewogICAgaW50MTZfdCB4MSwgeTEsIHgyLCB5MjsKfTsKCnN0cnVjdCBwaXhtYW5fcmVnaW9uMTYK
ewogICAgcGl4bWFuX2JveDE2X3QgZXh0ZW50czsKICAgIHBpeG1hbl9yZWdpb24xNl9kYXRhX3Qg
KmRhdGE7Cn07Cgp0eXBlZGVmIGVudW0KewogICAgUElYTUFOX1JFR0lPTl9PVVQsCiAgICBQSVhN
QU5fUkVHSU9OX0lOLAogICAgUElYTUFOX1JFR0lPTl9QQVJUCn0gcGl4bWFuX3JlZ2lvbl9vdmVy
bGFwX3Q7CgoKCgp2b2lkIHBpeG1hbl9yZWdpb25fc2V0X3N0YXRpY19wb2ludGVycyAocGl4bWFu
X2JveDE2X3QgKmVtcHR5X2JveCwKICAgICBwaXhtYW5fcmVnaW9uMTZfZGF0YV90ICplbXB0eV9k
YXRhLAogICAgIHBpeG1hbl9yZWdpb24xNl9kYXRhX3QgKmJyb2tlbl9kYXRhKTsKCgp2b2lkIHBp
eG1hbl9yZWdpb25faW5pdCAocGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ2lvbik7CnZvaWQgcGl4bWFu
X3JlZ2lvbl9pbml0X3JlY3QgKHBpeG1hbl9yZWdpb24xNl90ICpyZWdpb24sCiAgICAgICAgIGlu
dCB4LAogICAgICAgICBpbnQgeSwKICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAogICAgICAg
ICB1bnNpZ25lZCBpbnQgaGVpZ2h0KTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fcmVnaW9uX2luaXRf
cmVjdHMgKHBpeG1hbl9yZWdpb24xNl90ICpyZWdpb24sCiAgICAgICAgIGNvbnN0IHBpeG1hbl9i
b3gxNl90ICpib3hlcywKICAgICAgICAgaW50IGNvdW50KTsKdm9pZCBwaXhtYW5fcmVnaW9uX2lu
aXRfd2l0aF9leHRlbnRzIChwaXhtYW5fcmVnaW9uMTZfdCAqcmVnaW9uLAogICAgICAgICBwaXht
YW5fYm94MTZfdCAqZXh0ZW50cyk7CnZvaWQgcGl4bWFuX3JlZ2lvbl9pbml0X2Zyb21faW1hZ2Ug
KHBpeG1hbl9yZWdpb24xNl90ICpyZWdpb24sCiAgICAgICAgIHBpeG1hbl9pbWFnZV90ICppbWFn
ZSk7CnZvaWQgcGl4bWFuX3JlZ2lvbl9maW5pIChwaXhtYW5fcmVnaW9uMTZfdCAqcmVnaW9uKTsK
CgoKdm9pZCBwaXhtYW5fcmVnaW9uX3RyYW5zbGF0ZSAocGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ2lv
biwKICAgICAgICAgaW50IHgsCiAgICAgICAgIGludCB5KTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5f
cmVnaW9uX2NvcHkgKHBpeG1hbl9yZWdpb24xNl90ICpkZXN0LAogICAgICAgICBwaXhtYW5fcmVn
aW9uMTZfdCAqc291cmNlKTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fcmVnaW9uX2ludGVyc2VjdCAo
cGl4bWFuX3JlZ2lvbjE2X3QgKm5ld19yZWcsCiAgICAgICAgIHBpeG1hbl9yZWdpb24xNl90ICpy
ZWcxLAogICAgICAgICBwaXhtYW5fcmVnaW9uMTZfdCAqcmVnMik7CnBpeG1hbl9ib29sX3QgcGl4
bWFuX3JlZ2lvbl91bmlvbiAocGl4bWFuX3JlZ2lvbjE2X3QgKm5ld19yZWcsCiAgICAgICAgIHBp
eG1hbl9yZWdpb24xNl90ICpyZWcxLAogICAgICAgICBwaXhtYW5fcmVnaW9uMTZfdCAqcmVnMik7
CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbl91bmlvbl9yZWN0IChwaXhtYW5fcmVnaW9uMTZf
dCAqZGVzdCwKICAgICAgICAgcGl4bWFuX3JlZ2lvbjE2X3QgKnNvdXJjZSwKICAgICAgICAgaW50
IHgsCiAgICAgICAgIGludCB5LAogICAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsCiAgICAgICAg
IHVuc2lnbmVkIGludCBoZWlnaHQpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl9yZWdpb25faW50ZXJz
ZWN0X3JlY3QgKHBpeG1hbl9yZWdpb24xNl90ICpkZXN0LAogICAgICAgICBwaXhtYW5fcmVnaW9u
MTZfdCAqc291cmNlLAogICAgICAgICBpbnQgeCwKICAgICAgICAgaW50IHksCiAgICAgICAgIHVu
c2lnbmVkIGludCB3aWR0aCwKICAgICAgICAgdW5zaWduZWQgaW50IGhlaWdodCk7CnBpeG1hbl9i
b29sX3QgcGl4bWFuX3JlZ2lvbl9zdWJ0cmFjdCAocGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ19kLAog
ICAgICAgICBwaXhtYW5fcmVnaW9uMTZfdCAqcmVnX20sCiAgICAgICAgIHBpeG1hbl9yZWdpb24x
Nl90ICpyZWdfcyk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbl9pbnZlcnNlIChwaXhtYW5f
cmVnaW9uMTZfdCAqbmV3X3JlZywKICAgICAgICAgcGl4bWFuX3JlZ2lvbjE2X3QgKnJlZzEsCiAg
ICAgICAgIHBpeG1hbl9ib3gxNl90ICppbnZfcmVjdCk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3Jl
Z2lvbl9jb250YWluc19wb2ludCAocGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ2lvbiwKICAgICAgICAg
aW50IHgsCiAgICAgICAgIGludCB5LAogICAgICAgICBwaXhtYW5fYm94MTZfdCAqYm94KTsKcGl4
bWFuX3JlZ2lvbl9vdmVybGFwX3QgcGl4bWFuX3JlZ2lvbl9jb250YWluc19yZWN0YW5nbGUgKHBp
eG1hbl9yZWdpb24xNl90ICpyZWdpb24sCiAgICAgICAgIHBpeG1hbl9ib3gxNl90ICpwcmVjdCk7
CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbl9ub3RfZW1wdHkgKHBpeG1hbl9yZWdpb24xNl90
ICpyZWdpb24pOwpwaXhtYW5fYm94MTZfdCAqIHBpeG1hbl9yZWdpb25fZXh0ZW50cyAocGl4bWFu
X3JlZ2lvbjE2X3QgKnJlZ2lvbik7CmludCBwaXhtYW5fcmVnaW9uX25fcmVjdHMgKHBpeG1hbl9y
ZWdpb24xNl90ICpyZWdpb24pOwpwaXhtYW5fYm94MTZfdCAqIHBpeG1hbl9yZWdpb25fcmVjdGFu
Z2xlcyAocGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ2lvbiwKICAgICAgICAgaW50ICpuX3JlY3RzKTsK
cGl4bWFuX2Jvb2xfdCBwaXhtYW5fcmVnaW9uX2VxdWFsIChwaXhtYW5fcmVnaW9uMTZfdCAqcmVn
aW9uMSwKICAgICAgICAgcGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ2lvbjIpOwpwaXhtYW5fYm9vbF90
IHBpeG1hbl9yZWdpb25fc2VsZmNoZWNrIChwaXhtYW5fcmVnaW9uMTZfdCAqcmVnaW9uKTsKdm9p
ZCBwaXhtYW5fcmVnaW9uX3Jlc2V0IChwaXhtYW5fcmVnaW9uMTZfdCAqcmVnaW9uLAogICAgICAg
ICBwaXhtYW5fYm94MTZfdCAqYm94KTsKdm9pZCBwaXhtYW5fcmVnaW9uX2NsZWFyIChwaXhtYW5f
cmVnaW9uMTZfdCAqcmVnaW9uKTsKCgoKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX3JlZ2lvbjMyX2Rh
dGEgcGl4bWFuX3JlZ2lvbjMyX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2JveDMyIHBp
eG1hbl9ib3gzMl90Owp0eXBlZGVmIHN0cnVjdCBwaXhtYW5fcmVjdGFuZ2xlMzIgcGl4bWFuX3Jl
Y3RhbmdsZTMyX3Q7CnR5cGVkZWYgc3RydWN0IHBpeG1hbl9yZWdpb24zMiBwaXhtYW5fcmVnaW9u
MzJfdDsKCnN0cnVjdCBwaXhtYW5fcmVnaW9uMzJfZGF0YSB7CiAgICBsb25nIHNpemU7CiAgICBs
b25nIG51bVJlY3RzOwoKfTsKCnN0cnVjdCBwaXhtYW5fcmVjdGFuZ2xlMzIKewogICAgaW50MzJf
dCB4LCB5OwogICAgdWludDMyX3Qgd2lkdGgsIGhlaWdodDsKfTsKCnN0cnVjdCBwaXhtYW5fYm94
MzIKewogICAgaW50MzJfdCB4MSwgeTEsIHgyLCB5MjsKfTsKCnN0cnVjdCBwaXhtYW5fcmVnaW9u
MzIKewogICAgcGl4bWFuX2JveDMyX3QgZXh0ZW50czsKICAgIHBpeG1hbl9yZWdpb24zMl9kYXRh
X3QgKmRhdGE7Cn07CgoKdm9pZCBwaXhtYW5fcmVnaW9uMzJfaW5pdCAocGl4bWFuX3JlZ2lvbjMy
X3QgKnJlZ2lvbik7CnZvaWQgcGl4bWFuX3JlZ2lvbjMyX2luaXRfcmVjdCAocGl4bWFuX3JlZ2lv
bjMyX3QgKnJlZ2lvbiwKICAgICAgICAgICBpbnQgeCwKICAgICAgICAgICBpbnQgeSwKICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsCiAgICAgICAgICAgdW5zaWduZWQgaW50IGhlaWdodCk7
CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMyX2luaXRfcmVjdHMgKHBpeG1hbl9yZWdpb24z
Ml90ICpyZWdpb24sCiAgICAgICAgICAgY29uc3QgcGl4bWFuX2JveDMyX3QgKmJveGVzLAogICAg
ICAgICAgIGludCBjb3VudCk7CnZvaWQgcGl4bWFuX3JlZ2lvbjMyX2luaXRfd2l0aF9leHRlbnRz
IChwaXhtYW5fcmVnaW9uMzJfdCAqcmVnaW9uLAogICAgICAgICAgIHBpeG1hbl9ib3gzMl90ICpl
eHRlbnRzKTsKdm9pZCBwaXhtYW5fcmVnaW9uMzJfaW5pdF9mcm9tX2ltYWdlIChwaXhtYW5fcmVn
aW9uMzJfdCAqcmVnaW9uLAogICAgICAgICAgIHBpeG1hbl9pbWFnZV90ICppbWFnZSk7CnZvaWQg
cGl4bWFuX3JlZ2lvbjMyX2ZpbmkgKHBpeG1hbl9yZWdpb24zMl90ICpyZWdpb24pOwoKCgp2b2lk
IHBpeG1hbl9yZWdpb24zMl90cmFuc2xhdGUgKHBpeG1hbl9yZWdpb24zMl90ICpyZWdpb24sCiAg
ICAgICAgICAgaW50IHgsCiAgICAgICAgICAgaW50IHkpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl9y
ZWdpb24zMl9jb3B5IChwaXhtYW5fcmVnaW9uMzJfdCAqZGVzdCwKICAgICAgICAgICBwaXhtYW5f
cmVnaW9uMzJfdCAqc291cmNlKTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fcmVnaW9uMzJfaW50ZXJz
ZWN0IChwaXhtYW5fcmVnaW9uMzJfdCAqbmV3X3JlZywKICAgICAgICAgICBwaXhtYW5fcmVnaW9u
MzJfdCAqcmVnMSwKICAgICAgICAgICBwaXhtYW5fcmVnaW9uMzJfdCAqcmVnMik7CnBpeG1hbl9i
b29sX3QgcGl4bWFuX3JlZ2lvbjMyX3VuaW9uIChwaXhtYW5fcmVnaW9uMzJfdCAqbmV3X3JlZywK
ICAgICAgICAgICBwaXhtYW5fcmVnaW9uMzJfdCAqcmVnMSwKICAgICAgICAgICBwaXhtYW5fcmVn
aW9uMzJfdCAqcmVnMik7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMyX2ludGVyc2VjdF9y
ZWN0IChwaXhtYW5fcmVnaW9uMzJfdCAqZGVzdCwKICAgICAgICAgICBwaXhtYW5fcmVnaW9uMzJf
dCAqc291cmNlLAogICAgICAgICAgIGludCB4LAogICAgICAgICAgIGludCB5LAogICAgICAgICAg
IHVuc2lnbmVkIGludCB3aWR0aCwKICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0KTsKcGl4
bWFuX2Jvb2xfdCBwaXhtYW5fcmVnaW9uMzJfdW5pb25fcmVjdCAocGl4bWFuX3JlZ2lvbjMyX3Qg
KmRlc3QsCiAgICAgICAgICAgcGl4bWFuX3JlZ2lvbjMyX3QgKnNvdXJjZSwKICAgICAgICAgICBp
bnQgeCwKICAgICAgICAgICBpbnQgeSwKICAgICAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsCiAg
ICAgICAgICAgdW5zaWduZWQgaW50IGhlaWdodCk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lv
bjMyX3N1YnRyYWN0IChwaXhtYW5fcmVnaW9uMzJfdCAqcmVnX2QsCiAgICAgICAgICAgcGl4bWFu
X3JlZ2lvbjMyX3QgKnJlZ19tLAogICAgICAgICAgIHBpeG1hbl9yZWdpb24zMl90ICpyZWdfcyk7
CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMyX2ludmVyc2UgKHBpeG1hbl9yZWdpb24zMl90
ICpuZXdfcmVnLAogICAgICAgICAgIHBpeG1hbl9yZWdpb24zMl90ICpyZWcxLAogICAgICAgICAg
IHBpeG1hbl9ib3gzMl90ICppbnZfcmVjdCk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMy
X2NvbnRhaW5zX3BvaW50IChwaXhtYW5fcmVnaW9uMzJfdCAqcmVnaW9uLAogICAgICAgICAgIGlu
dCB4LAogICAgICAgICAgIGludCB5LAogICAgICAgICAgIHBpeG1hbl9ib3gzMl90ICpib3gpOwpw
aXhtYW5fcmVnaW9uX292ZXJsYXBfdCBwaXhtYW5fcmVnaW9uMzJfY29udGFpbnNfcmVjdGFuZ2xl
IChwaXhtYW5fcmVnaW9uMzJfdCAqcmVnaW9uLAogICAgICAgICAgIHBpeG1hbl9ib3gzMl90ICpw
cmVjdCk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMyX25vdF9lbXB0eSAocGl4bWFuX3Jl
Z2lvbjMyX3QgKnJlZ2lvbik7CnBpeG1hbl9ib3gzMl90ICogcGl4bWFuX3JlZ2lvbjMyX2V4dGVu
dHMgKHBpeG1hbl9yZWdpb24zMl90ICpyZWdpb24pOwppbnQgcGl4bWFuX3JlZ2lvbjMyX25fcmVj
dHMgKHBpeG1hbl9yZWdpb24zMl90ICpyZWdpb24pOwpwaXhtYW5fYm94MzJfdCAqIHBpeG1hbl9y
ZWdpb24zMl9yZWN0YW5nbGVzIChwaXhtYW5fcmVnaW9uMzJfdCAqcmVnaW9uLAogICAgICAgICAg
IGludCAqbl9yZWN0cyk7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMyX2VxdWFsIChwaXht
YW5fcmVnaW9uMzJfdCAqcmVnaW9uMSwKICAgICAgICAgICBwaXhtYW5fcmVnaW9uMzJfdCAqcmVn
aW9uMik7CnBpeG1hbl9ib29sX3QgcGl4bWFuX3JlZ2lvbjMyX3NlbGZjaGVjayAocGl4bWFuX3Jl
Z2lvbjMyX3QgKnJlZ2lvbik7CnZvaWQgcGl4bWFuX3JlZ2lvbjMyX3Jlc2V0IChwaXhtYW5fcmVn
aW9uMzJfdCAqcmVnaW9uLAogICAgICAgICAgIHBpeG1hbl9ib3gzMl90ICpib3gpOwp2b2lkIHBp
eG1hbl9yZWdpb24zMl9jbGVhciAocGl4bWFuX3JlZ2lvbjMyX3QgKnJlZ2lvbik7CgoKCnBpeG1h
bl9ib29sX3QgcGl4bWFuX2JsdCAodWludDMyX3QgKnNyY19iaXRzLAogICAgICB1aW50MzJfdCAq
ZHN0X2JpdHMsCiAgICAgIGludCBzcmNfc3RyaWRlLAogICAgICBpbnQgZHN0X3N0cmlkZSwKICAg
ICAgaW50IHNyY19icHAsCiAgICAgIGludCBkc3RfYnBwLAogICAgICBpbnQgc3JjX3gsCiAgICAg
IGludCBzcmNfeSwKICAgICAgaW50IGRlc3RfeCwKICAgICAgaW50IGRlc3RfeSwKICAgICAgaW50
IHdpZHRoLAogICAgICBpbnQgaGVpZ2h0KTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5fZmlsbCAodWlu
dDMyX3QgKmJpdHMsCiAgICAgIGludCBzdHJpZGUsCiAgICAgIGludCBicHAsCiAgICAgIGludCB4
LAogICAgICBpbnQgeSwKICAgICAgaW50IHdpZHRoLAogICAgICBpbnQgaGVpZ2h0LAogICAgICB1
aW50MzJfdCBfeG9yKTsKCmludCBwaXhtYW5fdmVyc2lvbiAodm9pZCk7CmNvbnN0IGNoYXIqIHBp
eG1hbl92ZXJzaW9uX3N0cmluZyAodm9pZCk7CgoKCgp0eXBlZGVmIHN0cnVjdCBwaXhtYW5faW5k
ZXhlZCBwaXhtYW5faW5kZXhlZF90Owp0eXBlZGVmIHN0cnVjdCBwaXhtYW5fZ3JhZGllbnRfc3Rv
cCBwaXhtYW5fZ3JhZGllbnRfc3RvcF90OwoKdHlwZWRlZiB1aW50MzJfdCAoKiBwaXhtYW5fcmVh
ZF9tZW1vcnlfZnVuY190KSAoY29uc3Qgdm9pZCAqc3JjLCBpbnQgc2l6ZSk7CnR5cGVkZWYgdm9p
ZCAoKiBwaXhtYW5fd3JpdGVfbWVtb3J5X2Z1bmNfdCkgKHZvaWQgKmRzdCwgdWludDMyX3QgdmFs
dWUsIGludCBzaXplKTsKCnR5cGVkZWYgdm9pZCAoKiBwaXhtYW5faW1hZ2VfZGVzdHJveV9mdW5j
X3QpIChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsIHZvaWQgKmRhdGEpOwoKc3RydWN0IHBpeG1hbl9n
cmFkaWVudF9zdG9wIHsKICAgIHBpeG1hbl9maXhlZF90IHg7CiAgICBwaXhtYW5fY29sb3JfdCBj
b2xvcjsKfTsKCgoKCnR5cGVkZWYgdWludDhfdCBwaXhtYW5faW5kZXhfdHlwZTsKCgpzdHJ1Y3Qg
cGl4bWFuX2luZGV4ZWQKewogICAgcGl4bWFuX2Jvb2xfdCBjb2xvcjsKICAgIHVpbnQzMl90IHJn
YmFbMjU2XTsKICAgIHBpeG1hbl9pbmRleF90eXBlIGVudFszMjc2OF07Cn07CiMgNjg5ICIvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4z
Mi42L3BpeG1hbi9waXhtYW4uaCIKdHlwZWRlZiBlbnVtIHsKICAgIFBJWE1BTl9hOHI4ZzhiOCA9
ICgoKDMyKSA8PCAyNCkgfCAoKDIpIDw8IDE2KSB8ICgoOCkgPDwgMTIpIHwgKCg4KSA8PCA4KSB8
ICgoOCkgPDwgNCkgfCAoKDgpKSksCiAgICBQSVhNQU5feDhyOGc4YjggPSAoKCgzMikgPDwgMjQp
IHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoOCkgPDwgOCkgfCAoKDgpIDw8IDQpIHwg
KCg4KSkpLAogICAgUElYTUFOX2E4YjhnOHI4ID0gKCgoMzIpIDw8IDI0KSB8ICgoMykgPDwgMTYp
IHwgKCg4KSA8PCAxMikgfCAoKDgpIDw8IDgpIHwgKCg4KSA8PCA0KSB8ICgoOCkpKSwKICAgIFBJ
WE1BTl94OGI4ZzhyOCA9ICgoKDMyKSA8PCAyNCkgfCAoKDMpIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCg4KSA8PCA4KSB8ICgoOCkgPDwgNCkgfCAoKDgpKSksCiAgICBQSVhNQU5fYjhnOHI4YTgg
PSAoKCgzMikgPDwgMjQpIHwgKCg4KSA8PCAxNikgfCAoKDgpIDw8IDEyKSB8ICgoOCkgPDwgOCkg
fCAoKDgpIDw8IDQpIHwgKCg4KSkpLAogICAgUElYTUFOX2I4ZzhyOHg4ID0gKCgoMzIpIDw8IDI0
KSB8ICgoOCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDgpIDw8IDgpIHwgKCg4KSA8PCA0KSB8
ICgoOCkpKSwKICAgIFBJWE1BTl9yOGc4YjhhOCA9ICgoKDMyKSA8PCAyNCkgfCAoKDkpIDw8IDE2
KSB8ICgoOCkgPDwgMTIpIHwgKCg4KSA8PCA4KSB8ICgoOCkgPDwgNCkgfCAoKDgpKSksCiAgICBQ
SVhNQU5fcjhnOGI4eDggPSAoKCgzMikgPDwgMjQpIHwgKCg5KSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoOCkgPDwgOCkgfCAoKDgpIDw8IDQpIHwgKCg4KSkpLAogICAgUElYTUFOX3gxNHI2ZzZi
NiA9ICgoKDMyKSA8PCAyNCkgfCAoKDIpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCg2KSA8PCA4
KSB8ICgoNikgPDwgNCkgfCAoKDYpKSksCiAgICBQSVhNQU5feDJyMTBnMTBiMTAgPSAoKCgzMikg
PDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMTApIDw8IDgpIHwgKCgxMCkg
PDwgNCkgfCAoKDEwKSkpLAogICAgUElYTUFOX2EycjEwZzEwYjEwID0gKCgoMzIpIDw8IDI0KSB8
ICgoMikgPDwgMTYpIHwgKCgyKSA8PCAxMikgfCAoKDEwKSA8PCA4KSB8ICgoMTApIDw8IDQpIHwg
KCgxMCkpKSwKICAgIFBJWE1BTl94MmIxMGcxMHIxMCA9ICgoKDMyKSA8PCAyNCkgfCAoKDMpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgxMCkgPDwgOCkgfCAoKDEwKSA8PCA0KSB8ICgoMTApKSks
CiAgICBQSVhNQU5fYTJiMTBnMTByMTAgPSAoKCgzMikgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAo
KDIpIDw8IDEyKSB8ICgoMTApIDw8IDgpIHwgKCgxMCkgPDwgNCkgfCAoKDEwKSkpLAoKCiAgICBQ
SVhNQU5fYThyOGc4Yjhfc1JHQiA9ICgoKDMyKSA8PCAyNCkgfCAoKDEwKSA8PCAxNikgfCAoKDgp
IDw8IDEyKSB8ICgoOCkgPDwgOCkgfCAoKDgpIDw8IDQpIHwgKCg4KSkpLAoKCiAgICBQSVhNQU5f
cjhnOGI4ID0gKCgoMjQpIDw8IDI0KSB8ICgoMikgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDgp
IDw8IDgpIHwgKCg4KSA8PCA0KSB8ICgoOCkpKSwKICAgIFBJWE1BTl9iOGc4cjggPSAoKCgyNCkg
PDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoOCkgPDwgOCkgfCAoKDgpIDw8
IDQpIHwgKCg4KSkpLAoKCiAgICBQSVhNQU5fcjVnNmI1ID0gKCgoMTYpIDw8IDI0KSB8ICgoMikg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDUpIDw8IDgpIHwgKCg2KSA8PCA0KSB8ICgoNSkpKSwK
ICAgIFBJWE1BTl9iNWc2cjUgPSAoKCgxNikgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoNSkgPDwgOCkgfCAoKDYpIDw8IDQpIHwgKCg1KSkpLAoKICAgIFBJWE1BTl9hMXI1
ZzViNSA9ICgoKDE2KSA8PCAyNCkgfCAoKDIpIDw8IDE2KSB8ICgoMSkgPDwgMTIpIHwgKCg1KSA8
PCA4KSB8ICgoNSkgPDwgNCkgfCAoKDUpKSksCiAgICBQSVhNQU5feDFyNWc1YjUgPSAoKCgxNikg
PDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoNSkgPDwgOCkgfCAoKDUpIDw8
IDQpIHwgKCg1KSkpLAogICAgUElYTUFOX2ExYjVnNXI1ID0gKCgoMTYpIDw8IDI0KSB8ICgoMykg
PDwgMTYpIHwgKCgxKSA8PCAxMikgfCAoKDUpIDw8IDgpIHwgKCg1KSA8PCA0KSB8ICgoNSkpKSwK
ICAgIFBJWE1BTl94MWI1ZzVyNSA9ICgoKDE2KSA8PCAyNCkgfCAoKDMpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCg1KSA8PCA4KSB8ICgoNSkgPDwgNCkgfCAoKDUpKSksCiAgICBQSVhNQU5fYTRy
NGc0YjQgPSAoKCgxNikgPDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDQpIDw8IDEyKSB8ICgoNCkg
PDwgOCkgfCAoKDQpIDw8IDQpIHwgKCg0KSkpLAogICAgUElYTUFOX3g0cjRnNGI0ID0gKCgoMTYp
IDw8IDI0KSB8ICgoMikgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDQpIDw8IDgpIHwgKCg0KSA8
PCA0KSB8ICgoNCkpKSwKICAgIFBJWE1BTl9hNGI0ZzRyNCA9ICgoKDE2KSA8PCAyNCkgfCAoKDMp
IDw8IDE2KSB8ICgoNCkgPDwgMTIpIHwgKCg0KSA8PCA4KSB8ICgoNCkgPDwgNCkgfCAoKDQpKSks
CiAgICBQSVhNQU5feDRiNGc0cjQgPSAoKCgxNikgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoNCkgPDwgOCkgfCAoKDQpIDw8IDQpIHwgKCg0KSkpLAoKCiAgICBQSVhNQU5f
YTggPSAoKCg4KSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoOCkgPDwgMTIpIHwgKCgwKSA8PCA4
KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksCiAgICBQSVhNQU5fcjNnM2IyID0gKCgoOCkgPDwgMjQp
IHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMykgPDwgOCkgfCAoKDMpIDw8IDQpIHwg
KCgyKSkpLAogICAgUElYTUFOX2IyZzNyMyA9ICgoKDgpIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDMpIDw8IDgpIHwgKCgzKSA8PCA0KSB8ICgoMikpKSwKICAgIFBJWE1B
Tl9hMnIyZzJiMiA9ICgoKDgpIDw8IDI0KSB8ICgoMikgPDwgMTYpIHwgKCgyKSA8PCAxMikgfCAo
KDIpIDw8IDgpIHwgKCgyKSA8PCA0KSB8ICgoMikpKSwKICAgIFBJWE1BTl9hMmIyZzJyMiA9ICgo
KDgpIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwgKCgyKSA8PCAxMikgfCAoKDIpIDw8IDgpIHwgKCgy
KSA8PCA0KSB8ICgoMikpKSwKCiAgICBQSVhNQU5fYzggPSAoKCg4KSA8PCAyNCkgfCAoKDQpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksCiAg
ICBQSVhNQU5fZzggPSAoKCg4KSA8PCAyNCkgfCAoKDUpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksCgogICAgUElYTUFOX3g0YTQgPSAoKCg4
KSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoNCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSksCgogICAgUElYTUFOX3g0YzQgPSAoKCg4KSA8PCAyNCkgfCAoKDQpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksCiAg
ICBQSVhNQU5feDRnNCA9ICgoKDgpIDw8IDI0KSB8ICgoNSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwKCgogICAgUElYTUFOX2E0ID0gKCgo
NCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDQpIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpLAogICAgUElYTUFOX3IxZzJiMSA9ICgoKDQpIDw8IDI0KSB8ICgoMikg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDEpIDw8IDgpIHwgKCgyKSA8PCA0KSB8ICgoMSkpKSwK
ICAgIFBJWE1BTl9iMWcycjEgPSAoKCg0KSA8PCAyNCkgfCAoKDMpIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgxKSA8PCA4KSB8ICgoMikgPDwgNCkgfCAoKDEpKSksCiAgICBQSVhNQU5fYTFyMWcx
YjEgPSAoKCg0KSA8PCAyNCkgfCAoKDIpIDw8IDE2KSB8ICgoMSkgPDwgMTIpIHwgKCgxKSA8PCA4
KSB8ICgoMSkgPDwgNCkgfCAoKDEpKSksCiAgICBQSVhNQU5fYTFiMWcxcjEgPSAoKCg0KSA8PCAy
NCkgfCAoKDMpIDw8IDE2KSB8ICgoMSkgPDwgMTIpIHwgKCgxKSA8PCA4KSB8ICgoMSkgPDwgNCkg
fCAoKDEpKSksCgogICAgUElYTUFOX2M0ID0gKCgoNCkgPDwgMjQpIHwgKCg0KSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLAogICAgUElYTUFO
X2c0ID0gKCgoNCkgPDwgMjQpIHwgKCg1KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwg
OCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLAoKCiAgICBQSVhNQU5fYTEgPSAoKCgxKSA8PCAyNCkg
fCAoKDEpIDw8IDE2KSB8ICgoMSkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSksCgogICAgUElYTUFOX2cxID0gKCgoMSkgPDwgMjQpIHwgKCg1KSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLAoKCiAgICBQSVhNQU5f
eXV5MiA9ICgoKDE2KSA8PCAyNCkgfCAoKDYpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksCiAgICBQSVhNQU5feXYxMiA9ICgoKDEyKSA8PCAy
NCkgfCAoKDcpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkKfSBwaXhtYW5fZm9ybWF0X2NvZGVfdDsKCgpwaXhtYW5fYm9vbF90IHBpeG1hbl9m
b3JtYXRfc3VwcG9ydGVkX2Rlc3RpbmF0aW9uIChwaXhtYW5fZm9ybWF0X2NvZGVfdCBmb3JtYXQp
OwpwaXhtYW5fYm9vbF90IHBpeG1hbl9mb3JtYXRfc3VwcG9ydGVkX3NvdXJjZSAocGl4bWFuX2Zv
cm1hdF9jb2RlX3QgZm9ybWF0KTsKCgpwaXhtYW5faW1hZ2VfdCAqcGl4bWFuX2ltYWdlX2NyZWF0
ZV9zb2xpZF9maWxsIChjb25zdCBwaXhtYW5fY29sb3JfdCAqY29sb3IpOwpwaXhtYW5faW1hZ2Vf
dCAqcGl4bWFuX2ltYWdlX2NyZWF0ZV9saW5lYXJfZ3JhZGllbnQgKGNvbnN0IHBpeG1hbl9wb2lu
dF9maXhlZF90ICpwMSwKICAgICAgICAgICAgY29uc3QgcGl4bWFuX3BvaW50X2ZpeGVkX3QgKnAy
LAogICAgICAgICAgICBjb25zdCBwaXhtYW5fZ3JhZGllbnRfc3RvcF90ICpzdG9wcywKICAgICAg
ICAgICAgaW50IG5fc3RvcHMpOwpwaXhtYW5faW1hZ2VfdCAqcGl4bWFuX2ltYWdlX2NyZWF0ZV9y
YWRpYWxfZ3JhZGllbnQgKGNvbnN0IHBpeG1hbl9wb2ludF9maXhlZF90ICppbm5lciwKICAgICAg
ICAgICAgY29uc3QgcGl4bWFuX3BvaW50X2ZpeGVkX3QgKm91dGVyLAogICAgICAgICAgICBwaXht
YW5fZml4ZWRfdCBpbm5lcl9yYWRpdXMsCiAgICAgICAgICAgIHBpeG1hbl9maXhlZF90IG91dGVy
X3JhZGl1cywKICAgICAgICAgICAgY29uc3QgcGl4bWFuX2dyYWRpZW50X3N0b3BfdCAqc3RvcHMs
CiAgICAgICAgICAgIGludCBuX3N0b3BzKTsKcGl4bWFuX2ltYWdlX3QgKnBpeG1hbl9pbWFnZV9j
cmVhdGVfY29uaWNhbF9ncmFkaWVudCAoY29uc3QgcGl4bWFuX3BvaW50X2ZpeGVkX3QgKmNlbnRl
ciwKICAgICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgYW5nbGUsCiAgICAgICAgICAgIGNvbnN0IHBp
eG1hbl9ncmFkaWVudF9zdG9wX3QgKnN0b3BzLAogICAgICAgICAgICBpbnQgbl9zdG9wcyk7CnBp
eG1hbl9pbWFnZV90ICpwaXhtYW5faW1hZ2VfY3JlYXRlX2JpdHMgKHBpeG1hbl9mb3JtYXRfY29k
ZV90IGZvcm1hdCwKICAgICAgICAgICAgaW50IHdpZHRoLAogICAgICAgICAgICBpbnQgaGVpZ2h0
LAogICAgICAgICAgICB1aW50MzJfdCAqYml0cywKICAgICAgICAgICAgaW50IHJvd3N0cmlkZV9i
eXRlcyk7CnBpeG1hbl9pbWFnZV90ICpwaXhtYW5faW1hZ2VfY3JlYXRlX2JpdHNfbm9fY2xlYXIg
KHBpeG1hbl9mb3JtYXRfY29kZV90IGZvcm1hdCwKICAgICAgICAgICAgaW50IHdpZHRoLAogICAg
ICAgICAgICBpbnQgaGVpZ2h0LAogICAgICAgICAgICB1aW50MzJfdCAqIGJpdHMsCiAgICAgICAg
ICAgIGludCByb3dzdHJpZGVfYnl0ZXMpOwoKCnBpeG1hbl9pbWFnZV90ICpwaXhtYW5faW1hZ2Vf
cmVmIChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl9pbWFnZV91
bnJlZiAocGl4bWFuX2ltYWdlX3QgKmltYWdlKTsKCnZvaWQgcGl4bWFuX2ltYWdlX3NldF9kZXN0
cm95X2Z1bmN0aW9uIChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAgICAgIHBpeG1hbl9p
bWFnZV9kZXN0cm95X2Z1bmNfdCBmdW5jdGlvbiwKICAgICAgICAgICAgdm9pZCAqZGF0YSk7CnZv
aWQgKiBwaXhtYW5faW1hZ2VfZ2V0X2Rlc3Ryb3lfZGF0YSAocGl4bWFuX2ltYWdlX3QgKmltYWdl
KTsKCgpwaXhtYW5fYm9vbF90IHBpeG1hbl9pbWFnZV9zZXRfY2xpcF9yZWdpb24gKHBpeG1hbl9p
bWFnZV90ICppbWFnZSwKICAgICAgICAgICAgcGl4bWFuX3JlZ2lvbjE2X3QgKnJlZ2lvbik7CnBp
eG1hbl9ib29sX3QgcGl4bWFuX2ltYWdlX3NldF9jbGlwX3JlZ2lvbjMyIChwaXhtYW5faW1hZ2Vf
dCAqaW1hZ2UsCiAgICAgICAgICAgIHBpeG1hbl9yZWdpb24zMl90ICpyZWdpb24pOwp2b2lkIHBp
eG1hbl9pbWFnZV9zZXRfaGFzX2NsaWVudF9jbGlwIChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsCiAg
ICAgICAgICAgIHBpeG1hbl9ib29sX3QgY2xpZW5fY2xpcCk7CnBpeG1hbl9ib29sX3QgcGl4bWFu
X2ltYWdlX3NldF90cmFuc2Zvcm0gKHBpeG1hbl9pbWFnZV90ICppbWFnZSwKICAgICAgICAgICAg
Y29uc3QgcGl4bWFuX3RyYW5zZm9ybV90ICp0cmFuc2Zvcm0pOwp2b2lkIHBpeG1hbl9pbWFnZV9z
ZXRfcmVwZWF0IChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAgICAgIHBpeG1hbl9yZXBl
YXRfdCByZXBlYXQpOwpwaXhtYW5fYm9vbF90IHBpeG1hbl9pbWFnZV9zZXRfZmlsdGVyIChwaXht
YW5faW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAgICAgIHBpeG1hbl9maWx0ZXJfdCBmaWx0ZXIsCiAg
ICAgICAgICAgIGNvbnN0IHBpeG1hbl9maXhlZF90ICpmaWx0ZXJfcGFyYW1zLAogICAgICAgICAg
ICBpbnQgbl9maWx0ZXJfcGFyYW1zKTsKdm9pZCBwaXhtYW5faW1hZ2Vfc2V0X3NvdXJjZV9jbGlw
cGluZyAocGl4bWFuX2ltYWdlX3QgKmltYWdlLAogICAgICAgICAgICBwaXhtYW5fYm9vbF90IHNv
dXJjZV9jbGlwcGluZyk7CnZvaWQgcGl4bWFuX2ltYWdlX3NldF9hbHBoYV9tYXAgKHBpeG1hbl9p
bWFnZV90ICppbWFnZSwKICAgICAgICAgICAgcGl4bWFuX2ltYWdlX3QgKmFscGhhX21hcCwKICAg
ICAgICAgICAgaW50MTZfdCB4LAogICAgICAgICAgICBpbnQxNl90IHkpOwp2b2lkIHBpeG1hbl9p
bWFnZV9zZXRfY29tcG9uZW50X2FscGhhIChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAg
ICAgIHBpeG1hbl9ib29sX3QgY29tcG9uZW50X2FscGhhKTsKcGl4bWFuX2Jvb2xfdCBwaXhtYW5f
aW1hZ2VfZ2V0X2NvbXBvbmVudF9hbHBoYSAocGl4bWFuX2ltYWdlX3QgKmltYWdlKTsKdm9pZCBw
aXhtYW5faW1hZ2Vfc2V0X2FjY2Vzc29ycyAocGl4bWFuX2ltYWdlX3QgKmltYWdlLAogICAgICAg
ICAgICBwaXhtYW5fcmVhZF9tZW1vcnlfZnVuY190IHJlYWRfZnVuYywKICAgICAgICAgICAgcGl4
bWFuX3dyaXRlX21lbW9yeV9mdW5jX3Qgd3JpdGVfZnVuYyk7CnZvaWQgcGl4bWFuX2ltYWdlX3Nl
dF9pbmRleGVkIChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAgICAgIGNvbnN0IHBpeG1h
bl9pbmRleGVkX3QgKmluZGV4ZWQpOwp1aW50MzJfdCAqcGl4bWFuX2ltYWdlX2dldF9kYXRhIChw
aXhtYW5faW1hZ2VfdCAqaW1hZ2UpOwppbnQgcGl4bWFuX2ltYWdlX2dldF93aWR0aCAocGl4bWFu
X2ltYWdlX3QgKmltYWdlKTsKaW50IHBpeG1hbl9pbWFnZV9nZXRfaGVpZ2h0IChwaXhtYW5faW1h
Z2VfdCAqaW1hZ2UpOwppbnQgcGl4bWFuX2ltYWdlX2dldF9zdHJpZGUgKHBpeG1hbl9pbWFnZV90
ICppbWFnZSk7CmludCBwaXhtYW5faW1hZ2VfZ2V0X2RlcHRoIChwaXhtYW5faW1hZ2VfdCAqaW1h
Z2UpOwpwaXhtYW5fZm9ybWF0X2NvZGVfdCBwaXhtYW5faW1hZ2VfZ2V0X2Zvcm1hdCAocGl4bWFu
X2ltYWdlX3QgKmltYWdlKTsKCnR5cGVkZWYgZW51bQp7CiAgICBQSVhNQU5fS0VSTkVMX0lNUFVM
U0UsCiAgICBQSVhNQU5fS0VSTkVMX0JPWCwKICAgIFBJWE1BTl9LRVJORUxfTElORUFSLAogICAg
UElYTUFOX0tFUk5FTF9DVUJJQywKICAgIFBJWE1BTl9LRVJORUxfR0FVU1NJQU4sCiAgICBQSVhN
QU5fS0VSTkVMX0xBTkNaT1MyLAogICAgUElYTUFOX0tFUk5FTF9MQU5DWk9TMywKICAgIFBJWE1B
Tl9LRVJORUxfTEFOQ1pPUzNfU1RSRVRDSEVECn0gcGl4bWFuX2tlcm5lbF90OwoKCgoKcGl4bWFu
X2ZpeGVkX3QgKgpwaXhtYW5fZmlsdGVyX2NyZWF0ZV9zZXBhcmFibGVfY29udm9sdXRpb24gKGlu
dCAqbl92YWx1ZXMsCiAgICAgICAgIHBpeG1hbl9maXhlZF90IHNjYWxlX3gsCiAgICAgICAgIHBp
eG1hbl9maXhlZF90IHNjYWxlX3ksCiAgICAgICAgIHBpeG1hbl9rZXJuZWxfdCByZWNvbnN0cnVj
dF94LAogICAgICAgICBwaXhtYW5fa2VybmVsX3QgcmVjb25zdHJ1Y3RfeSwKICAgICAgICAgcGl4
bWFuX2tlcm5lbF90IHNhbXBsZV94LAogICAgICAgICBwaXhtYW5fa2VybmVsX3Qgc2FtcGxlX3ks
CiAgICAgICAgIGludCBzdWJzYW1wbGVfYml0c194LAogICAgICAgICBpbnQgc3Vic2FtcGxlX2Jp
dHNfeSk7CgpwaXhtYW5fYm9vbF90IHBpeG1hbl9pbWFnZV9maWxsX3JlY3RhbmdsZXMgKHBpeG1h
bl9vcF90IG9wLAogICAgICAgICAgICBwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAgICAg
IGNvbnN0IHBpeG1hbl9jb2xvcl90ICpjb2xvciwKICAgICAgICAgICAgaW50IG5fcmVjdHMsCiAg
ICAgICAgICAgIGNvbnN0IHBpeG1hbl9yZWN0YW5nbGUxNl90ICpyZWN0cyk7CnBpeG1hbl9ib29s
X3QgcGl4bWFuX2ltYWdlX2ZpbGxfYm94ZXMgKHBpeG1hbl9vcF90IG9wLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5faW1hZ2VfdCAq
ZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgcGl4bWFuX2NvbG9yX3QgKmNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbl9ib3hlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGl4bWFuX2JveDMy
X3QgKmJveGVzKTsKCgpwaXhtYW5fYm9vbF90IHBpeG1hbl9jb21wdXRlX2NvbXBvc2l0ZV9yZWdp
b24gKHBpeG1hbl9yZWdpb24xNl90ICpyZWdpb24sCiAgICAgICAgICAgIHBpeG1hbl9pbWFnZV90
ICpzcmNfaW1hZ2UsCiAgICAgICAgICAgIHBpeG1hbl9pbWFnZV90ICptYXNrX2ltYWdlLAogICAg
ICAgICAgICBwaXhtYW5faW1hZ2VfdCAqZGVzdF9pbWFnZSwKICAgICAgICAgICAgaW50MTZfdCBz
cmNfeCwKICAgICAgICAgICAgaW50MTZfdCBzcmNfeSwKICAgICAgICAgICAgaW50MTZfdCBtYXNr
X3gsCiAgICAgICAgICAgIGludDE2X3QgbWFza195LAogICAgICAgICAgICBpbnQxNl90IGRlc3Rf
eCwKICAgICAgICAgICAgaW50MTZfdCBkZXN0X3ksCiAgICAgICAgICAgIHVpbnQxNl90IHdpZHRo
LAogICAgICAgICAgICB1aW50MTZfdCBoZWlnaHQpOwp2b2lkIHBpeG1hbl9pbWFnZV9jb21wb3Np
dGUgKHBpeG1hbl9vcF90IG9wLAogICAgICAgICAgICBwaXhtYW5faW1hZ2VfdCAqc3JjLAogICAg
ICAgICAgICBwaXhtYW5faW1hZ2VfdCAqbWFzaywKICAgICAgICAgICAgcGl4bWFuX2ltYWdlX3Qg
KmRlc3QsCiAgICAgICAgICAgIGludDE2X3Qgc3JjX3gsCiAgICAgICAgICAgIGludDE2X3Qgc3Jj
X3ksCiAgICAgICAgICAgIGludDE2X3QgbWFza194LAogICAgICAgICAgICBpbnQxNl90IG1hc2tf
eSwKICAgICAgICAgICAgaW50MTZfdCBkZXN0X3gsCiAgICAgICAgICAgIGludDE2X3QgZGVzdF95
LAogICAgICAgICAgICB1aW50MTZfdCB3aWR0aCwKICAgICAgICAgICAgdWludDE2X3QgaGVpZ2h0
KTsKdm9pZCBwaXhtYW5faW1hZ2VfY29tcG9zaXRlMzIgKHBpeG1hbl9vcF90IG9wLAogICAgICAg
ICAgICBwaXhtYW5faW1hZ2VfdCAqc3JjLAogICAgICAgICAgICBwaXhtYW5faW1hZ2VfdCAqbWFz
aywKICAgICAgICAgICAgcGl4bWFuX2ltYWdlX3QgKmRlc3QsCiAgICAgICAgICAgIGludDMyX3Qg
c3JjX3gsCiAgICAgICAgICAgIGludDMyX3Qgc3JjX3ksCiAgICAgICAgICAgIGludDMyX3QgbWFz
a194LAogICAgICAgICAgICBpbnQzMl90IG1hc2tfeSwKICAgICAgICAgICAgaW50MzJfdCBkZXN0
X3gsCiAgICAgICAgICAgIGludDMyX3QgZGVzdF95LAogICAgICAgICAgICBpbnQzMl90IHdpZHRo
LAogICAgICAgICAgICBpbnQzMl90IGhlaWdodCk7CiMgOTI4ICIvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXht
YW4uaCIKdm9pZCBwaXhtYW5fZGlzYWJsZV9vdXRfb2ZfYm91bmRzX3dvcmthcm91bmQgKHZvaWQp
OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2dseXBoX2NhY2hlX3QgcGl4bWFuX2dseXBoX2Nh
Y2hlX3Q7CnR5cGVkZWYgc3RydWN0CnsKICAgIGludCB4LCB5OwogICAgY29uc3Qgdm9pZCAqZ2x5
cGg7Cn0gcGl4bWFuX2dseXBoX3Q7CgpwaXhtYW5fZ2x5cGhfY2FjaGVfdCAqcGl4bWFuX2dseXBo
X2NhY2hlX2NyZWF0ZSAodm9pZCk7CnZvaWQgcGl4bWFuX2dseXBoX2NhY2hlX2Rlc3Ryb3kgKHBp
eG1hbl9nbHlwaF9jYWNoZV90ICpjYWNoZSk7CnZvaWQgcGl4bWFuX2dseXBoX2NhY2hlX2ZyZWV6
ZSAocGl4bWFuX2dseXBoX2NhY2hlX3QgKmNhY2hlKTsKdm9pZCBwaXhtYW5fZ2x5cGhfY2FjaGVf
dGhhdyAocGl4bWFuX2dseXBoX2NhY2hlX3QgKmNhY2hlKTsKY29uc3Qgdm9pZCAqIHBpeG1hbl9n
bHlwaF9jYWNoZV9sb29rdXAgKHBpeG1hbl9nbHlwaF9jYWNoZV90ICpjYWNoZSwKICAgICAgICAg
ICAgIHZvaWQgKmZvbnRfa2V5LAogICAgICAgICAgICAgdm9pZCAqZ2x5cGhfa2V5KTsKY29uc3Qg
dm9pZCAqIHBpeG1hbl9nbHlwaF9jYWNoZV9pbnNlcnQgKHBpeG1hbl9nbHlwaF9jYWNoZV90ICpj
YWNoZSwKICAgICAgICAgICAgIHZvaWQgKmZvbnRfa2V5LAogICAgICAgICAgICAgdm9pZCAqZ2x5
cGhfa2V5LAogICAgICAgICAgICAgaW50IG9yaWdpbl94LAogICAgICAgICAgICAgaW50IG9yaWdp
bl95LAogICAgICAgICAgICAgcGl4bWFuX2ltYWdlX3QgKmdseXBoX2ltYWdlKTsKdm9pZCBwaXht
YW5fZ2x5cGhfY2FjaGVfcmVtb3ZlIChwaXhtYW5fZ2x5cGhfY2FjaGVfdCAqY2FjaGUsCiAgICAg
ICAgICAgICB2b2lkICpmb250X2tleSwKICAgICAgICAgICAgIHZvaWQgKmdseXBoX2tleSk7CnZv
aWQgcGl4bWFuX2dseXBoX2dldF9leHRlbnRzIChwaXhtYW5fZ2x5cGhfY2FjaGVfdCAqY2FjaGUs
CiAgICAgICAgICAgICBpbnQgbl9nbHlwaHMsCiAgICAgICAgICAgICBwaXhtYW5fZ2x5cGhfdCAq
Z2x5cGhzLAogICAgICAgICAgICAgcGl4bWFuX2JveDMyX3QgKmV4dGVudHMpOwpwaXhtYW5fZm9y
bWF0X2NvZGVfdCBwaXhtYW5fZ2x5cGhfZ2V0X21hc2tfZm9ybWF0IChwaXhtYW5fZ2x5cGhfY2Fj
aGVfdCAqY2FjaGUsCiAgICAgICAgICAgICBpbnQgbl9nbHlwaHMsCiAgICAgICAgICAgICBjb25z
dCBwaXhtYW5fZ2x5cGhfdCAqZ2x5cGhzKTsKdm9pZCBwaXhtYW5fY29tcG9zaXRlX2dseXBocyAo
cGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICBwaXhtYW5faW1hZ2VfdCAqc3JjLAogICAgICAg
ICAgICAgcGl4bWFuX2ltYWdlX3QgKmRlc3QsCiAgICAgICAgICAgICBwaXhtYW5fZm9ybWF0X2Nv
ZGVfdCBtYXNrX2Zvcm1hdCwKICAgICAgICAgICAgIGludDMyX3Qgc3JjX3gsCiAgICAgICAgICAg
ICBpbnQzMl90IHNyY195LAogICAgICAgICAgICAgaW50MzJfdCBtYXNrX3gsCiAgICAgICAgICAg
ICBpbnQzMl90IG1hc2tfeSwKICAgICAgICAgICAgIGludDMyX3QgZGVzdF94LAogICAgICAgICAg
ICAgaW50MzJfdCBkZXN0X3ksCiAgICAgICAgICAgICBpbnQzMl90IHdpZHRoLAogICAgICAgICAg
ICAgaW50MzJfdCBoZWlnaHQsCiAgICAgICAgICAgICBwaXhtYW5fZ2x5cGhfY2FjaGVfdCAqY2Fj
aGUsCiAgICAgICAgICAgICBpbnQgbl9nbHlwaHMsCiAgICAgICAgICAgICBjb25zdCBwaXhtYW5f
Z2x5cGhfdCAqZ2x5cGhzKTsKdm9pZCBwaXhtYW5fY29tcG9zaXRlX2dseXBoc19ub19tYXNrIChw
aXhtYW5fb3BfdCBvcCwKICAgICAgICAgICAgIHBpeG1hbl9pbWFnZV90ICpzcmMsCiAgICAgICAg
ICAgICBwaXhtYW5faW1hZ2VfdCAqZGVzdCwKICAgICAgICAgICAgIGludDMyX3Qgc3JjX3gsCiAg
ICAgICAgICAgICBpbnQzMl90IHNyY195LAogICAgICAgICAgICAgaW50MzJfdCBkZXN0X3gsCiAg
ICAgICAgICAgICBpbnQzMl90IGRlc3RfeSwKICAgICAgICAgICAgIHBpeG1hbl9nbHlwaF9jYWNo
ZV90ICpjYWNoZSwKICAgICAgICAgICAgIGludCBuX2dseXBocywKICAgICAgICAgICAgIGNvbnN0
IHBpeG1hbl9nbHlwaF90ICpnbHlwaHMpOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2VkZ2Ug
cGl4bWFuX2VkZ2VfdDsKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX3RyYXBlem9pZCBwaXhtYW5fdHJh
cGV6b2lkX3Q7CnR5cGVkZWYgc3RydWN0IHBpeG1hbl90cmFwIHBpeG1hbl90cmFwX3Q7CnR5cGVk
ZWYgc3RydWN0IHBpeG1hbl9zcGFuX2ZpeCBwaXhtYW5fc3Bhbl9maXhfdDsKdHlwZWRlZiBzdHJ1
Y3QgcGl4bWFuX3RyaWFuZ2xlIHBpeG1hbl90cmlhbmdsZV90OwoKCgoKCgpzdHJ1Y3QgcGl4bWFu
X2VkZ2UKewogICAgcGl4bWFuX2ZpeGVkX3QgeDsKICAgIHBpeG1hbl9maXhlZF90IGU7CiAgICBw
aXhtYW5fZml4ZWRfdCBzdGVweDsKICAgIHBpeG1hbl9maXhlZF90IHNpZ25keDsKICAgIHBpeG1h
bl9maXhlZF90IGR5OwogICAgcGl4bWFuX2ZpeGVkX3QgZHg7CgogICAgcGl4bWFuX2ZpeGVkX3Qg
c3RlcHhfc21hbGw7CiAgICBwaXhtYW5fZml4ZWRfdCBzdGVweF9iaWc7CiAgICBwaXhtYW5fZml4
ZWRfdCBkeF9zbWFsbDsKICAgIHBpeG1hbl9maXhlZF90IGR4X2JpZzsKfTsKCnN0cnVjdCBwaXht
YW5fdHJhcGV6b2lkCnsKICAgIHBpeG1hbl9maXhlZF90IHRvcCwgYm90dG9tOwogICAgcGl4bWFu
X2xpbmVfZml4ZWRfdCBsZWZ0LCByaWdodDsKfTsKCnN0cnVjdCBwaXhtYW5fdHJpYW5nbGUKewog
ICAgcGl4bWFuX3BvaW50X2ZpeGVkX3QgcDEsIHAyLCBwMzsKfTsKCgoKCgoKCnN0cnVjdCBwaXht
YW5fc3Bhbl9maXgKewogICAgcGl4bWFuX2ZpeGVkX3QgbCwgciwgeTsKfTsKCnN0cnVjdCBwaXht
YW5fdHJhcAp7CiAgICBwaXhtYW5fc3Bhbl9maXhfdCB0b3AsIGJvdDsKfTsKCnBpeG1hbl9maXhl
ZF90IHBpeG1hbl9zYW1wbGVfY2VpbF95IChwaXhtYW5fZml4ZWRfdCB5LAogICAgICAgICBpbnQg
YnBwKTsKcGl4bWFuX2ZpeGVkX3QgcGl4bWFuX3NhbXBsZV9mbG9vcl95IChwaXhtYW5fZml4ZWRf
dCB5LAogICAgICAgICBpbnQgYnBwKTsKdm9pZCBwaXhtYW5fZWRnZV9zdGVwIChwaXhtYW5fZWRn
ZV90ICplLAogICAgICAgICBpbnQgbik7CnZvaWQgcGl4bWFuX2VkZ2VfaW5pdCAocGl4bWFuX2Vk
Z2VfdCAqZSwKICAgICAgICAgaW50IGJwcCwKICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgeV9zdGFy
dCwKICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgeF90b3AsCiAgICAgICAgIHBpeG1hbl9maXhlZF90
IHlfdG9wLAogICAgICAgICBwaXhtYW5fZml4ZWRfdCB4X2JvdCwKICAgICAgICAgcGl4bWFuX2Zp
eGVkX3QgeV9ib3QpOwp2b2lkIHBpeG1hbl9saW5lX2ZpeGVkX2VkZ2VfaW5pdCAocGl4bWFuX2Vk
Z2VfdCAqZSwKICAgICAgICAgaW50IGJwcCwKICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgeSwKICAg
ICAgICAgY29uc3QgcGl4bWFuX2xpbmVfZml4ZWRfdCAqbGluZSwKICAgICAgICAgaW50IHhfb2Zm
LAogICAgICAgICBpbnQgeV9vZmYpOwp2b2lkIHBpeG1hbl9yYXN0ZXJpemVfZWRnZXMgKHBpeG1h
bl9pbWFnZV90ICppbWFnZSwKICAgICAgICAgcGl4bWFuX2VkZ2VfdCAqbCwKICAgICAgICAgcGl4
bWFuX2VkZ2VfdCAqciwKICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgdCwKICAgICAgICAgcGl4bWFu
X2ZpeGVkX3QgYik7CnZvaWQgcGl4bWFuX2FkZF90cmFwcyAocGl4bWFuX2ltYWdlX3QgKmltYWdl
LAogICAgICAgICBpbnQxNl90IHhfb2ZmLAogICAgICAgICBpbnQxNl90IHlfb2ZmLAogICAgICAg
ICBpbnQgbnRyYXAsCiAgICAgICAgIGNvbnN0IHBpeG1hbl90cmFwX3QgKnRyYXBzKTsKdm9pZCBw
aXhtYW5fYWRkX3RyYXBlem9pZHMgKHBpeG1hbl9pbWFnZV90ICppbWFnZSwKICAgICAgICAgaW50
MTZfdCB4X29mZiwKICAgICAgICAgaW50IHlfb2ZmLAogICAgICAgICBpbnQgbnRyYXBzLAogICAg
ICAgICBjb25zdCBwaXhtYW5fdHJhcGV6b2lkX3QgKnRyYXBzKTsKdm9pZCBwaXhtYW5fcmFzdGVy
aXplX3RyYXBlem9pZCAocGl4bWFuX2ltYWdlX3QgKmltYWdlLAogICAgICAgICBjb25zdCBwaXht
YW5fdHJhcGV6b2lkX3QgKnRyYXAsCiAgICAgICAgIGludCB4X29mZiwKICAgICAgICAgaW50IHlf
b2ZmKTsKdm9pZCBwaXhtYW5fY29tcG9zaXRlX3RyYXBlem9pZHMgKHBpeG1hbl9vcF90IG9wLAog
ICAgICAgIHBpeG1hbl9pbWFnZV90ICogc3JjLAogICAgICAgIHBpeG1hbl9pbWFnZV90ICogZHN0
LAogICAgICAgIHBpeG1hbl9mb3JtYXRfY29kZV90IG1hc2tfZm9ybWF0LAogICAgICAgIGludCB4
X3NyYywKICAgICAgICBpbnQgeV9zcmMsCiAgICAgICAgaW50IHhfZHN0LAogICAgICAgIGludCB5
X2RzdCwKICAgICAgICBpbnQgbl90cmFwcywKICAgICAgICBjb25zdCBwaXhtYW5fdHJhcGV6b2lk
X3QgKiB0cmFwcyk7CnZvaWQgcGl4bWFuX2NvbXBvc2l0ZV90cmlhbmdsZXMgKHBpeG1hbl9vcF90
IG9wLAogICAgICAgcGl4bWFuX2ltYWdlX3QgKiBzcmMsCiAgICAgICBwaXhtYW5faW1hZ2VfdCAq
IGRzdCwKICAgICAgIHBpeG1hbl9mb3JtYXRfY29kZV90IG1hc2tfZm9ybWF0LAogICAgICAgaW50
IHhfc3JjLAogICAgICAgaW50IHlfc3JjLAogICAgICAgaW50IHhfZHN0LAogICAgICAgaW50IHlf
ZHN0LAogICAgICAgaW50IG5fdHJpcywKICAgICAgIGNvbnN0IHBpeG1hbl90cmlhbmdsZV90ICog
dHJpcyk7CnZvaWQgcGl4bWFuX2FkZF90cmlhbmdsZXMgKHBpeG1hbl9pbWFnZV90ICppbWFnZSwK
ICAgICAgIGludDMyX3QgeF9vZmYsCiAgICAgICBpbnQzMl90IHlfb2ZmLAogICAgICAgaW50IG5f
dHJpcywKICAgICAgIGNvbnN0IHBpeG1hbl90cmlhbmdsZV90ICp0cmlzKTsKCgojIDI4ICIvaG9t
ZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4z
Mi42L3BpeG1hbi9waXhtYW4tcHJpdmF0ZS5oIiAyCiMgMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIg
MSAzIDQKIyAyOSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0CgoKCgoKCgoKIyAxICIvdXNyL2xp
Yi9nY2MvYXJtLWxpbnV4LWdudWVhYmloZi80LjkvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAy
MTIgIi91c3IvbGliL2djYy9hcm0tbGludXgtZ251ZWFiaWhmLzQuOS9pbmNsdWRlL3N0ZGRlZi5o
IiAzIDQKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwojIDM4ICIvdXNyL2luY2x1ZGUvdGlt
ZS5oIiAyIDMgNAoKCgojIDEgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMv
dGltZS5oIiAxIDMgNAojIDQyICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMgNAojIDU1ICIvdXNy
L2luY2x1ZGUvdGltZS5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmlo
Zi9iaXRzL3R5cGVzLmgiIDEgMyA0CiMgMjcgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFi
aWhmL2JpdHMvdHlwZXMuaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL2FybS1saW51eC1nbnVlYWJp
aGYvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAojIDI4ICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdu
dWVhYmloZi9iaXRzL3R5cGVzLmgiIDIgMyA0CgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9j
aGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX3Vfc2hvcnQ7CnR5cGVkZWYgdW5zaWdu
ZWQgaW50IF9fdV9pbnQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX191X2xvbmc7CgoKdHlw
ZWRlZiBzaWduZWQgY2hhciBfX2ludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhf
dDsKdHlwZWRlZiBzaWduZWQgc2hvcnQgaW50IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBz
aG9ydCBpbnQgX191aW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsKdHlwZWRl
ZiB1bnNpZ25lZCBpbnQgX191aW50MzJfdDsKCgoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWdu
ZWQgbG9uZyBsb25nIGludCBfX2ludDY0X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIGxvbmcgaW50IF9fdWludDY0X3Q7CgoKCgoKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
bG9uZyBsb25nIGludCBfX3F1YWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgX191X3F1YWRfdDsKIyAxMjEgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251
ZWFiaWhmL2JpdHMvdHlwZXMuaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL2FybS1saW51eC1nbnVl
YWJpaGYvYml0cy90eXBlc2l6ZXMuaCIgMSAzIDQKIyAxMjIgIi91c3IvaW5jbHVkZS9hcm0tbGlu
dXgtZ251ZWFiaWhmL2JpdHMvdHlwZXMuaCIgMiAzIDQKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
X191X3F1YWRfdCBfX2Rldl90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9f
dWlkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19naWRfdDsKX19leHRl
bnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9faW5vX3Q7Cl9fZXh0ZW5zaW9uX18g
dHlwZWRlZiBfX3VfcXVhZF90IF9faW5vNjRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2ln
bmVkIGludCBfX21vZGVfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX25s
aW5rX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX29mZl90OwpfX2V4dGVuc2lv
bl9fIHR5cGVkZWYgX19xdWFkX3QgX19vZmY2NF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50
IF9fcGlkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzdHJ1Y3QgeyBpbnQgX192YWxbMl07IH0g
X19mc2lkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7Cl9fZXh0
ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3JsaW1fdDsKX19leHRlbnNpb25f
XyB0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVu
c2lnbmVkIGludCBfX2lkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX3RpbWVf
dDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7Cl9fZXh0
ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX3N1c2Vjb25kc190OwoKX19leHRlbnNpb25fXyB0
eXBlZGVmIGludCBfX2RhZGRyX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19rZXlfdDsK
CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fY2xvY2tpZF90OwoKCl9fZXh0ZW5zaW9uX18g
dHlwZWRlZiB2b2lkICogX190aW1lcl90OwoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGlu
dCBfX2Jsa3NpemVfdDsKCgoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX2Jsa2Nu
dF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19xdWFkX3QgX19ibGtjbnQ2NF90OwoKCl9fZXh0
ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZzYmxrY250X3Q7Cl9fZXh0ZW5z
aW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNibGtjbnQ2NF90OwoKCl9fZXh0ZW5zaW9uX18g
dHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZzZmlsY250X3Q7Cl9fZXh0ZW5zaW9uX18gdHlw
ZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBp
bnQgX19mc3dvcmRfdDsKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19zc2l6ZV90OwoKCl9f
ZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX3N5c2NhbGxfc2xvbmdfdDsKCl9fZXh0ZW5z
aW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3N5c2NhbGxfdWxvbmdfdDsKCgoKdHlw
ZWRlZiBfX29mZjY0X3QgX19sb2ZmX3Q7CnR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsKdHlw
ZWRlZiBjaGFyICpfX2NhZGRyX3Q7CgoKX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX2ludHB0
cl90OwoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19zb2NrbGVuX3Q7CiMg
NTYgIi91c3IvaW5jbHVkZS90aW1lLmgiIDIgMyA0CgoKCnR5cGVkZWYgX19jbG9ja190IGNsb2Nr
X3Q7CgoKCiMgNzMgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAoKCnR5cGVkZWYgX190aW1lX3Qg
dGltZV90OwoKCgojIDkxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKdHlwZWRlZiBfX2Nsb2Nr
aWRfdCBjbG9ja2lkX3Q7CiMgMTAzICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKdHlwZWRlZiBf
X3RpbWVyX3QgdGltZXJfdDsKIyAxMjAgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNApzdHJ1Y3Qg
dGltZXNwZWMKICB7CiAgICBfX3RpbWVfdCB0dl9zZWM7CiAgICBfX3N5c2NhbGxfc2xvbmdfdCB0
dl9uc2VjOwogIH07CgoKCgoKCgoKc3RydWN0IHRtCnsKICBpbnQgdG1fc2VjOwogIGludCB0bV9t
aW47CiAgaW50IHRtX2hvdXI7CiAgaW50IHRtX21kYXk7CiAgaW50IHRtX21vbjsKICBpbnQgdG1f
eWVhcjsKICBpbnQgdG1fd2RheTsKICBpbnQgdG1feWRheTsKICBpbnQgdG1faXNkc3Q7CgoKICBs
b25nIGludCB0bV9nbXRvZmY7CiAgY29uc3QgY2hhciAqdG1fem9uZTsKCgoKCn07CgoKCgoKCgoK
c3RydWN0IGl0aW1lcnNwZWMKICB7CiAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfaW50ZXJ2YWw7CiAg
ICBzdHJ1Y3QgdGltZXNwZWMgaXRfdmFsdWU7CiAgfTsKCgpzdHJ1Y3Qgc2lnZXZlbnQ7CgoKCgoK
dHlwZWRlZiBfX3BpZF90IHBpZF90OwojIDE4NiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0CgoK
CmV4dGVybiBjbG9ja190IGNsb2NrICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwoKCmV4dGVybiB0aW1lX3QgdGltZSAodGltZV90ICpfX3RpbWVyKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoKCmV4dGVybiBkb3VibGUgZGlm
ZnRpbWUgKHRpbWVfdCBfX3RpbWUxLCB0aW1lX3QgX190aW1lMCkKICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsK
CgpleHRlcm4gdGltZV90IG1rdGltZSAoc3RydWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoKCgoKCmV4dGVybiBzaXplX3Qgc3RyZnRpbWUgKGNo
YXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhzaXplLAogICBjb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fZm9ybWF0LAogICBjb25zdCBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX190cCkgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKCiMgMjIxICIvdXNyL2luY2x1
ZGUvdGltZS5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUveGxvY2FsZS5oIiAxIDMgNAojIDI3ICIv
dXNyL2luY2x1ZGUveGxvY2FsZS5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QgX19sb2NhbGVfc3RydWN0
CnsKCiAgc3RydWN0IF9fbG9jYWxlX2RhdGEgKl9fbG9jYWxlc1sxM107CgoKICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBpbnQgKl9fY3R5cGVfYjsKICBjb25zdCBpbnQgKl9fY3R5cGVfdG9sb3dlcjsK
ICBjb25zdCBpbnQgKl9fY3R5cGVfdG91cHBlcjsKCgogIGNvbnN0IGNoYXIgKl9fbmFtZXNbMTNd
Owp9ICpfX2xvY2FsZV90OwoKCnR5cGVkZWYgX19sb2NhbGVfdCBsb2NhbGVfdDsKIyAyMjIgIi91
c3IvaW5jbHVkZS90aW1lLmgiIDIgMyA0CgpleHRlcm4gc2l6ZV90IHN0cmZ0aW1lX2wgKGNoYXIg
Kl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhzaXplLAogICAgIGNvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mb3JtYXQsCiAgICAgY29uc3Qgc3RydWN0IHRtICpfX3Jlc3RyaWN0IF9fdHAsCiAg
ICAgX19sb2NhbGVfdCBfX2xvYykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKIyAyMzYgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAoKCgpleHRlcm4gc3RydWN0IHRt
ICpnbXRpbWUgKGNvbnN0IHRpbWVfdCAqX190aW1lcikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChjb25zdCB0
aW1lX3QgKl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
CgoKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lX3IgKGNvbnN0IHRpbWVfdCAqX19yZXN0cmlj
dCBfX3RpbWVyLAogICAgICAgc3RydWN0IHRtICpfX3Jlc3RyaWN0IF9fdHApIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgoKCmV4dGVybiBzdHJ1Y3QgdG0gKmxvY2Fs
dGltZV9yIChjb25zdCB0aW1lX3QgKl9fcmVzdHJpY3QgX190aW1lciwKICAgICAgICAgIHN0cnVj
dCB0bSAqX19yZXN0cmljdCBfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwoKCgoKCmV4dGVybiBjaGFyICphc2N0aW1lIChjb25zdCBzdHJ1Y3QgdG0gKl9fdHAp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgoKZXh0ZXJuIGNoYXIg
KmN0aW1lIChjb25zdCB0aW1lX3QgKl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7CgoKCgoKCgpleHRlcm4gY2hhciAqYXNjdGltZV9yIChjb25zdCBzdHJ1
Y3QgdG0gKl9fcmVzdHJpY3QgX190cCwKICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZikgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKCgpleHRlcm4gY2hhciAqY3RpbWVf
ciAoY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9fdGltZXIsCiAgICAgICAgY2hhciAqX19yZXN0
cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKCgoK
CmV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKZXh0ZXJuIGludCBfX2RheWxpZ2h0OwpleHRlcm4g
bG9uZyBpbnQgX190aW1lem9uZTsKCgoKCmV4dGVybiBjaGFyICp0em5hbWVbMl07CgoKCmV4dGVy
biB2b2lkIHR6c2V0ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwoKCgpleHRlcm4gaW50IGRheWxpZ2h0OwpleHRlcm4gbG9uZyBpbnQgdGltZXpvbmU7CgoK
CgoKZXh0ZXJuIGludCBzdGltZSAoY29uc3QgdGltZV90ICpfX3doZW4pIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CiMgMzE5ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAz
IDQKZXh0ZXJuIHRpbWVfdCB0aW1lZ20gKHN0cnVjdCB0bSAqX190cCkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKCgpleHRlcm4gdGltZV90IHRpbWVsb2NhbCAoc3Ry
dWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoK
CmV4dGVybiBpbnQgZHlzaXplIChpbnQgX195ZWFyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKIyAzMzQgIi91c3Iv
aW5jbHVkZS90aW1lLmgiIDMgNApleHRlcm4gaW50IG5hbm9zbGVlcCAoY29uc3Qgc3RydWN0IHRp
bWVzcGVjICpfX3JlcXVlc3RlZF90aW1lLAogICAgICAgIHN0cnVjdCB0aW1lc3BlYyAqX19yZW1h
aW5pbmcpOwoKCgpleHRlcm4gaW50IGNsb2NrX2dldHJlcyAoY2xvY2tpZF90IF9fY2xvY2tfaWQs
IHN0cnVjdCB0aW1lc3BlYyAqX19yZXMpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7CgoKZXh0ZXJuIGludCBjbG9ja19nZXR0aW1lIChjbG9ja2lkX3QgX19jbG9ja19p
ZCwgc3RydWN0IHRpbWVzcGVjICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwoKCmV4dGVybiBpbnQgY2xvY2tfc2V0dGltZSAoY2xvY2tpZF90IF9fY2xvY2tf
aWQsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX190cCkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwoKCgoKCgpleHRlcm4gaW50IGNsb2NrX25hbm9zbGVlcCAo
Y2xvY2tpZF90IF9fY2xvY2tfaWQsIGludCBfX2ZsYWdzLAogICAgICAgY29uc3Qgc3RydWN0IHRp
bWVzcGVjICpfX3JlcSwKICAgICAgIHN0cnVjdCB0aW1lc3BlYyAqX19yZW0pOwoKCmV4dGVybiBp
bnQgY2xvY2tfZ2V0Y3B1Y2xvY2tpZCAocGlkX3QgX19waWQsIGNsb2NraWRfdCAqX19jbG9ja19p
ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKCgoKCmV4dGVybiBp
bnQgdGltZXJfY3JlYXRlIChjbG9ja2lkX3QgX19jbG9ja19pZCwKICAgIHN0cnVjdCBzaWdldmVu
dCAqX19yZXN0cmljdCBfX2V2cCwKICAgIHRpbWVyX3QgKl9fcmVzdHJpY3QgX190aW1lcmlkKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoKCmV4dGVybiBpbnQgdGlt
ZXJfZGVsZXRlICh0aW1lcl90IF9fdGltZXJpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKCgpleHRlcm4gaW50IHRpbWVyX3NldHRpbWUgKHRpbWVyX3QgX190aW1l
cmlkLCBpbnQgX19mbGFncywKICAgICBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyAqX19yZXN0cmlj
dCBfX3ZhbHVlLAogICAgIHN0cnVjdCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fb3ZhbHVlKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoKCmV4dGVybiBpbnQgdGlt
ZXJfZ2V0dGltZSAodGltZXJfdCBfX3RpbWVyaWQsIHN0cnVjdCBpdGltZXJzcGVjICpfX3ZhbHVl
KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgoKZXh0ZXJu
IGludCB0aW1lcl9nZXRvdmVycnVuICh0aW1lcl90IF9fdGltZXJpZCkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKIyA0MzAgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMg
NAoKIyAyOSAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3Vy
Y2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLXByaXZhdGUuaCIgMgojIDEgIi91c3IvaW5j
bHVkZS9hc3NlcnQuaCIgMSAzIDQKIyA2NiAiL3Vzci9pbmNsdWRlL2Fzc2VydC5oIiAzIDQKCgoK
ZXh0ZXJuIHZvaWQgX19hc3NlcnRfZmFpbCAoY29uc3QgY2hhciAqX19hc3NlcnRpb24sIGNvbnN0
IGNoYXIgKl9fZmlsZSwKICAgICAgdW5zaWduZWQgaW50IF9fbGluZSwgY29uc3QgY2hhciAqX19m
dW5jdGlvbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKCgpleHRlcm4gdm9pZCBfX2Fzc2VydF9wZXJy
b3JfZmFpbCAoaW50IF9fZXJybnVtLCBjb25zdCBjaGFyICpfX2ZpbGUsCiAgICAgIHVuc2lnbmVk
IGludCBfX2xpbmUsIGNvbnN0IGNoYXIgKl9fZnVuY3Rpb24pCiAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSk7
CgoKCgpleHRlcm4gdm9pZCBfX2Fzc2VydCAoY29uc3QgY2hhciAqX19hc3NlcnRpb24sIGNvbnN0
IGNoYXIgKl9fZmlsZSwgaW50IF9fbGluZSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKCgoKIyAzMCAi
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFu
LTAuMzIuNi9waXhtYW4vcGl4bWFuLXByaXZhdGUuaCIgMgojIDEgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAxIDMgNAojIDI5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CgoKCgojIDEgIi91c3Iv
bGliL2djYy9hcm0tbGludXgtZ251ZWFiaWhmLzQuOS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAoj
IDM0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKIyA0NCAiL3Vzci9pbmNsdWRlL3N0ZGlv
LmgiIDMgNApzdHJ1Y3QgX0lPX0ZJTEU7CgoKCnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIEZJTEU7
CgoKCgoKIyA2NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCBfSU9f
RklMRSBfX0ZJTEU7CiMgNzQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKIyAxICIvdXNyL2lu
Y2x1ZGUvbGliaW8uaCIgMSAzIDQKIyAzMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAojIDEg
Ii91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMSAzIDQKIyAxNSAiL3Vzci9pbmNsdWRlL19HX2Nv
bmZpZy5oIiAzIDQKIyAxICIvdXNyL2xpYi9nY2MvYXJtLWxpbnV4LWdudWVhYmloZi80LjkvaW5j
bHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAxNiAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAyIDMg
NAoKCgoKIyAxICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMSAzIDQKIyA4MiAiL3Vzci9pbmNsdWRl
L3djaGFyLmgiIDMgNAp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fY291bnQ7CiAgdW5pb24KICB7
CgogICAgdW5zaWduZWQgaW50IF9fd2NoOwoKCgogICAgY2hhciBfX3djaGJbNF07CiAgfSBfX3Zh
bHVlOwp9IF9fbWJzdGF0ZV90OwojIDIxICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDIgMyA0
CnR5cGVkZWYgc3RydWN0CnsKICBfX29mZl90IF9fcG9zOwogIF9fbWJzdGF0ZV90IF9fc3RhdGU7
Cn0gX0dfZnBvc190Owp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmY2NF90IF9fcG9zOwogIF9fbWJz
dGF0ZV90IF9fc3RhdGU7Cn0gX0dfZnBvczY0X3Q7CiMgMzIgIi91c3IvaW5jbHVkZS9saWJpby5o
IiAyIDMgNAojIDQ5ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CiMgMSAiL3Vzci9saWIvZ2Nj
L2FybS1saW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvc3RkYXJnLmgiIDEgMyA0CiMgNDAgIi91
c3IvbGliL2djYy9hcm0tbGludXgtZ251ZWFiaWhmLzQuOS9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQK
dHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1MCAiL3Vzci9pbmNs
dWRlL2xpYmlvLmgiIDIgMyA0CiMgMTQ0ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CnN0cnVj
dCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7CiMgMTU0ICIvdXNyL2luY2x1ZGUvbGliaW8u
aCIgMyA0CnR5cGVkZWYgdm9pZCBfSU9fbG9ja190OwoKCgoKCnN0cnVjdCBfSU9fbWFya2VyIHsK
ICBzdHJ1Y3QgX0lPX21hcmtlciAqX25leHQ7CiAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsKCgoK
ICBpbnQgX3BvczsKIyAxNzcgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKfTsKCgplbnVtIF9f
Y29kZWN2dF9yZXN1bHQKewogIF9fY29kZWN2dF9vaywKICBfX2NvZGVjdnRfcGFydGlhbCwKICBf
X2NvZGVjdnRfZXJyb3IsCiAgX19jb2RlY3Z0X25vY29udgp9OwojIDI0NSAiL3Vzci9pbmNsdWRl
L2xpYmlvLmgiIDMgNApzdHJ1Y3QgX0lPX0ZJTEUgewogIGludCBfZmxhZ3M7CgoKCgogIGNoYXIq
IF9JT19yZWFkX3B0cjsKICBjaGFyKiBfSU9fcmVhZF9lbmQ7CiAgY2hhciogX0lPX3JlYWRfYmFz
ZTsKICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRyOwogIGNoYXIq
IF9JT193cml0ZV9lbmQ7CiAgY2hhciogX0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9JT19idWZfZW5k
OwoKICBjaGFyICpfSU9fc2F2ZV9iYXNlOwogIGNoYXIgKl9JT19iYWNrdXBfYmFzZTsKICBjaGFy
ICpfSU9fc2F2ZV9lbmQ7CgogIHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0
IF9JT19GSUxFICpfY2hhaW47CgogIGludCBfZmlsZW5vOwoKCgogIGludCBfZmxhZ3MyOwoKICBf
X29mZl90IF9vbGRfb2Zmc2V0OwoKCgogIHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOwogIHNp
Z25lZCBjaGFyIF92dGFibGVfb2Zmc2V0OwogIGNoYXIgX3Nob3J0YnVmWzFdOwoKCgogIF9JT19s
b2NrX3QgKl9sb2NrOwojIDI5MyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAogIF9fb2ZmNjRf
dCBfb2Zmc2V0OwojIDMwMiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAogIHZvaWQgKl9fcGFk
MTsKICB2b2lkICpfX3BhZDI7CiAgdm9pZCAqX19wYWQzOwogIHZvaWQgKl9fcGFkNDsKICBzaXpl
X3QgX19wYWQ1OwoKICBpbnQgX21vZGU7CgogIGNoYXIgX3VudXNlZDJbMTUgKiBzaXplb2YgKGlu
dCkgLSA0ICogc2l6ZW9mICh2b2lkICopIC0gc2l6ZW9mIChzaXplX3QpXTsKCn07CgoKdHlwZWRl
ZiBzdHJ1Y3QgX0lPX0ZJTEUgX0lPX0ZJTEU7CgoKc3RydWN0IF9JT19GSUxFX3BsdXM7CgpleHRl
cm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRpbl87CmV4dGVybiBzdHJ1Y3QgX0lP
X0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBf
SU9fMl8xX3N0ZGVycl87CiMgMzM4ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CnR5cGVkZWYg
X19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9fYnVmLCBzaXpl
X3QgX19uYnl0ZXMpOwoKCgoKCgoKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9p
ZCAqX19jb29raWUsIGNvbnN0IGNoYXIgKl9fYnVmLAogICAgIHNpemVfdCBfX24pOwoKCgoKCgoK
dHlwZWRlZiBpbnQgX19pb19zZWVrX2ZuICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpfX3Bv
cywgaW50IF9fdyk7CgoKdHlwZWRlZiBpbnQgX19pb19jbG9zZV9mbiAodm9pZCAqX19jb29raWUp
OwojIDM5MCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNApleHRlcm4gaW50IF9fdW5kZXJmbG93
IChfSU9fRklMRSAqKTsKZXh0ZXJuIGludCBfX3VmbG93IChfSU9fRklMRSAqKTsKZXh0ZXJuIGlu
dCBfX292ZXJmbG93IChfSU9fRklMRSAqLCBpbnQpOwojIDQzNCAiL3Vzci9pbmNsdWRlL2xpYmlv
LmgiIDMgNApleHRlcm4gaW50IF9JT19nZXRjIChfSU9fRklMRSAqX19mcCk7CmV4dGVybiBpbnQg
X0lPX3B1dGMgKGludCBfX2MsIF9JT19GSUxFICpfX2ZwKTsKZXh0ZXJuIGludCBfSU9fZmVvZiAo
X0lPX0ZJTEUgKl9fZnApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAoX0lPX0ZJTEUgKl9fZnApIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgpleHRlcm4gaW50IF9JT19wZWVrY19sb2NrZWQgKF9J
T19GSUxFICpfX2ZwKTsKCgoKCgpleHRlcm4gdm9pZCBfSU9fZmxvY2tmaWxlIChfSU9fRklMRSAq
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwpleHRlcm4gdm9pZCBf
SU9fZnVubG9ja2ZpbGUgKF9JT19GSUxFICopIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7CmV4dGVybiBpbnQgX0lPX2Z0cnlsb2NrZmlsZSAoX0lPX0ZJTEUgKikgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKIyA0NjQgIi91c3IvaW5jbHVk
ZS9saWJpby5oIiAzIDQKZXh0ZXJuIGludCBfSU9fdmZzY2FuZiAoX0lPX0ZJTEUgKiBfX3Jlc3Ry
aWN0LCBjb25zdCBjaGFyICogX19yZXN0cmljdCwKICAgX19nbnVjX3ZhX2xpc3QsIGludCAqX19y
ZXN0cmljdCk7CmV4dGVybiBpbnQgX0lPX3ZmcHJpbnRmIChfSU9fRklMRSAqX19yZXN0cmljdCwg
Y29uc3QgY2hhciAqX19yZXN0cmljdCwKICAgIF9fZ251Y192YV9saXN0KTsKZXh0ZXJuIF9fc3Np
emVfdCBfSU9fcGFkbiAoX0lPX0ZJTEUgKiwgaW50LCBfX3NzaXplX3QpOwpleHRlcm4gc2l6ZV90
IF9JT19zZ2V0biAoX0lPX0ZJTEUgKiwgdm9pZCAqLCBzaXplX3QpOwoKZXh0ZXJuIF9fb2ZmNjRf
dCBfSU9fc2Vla29mZiAoX0lPX0ZJTEUgKiwgX19vZmY2NF90LCBpbnQsIGludCk7CmV4dGVybiBf
X29mZjY0X3QgX0lPX3NlZWtwb3MgKF9JT19GSUxFICosIF9fb2ZmNjRfdCwgaW50KTsKCmV4dGVy
biB2b2lkIF9JT19mcmVlX2JhY2t1cF9hcmVhIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwojIDc1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAz
IDQKCgoKCnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFfbGlzdDsKIyA5MCAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMgNAp0eXBlZGVmIF9fb2ZmX3Qgb2ZmX3Q7CiMgMTAyICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMyA0CnR5cGVkZWYgX19zc2l6ZV90IHNzaXplX3Q7CgoKCgoKCgp0eXBlZGVmIF9H
X2Zwb3NfdCBmcG9zX3Q7CgoKCgojIDE2NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAojIDEg
Ii91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3RkaW9fbGltLmgiIDEgMyA0
CiMgMTY1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKCgoKZXh0ZXJuIHN0cnVjdCBfSU9f
RklMRSAqc3RkaW47CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZG91dDsKZXh0ZXJuIHN0cnVj
dCBfSU9fRklMRSAqc3RkZXJyOwoKCgoKCgoKZXh0ZXJuIGludCByZW1vdmUgKGNvbnN0IGNoYXIg
Kl9fZmlsZW5hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cgpl
eHRlcm4gaW50IHJlbmFtZSAoY29uc3QgY2hhciAqX19vbGQsIGNvbnN0IGNoYXIgKl9fbmV3KSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoKCgoKZXh0ZXJuIGludCBy
ZW5hbWVhdCAoaW50IF9fb2xkZmQsIGNvbnN0IGNoYXIgKl9fb2xkLCBpbnQgX19uZXdmZCwKICAg
ICAgIGNvbnN0IGNoYXIgKl9fbmV3KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwoKCgoKCgoKCmV4dGVybiBGSUxFICp0bXBmaWxlICh2b2lkKSA7CiMgMjA5ICIvdXNy
L2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBjaGFyICp0bXBuYW0gKGNoYXIgKl9fcykgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7CgoKCgoKZXh0ZXJuIGNoYXIg
KnRtcG5hbV9yIChjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgOwojIDIyNyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gY2hhciAqdGVt
cG5hbSAoY29uc3QgY2hhciAqX19kaXIsIGNvbnN0IGNoYXIgKl9fcGZ4KQogICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9j
X18pKSA7CgoKCgoKCgoKZXh0ZXJuIGludCBmY2xvc2UgKEZJTEUgKl9fc3RyZWFtKTsKCgoKCmV4
dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSk7CgojIDI1MiAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDMgNApleHRlcm4gaW50IGZmbHVzaF91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pOwoj
IDI2NiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAoKCgoKCgpleHRlcm4gRklMRSAqZm9wZW4g
KGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlbmFtZSwKICAgICAgY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX21vZGVzKSA7CgoKCgpleHRlcm4gRklMRSAqZnJlb3BlbiAoY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX2ZpbGVuYW1lLAogICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19t
b2RlcywKICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CiMgMjk1ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMyA0CgojIDMwNiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRl
cm4gRklMRSAqZmRvcGVuIChpbnQgX19mZCwgY29uc3QgY2hhciAqX19tb2RlcykgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7CiMgMzE5ICIvdXNyL2luY2x1ZGUvc3Rk
aW8uaCIgMyA0CmV4dGVybiBGSUxFICpmbWVtb3BlbiAodm9pZCAqX19zLCBzaXplX3QgX19sZW4s
IGNvbnN0IGNoYXIgKl9fbW9kZXMpCiAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSA7CgoKCgpleHRlcm4gRklMRSAqb3Blbl9tZW1zdHJlYW0gKGNoYXIgKipfX2J1Zmxv
Yywgc2l6ZV90ICpfX3NpemVsb2MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgOwoKCgoKCgpleHRlcm4gdm9pZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl
YW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7CgoKCmV4dGVybiBpbnQgc2V0dmJ1ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0
cmVhbSwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwKICAgICAgaW50IF9fbW9kZXMsIHNpemVfdCBf
X24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgoKCgoKZXh0ZXJu
IHZvaWQgc2V0YnVmZmVyIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3Ry
aWN0IF9fYnVmLAogICAgICAgICBzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwoKCmV4dGVybiB2b2lkIHNldGxpbmVidWYgKEZJTEUgKl9fc3Ry
ZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwoKCgoKCgoKCmV4
dGVybiBpbnQgZnByaW50ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKTsKCgoKCmV4dGVybiBpbnQgcHJpbnRmIChj
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pOwoKZXh0ZXJuIGludCBzcHJpbnRm
IChjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv
cm1hdCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKCgoKCgpleHRlcm4gaW50
IHZmcHJpbnRmIChGSUxFICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X2Zvcm1hdCwKICAgICAgIF9fZ251Y192YV9saXN0IF9fYXJnKTsKCgoKCmV4dGVybiBpbnQgdnBy
aW50ZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19h
cmcpOwoKZXh0ZXJuIGludCB2c3ByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgoKCgoKZXh0ZXJuIGludCBzbnByaW50ZiAoY2hh
ciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKICAgICAgIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19mb3JtYXQsIC4uLikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgNCkpKTsKCmV4dGVy
biBpbnQgdnNucHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAog
ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9f
YXJnKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChf
X2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCAwKSkpOwoKIyA0MTIgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAzIDQKZXh0ZXJuIGludCB2ZHByaW50ZiAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mbXQsCiAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMiwgMCkpKTsKZXh0ZXJuIGludCBkcHJpbnRm
IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgLi4uKQogICAgIF9fYXR0
cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAyLCAzKSkpOwoKCgoKCgoKCmV4dGVy
biBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAogICAgIGNvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKCgoKZXh0ZXJuIGludCBzY2FuZiAoY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4gaW50IHNzY2FuZiAoY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv
cm1hdCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwojIDQ0
MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IGZzY2FuZiAoRklMRSAqX19y
ZXN0cmljdCBfX3N0cmVhbSwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSBf
X2FzbV9fICgiIiAiX19pc29jOTlfZnNjYW5mIikKCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA7CmV4dGVybiBpbnQgc2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQs
IC4uLikgX19hc21fXyAoIiIgIl9faXNvYzk5X3NjYW5mIikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOwpleHRlcm4gaW50IHNzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3Ms
IGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgX19hc21fXyAoIiIgIl9faXNv
Yzk5X3NzY2FuZiIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkKCiAg
ICAgICAgICAgICAgICAgICAgICA7CiMgNDYzICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CgoK
CgoKCgoKZXh0ZXJuIGludCB2ZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKSA7CgoKCgoKZXh0
ZXJuIGludCB2c2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192
YV9saXN0IF9fYXJnKQogICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18s
IDEsIDApKSkgOwoKCmV4dGVybiBpbnQgdnNzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X3MsCiAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0
IF9fYXJnKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKTsKIyA0OTQgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGludCB2ZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0
IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19h
cmcpIF9fYXNtX18gKCIiICJfX2lzb2M5OV92ZnNjYW5mIikKCgoKICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpIDsKZXh0ZXJuIGludCB2c2NhbmYgKGNv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKSBfX2Fz
bV9fICgiIiAiX19pc29jOTlfdnNjYW5mIikKCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0
X18gKF9fc2NhbmZfXywgMSwgMCkpKSA7CmV4dGVybiBpbnQgdnNzY2FuZiAoY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192
YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdnNzY2FuZiIpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkKCgoKICAgICBfX2F0dHJpYnV0ZV9fICgoX19m
b3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpOwojIDUyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi
IDMgNAoKCgoKCgoKCgpleHRlcm4gaW50IGZnZXRjIChGSUxFICpfX3N0cmVhbSk7CmV4dGVybiBp
bnQgZ2V0YyAoRklMRSAqX19zdHJlYW0pOwoKCgoKCmV4dGVybiBpbnQgZ2V0Y2hhciAodm9pZCk7
CgojIDU1MCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IGdldGNfdW5sb2Nr
ZWQgKEZJTEUgKl9fc3RyZWFtKTsKZXh0ZXJuIGludCBnZXRjaGFyX3VubG9ja2VkICh2b2lkKTsK
IyA1NjEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGludCBmZ2V0Y191bmxvY2tl
ZCAoRklMRSAqX19zdHJlYW0pOwoKCgoKCgoKCgoKCmV4dGVybiBpbnQgZnB1dGMgKGludCBfX2Ms
IEZJTEUgKl9fc3RyZWFtKTsKZXh0ZXJuIGludCBwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVh
bSk7CgoKCgoKZXh0ZXJuIGludCBwdXRjaGFyIChpbnQgX19jKTsKCiMgNTk0ICIvdXNyL2luY2x1
ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBpbnQgZnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUg
Kl9fc3RyZWFtKTsKCgoKCgoKCmV4dGVybiBpbnQgcHV0Y191bmxvY2tlZCAoaW50IF9fYywgRklM
RSAqX19zdHJlYW0pOwpleHRlcm4gaW50IHB1dGNoYXJfdW5sb2NrZWQgKGludCBfX2MpOwoKCgoK
CgpleHRlcm4gaW50IGdldHcgKEZJTEUgKl9fc3RyZWFtKTsKCgpleHRlcm4gaW50IHB1dHcgKGlu
dCBfX3csIEZJTEUgKl9fc3RyZWFtKTsKCgoKCgoKCgpleHRlcm4gY2hhciAqZmdldHMgKGNoYXIg
Kl9fcmVzdHJpY3QgX19zLCBpbnQgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQogICAg
IDsKIyA2MzggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGNoYXIgKmdldHMgKGNo
YXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7CgoKIyA2NjUgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIF9fc3NpemVfdCBfX2dldGRlbGltIChjaGFyICoq
X19yZXN0cmljdCBfX2xpbmVwdHIsCiAgICAgICAgICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLCBp
bnQgX19kZWxpbWl0ZXIsCiAgICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CmV4
dGVybiBfX3NzaXplX3QgZ2V0ZGVsaW0gKGNoYXIgKipfX3Jlc3RyaWN0IF9fbGluZXB0ciwKICAg
ICAgICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLCBpbnQgX19kZWxpbWl0ZXIsCiAgICAgICAgRklM
RSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwoKCgoKCgoKZXh0ZXJuIF9fc3NpemVfdCBnZXRsaW5l
IChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVwdHIsCiAgICAgICBzaXplX3QgKl9fcmVzdHJpY3Qg
X19uLAogICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwoKCgoKCgoKCmV4dGVybiBp
bnQgZnB1dHMgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBGSUxFICpfX3Jlc3RyaWN0IF9f
c3RyZWFtKTsKCgoKCgpleHRlcm4gaW50IHB1dHMgKGNvbnN0IGNoYXIgKl9fcyk7CgoKCgoKCmV4
dGVybiBpbnQgdW5nZXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7CgoKCgoKCmV4dGVybiBz
aXplX3QgZnJlYWQgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAg
ICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CgoKCgpleHRlcm4gc2l6
ZV90IGZ3cml0ZSAoY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwK
ICAgICAgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fcyk7CgojIDczNyAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gc2l6ZV90IGZyZWFkX3VubG9ja2VkICh2b2lkICpf
X3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICBzaXplX3QgX19uLCBGSUxF
ICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CmV4dGVybiBzaXplX3QgZndyaXRlX3VubG9ja2VkIChj
b25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgc2l6
ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSk7CgoKCgoKCgoKZXh0ZXJuIGludCBm
c2VlayAoRklMRSAqX19zdHJlYW0sIGxvbmcgaW50IF9fb2ZmLCBpbnQgX193aGVuY2UpOwoKCgoK
ZXh0ZXJuIGxvbmcgaW50IGZ0ZWxsIChGSUxFICpfX3N0cmVhbSkgOwoKCgoKZXh0ZXJuIHZvaWQg
cmV3aW5kIChGSUxFICpfX3N0cmVhbSk7CgojIDc3MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMg
NApleHRlcm4gaW50IGZzZWVrbyAoRklMRSAqX19zdHJlYW0sIF9fb2ZmX3QgX19vZmYsIGludCBf
X3doZW5jZSk7CgoKCgpleHRlcm4gX19vZmZfdCBmdGVsbG8gKEZJTEUgKl9fc3RyZWFtKSA7CiMg
NzkyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CgoKCgoKCmV4dGVybiBpbnQgZmdldHBvcyAo
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgZnBvc190ICpfX3Jlc3RyaWN0IF9fcG9zKTsKCgoK
CmV4dGVybiBpbnQgZnNldHBvcyAoRklMRSAqX19zdHJlYW0sIGNvbnN0IGZwb3NfdCAqX19wb3Mp
OwojIDgxNSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAoKIyA4MjQgIi91c3IvaW5jbHVkZS9z
dGRpby5oIiAzIDQKCgpleHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAqX19zdHJlYW0pIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgpleHRlcm4gaW50IGZlb2YgKEZJ
TEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK
CmV4dGVybiBpbnQgZmVycm9yIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSA7CgoKCgpleHRlcm4gdm9pZCBjbGVhcmVycl91bmxvY2tlZCAo
RklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
CmV4dGVybiBpbnQgZmVvZl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwpleHRlcm4gaW50IGZlcnJvcl91bmxvY2tlZCAo
RklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
OwoKCgoKCgoKCmV4dGVybiB2b2lkIHBlcnJvciAoY29uc3QgY2hhciAqX19zKTsKCgoKCgoKIyAx
ICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmloZi9iaXRzL3N5c19lcnJsaXN0LmgiIDEg
MyA0CiMgMjYgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3lzX2Vycmxp
c3QuaCIgMyA0CmV4dGVybiBpbnQgc3lzX25lcnI7CmV4dGVybiBjb25zdCBjaGFyICpjb25zdCBz
eXNfZXJybGlzdFtdOwojIDg1NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0CgoKCgpleHRl
cm4gaW50IGZpbGVubyAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgOwoKCgoKZXh0ZXJuIGludCBmaWxlbm9fdW5sb2NrZWQgKEZJTEUgKl9f
c3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKIyA4NzMg
Ii91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIEZJTEUgKnBvcGVuIChjb25zdCBjaGFy
ICpfX2NvbW1hbmQsIGNvbnN0IGNoYXIgKl9fbW9kZXMpIDsKCgoKCgpleHRlcm4gaW50IHBjbG9z
ZSAoRklMRSAqX19zdHJlYW0pOwoKCgoKCmV4dGVybiBjaGFyICpjdGVybWlkIChjaGFyICpfX3Mp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CiMgOTEzICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiB2b2lkIGZsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0p
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgoKCmV4dGVybiBpbnQg
ZnRyeWxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSA7CgoKZXh0ZXJuIHZvaWQgZnVubG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFt
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwojIDkzNCAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhm
L2JpdHMvc3RkaW8uaCIgMSAzIDQKIyAzNSAiL3Vzci9pbmNsdWRlL2FybS1saW51eC1nbnVlYWJp
aGYvYml0cy9zdGRpby5oIiAzIDQKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2du
dV9pbmxpbmVfXykpIGludAp2cHJpbnRmIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCBf
X2dudWNfdmFfbGlzdCBfX2FyZykKewogIHJldHVybiB2ZnByaW50ZiAoc3Rkb3V0LCBfX2ZtdCwg
X19hcmcpOwp9CgoKCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5l
X18pKSBpbnQKZ2V0Y2hhciAodm9pZCkKewogIHJldHVybiBfSU9fZ2V0YyAoc3RkaW4pOwp9CgoK
CgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgaW50CmZn
ZXRjX3VubG9ja2VkIChGSUxFICpfX2ZwKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0ICgo
KF9fZnApLT5fSU9fcmVhZF9wdHIgPj0gKF9fZnApLT5fSU9fcmVhZF9lbmQpLCAwKSA/IF9fdWZs
b3cgKF9fZnApIDogKih1bnNpZ25lZCBjaGFyICopIChfX2ZwKS0+X0lPX3JlYWRfcHRyKyspOwp9
CgoKCgoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykpIGlu
dApnZXRjX3VubG9ja2VkIChGSUxFICpfX2ZwKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0
ICgoKF9fZnApLT5fSU9fcmVhZF9wdHIgPj0gKF9fZnApLT5fSU9fcmVhZF9lbmQpLCAwKSA/IF9f
dWZsb3cgKF9fZnApIDogKih1bnNpZ25lZCBjaGFyICopIChfX2ZwKS0+X0lPX3JlYWRfcHRyKysp
Owp9CgoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykpIGlu
dApnZXRjaGFyX3VubG9ja2VkICh2b2lkKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0ICgo
KHN0ZGluKS0+X0lPX3JlYWRfcHRyID49IChzdGRpbiktPl9JT19yZWFkX2VuZCksIDApID8gX191
ZmxvdyAoc3RkaW4pIDogKih1bnNpZ25lZCBjaGFyICopIChzdGRpbiktPl9JT19yZWFkX3B0cisr
KTsKfQoKCgoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykp
IGludApwdXRjaGFyIChpbnQgX19jKQp7CiAgcmV0dXJuIF9JT19wdXRjIChfX2MsIHN0ZG91dCk7
Cn0KCgoKCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18pKSBp
bnQKZnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKQp7CiAgcmV0dXJuIChf
X2J1aWx0aW5fZXhwZWN0ICgoKF9fc3RyZWFtKS0+X0lPX3dyaXRlX3B0ciA+PSAoX19zdHJlYW0p
LT5fSU9fd3JpdGVfZW5kKSwgMCkgPyBfX292ZXJmbG93IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNo
YXIpIChfX2MpKSA6ICh1bnNpZ25lZCBjaGFyKSAoKihfX3N0cmVhbSktPl9JT193cml0ZV9wdHIr
KyA9IChfX2MpKSk7Cn0KCgoKCgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251
X2lubGluZV9fKSkgaW50CnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKQp7
CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0ICgoKF9fc3RyZWFtKS0+X0lPX3dyaXRlX3B0ciA+
PSAoX19zdHJlYW0pLT5fSU9fd3JpdGVfZW5kKSwgMCkgPyBfX292ZXJmbG93IChfX3N0cmVhbSwg
KHVuc2lnbmVkIGNoYXIpIChfX2MpKSA6ICh1bnNpZ25lZCBjaGFyKSAoKihfX3N0cmVhbSktPl9J
T193cml0ZV9wdHIrKyA9IChfX2MpKSk7Cn0KCgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVf
XyAoKF9fZ251X2lubGluZV9fKSkgaW50CnB1dGNoYXJfdW5sb2NrZWQgKGludCBfX2MpCnsKICBy
ZXR1cm4gKF9fYnVpbHRpbl9leHBlY3QgKCgoc3Rkb3V0KS0+X0lPX3dyaXRlX3B0ciA+PSAoc3Rk
b3V0KS0+X0lPX3dyaXRlX2VuZCksIDApID8gX19vdmVyZmxvdyAoc3Rkb3V0LCAodW5zaWduZWQg
Y2hhcikgKF9fYykpIDogKHVuc2lnbmVkIGNoYXIpICgqKHN0ZG91dCktPl9JT193cml0ZV9wdHIr
KyA9IChfX2MpKSk7Cn0KIyAxMjQgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2Jp
dHMvc3RkaW8uaCIgMyA0CmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5s
aW5lX18pKSBpbnQKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBmZW9m
X3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkKewogIHJldHVybiAoKChfX3N0cmVhbSktPl9mbGFn
cyAmIDB4MTApICE9IDApOwp9CgoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2du
dV9pbmxpbmVfXykpIGludApfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IGZlcnJvcl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pCnsKICByZXR1cm4gKCgoX19zdHJlYW0p
LT5fZmxhZ3MgJiAweDIwKSAhPSAwKTsKfQojIDkzNSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIg
MyA0CiMgOTQzICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CgojIDMxICIvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1h
bi9waXhtYW4tcHJpdmF0ZS5oIiAyCiMgMSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAxIDMgNAoj
IDI3ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAoKCgoKCiMgMSAiL3Vzci9saWIvZ2NjL2Fy
bS1saW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0CiMgMzMgIi91c3Iv
aW5jbHVkZS9zdHJpbmcuaCIgMiAzIDQKIyA0NCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQK
CgpleHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3Qgdm9p
ZCAqX19yZXN0cmljdCBfX3NyYywKICAgICAgIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAy
KSkpOwoKCmV4dGVybiB2b2lkICptZW1tb3ZlICh2b2lkICpfX2Rlc3QsIGNvbnN0IHZvaWQgKl9f
c3JjLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKCgoKCgpleHRlcm4g
dm9pZCAqbWVtY2NweSAodm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHZvaWQgKl9fcmVz
dHJpY3QgX19zcmMsCiAgICAgICAgaW50IF9fYywgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSwgMikpKTsKCgoKCgpleHRlcm4gdm9pZCAqbWVtc2V0ICh2b2lkICpfX3MsIGludCBfX2Ms
IHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwoKCmV4dGVybiBpbnQgbWVtY21wIChjb25z
dCB2b2lkICpfX3MxLCBjb25zdCB2b2lkICpfX3MyLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwojIDk2ICIvdXNyL2luY2x1
ZGUvc3RyaW5nLmgiIDMgNApleHRlcm4gdm9pZCAqbWVtY2hyIChjb25zdCB2b2lkICpfX3MsIGlu
dCBfX2MsIHNpemVfdCBfX24pCiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxKSkpOwoKCiMgMTI3ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAoKCmV4dGVy
biBjaGFyICpzdHJjcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fc3JjKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKZXh0ZXJuIGNoYXIgKnN0
cm5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICAgICAgIGNvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19zcmMsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoKZXh0
ZXJuIGNoYXIgKnN0cmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19zcmMpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgpleHRlcm4gY2hhciAq
c3RybmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19zcmMsCiAgICAgICAgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoKZXh0ZXJu
IGludCBzdHJjbXAgKGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIpCiAgICAgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19w
dXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgpleHRlcm4gaW50
IHN0cm5jbXAgKGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIsIHNpemVfdCBfX24p
CiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoK
ZXh0ZXJuIGludCBzdHJjb2xsIChjb25zdCBjaGFyICpfX3MxLCBjb25zdCBjaGFyICpfX3MyKQog
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKZXh0
ZXJuIHNpemVfdCBzdHJ4ZnJtIChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwKICAgICAgICAgY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MikpKTsKCiMgMTY2ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNApleHRlcm4gaW50IHN0cmNv
bGxfbCAoY29uc3QgY2hhciAqX19zMSwgY29uc3QgY2hhciAqX19zMiwgX19sb2NhbGVfdCBfX2wp
CiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIsIDMpKSk7
CgpleHRlcm4gc2l6ZV90IHN0cnhmcm1fbCAoY2hhciAqX19kZXN0LCBjb25zdCBjaGFyICpfX3Ny
Yywgc2l6ZV90IF9fbiwKICAgIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgNCkpKTsK
CgoKCgpleHRlcm4gY2hhciAqc3RyZHVwIChjb25zdCBjaGFyICpfX3MpCiAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2Nf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKCgoKCgoKZXh0ZXJuIGNoYXIg
KnN0cm5kdXAgKGNvbnN0IGNoYXIgKl9fc3RyaW5nLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9j
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CiMgMjExICIvdXNyL2luY2x1
ZGUvc3RyaW5nLmgiIDMgNAoKIyAyMzYgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CmV4dGVy
biBjaGFyICpzdHJjaHIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYykKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKIyAyNjMgIi91c3IvaW5jbHVkZS9z
dHJpbmcuaCIgMyA0CmV4dGVybiBjaGFyICpzdHJyY2hyIChjb25zdCBjaGFyICpfX3MsIGludCBf
X2MpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CgoK
IyAyODIgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CgoKCmV4dGVybiBzaXplX3Qgc3RyY3Nw
biAoY29uc3QgY2hhciAqX19zLCBjb25zdCBjaGFyICpfX3JlamVjdCkKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpleHRlcm4gc2l6ZV90IHN0
cnNwbiAoY29uc3QgY2hhciAqX19zLCBjb25zdCBjaGFyICpfX2FjY2VwdCkKICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKIyAzMTUgIi91c3IvaW5j
bHVkZS9zdHJpbmcuaCIgMyA0CmV4dGVybiBjaGFyICpzdHJwYnJrIChjb25zdCBjaGFyICpfX3Ms
IGNvbnN0IGNoYXIgKl9fYWNjZXB0KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxLCAyKSkpOwojIDM0MiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKZXh0
ZXJuIGNoYXIgKnN0cnN0ciAoY29uc3QgY2hhciAqX19oYXlzdGFjaywgY29uc3QgY2hhciAqX19u
ZWVkbGUpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp
KSk7CgoKCgpleHRlcm4gY2hhciAqc3RydG9rIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2RlbGltKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwoKCgoKZXh0
ZXJuIGNoYXIgKl9fc3RydG9rX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAogICAgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2RlbGltLAogICAgY2hhciAqKl9fcmVzdHJpY3QgX19zYXZlX3B0cikK
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl
X18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKCmV4dGVybiBjaGFyICpzdHJ0b2tfciAoY2hhciAq
X19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSwKICAgICAgICAg
Y2hhciAqKl9fcmVzdHJpY3QgX19zYXZlX3B0cikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsK
IyAzOTcgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CgoKZXh0ZXJuIHNpemVfdCBzdHJsZW4g
KGNvbnN0IGNoYXIgKl9fcykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSkpKTsKCgoKCgpleHRlcm4gc2l6ZV90IHN0cm5sZW4gKGNvbnN0IGNoYXIgKl9fc3Ry
aW5nLCBzaXplX3QgX19tYXhsZW4pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u
b25udWxsX18gKDEpKSk7CgoKCgoKZXh0ZXJuIGNoYXIgKnN0cmVycm9yIChpbnQgX19lcnJudW0p
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7CgojIDQyNyAiL3Vzci9p
bmNsdWRlL3N0cmluZy5oIiAzIDQKZXh0ZXJuIGludCBzdHJlcnJvcl9yIChpbnQgX19lcnJudW0s
IGNoYXIgKl9fYnVmLCBzaXplX3QgX19idWZsZW4pIF9fYXNtX18gKCIiICJfX3hwZ19zdHJlcnJv
cl9yIikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKQoKICAgICAgICAg
ICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwojIDQ0NSAi
L3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKZXh0ZXJuIGNoYXIgKnN0cmVycm9yX2wgKGludCBf
X2Vycm51bSwgX19sb2NhbGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7CgoKCgoKZXh0ZXJuIHZvaWQgX19iemVybyAodm9pZCAqX19zLCBzaXplX3QgX19u
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMSkpKTsKCgoKZXh0ZXJuIHZvaWQgYmNvcHkgKGNvbnN0IHZvaWQgKl9f
c3JjLCB2b2lkICpfX2Rlc3QsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7
CgoKZXh0ZXJuIHZvaWQgYnplcm8gKHZvaWQgKl9fcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSk7CgoKZXh0ZXJuIGludCBiY21wIChjb25zdCB2b2lkICpfX3MxLCBjb25zdCB2b2lkICpf
X3MyLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs
bF9fICgxLCAyKSkpOwojIDQ4OSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKZXh0ZXJuIGNo
YXIgKmluZGV4IChjb25zdCBjaGFyICpfX3MsIGludCBfX2MpCiAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CiMgNTE3ICIvdXNyL2luY2x1ZGUvc3RyaW5n
LmgiIDMgNApleHRlcm4gY2hhciAqcmluZGV4IChjb25zdCBjaGFyICpfX3MsIGludCBfX2MpCiAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9f
ICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CgoKCgpleHRl
cm4gaW50IGZmcyAoaW50IF9faSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CiMgNTM0ICIvdXNyL2luY2x1ZGUvc3Ry
aW5nLmgiIDMgNApleHRlcm4gaW50IHN0cmNhc2VjbXAgKGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0
IGNoYXIgKl9fczIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEsIDIpKSk7CgoKZXh0ZXJuIGludCBzdHJuY2FzZWNtcCAoY29uc3QgY2hhciAqX19zMSwgY29u
c3QgY2hhciAqX19zMiwgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMSwgMikpKTsKIyA1NTcgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0
CmV4dGVybiBjaGFyICpzdHJzZXAgKGNoYXIgKipfX3Jlc3RyaWN0IF9fc3RyaW5ncCwKICAgICAg
IGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikp
KTsKCgoKCmV4dGVybiBjaGFyICpzdHJzaWduYWwgKGludCBfX3NpZykgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKCgpleHRlcm4gY2hhciAqX19zdHBjcHkgKGNoYXIg
Kl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQogICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxLCAyKSkpOwpleHRlcm4gY2hhciAqc3RwY3B5IChjaGFyICpfX3Jlc3RyaWN0
IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSwgMikpKTsKCgoKZXh0ZXJuIGNoYXIgKl9fc3RwbmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rl
c3QsCiAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24pCiAgICAgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u
b25udWxsX18gKDEsIDIpKSk7CmV4dGVybiBjaGFyICpzdHBuY3B5IChjaGFyICpfX3Jlc3RyaWN0
IF9fZGVzdCwKICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19u
KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwojIDYzMiAiL3Vzci9pbmNsdWRlL3N0cmluZy5o
IiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmloZi9iaXRzL3N0cmluZy5o
IiAxIDMgNAojIDYzMyAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMgNAoKCiMgMSAiL3Vzci9p
bmNsdWRlL2FybS1saW51eC1nbnVlYWJpaGYvYml0cy9zdHJpbmcyLmgiIDEgMyA0CiMgNzkgIi91
c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3RyaW5nMi5oIiAzIDQKdHlwZWRl
ZiBzdHJ1Y3QgeyB1bnNpZ25lZCBjaGFyIF9fYXJyWzJdOyB9IF9fYXR0cmlidXRlX18gKChfX3Bh
Y2tlZF9fKSkgX19TVFJJTkcyX0NPUFlfQVJSMjsKdHlwZWRlZiBzdHJ1Y3QgeyB1bnNpZ25lZCBj
aGFyIF9fYXJyWzNdOyB9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSkgX19TVFJJTkcyX0NP
UFlfQVJSMzsKdHlwZWRlZiBzdHJ1Y3QgeyB1bnNpZ25lZCBjaGFyIF9fYXJyWzRdOyB9IF9fYXR0
cmlidXRlX18gKChfX3BhY2tlZF9fKSkgX19TVFJJTkcyX0NPUFlfQVJSNDsKdHlwZWRlZiBzdHJ1
Y3QgeyB1bnNpZ25lZCBjaGFyIF9fYXJyWzVdOyB9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9f
KSkgX19TVFJJTkcyX0NPUFlfQVJSNTsKdHlwZWRlZiBzdHJ1Y3QgeyB1bnNpZ25lZCBjaGFyIF9f
YXJyWzZdOyB9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSkgX19TVFJJTkcyX0NPUFlfQVJS
NjsKdHlwZWRlZiBzdHJ1Y3QgeyB1bnNpZ25lZCBjaGFyIF9fYXJyWzddOyB9IF9fYXR0cmlidXRl
X18gKChfX3BhY2tlZF9fKSkgX19TVFJJTkcyX0NPUFlfQVJSNzsKdHlwZWRlZiBzdHJ1Y3QgeyB1
bnNpZ25lZCBjaGFyIF9fYXJyWzhdOyB9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSkgX19T
VFJJTkcyX0NPUFlfQVJSODsKIyAzOTMgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhm
L2JpdHMvc3RyaW5nMi5oIiAzIDQKZXh0ZXJuIHZvaWQgKl9fcmF3bWVtY2hyIChjb25zdCB2b2lk
ICpfX3MsIGludCBfX2MpOwojIDk0NSAiL3Vzci9pbmNsdWRlL2FybS1saW51eC1nbnVlYWJpaGYv
Yml0cy9zdHJpbmcyLmgiIDMgNApleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251
X2lubGluZV9fKSkgc2l6ZV90IF9fc3RyY3Nwbl9jMSAoY29uc3QgY2hhciAqX19zLCBpbnQgX19y
ZWplY3QpOwpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkg
c2l6ZV90Cl9fc3RyY3Nwbl9jMSAoY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QpCnsKICBz
aXplX3QgX19yZXN1bHQgPSAwOwogIHdoaWxlIChfX3NbX19yZXN1bHRdICE9ICdcMCcgJiYgX19z
W19fcmVzdWx0XSAhPSBfX3JlamVjdCkKICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0
Owp9CgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgc2l6
ZV90IF9fc3RyY3Nwbl9jMiAoY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QxLAogICAgICAg
ICBpbnQgX19yZWplY3QyKTsKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9p
bmxpbmVfXykpIHNpemVfdApfX3N0cmNzcG5fYzIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fcmVq
ZWN0MSwgaW50IF9fcmVqZWN0MikKewogIHNpemVfdCBfX3Jlc3VsdCA9IDA7CiAgd2hpbGUgKF9f
c1tfX3Jlc3VsdF0gIT0gJ1wwJyAmJiBfX3NbX19yZXN1bHRdICE9IF9fcmVqZWN0MQogICYmIF9f
c1tfX3Jlc3VsdF0gIT0gX19yZWplY3QyKQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19yZXN1
bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18pKSBz
aXplX3QgX19zdHJjc3BuX2MzIChjb25zdCBjaGFyICpfX3MsIGludCBfX3JlamVjdDEsCiAgICAg
ICAgIGludCBfX3JlamVjdDIsIGludCBfX3JlamVjdDMpOwpleHRlcm4gX19pbmxpbmUgX19hdHRy
aWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgc2l6ZV90Cl9fc3RyY3Nwbl9jMyAoY29uc3QgY2hh
ciAqX19zLCBpbnQgX19yZWplY3QxLCBpbnQgX19yZWplY3QyLAogICAgICAgaW50IF9fcmVqZWN0
MykKewogIHNpemVfdCBfX3Jlc3VsdCA9IDA7CiAgd2hpbGUgKF9fc1tfX3Jlc3VsdF0gIT0gJ1ww
JyAmJiBfX3NbX19yZXN1bHRdICE9IF9fcmVqZWN0MQogICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19y
ZWplY3QyICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19yZWplY3QzKQogICAgKytfX3Jlc3VsdDsKICBy
ZXR1cm4gX19yZXN1bHQ7Cn0KIyAxMDIxICIvdXNyL2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmlo
Zi9iaXRzL3N0cmluZzIuaCIgMyA0CmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19n
bnVfaW5saW5lX18pKSBzaXplX3QgX19zdHJzcG5fYzEgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9f
YWNjZXB0KTsKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykp
IHNpemVfdApfX3N0cnNwbl9jMSAoY29uc3QgY2hhciAqX19zLCBpbnQgX19hY2NlcHQpCnsKICBz
aXplX3QgX19yZXN1bHQgPSAwOwoKICB3aGlsZSAoX19zW19fcmVzdWx0XSA9PSBfX2FjY2VwdCkK
ICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19h
dHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgc2l6ZV90IF9fc3Ryc3BuX2MyIChjb25zdCBj
aGFyICpfX3MsIGludCBfX2FjY2VwdDEsCiAgICAgICAgaW50IF9fYWNjZXB0Mik7CmV4dGVybiBf
X2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18pKSBzaXplX3QKX19zdHJzcG5f
YzIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwgaW50IF9fYWNjZXB0MikKewogIHNp
emVfdCBfX3Jlc3VsdCA9IDA7CgogIHdoaWxlIChfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MSB8
fCBfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MikKICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9f
cmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9f
KSkgc2l6ZV90IF9fc3Ryc3BuX2MzIChjb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEsCiAg
ICAgICAgaW50IF9fYWNjZXB0MiwgaW50IF9fYWNjZXB0Myk7CmV4dGVybiBfX2lubGluZSBfX2F0
dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18pKSBzaXplX3QKX19zdHJzcG5fYzMgKGNvbnN0IGNo
YXIgKl9fcywgaW50IF9fYWNjZXB0MSwgaW50IF9fYWNjZXB0MiwgaW50IF9fYWNjZXB0MykKewog
IHNpemVfdCBfX3Jlc3VsdCA9IDA7CgogIHdoaWxlIChfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0
MSB8fCBfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MgogIHx8IF9fc1tfX3Jlc3VsdF0gPT0gX19h
Y2NlcHQzKQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19yZXN1bHQ7Cn0KIyAxMDk3ICIvdXNy
L2luY2x1ZGUvYXJtLWxpbnV4LWdudWVhYmloZi9iaXRzL3N0cmluZzIuaCIgMyA0CmV4dGVybiBf
X2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18pKSBjaGFyICpfX3N0cnBicmtf
YzIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwKICAgICAgICBpbnQgX19hY2NlcHQy
KTsKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykpIGNoYXIg
KgpfX3N0cnBicmtfYzIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwgaW50IF9fYWNj
ZXB0MikKewoKICB3aGlsZSAoKl9fcyAhPSAnXDAnICYmICpfX3MgIT0gX19hY2NlcHQxICYmICpf
X3MgIT0gX19hY2NlcHQyKQogICAgKytfX3M7CiAgcmV0dXJuICpfX3MgPT0gJ1wwJyA/ICgodm9p
ZCAqKTApIDogKGNoYXIgKikgKHNpemVfdCkgX19zOwp9CgpleHRlcm4gX19pbmxpbmUgX19hdHRy
aWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgY2hhciAqX19zdHJwYnJrX2MzIChjb25zdCBjaGFy
ICpfX3MsIGludCBfX2FjY2VwdDEsCiAgICAgICAgaW50IF9fYWNjZXB0MiwgaW50IF9fYWNjZXB0
Myk7CmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18pKSBjaGFy
ICoKX19zdHJwYnJrX2MzIChjb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEsIGludCBfX2Fj
Y2VwdDIsIGludCBfX2FjY2VwdDMpCnsKCiAgd2hpbGUgKCpfX3MgIT0gJ1wwJyAmJiAqX19zICE9
IF9fYWNjZXB0MSAmJiAqX19zICE9IF9fYWNjZXB0MgogICYmICpfX3MgIT0gX19hY2NlcHQzKQog
ICAgKytfX3M7CiAgcmV0dXJuICpfX3MgPT0gJ1wwJyA/ICgodm9pZCAqKTApIDogKGNoYXIgKikg
KHNpemVfdCkgX19zOwp9CiMgMTE0NyAiL3Vzci9pbmNsdWRlL2FybS1saW51eC1nbnVlYWJpaGYv
Yml0cy9zdHJpbmcyLmgiIDMgNApleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251
X2lubGluZV9fKSkgY2hhciAqX19zdHJ0b2tfcl8xYyAoY2hhciAqX19zLCBjaGFyIF9fc2VwLCBj
aGFyICoqX19uZXh0cCk7CmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5s
aW5lX18pKSBjaGFyICoKX19zdHJ0b2tfcl8xYyAoY2hhciAqX19zLCBjaGFyIF9fc2VwLCBjaGFy
ICoqX19uZXh0cCkKewogIGNoYXIgKl9fcmVzdWx0OwogIGlmIChfX3MgPT0gKCh2b2lkICopMCkp
CiAgICBfX3MgPSAqX19uZXh0cDsKICB3aGlsZSAoKl9fcyA9PSBfX3NlcCkKICAgICsrX19zOwog
IF9fcmVzdWx0ID0gKCh2b2lkICopMCk7CiAgaWYgKCpfX3MgIT0gJ1wwJykKICAgIHsKICAgICAg
X19yZXN1bHQgPSBfX3MrKzsKICAgICAgd2hpbGUgKCpfX3MgIT0gJ1wwJykKIGlmICgqX19zKysg
PT0gX19zZXApCiAgIHsKICAgICBfX3NbLTFdID0gJ1wwJzsKICAgICBicmVhazsKICAgfQogICAg
fQogICpfX25leHRwID0gX19zOwogIHJldHVybiBfX3Jlc3VsdDsKfQojIDExNzkgIi91c3IvaW5j
bHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3RyaW5nMi5oIiAzIDQKZXh0ZXJuIGNoYXIg
Kl9fc3Ryc2VwX2cgKGNoYXIgKipfX3N0cmluZ3AsIGNvbnN0IGNoYXIgKl9fZGVsaW0pOwojIDEx
OTcgIi91c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3RyaW5nMi5oIiAzIDQK
ZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykpIGNoYXIgKl9f
c3Ryc2VwXzFjIChjaGFyICoqX19zLCBjaGFyIF9fcmVqZWN0KTsKZXh0ZXJuIF9faW5saW5lIF9f
YXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykpIGNoYXIgKgpfX3N0cnNlcF8xYyAoY2hhciAq
Kl9fcywgY2hhciBfX3JlamVjdCkKewogIGNoYXIgKl9fcmV0dmFsID0gKl9fczsKICBpZiAoX19y
ZXR2YWwgIT0gKCh2b2lkICopMCkgJiYgKCpfX3MgPSAoX19leHRlbnNpb25fXyAoX19idWlsdGlu
X2NvbnN0YW50X3AgKF9fcmVqZWN0KSAmJiAhX19idWlsdGluX2NvbnN0YW50X3AgKF9fcmV0dmFs
KSAmJiAoX19yZWplY3QpID09ICdcMCcgPyAoY2hhciAqKSBfX3Jhd21lbWNociAoX19yZXR2YWws
IF9fcmVqZWN0KSA6IF9fYnVpbHRpbl9zdHJjaHIgKF9fcmV0dmFsLCBfX3JlamVjdCkpKSkgIT0g
KCh2b2lkICopMCkpCiAgICAqKCpfX3MpKysgPSAnXDAnOwogIHJldHVybiBfX3JldHZhbDsKfQoK
ZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXykpIGNoYXIgKl9f
c3Ryc2VwXzJjIChjaGFyICoqX19zLCBjaGFyIF9fcmVqZWN0MSwgY2hhciBfX3JlamVjdDIpOwpl
eHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgY2hhciAqCl9f
c3Ryc2VwXzJjIChjaGFyICoqX19zLCBjaGFyIF9fcmVqZWN0MSwgY2hhciBfX3JlamVjdDIpCnsK
ICBjaGFyICpfX3JldHZhbCA9ICpfX3M7CiAgaWYgKF9fcmV0dmFsICE9ICgodm9pZCAqKTApKQog
ICAgewogICAgICBjaGFyICpfX2NwID0gX19yZXR2YWw7CiAgICAgIHdoaWxlICgxKQogewogICBp
ZiAoKl9fY3AgPT0gJ1wwJykKICAgICB7CiAgICAgICBfX2NwID0gKCh2b2lkICopMCk7CiAgIGJy
ZWFrOwogICAgIH0KICAgaWYgKCpfX2NwID09IF9fcmVqZWN0MSB8fCAqX19jcCA9PSBfX3JlamVj
dDIpCiAgICAgewogICAgICAgKl9fY3ArKyA9ICdcMCc7CiAgICAgICBicmVhazsKICAgICB9CiAg
ICsrX19jcDsKIH0KICAgICAgKl9fcyA9IF9fY3A7CiAgICB9CiAgcmV0dXJuIF9fcmV0dmFsOwp9
CgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkgY2hhciAq
X19zdHJzZXBfM2MgKGNoYXIgKipfX3MsIGNoYXIgX19yZWplY3QxLCBjaGFyIF9fcmVqZWN0MiwK
ICAgICAgIGNoYXIgX19yZWplY3QzKTsKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChf
X2dudV9pbmxpbmVfXykpIGNoYXIgKgpfX3N0cnNlcF8zYyAoY2hhciAqKl9fcywgY2hhciBfX3Jl
amVjdDEsIGNoYXIgX19yZWplY3QyLCBjaGFyIF9fcmVqZWN0MykKewogIGNoYXIgKl9fcmV0dmFs
ID0gKl9fczsKICBpZiAoX19yZXR2YWwgIT0gKCh2b2lkICopMCkpCiAgICB7CiAgICAgIGNoYXIg
Kl9fY3AgPSBfX3JldHZhbDsKICAgICAgd2hpbGUgKDEpCiB7CiAgIGlmICgqX19jcCA9PSAnXDAn
KQogICAgIHsKICAgICAgIF9fY3AgPSAoKHZvaWQgKikwKTsKICAgYnJlYWs7CiAgICAgfQogICBp
ZiAoKl9fY3AgPT0gX19yZWplY3QxIHx8ICpfX2NwID09IF9fcmVqZWN0MiB8fCAqX19jcCA9PSBf
X3JlamVjdDMpCiAgICAgewogICAgICAgKl9fY3ArKyA9ICdcMCc7CiAgICAgICBicmVhazsKICAg
ICB9CiAgICsrX19jcDsKIH0KICAgICAgKl9fcyA9IF9fY3A7CiAgICB9CiAgcmV0dXJuIF9fcmV0
dmFsOwp9CiMgMTI3MyAiL3Vzci9pbmNsdWRlL2FybS1saW51eC1nbnVlYWJpaGYvYml0cy9zdHJp
bmcyLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMSAzIDQKIyAzMiAiL3Vzci9p
bmNsdWRlL3N0ZGxpYi5oIiAzIDQKIyAxICIvdXNyL2xpYi9nY2MvYXJtLWxpbnV4LWdudWVhYmlo
Zi80LjkvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAzMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5o
IiAyIDMgNAoKCiMgNDY0ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAoKCmV4dGVybiB2b2lk
ICptYWxsb2MgKHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7CgpleHRlcm4gdm9pZCAqY2Fs
bG9jIChzaXplX3QgX19ubWVtYiwgc2l6ZV90IF9fc2l6ZSkKICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwoK
IyA5NjggIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0CgojIDEyNzQgIi91c3IvaW5jbHVkZS9h
cm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3RyaW5nMi5oIiAyIDMgNAoKCgoKZXh0ZXJuIGNoYXIg
Kl9fc3RyZHVwIChjb25zdCBjaGFyICpfX3N0cmluZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpOwojIDEyOTcgIi91
c3IvaW5jbHVkZS9hcm0tbGludXgtZ251ZWFiaWhmL2JpdHMvc3RyaW5nMi5oIiAzIDQKZXh0ZXJu
IGNoYXIgKl9fc3RybmR1cCAoY29uc3QgY2hhciAqX19zdHJpbmcsIHNpemVfdCBfX24pCiAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19tYWxsb2NfXykpOwojIDYzNiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMgNAojIDY0NCAi
L3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKCiMgMzIgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1w
cml2YXRlLmgiIDIKIyAxICIvdXNyL2xpYi9nY2MvYXJtLWxpbnV4LWdudWVhYmloZi80LjkvaW5j
bHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAxNDcgIi91c3IvbGliL2djYy9hcm0tbGludXgtZ251ZWFi
aWhmLzQuOS9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQKdHlwZWRlZiBpbnQgcHRyZGlmZl90OwojIDMy
NCAiL3Vzci9saWIvZ2NjL2FybS1saW51eC1nbnVlYWJpaGYvNC45L2luY2x1ZGUvc3RkZGVmLmgi
IDMgNAp0eXBlZGVmIHVuc2lnbmVkIGludCB3Y2hhcl90OwojIDMzICIvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9w
aXhtYW4tcHJpdmF0ZS5oIiAyCgojIDEgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1jb21waWxlci5o
IiAxCiMgMzUgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291
cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiIDIKCgoKCnR5cGVkZWYg
c3RydWN0IGltYWdlX2NvbW1vbiBpbWFnZV9jb21tb25fdDsKdHlwZWRlZiBzdHJ1Y3Qgc29saWRf
ZmlsbCBzb2xpZF9maWxsX3Q7CnR5cGVkZWYgc3RydWN0IGdyYWRpZW50IGdyYWRpZW50X3Q7CnR5
cGVkZWYgc3RydWN0IGxpbmVhcl9ncmFkaWVudCBsaW5lYXJfZ3JhZGllbnRfdDsKdHlwZWRlZiBz
dHJ1Y3QgaG9yaXpvbnRhbF9ncmFkaWVudCBob3Jpem9udGFsX2dyYWRpZW50X3Q7CnR5cGVkZWYg
c3RydWN0IHZlcnRpY2FsX2dyYWRpZW50IHZlcnRpY2FsX2dyYWRpZW50X3Q7CnR5cGVkZWYgc3Ry
dWN0IGNvbmljYWxfZ3JhZGllbnQgY29uaWNhbF9ncmFkaWVudF90Owp0eXBlZGVmIHN0cnVjdCBy
YWRpYWxfZ3JhZGllbnQgcmFkaWFsX2dyYWRpZW50X3Q7CnR5cGVkZWYgc3RydWN0IGJpdHNfaW1h
Z2UgYml0c19pbWFnZV90Owp0eXBlZGVmIHN0cnVjdCBjaXJjbGUgY2lyY2xlX3Q7Cgp0eXBlZGVm
IHN0cnVjdCBhcmdiX3QgYXJnYl90OwoKc3RydWN0IGFyZ2JfdAp7CiAgICBmbG9hdCBhOwogICAg
ZmxvYXQgcjsKICAgIGZsb2F0IGc7CiAgICBmbG9hdCBiOwp9OwoKdHlwZWRlZiB2b2lkICgqZmV0
Y2hfc2NhbmxpbmVfdCkgKGJpdHNfaW1hZ2VfdCAqaW1hZ2UsCiAgICAgIGludCB4LAogICAgICBp
bnQgeSwKICAgICAgaW50IHdpZHRoLAogICAgICB1aW50MzJfdCAqYnVmZmVyLAogICAgICBjb25z
dCB1aW50MzJfdCAqbWFzayk7Cgp0eXBlZGVmIHVpbnQzMl90ICgqZmV0Y2hfcGl4ZWxfMzJfdCkg
KGJpdHNfaW1hZ2VfdCAqaW1hZ2UsCiAgICAgICAgICBpbnQgeCwKICAgICAgICAgIGludCB5KTsK
CnR5cGVkZWYgYXJnYl90ICgqZmV0Y2hfcGl4ZWxfZmxvYXRfdCkgKGJpdHNfaW1hZ2VfdCAqaW1h
Z2UsCiAgICAgICAgICAgaW50IHgsCiAgICAgICAgICAgaW50IHkpOwoKdHlwZWRlZiB2b2lkICgq
c3RvcmVfc2NhbmxpbmVfdCkgKGJpdHNfaW1hZ2VfdCAqIGltYWdlLAogICAgICBpbnQgeCwKICAg
ICAgaW50IHksCiAgICAgIGludCB3aWR0aCwKICAgICAgY29uc3QgdWludDMyX3QgKnZhbHVlcyk7
Cgp0eXBlZGVmIGVudW0KewogICAgQklUUywKICAgIExJTkVBUiwKICAgIENPTklDQUwsCiAgICBS
QURJQUwsCiAgICBTT0xJRAp9IGltYWdlX3R5cGVfdDsKCnR5cGVkZWYgdm9pZCAoKnByb3BlcnR5
X2NoYW5nZWRfZnVuY190KSAocGl4bWFuX2ltYWdlX3QgKmltYWdlKTsKCnN0cnVjdCBpbWFnZV9j
b21tb24KewogICAgaW1hZ2VfdHlwZV90IHR5cGU7CiAgICBpbnQzMl90IHJlZl9jb3VudDsKICAg
IHBpeG1hbl9yZWdpb24zMl90IGNsaXBfcmVnaW9uOwogICAgaW50MzJfdCBhbHBoYV9jb3VudDsK
ICAgIHBpeG1hbl9ib29sX3QgaGF2ZV9jbGlwX3JlZ2lvbjsKICAgIHBpeG1hbl9ib29sX3QgY2xp
ZW50X2NsaXA7CgogICAgcGl4bWFuX2Jvb2xfdCBjbGlwX3NvdXJjZXM7CgoKICAgIHBpeG1hbl9i
b29sX3QgZGlydHk7CiAgICBwaXhtYW5fdHJhbnNmb3JtX3QgKiB0cmFuc2Zvcm07CiAgICBwaXht
YW5fcmVwZWF0X3QgcmVwZWF0OwogICAgcGl4bWFuX2ZpbHRlcl90IGZpbHRlcjsKICAgIHBpeG1h
bl9maXhlZF90ICogZmlsdGVyX3BhcmFtczsKICAgIGludCBuX2ZpbHRlcl9wYXJhbXM7CiAgICBi
aXRzX2ltYWdlX3QgKiBhbHBoYV9tYXA7CiAgICBpbnQgYWxwaGFfb3JpZ2luX3g7CiAgICBpbnQg
YWxwaGFfb3JpZ2luX3k7CiAgICBwaXhtYW5fYm9vbF90IGNvbXBvbmVudF9hbHBoYTsKICAgIHBy
b3BlcnR5X2NoYW5nZWRfZnVuY190IHByb3BlcnR5X2NoYW5nZWQ7CgogICAgcGl4bWFuX2ltYWdl
X2Rlc3Ryb3lfZnVuY190IGRlc3Ryb3lfZnVuYzsKICAgIHZvaWQgKiBkZXN0cm95X2RhdGE7Cgog
ICAgdWludDMyX3QgZmxhZ3M7CiAgICBwaXhtYW5fZm9ybWF0X2NvZGVfdCBleHRlbmRlZF9mb3Jt
YXRfY29kZTsKfTsKCnN0cnVjdCBzb2xpZF9maWxsCnsKICAgIGltYWdlX2NvbW1vbl90IGNvbW1v
bjsKICAgIHBpeG1hbl9jb2xvcl90IGNvbG9yOwoKICAgIHVpbnQzMl90IGNvbG9yXzMyOwogICAg
YXJnYl90IGNvbG9yX2Zsb2F0Owp9OwoKc3RydWN0IGdyYWRpZW50CnsKICAgIGltYWdlX2NvbW1v
bl90IGNvbW1vbjsKICAgIGludCBuX3N0b3BzOwogICAgcGl4bWFuX2dyYWRpZW50X3N0b3BfdCAq
c3RvcHM7Cn07CgpzdHJ1Y3QgbGluZWFyX2dyYWRpZW50CnsKICAgIGdyYWRpZW50X3QgY29tbW9u
OwogICAgcGl4bWFuX3BvaW50X2ZpeGVkX3QgcDE7CiAgICBwaXhtYW5fcG9pbnRfZml4ZWRfdCBw
MjsKfTsKCnN0cnVjdCBjaXJjbGUKewogICAgcGl4bWFuX2ZpeGVkX3QgeDsKICAgIHBpeG1hbl9m
aXhlZF90IHk7CiAgICBwaXhtYW5fZml4ZWRfdCByYWRpdXM7Cn07CgpzdHJ1Y3QgcmFkaWFsX2dy
YWRpZW50CnsKICAgIGdyYWRpZW50X3QgY29tbW9uOwoKICAgIGNpcmNsZV90IGMxOwogICAgY2ly
Y2xlX3QgYzI7CgogICAgY2lyY2xlX3QgZGVsdGE7CiAgICBkb3VibGUgYTsKICAgIGRvdWJsZSBp
bnZhOwogICAgZG91YmxlIG1pbmRyOwp9OwoKc3RydWN0IGNvbmljYWxfZ3JhZGllbnQKewogICAg
Z3JhZGllbnRfdCBjb21tb247CiAgICBwaXhtYW5fcG9pbnRfZml4ZWRfdCBjZW50ZXI7CiAgICBk
b3VibGUgYW5nbGU7Cn07CgpzdHJ1Y3QgYml0c19pbWFnZQp7CiAgICBpbWFnZV9jb21tb25fdCBj
b21tb247CiAgICBwaXhtYW5fZm9ybWF0X2NvZGVfdCBmb3JtYXQ7CiAgICBjb25zdCBwaXhtYW5f
aW5kZXhlZF90ICogaW5kZXhlZDsKICAgIGludCB3aWR0aDsKICAgIGludCBoZWlnaHQ7CiAgICB1
aW50MzJfdCAqIGJpdHM7CiAgICB1aW50MzJfdCAqIGZyZWVfbWU7CiAgICBpbnQgcm93c3RyaWRl
OwoKICAgIGZldGNoX3NjYW5saW5lX3QgZmV0Y2hfc2NhbmxpbmVfMzI7CiAgICBmZXRjaF9waXhl
bF8zMl90IGZldGNoX3BpeGVsXzMyOwogICAgc3RvcmVfc2NhbmxpbmVfdCBzdG9yZV9zY2FubGlu
ZV8zMjsKCiAgICBmZXRjaF9zY2FubGluZV90IGZldGNoX3NjYW5saW5lX2Zsb2F0OwogICAgZmV0
Y2hfcGl4ZWxfZmxvYXRfdCBmZXRjaF9waXhlbF9mbG9hdDsKICAgIHN0b3JlX3NjYW5saW5lX3Qg
c3RvcmVfc2NhbmxpbmVfZmxvYXQ7CgoKICAgIHBpeG1hbl9yZWFkX21lbW9yeV9mdW5jX3QgcmVh
ZF9mdW5jOwogICAgcGl4bWFuX3dyaXRlX21lbW9yeV9mdW5jX3Qgd3JpdGVfZnVuYzsKfTsKCnVu
aW9uIHBpeG1hbl9pbWFnZQp7CiAgICBpbWFnZV90eXBlX3QgdHlwZTsKICAgIGltYWdlX2NvbW1v
bl90IGNvbW1vbjsKICAgIGJpdHNfaW1hZ2VfdCBiaXRzOwogICAgZ3JhZGllbnRfdCBncmFkaWVu
dDsKICAgIGxpbmVhcl9ncmFkaWVudF90IGxpbmVhcjsKICAgIGNvbmljYWxfZ3JhZGllbnRfdCBj
b25pY2FsOwogICAgcmFkaWFsX2dyYWRpZW50X3QgcmFkaWFsOwogICAgc29saWRfZmlsbF90IHNv
bGlkOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2l0ZXJfdCBwaXhtYW5faXRlcl90Owp0eXBl
ZGVmIHVpbnQzMl90ICooKiBwaXhtYW5faXRlcl9nZXRfc2NhbmxpbmVfdCkgKHBpeG1hbl9pdGVy
X3QgKml0ZXIsIGNvbnN0IHVpbnQzMl90ICptYXNrKTsKdHlwZWRlZiB2b2lkICgqIHBpeG1hbl9p
dGVyX3dyaXRlX2JhY2tfdCkgKHBpeG1hbl9pdGVyX3QgKml0ZXIpOwp0eXBlZGVmIHZvaWQgKCog
cGl4bWFuX2l0ZXJfZmluaV90KSAocGl4bWFuX2l0ZXJfdCAqaXRlcik7Cgp0eXBlZGVmIGVudW0K
ewogICAgSVRFUl9OQVJST1cgPSAoMSA8PCAwKSwKICAgIElURVJfV0lERSA9ICgxIDw8IDEpLAoj
IDIzNCAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2Uv
cGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLXByaXZhdGUuaCIKICAgIElURVJfTE9DQUxJWkVE
X0FMUEhBID0gKDEgPDwgMiksCiAgICBJVEVSX0lHTk9SRV9BTFBIQSA9ICgxIDw8IDMpLAogICAg
SVRFUl9JR05PUkVfUkdCID0gKDEgPDwgNCksCgoKCgogICAgSVRFUl9TUkMgPSAoMSA8PCA1KSwK
ICAgIElURVJfREVTVCA9ICgxIDw8IDYpCn0gaXRlcl9mbGFnc190OwoKc3RydWN0IHBpeG1hbl9p
dGVyX3QKewoKICAgIHBpeG1hbl9pbWFnZV90ICogaW1hZ2U7CiAgICB1aW50MzJfdCAqIGJ1ZmZl
cjsKICAgIGludCB4LCB5OwogICAgaW50IHdpZHRoOwogICAgaW50IGhlaWdodDsKICAgIGl0ZXJf
ZmxhZ3NfdCBpdGVyX2ZsYWdzOwogICAgdWludDMyX3QgaW1hZ2VfZmxhZ3M7CgoKICAgIHBpeG1h
bl9pdGVyX2dldF9zY2FubGluZV90IGdldF9zY2FubGluZTsKICAgIHBpeG1hbl9pdGVyX3dyaXRl
X2JhY2tfdCB3cml0ZV9iYWNrOwogICAgcGl4bWFuX2l0ZXJfZmluaV90IGZpbmk7CgoKICAgIHZv
aWQgKiBkYXRhOwogICAgdWludDhfdCAqIGJpdHM7CiAgICBpbnQgc3RyaWRlOwp9OwoKdHlwZWRl
ZiBzdHJ1Y3QgcGl4bWFuX2l0ZXJfaW5mb190IHBpeG1hbl9pdGVyX2luZm9fdDsKdHlwZWRlZiB2
b2lkICgqIHBpeG1hbl9pdGVyX2luaXRpYWxpemVyX3QpIChwaXhtYW5faXRlcl90ICppdGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpeG1hbl9p
dGVyX2luZm9fdCAqaW5mbyk7CnN0cnVjdCBwaXhtYW5faXRlcl9pbmZvX3QKewogICAgcGl4bWFu
X2Zvcm1hdF9jb2RlX3QgZm9ybWF0OwogICAgdWludDMyX3QgaW1hZ2VfZmxhZ3M7CiAgICBpdGVy
X2ZsYWdzX3QgaXRlcl9mbGFnczsKICAgIHBpeG1hbl9pdGVyX2luaXRpYWxpemVyX3QgaW5pdGlh
bGl6ZXI7CiAgICBwaXhtYW5faXRlcl9nZXRfc2NhbmxpbmVfdCBnZXRfc2NhbmxpbmU7CiAgICBw
aXhtYW5faXRlcl93cml0ZV9iYWNrX3Qgd3JpdGVfYmFjazsKfTsKCnZvaWQKX3BpeG1hbl9iaXRz
X2ltYWdlX3NldHVwX2FjY2Vzc29ycyAoYml0c19pbWFnZV90ICppbWFnZSk7Cgp2b2lkCl9waXht
YW5fYml0c19pbWFnZV9zcmNfaXRlcl9pbml0IChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsIHBpeG1h
bl9pdGVyX3QgKml0ZXIpOwoKdm9pZApfcGl4bWFuX2JpdHNfaW1hZ2VfZGVzdF9pdGVyX2luaXQg
KHBpeG1hbl9pbWFnZV90ICppbWFnZSwgcGl4bWFuX2l0ZXJfdCAqaXRlcik7Cgp2b2lkCl9waXht
YW5fbGluZWFyX2dyYWRpZW50X2l0ZXJfaW5pdCAocGl4bWFuX2ltYWdlX3QgKmltYWdlLCBwaXht
YW5faXRlcl90ICppdGVyKTsKCnZvaWQKX3BpeG1hbl9yYWRpYWxfZ3JhZGllbnRfaXRlcl9pbml0
IChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsIHBpeG1hbl9pdGVyX3QgKml0ZXIpOwoKdm9pZApfcGl4
bWFuX2NvbmljYWxfZ3JhZGllbnRfaXRlcl9pbml0IChwaXhtYW5faW1hZ2VfdCAqaW1hZ2UsIHBp
eG1hbl9pdGVyX3QgKml0ZXIpOwoKdm9pZApfcGl4bWFuX2ltYWdlX2luaXQgKHBpeG1hbl9pbWFn
ZV90ICppbWFnZSk7CgpwaXhtYW5fYm9vbF90Cl9waXhtYW5fYml0c19pbWFnZV9pbml0IChwaXht
YW5faW1hZ2VfdCAqIGltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2Zvcm1h
dF9jb2RlX3QgZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLAogICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQzMl90ICogYml0cywKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByb3dzdHJpZGUs
CiAgICBwaXhtYW5fYm9vbF90IGNsZWFyKTsKcGl4bWFuX2Jvb2xfdApfcGl4bWFuX2ltYWdlX2Zp
bmkgKHBpeG1hbl9pbWFnZV90ICppbWFnZSk7CgpwaXhtYW5faW1hZ2VfdCAqCl9waXhtYW5faW1h
Z2VfYWxsb2NhdGUgKHZvaWQpOwoKcGl4bWFuX2Jvb2xfdApfcGl4bWFuX2luaXRfZ3JhZGllbnQg
KGdyYWRpZW50X3QgKiBncmFkaWVudCwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwaXht
YW5fZ3JhZGllbnRfc3RvcF90ICpzdG9wcywKICAgICAgICAgICAgICAgICAgICAgICBpbnQgbl9z
dG9wcyk7CnZvaWQKX3BpeG1hbl9pbWFnZV9yZXNldF9jbGlwX3JlZ2lvbiAocGl4bWFuX2ltYWdl
X3QgKmltYWdlKTsKCnZvaWQKX3BpeG1hbl9pbWFnZV92YWxpZGF0ZSAocGl4bWFuX2ltYWdlX3Qg
KmltYWdlKTsKIyAzNDIgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiCnR5cGVkZWYg
c3RydWN0CnsKICAgIGZsb2F0IGFfcywgYV9iOwogICAgZmxvYXQgcl9zLCByX2I7CiAgICBmbG9h
dCBnX3MsIGdfYjsKICAgIGZsb2F0IGJfcywgYl9iOwogICAgcGl4bWFuX2ZpeGVkX3QgbGVmdF94
OwogICAgcGl4bWFuX2ZpeGVkX3QgcmlnaHRfeDsKCiAgICBwaXhtYW5fZ3JhZGllbnRfc3RvcF90
ICpzdG9wczsKICAgIGludCBudW1fc3RvcHM7CiAgICBwaXhtYW5fcmVwZWF0X3QgcmVwZWF0OwoK
ICAgIHBpeG1hbl9ib29sX3QgbmVlZF9yZXNldDsKfSBwaXhtYW5fZ3JhZGllbnRfd2Fsa2VyX3Q7
Cgp2b2lkCl9waXhtYW5fZ3JhZGllbnRfd2Fsa2VyX2luaXQgKHBpeG1hbl9ncmFkaWVudF93YWxr
ZXJfdCAqd2Fsa2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFkaWVudF90ICog
Z3JhZGllbnQsCiAgICAgICAgIHBpeG1hbl9yZXBlYXRfdCByZXBlYXQpOwoKdm9pZApfcGl4bWFu
X2dyYWRpZW50X3dhbGtlcl9yZXNldCAocGl4bWFuX2dyYWRpZW50X3dhbGtlcl90ICp3YWxrZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fZml4ZWRfNDhfMTZfdCBwb3Mp
OwoKdWludDMyX3QKX3BpeG1hbl9ncmFkaWVudF93YWxrZXJfcGl4ZWwgKHBpeG1hbl9ncmFkaWVu
dF93YWxrZXJfdCAqd2Fsa2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFu
X2ZpeGVkXzQ4XzE2X3QgeCk7CiMgMzk1ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tcHJpdmF0ZS5o
Igp2b2lkCnBpeG1hbl9yYXN0ZXJpemVfZWRnZXNfYWNjZXNzb3JzIChwaXhtYW5faW1hZ2VfdCAq
aW1hZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fZWRnZV90ICog
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9lZGdlX3QgKiByLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9maXhlZF90IGIpOwoKCgoKdHlwZWRl
ZiBzdHJ1Y3QgcGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgcGl4bWFuX2ltcGxlbWVudGF0aW9uX3Q7
Cgp0eXBlZGVmIHN0cnVjdAp7CiAgICBwaXhtYW5fb3BfdCBvcDsKICAgIHBpeG1hbl9pbWFnZV90
ICogc3JjX2ltYWdlOwogICAgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlOwogICAgcGl4bWFu
X2ltYWdlX3QgKiBkZXN0X2ltYWdlOwogICAgaW50MzJfdCBzcmNfeDsKICAgIGludDMyX3Qgc3Jj
X3k7CiAgICBpbnQzMl90IG1hc2tfeDsKICAgIGludDMyX3QgbWFza195OwogICAgaW50MzJfdCBk
ZXN0X3g7CiAgICBpbnQzMl90IGRlc3RfeTsKICAgIGludDMyX3Qgd2lkdGg7CiAgICBpbnQzMl90
IGhlaWdodDsKCiAgICB1aW50MzJfdCBzcmNfZmxhZ3M7CiAgICB1aW50MzJfdCBtYXNrX2ZsYWdz
OwogICAgdWludDMyX3QgZGVzdF9mbGFnczsKfSBwaXhtYW5fY29tcG9zaXRlX2luZm9fdDsKIyA0
NDEgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3Bp
eG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiCnR5cGVkZWYgdm9pZCAoKnBpeG1h
bl9jb21iaW5lXzMyX2Z1bmNfdCkgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAg
ICBwaXhtYW5fb3BfdCBvcCwKICAgICAgIHVpbnQzMl90ICogZGVzdCwKICAgICAgIGNvbnN0IHVp
bnQzMl90ICogc3JjLAogICAgICAgY29uc3QgdWludDMyX3QgKiBtYXNrLAogICAgICAgaW50IHdp
ZHRoKTsKCnR5cGVkZWYgdm9pZCAoKnBpeG1hbl9jb21iaW5lX2Zsb2F0X2Z1bmNfdCkgKHBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICBwaXhtYW5fb3BfdCBvcCwKICAgICAg
ICAgIGZsb2F0ICogZGVzdCwKICAgICAgICAgIGNvbnN0IGZsb2F0ICogc3JjLAogICAgICAgICAg
Y29uc3QgZmxvYXQgKiBtYXNrLAogICAgICAgICAgaW50IG5fcGl4ZWxzKTsKCnR5cGVkZWYgdm9p
ZCAoKnBpeG1hbl9jb21wb3NpdGVfZnVuY190KSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmlt
cCwKICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pOwp0eXBlZGVmIHBpeG1hbl9i
b29sX3QgKCpwaXhtYW5fYmx0X2Z1bmNfdCkgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAs
CiAgICAgICAgIHVpbnQzMl90ICogc3JjX2JpdHMsCiAgICAgICAgIHVpbnQzMl90ICogZHN0X2Jp
dHMsCiAgICAgICAgIGludCBzcmNfc3RyaWRlLAogICAgICAgICBpbnQgZHN0X3N0cmlkZSwKICAg
ICAgICAgaW50IHNyY19icHAsCiAgICAgICAgIGludCBkc3RfYnBwLAogICAgICAgICBpbnQgc3Jj
X3gsCiAgICAgICAgIGludCBzcmNfeSwKICAgICAgICAgaW50IGRlc3RfeCwKICAgICAgICAgaW50
IGRlc3RfeSwKICAgICAgICAgaW50IHdpZHRoLAogICAgICAgICBpbnQgaGVpZ2h0KTsKdHlwZWRl
ZiBwaXhtYW5fYm9vbF90ICgqcGl4bWFuX2ZpbGxfZnVuY190KSAocGl4bWFuX2ltcGxlbWVudGF0
aW9uX3QgKmltcCwKICAgICAgICAgIHVpbnQzMl90ICogYml0cywKICAgICAgICAgIGludCBzdHJp
ZGUsCiAgICAgICAgICBpbnQgYnBwLAogICAgICAgICAgaW50IHgsCiAgICAgICAgICBpbnQgeSwK
ICAgICAgICAgIGludCB3aWR0aCwKICAgICAgICAgIGludCBoZWlnaHQsCiAgICAgICAgICB1aW50
MzJfdCBmaWxsZXIpOwoKdm9pZCBfcGl4bWFuX3NldHVwX2NvbWJpbmVyX2Z1bmN0aW9uc18zMiAo
cGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCk7CnZvaWQgX3BpeG1hbl9zZXR1cF9jb21iaW5l
cl9mdW5jdGlvbnNfZmxvYXQgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXApOwoKdHlwZWRl
ZiBzdHJ1Y3QKewogICAgcGl4bWFuX29wX3Qgb3A7CiAgICBwaXhtYW5fZm9ybWF0X2NvZGVfdCBz
cmNfZm9ybWF0OwogICAgdWludDMyX3Qgc3JjX2ZsYWdzOwogICAgcGl4bWFuX2Zvcm1hdF9jb2Rl
X3QgbWFza19mb3JtYXQ7CiAgICB1aW50MzJfdCBtYXNrX2ZsYWdzOwogICAgcGl4bWFuX2Zvcm1h
dF9jb2RlX3QgZGVzdF9mb3JtYXQ7CiAgICB1aW50MzJfdCBkZXN0X2ZsYWdzOwogICAgcGl4bWFu
X2NvbXBvc2l0ZV9mdW5jX3QgZnVuYzsKfSBwaXhtYW5fZmFzdF9wYXRoX3Q7CgpzdHJ1Y3QgcGl4
bWFuX2ltcGxlbWVudGF0aW9uX3QKewogICAgcGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKiB0b3Bs
ZXZlbDsKICAgIHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICogZmFsbGJhY2s7CiAgICBjb25zdCBw
aXhtYW5fZmFzdF9wYXRoX3QgKiBmYXN0X3BhdGhzOwogICAgY29uc3QgcGl4bWFuX2l0ZXJfaW5m
b190ICogaXRlcl9pbmZvOwoKICAgIHBpeG1hbl9ibHRfZnVuY190IGJsdDsKICAgIHBpeG1hbl9m
aWxsX2Z1bmNfdCBmaWxsOwoKICAgIHBpeG1hbl9jb21iaW5lXzMyX2Z1bmNfdCBjb21iaW5lXzMy
W1BJWE1BTl9OX09QRVJBVE9SU107CiAgICBwaXhtYW5fY29tYmluZV8zMl9mdW5jX3QgY29tYmlu
ZV8zMl9jYVtQSVhNQU5fTl9PUEVSQVRPUlNdOwogICAgcGl4bWFuX2NvbWJpbmVfZmxvYXRfZnVu
Y190IGNvbWJpbmVfZmxvYXRbUElYTUFOX05fT1BFUkFUT1JTXTsKICAgIHBpeG1hbl9jb21iaW5l
X2Zsb2F0X2Z1bmNfdCBjb21iaW5lX2Zsb2F0X2NhW1BJWE1BTl9OX09QRVJBVE9SU107Cn07Cgp1
aW50MzJfdApfcGl4bWFuX2ltYWdlX2dldF9zb2xpZCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3Qg
KmltcCwKICAgIHBpeG1hbl9pbWFnZV90ICogaW1hZ2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBwaXhtYW5fZm9ybWF0X2NvZGVfdCBmb3JtYXQpOwoKcGl4bWFuX2ltcGxlbWVudGF0aW9uX3Qg
KgpfcGl4bWFuX2ltcGxlbWVudGF0aW9uX2NyZWF0ZSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3Qg
KmZhbGxiYWNrLAogICAgICAgICAgY29uc3QgcGl4bWFuX2Zhc3RfcGF0aF90ICpmYXN0X3BhdGhz
KTsKCnZvaWQKX3BpeG1hbl9pbXBsZW1lbnRhdGlvbl9sb29rdXBfY29tcG9zaXRlIChwaXhtYW5f
aW1wbGVtZW50YXRpb25fdCAqdG9wbGV2ZWwsCiAgICAgIHBpeG1hbl9vcF90IG9wLAogICAgICBw
aXhtYW5fZm9ybWF0X2NvZGVfdCBzcmNfZm9ybWF0LAogICAgICB1aW50MzJfdCBzcmNfZmxhZ3Ms
CiAgICAgIHBpeG1hbl9mb3JtYXRfY29kZV90IG1hc2tfZm9ybWF0LAogICAgICB1aW50MzJfdCBt
YXNrX2ZsYWdzLAogICAgICBwaXhtYW5fZm9ybWF0X2NvZGVfdCBkZXN0X2Zvcm1hdCwKICAgICAg
dWludDMyX3QgZGVzdF9mbGFncywKICAgICAgcGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKipvdXRf
aW1wLAogICAgICBwaXhtYW5fY29tcG9zaXRlX2Z1bmNfdCAqb3V0X2Z1bmMpOwoKcGl4bWFuX2Nv
bWJpbmVfMzJfZnVuY190Cl9waXhtYW5faW1wbGVtZW50YXRpb25fbG9va3VwX2NvbWJpbmVyIChw
aXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgIHBpeG1hbl9vcF90IG9wLAogICAgIHBp
eG1hbl9ib29sX3QgY29tcG9uZW50X2FscGhhLAogICAgIHBpeG1hbl9ib29sX3Qgd2lkZSk7Cgpw
aXhtYW5fYm9vbF90Cl9waXhtYW5faW1wbGVtZW50YXRpb25fYmx0IChwaXhtYW5faW1wbGVtZW50
YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiBzcmNf
Yml0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICogZHN0X2JpdHMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjX3N0cmlkZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBkc3Rfc3RyaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IHNyY19icHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHN0X2JwcCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNfeCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBzcmNfeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0X3gs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdF95LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhl
aWdodCk7CgpwaXhtYW5fYm9vbF90Cl9waXhtYW5faW1wbGVtZW50YXRpb25fZmlsbCAocGl4bWFu
X2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50
MzJfdCAqIGJpdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmlkZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYnBwLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCB4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZp
bGxlcik7Cgp2b2lkCl9waXhtYW5faW1wbGVtZW50YXRpb25faXRlcl9pbml0IChwaXhtYW5faW1w
bGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4
bWFuX2l0ZXJfdCAqaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1h
bl9pbWFnZV90ICppbWFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDhfdCAqYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcl9mbGFn
c190IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaW1h
Z2VfZmxhZ3MpOwoKCnBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICoKX3BpeG1hbl9pbXBsZW1lbnRh
dGlvbl9jcmVhdGVfZ2VuZXJhbCAodm9pZCk7CgpwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqCl9w
aXhtYW5faW1wbGVtZW50YXRpb25fY3JlYXRlX2Zhc3RfcGF0aCAocGl4bWFuX2ltcGxlbWVudGF0
aW9uX3QgKmZhbGxiYWNrKTsKCnBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICoKX3BpeG1hbl9pbXBs
ZW1lbnRhdGlvbl9jcmVhdGVfbm9vcCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmZhbGxiYWNr
KTsKCgpwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqCl9waXhtYW5faW1wbGVtZW50YXRpb25fY3Jl
YXRlX21teCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmZhbGxiYWNrKTsKIyA2MDIgIi9ob21l
L3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMy
LjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiCnBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICoKX3Bp
eG1hbl9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfYXJtX3NpbWQgKHBpeG1hbl9pbXBsZW1lbnRhdGlv
bl90ICpmYWxsYmFjayk7CgoKCnBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICoKX3BpeG1hbl9pbXBs
ZW1lbnRhdGlvbl9jcmVhdGVfYXJtX25lb24gKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICpmYWxs
YmFjayk7CiMgNjIxICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tcHJpdmF0ZS5oIgpwaXhtYW5fYm9v
bF90Cl9waXhtYW5faW1wbGVtZW50YXRpb25fZGlzYWJsZWQgKGNvbnN0IGNoYXIgKm5hbWUpOwoK
cGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKgpfcGl4bWFuX3g4Nl9nZXRfaW1wbGVtZW50YXRpb25z
IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wKTsKCnBpeG1hbl9pbXBsZW1lbnRhdGlvbl90
ICoKX3BpeG1hbl9hcm1fZ2V0X2ltcGxlbWVudGF0aW9ucyAocGl4bWFuX2ltcGxlbWVudGF0aW9u
X3QgKmltcCk7CgpwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqCl9waXhtYW5fcHBjX2dldF9pbXBs
ZW1lbnRhdGlvbnMgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXApOwoKcGl4bWFuX2ltcGxl
bWVudGF0aW9uX3QgKgpfcGl4bWFuX21pcHNfZ2V0X2ltcGxlbWVudGF0aW9ucyAocGl4bWFuX2lt
cGxlbWVudGF0aW9uX3QgKmltcCk7CgpwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqCl9waXhtYW5f
Y2hvb3NlX2ltcGxlbWVudGF0aW9uICh2b2lkKTsKCnBpeG1hbl9ib29sX3QKX3BpeG1hbl9kaXNh
YmxlZCAoY29uc3QgY2hhciAqbmFtZSk7CgoKCgoKcGl4bWFuX2Jvb2xfdApfcGl4bWFuX2NvbXB1
dGVfY29tcG9zaXRlX3JlZ2lvbjMyIChwaXhtYW5fcmVnaW9uMzJfdCAqIHJlZ2lvbiwKICAgICAg
ICBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSwKICAgICAgICBwaXhtYW5faW1hZ2VfdCAqIG1h
c2tfaW1hZ2UsCiAgICAgICAgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlLAogICAgICAgIGlu
dDMyX3Qgc3JjX3gsCiAgICAgICAgaW50MzJfdCBzcmNfeSwKICAgICAgICBpbnQzMl90IG1hc2tf
eCwKICAgICAgICBpbnQzMl90IG1hc2tfeSwKICAgICAgICBpbnQzMl90IGRlc3RfeCwKICAgICAg
ICBpbnQzMl90IGRlc3RfeSwKICAgICAgICBpbnQzMl90IHdpZHRoLAogICAgICAgIGludDMyX3Qg
aGVpZ2h0KTsKdWludDMyX3QgKgpfcGl4bWFuX2l0ZXJfZ2V0X3NjYW5saW5lX25vb3AgKHBpeG1h
bl9pdGVyX3QgKml0ZXIsIGNvbnN0IHVpbnQzMl90ICptYXNrKTsKCnZvaWQKX3BpeG1hbl9pdGVy
X2luaXRfYml0c19zdHJpZGUgKHBpeG1hbl9pdGVyX3QgKml0ZXIsIGNvbnN0IHBpeG1hbl9pdGVy
X2luZm9fdCAqaW5mbyk7CiMgNzcwICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tcHJpdmF0ZS5oIgpl
eHRlcm4gcGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmdsb2JhbF9pbXBsZW1lbnRhdGlvbjsKCnN0
YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICoKZ2V0X2ltcGxlbWVudGF0aW9uICh2b2lkKQp7CgoKCgogICAg
cmV0dXJuIGdsb2JhbF9pbXBsZW1lbnRhdGlvbjsKfQoKCgoKX19hdHRyaWJ1dGVfXyAoKHZpc2li
aWxpdHkoImRlZmF1bHQiKSkpIHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICoKX3BpeG1hbl9pbnRl
cm5hbF9vbmx5X2dldF9pbXBsZW1lbnRhdGlvbiAodm9pZCk7CgoKdm9pZCAqCnBpeG1hbl9tYWxs
b2NfYWIgKHVuc2lnbmVkIGludCBuLCB1bnNpZ25lZCBpbnQgYik7Cgp2b2lkICoKcGl4bWFuX21h
bGxvY19hYmMgKHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYiwgdW5zaWduZWQgaW50IGMp
OwoKdm9pZCAqCnBpeG1hbl9tYWxsb2NfYWJfcGx1c19jICh1bnNpZ25lZCBpbnQgYSwgdW5zaWdu
ZWQgaW50IGIsIHVuc2lnbmVkIGludCBjKTsKCnBpeG1hbl9ib29sX3QKX3BpeG1hbl9tdWx0aXBs
eV9vdmVyZmxvd3Nfc2l6ZSAoc2l6ZV90IGEsIHNpemVfdCBiKTsKCnBpeG1hbl9ib29sX3QKX3Bp
eG1hbl9tdWx0aXBseV9vdmVyZmxvd3NfaW50ICh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50
IGIpOwoKcGl4bWFuX2Jvb2xfdApfcGl4bWFuX2FkZGl0aW9uX292ZXJmbG93c19pbnQgKHVuc2ln
bmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CgoKdm9pZApwaXhtYW5fZXhwYW5kX3RvX2Zsb2F0
IChhcmdiX3QgKmRzdCwKICAgY29uc3QgdWludDMyX3QgKnNyYywKICAgcGl4bWFuX2Zvcm1hdF9j
b2RlX3QgZm9ybWF0LAogICBpbnQgd2lkdGgpOwoKdm9pZApwaXhtYW5fY29udHJhY3RfZnJvbV9m
bG9hdCAodWludDMyX3QgKmRzdCwKICAgICAgIGNvbnN0IGFyZ2JfdCAqc3JjLAogICAgICAgaW50
IHdpZHRoKTsKCgpwaXhtYW5fYm9vbF90CnBpeG1hbl9yZWdpb24zMl9jb3B5X2Zyb21fcmVnaW9u
MTYgKHBpeG1hbl9yZWdpb24zMl90ICpkc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBpeG1hbl9yZWdpb24xNl90ICpzcmMpOwoKcGl4bWFuX2Jvb2xfdApwaXhtYW5fcmVn
aW9uMTZfY29weV9mcm9tX3JlZ2lvbjMyIChwaXhtYW5fcmVnaW9uMTZfdCAqZHN0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fcmVnaW9uMzJfdCAqc3JjKTsKCgp0
eXBlZGVmIHN0cnVjdCBwaXhtYW5fbGlua190IHBpeG1hbl9saW5rX3Q7CnN0cnVjdCBwaXhtYW5f
bGlua190CnsKICAgIHBpeG1hbl9saW5rX3QgKm5leHQ7CiAgICBwaXhtYW5fbGlua190ICpwcmV2
Owp9OwoKdHlwZWRlZiBzdHJ1Y3QgcGl4bWFuX2xpc3RfdCBwaXhtYW5fbGlzdF90OwpzdHJ1Y3Qg
cGl4bWFuX2xpc3RfdAp7CiAgICBwaXhtYW5fbGlua190ICpoZWFkOwogICAgcGl4bWFuX2xpbmtf
dCAqdGFpbDsKfTsKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQKcGl4bWFuX2xpc3RfaW5pdCAocGl4bWFuX2xpc3RfdCAqbGlzdCkKewog
ICAgbGlzdC0+aGVhZCA9IChwaXhtYW5fbGlua190ICopbGlzdDsKICAgIGxpc3QtPnRhaWwgPSAo
cGl4bWFuX2xpbmtfdCAqKWxpc3Q7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQKcGl4bWFuX2xpc3RfcHJlcGVuZCAocGl4bWFuX2xp
c3RfdCAqbGlzdCwgcGl4bWFuX2xpbmtfdCAqbGluaykKewogICAgbGluay0+bmV4dCA9IGxpc3Qt
PmhlYWQ7CiAgICBsaW5rLT5wcmV2ID0gKHBpeG1hbl9saW5rX3QgKilsaXN0OwogICAgbGlzdC0+
aGVhZC0+cHJldiA9IGxpbms7CiAgICBsaXN0LT5oZWFkID0gbGluazsKfQoKc3RhdGljIF9faW5s
aW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZApwaXhtYW5fbGlz
dF91bmxpbmsgKHBpeG1hbl9saW5rX3QgKmxpbmspCnsKICAgIGxpbmstPnByZXYtPm5leHQgPSBs
aW5rLT5uZXh0OwogICAgbGluay0+bmV4dC0+cHJldiA9IGxpbmstPnByZXY7Cn0KCnN0YXRpYyBf
X2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQKcGl4bWFu
X2xpc3RfbW92ZV90b19mcm9udCAocGl4bWFuX2xpc3RfdCAqbGlzdCwgcGl4bWFuX2xpbmtfdCAq
bGluaykKewogICAgcGl4bWFuX2xpc3RfdW5saW5rIChsaW5rKTsKICAgIHBpeG1hbl9saXN0X3By
ZXBlbmQgKGxpc3QsIGxpbmspOwp9CiMgOTA1ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tcHJpdmF0
ZS5oIgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18p
KSB1aW50MTZfdApjb252ZXJ0Xzg4ODhfdG9fMDU2NSAodWludDMyX3QgcykKewoKICAgIHVpbnQz
Ml90IGEsIGI7CiAgICBhID0gKHMgPj4gMykgJiAweDFGMDAxRjsKICAgIGIgPSBzICYgMHhGQzAw
OwogICAgYSB8PSBhID4+IDU7CiAgICBhIHw9IGIgPj4gNTsKICAgIHJldHVybiAodWludDE2X3Qp
YTsKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
KSkgdWludDMyX3QKY29udmVydF8wNTY1X3RvXzA4ODggKHVpbnQxNl90IHMpCnsKICAgIHJldHVy
biAoKCgoKHMpIDw8IDMpICYgMHhmOCkgfCAoKChzKSA+PiAyKSAmIDB4NykpIHwKICAgICAgICAg
ICAgKCgoKHMpIDw8IDUpICYgMHhmYzAwKSB8ICgoKHMpID4+IDEpICYgMHgzMDApKSB8CiAgICAg
ICAgICAgICgoKChzKSA8PCA4KSAmIDB4ZjgwMDAwKSB8ICgoKHMpIDw8IDMpICYgMHg3MDAwMCkp
KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
KSkgdWludDMyX3QKY29udmVydF8wNTY1X3RvXzg4ODggKHVpbnQxNl90IHMpCnsKICAgIHJldHVy
biBjb252ZXJ0XzA1NjVfdG9fMDg4OCAocykgfCAweGZmMDAwMDAwOwp9CgoKCnN0YXRpYyBfX2lu
bGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHVpbnQzMl90CmNvbnZl
cnRfODg4OF90b184ODg4ICh1aW50MzJfdCBzKQp7CiAgICByZXR1cm4gczsKfQoKc3RhdGljIF9f
aW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgdWludDMyX3QKY29u
dmVydF94ODg4X3RvXzg4ODggKHVpbnQzMl90IHMpCnsKICAgIHJldHVybiBzIHwgMHhmZjAwMDAw
MDsKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
KSkgdWludDE2X3QKY29udmVydF8wNTY1X3RvXzA1NjUgKHVpbnQxNl90IHMpCnsKICAgIHJldHVy
biBzOwp9CiMgOTY2ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RL
L1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tcHJpdmF0ZS5oIgpzdGF0aWMgX19p
bmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSB1aW50MzJfdAp1bm9y
bV90b191bm9ybSAodWludDMyX3QgdmFsLCBpbnQgZnJvbV9iaXRzLCBpbnQgdG9fYml0cykKewog
ICAgdWludDMyX3QgcmVzdWx0OwoKICAgIGlmIChmcm9tX2JpdHMgPT0gMCkKIHJldHVybiAwOwoK
CiAgICB2YWwgJj0gKCgxIDw8IGZyb21fYml0cykgLSAxKTsKCiAgICBpZiAoZnJvbV9iaXRzID49
IHRvX2JpdHMpCiByZXR1cm4gdmFsID4+IChmcm9tX2JpdHMgLSB0b19iaXRzKTsKCgogICAgcmVz
dWx0ID0gdmFsIDw8ICh0b19iaXRzIC0gZnJvbV9iaXRzKTsKIyAxMDAwICIvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1h
bi9waXhtYW4tcHJpdmF0ZS5oIgogICAgZG8geyBpZiAoZnJvbV9iaXRzIDwgdG9fYml0cykgeyBy
ZXN1bHQgfD0gcmVzdWx0ID4+IGZyb21fYml0czsgZnJvbV9iaXRzICo9IDI7IH0gfSB3aGlsZSAo
MCk7CiAgICBkbyB7IGlmIChmcm9tX2JpdHMgPCB0b19iaXRzKSB7IHJlc3VsdCB8PSByZXN1bHQg
Pj4gZnJvbV9iaXRzOyBmcm9tX2JpdHMgKj0gMjsgfSB9IHdoaWxlICgwKTsKICAgIGRvIHsgaWYg
KGZyb21fYml0cyA8IHRvX2JpdHMpIHsgcmVzdWx0IHw9IHJlc3VsdCA+PiBmcm9tX2JpdHM7IGZy
b21fYml0cyAqPSAyOyB9IH0gd2hpbGUgKDApOwogICAgZG8geyBpZiAoZnJvbV9iaXRzIDwgdG9f
Yml0cykgeyByZXN1bHQgfD0gcmVzdWx0ID4+IGZyb21fYml0czsgZnJvbV9iaXRzICo9IDI7IH0g
fSB3aGlsZSAoMCk7CiAgICBkbyB7IGlmIChmcm9tX2JpdHMgPCB0b19iaXRzKSB7IHJlc3VsdCB8
PSByZXN1bHQgPj4gZnJvbV9iaXRzOyBmcm9tX2JpdHMgKj0gMjsgfSB9IHdoaWxlICgwKTsKCiAg
ICByZXR1cm4gcmVzdWx0Owp9Cgp1aW50MTZfdCBwaXhtYW5fZmxvYXRfdG9fdW5vcm0gKGZsb2F0
IGYsIGludCBuX2JpdHMpOwpmbG9hdCBwaXhtYW5fdW5vcm1fdG9fZmxvYXQgKHVpbnQxNl90IHUs
IGludCBuX2JpdHMpOwojIDEwMzggIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiCnZv
aWQKX3BpeG1hbl9sb2dfZXJyb3IgKGNvbnN0IGNoYXIgKmZ1bmN0aW9uLCBjb25zdCBjaGFyICpt
ZXNzYWdlKTsKIyAxMDc1ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
R1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tcHJpdmF0ZS5oIgp0eXBlZGVm
IHN0cnVjdCB7IHBpeG1hbl9maXhlZF80OF8xNl90IHZbM107IH0gcGl4bWFuX3ZlY3Rvcl80OF8x
Nl90OwoKcGl4bWFuX2Jvb2xfdApwaXhtYW5fdHJhbnNmb3JtX3BvaW50XzMxXzE2IChjb25zdCBw
aXhtYW5fdHJhbnNmb3JtX3QgKnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHBpeG1hbl92ZWN0b3JfNDhfMTZfdCAqdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGl4bWFuX3ZlY3Rvcl80OF8xNl90ICpyZXN1bHQpOwoKdm9pZApwaXhtYW5fdHJhbnNmb3JtX3Bv
aW50XzMxXzE2XzNkIChjb25zdCBwaXhtYW5fdHJhbnNmb3JtX3QgKnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpeG1hbl92ZWN0b3JfNDhfMTZfdCAqdiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX3ZlY3Rvcl80OF8xNl90ICpyZXN1bHQp
OwoKdm9pZApwaXhtYW5fdHJhbnNmb3JtX3BvaW50XzMxXzE2X2FmZmluZSAoY29uc3QgcGl4bWFu
X3RyYW5zZm9ybV90ICp0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgcGl4bWFuX3ZlY3Rvcl80OF8xNl90ICp2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGl4bWFuX3ZlY3Rvcl80OF8xNl90ICpyZXN1bHQpOwojIDQ0ICIvaG9tZS9waS93
ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3Bp
eG1hbi9waXhtYW4tbW14LmMiIDIKIyAxICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tY29tYmluZTMy
LmgiIDEKIyA0NSAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9T
b3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLW1teC5jIiAyCiMgMSAiL2hvbWUvcGkv
d2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9w
aXhtYW4vcGl4bWFuLWlubGluZXMuaCIgMQojIDI5ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4taW5s
aW5lcy5oIgojIDEgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsv
U291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1wcml2YXRlLmgiIDEKIyAzMCAiL2hv
bWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAu
MzIuNi9waXhtYW4vcGl4bWFuLWlubGluZXMuaCIgMgojIDU2ICIvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXht
YW4taW5saW5lcy5oIgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18pKSBwaXhtYW5fYm9vbF90CnJlcGVhdCAocGl4bWFuX3JlcGVhdF90IHJlcGVhdCwg
aW50ICpjLCBpbnQgc2l6ZSkKewogICAgaWYgKHJlcGVhdCA9PSBQSVhNQU5fUkVQRUFUX05PTkUp
CiAgICB7CiBpZiAoKmMgPCAwIHx8ICpjID49IHNpemUpCiAgICAgcmV0dXJuIDA7CiAgICB9CiAg
ICBlbHNlIGlmIChyZXBlYXQgPT0gUElYTUFOX1JFUEVBVF9OT1JNQUwpCiAgICB7CiB3aGlsZSAo
KmMgPj0gc2l6ZSkKICAgICAqYyAtPSBzaXplOwogd2hpbGUgKCpjIDwgMCkKICAgICAqYyArPSBz
aXplOwogICAgfQogICAgZWxzZSBpZiAocmVwZWF0ID09IFBJWE1BTl9SRVBFQVRfUEFEKQogICAg
ewogKmMgPSAoKCpjKSA8ICgwKSA/ICgwKSA6ICgoKmMpID4gKHNpemUgLSAxKSA/IChzaXplIC0g
MSkgOiAoKmMpKSk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAqYyA9ICgoKmMpIDwgMCA/ICgoc2l6
ZSAqIDIpIC0gKCgtKCpjKSAtIDEpICUgKHNpemUgKiAyKSkpIC0gMSA6ICgqYykgJSAoc2l6ZSAq
IDIpKTsKIGlmICgqYyA+PSBzaXplKQogICAgICpjID0gc2l6ZSAqIDIgLSAqYyAtIDE7CiAgICB9
CiAgICByZXR1cm4gMTsKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50CnBpeG1hbl9maXhlZF90b19iaWxpbmVhcl93ZWlnaHQgKHBpeG1h
bl9maXhlZF90IHgpCnsKICAgIHJldHVybiAoeCA+PiAoMTYgLSA3KSkgJgogICAgKCgxIDw8IDcp
IC0gMSk7Cn0KIyAxNzYgIi9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNH
VEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1pbmxpbmVzLmgiCnN0YXRpYyBf
X2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHVpbnQzMl90CmJp
bGluZWFyX2ludGVycG9sYXRpb24gKHVpbnQzMl90IHRsLCB1aW50MzJfdCB0ciwKICAgdWludDMy
X3QgYmwsIHVpbnQzMl90IGJyLAogICBpbnQgZGlzdHgsIGludCBkaXN0eSkKewogICAgaW50IGRp
c3R4eSwgZGlzdHhpeSwgZGlzdGl4eSwgZGlzdGl4aXk7CiAgICB1aW50MzJfdCBmLCByOwoKICAg
IGRpc3R4IDw8PSAoOCAtIDcpOwogICAgZGlzdHkgPDw9ICg4IC0gNyk7CgogICAgZGlzdHh5ID0g
ZGlzdHggKiBkaXN0eTsKICAgIGRpc3R4aXkgPSAoZGlzdHggPDwgOCkgLSBkaXN0eHk7CiAgICBk
aXN0aXh5ID0gKGRpc3R5IDw8IDgpIC0gZGlzdHh5OwogICAgZGlzdGl4aXkgPQogMjU2ICogMjU2
IC0gKGRpc3R5IDw8IDgpIC0KIChkaXN0eCA8PCA4KSArIGRpc3R4eTsKCgogICAgciA9ICh0bCAm
IDB4MDAwMDAwZmYpICogZGlzdGl4aXkgKyAodHIgJiAweDAwMDAwMGZmKSAqIGRpc3R4aXkKICAg
ICAgKyAoYmwgJiAweDAwMDAwMGZmKSAqIGRpc3RpeHkgKyAoYnIgJiAweDAwMDAwMGZmKSAqIGRp
c3R4eTsKCgogICAgZiA9ICh0bCAmIDB4MDAwMGZmMDApICogZGlzdGl4aXkgKyAodHIgJiAweDAw
MDBmZjAwKSAqIGRpc3R4aXkKICAgICAgKyAoYmwgJiAweDAwMDBmZjAwKSAqIGRpc3RpeHkgKyAo
YnIgJiAweDAwMDBmZjAwKSAqIGRpc3R4eTsKICAgIHIgfD0gZiAmIDB4ZmYwMDAwMDA7CgogICAg
dGwgPj49IDE2OwogICAgdHIgPj49IDE2OwogICAgYmwgPj49IDE2OwogICAgYnIgPj49IDE2Owog
ICAgciA+Pj0gMTY7CgoKICAgIGYgPSAodGwgJiAweDAwMDAwMGZmKSAqIGRpc3RpeGl5ICsgKHRy
ICYgMHgwMDAwMDBmZikgKiBkaXN0eGl5CiAgICAgICsgKGJsICYgMHgwMDAwMDBmZikgKiBkaXN0
aXh5ICsgKGJyICYgMHgwMDAwMDBmZikgKiBkaXN0eHk7CiAgICByIHw9IGYgJiAweDAwZmYwMDAw
OwoKCiAgICBmID0gKHRsICYgMHgwMDAwZmYwMCkgKiBkaXN0aXhpeSArICh0ciAmIDB4MDAwMGZm
MDApICogZGlzdHhpeQogICAgICArIChibCAmIDB4MDAwMGZmMDApICogZGlzdGl4eSArIChiciAm
IDB4MDAwMGZmMDApICogZGlzdHh5OwogICAgciB8PSBmICYgMHhmZjAwMDAwMDsKCiAgICByZXR1
cm4gcjsKfQojIDIzNyAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLWlubGluZXMuaCIKc3RhdGljIF9f
aW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZApwYWRfcmVw
ZWF0X2dldF9zY2FubGluZV9ib3VuZHMgKGludDMyX3Qgc291cmNlX2ltYWdlX3dpZHRoLAogICAg
cGl4bWFuX2ZpeGVkX3QgdngsCiAgICBwaXhtYW5fZml4ZWRfdCB1bml0X3gsCiAgICBpbnQzMl90
ICogd2lkdGgsCiAgICBpbnQzMl90ICogbGVmdF9wYWQsCiAgICBpbnQzMl90ICogcmlnaHRfcGFk
KQp7CiAgICBpbnQ2NF90IG1heF92eCA9IChpbnQ2NF90KSBzb3VyY2VfaW1hZ2Vfd2lkdGggPDwg
MTY7CiAgICBpbnQ2NF90IHRtcDsKICAgIGlmICh2eCA8IDApCiAgICB7CiB0bXAgPSAoKGludDY0
X3QpIHVuaXRfeCAtIDEgLSB2eCkgLyB1bml0X3g7CiBpZiAodG1wID4gKndpZHRoKQogewogICAg
ICpsZWZ0X3BhZCA9ICp3aWR0aDsKICAgICAqd2lkdGggPSAwOwogfQogZWxzZQogewogICAgICps
ZWZ0X3BhZCA9IChpbnQzMl90KSB0bXA7CiAgICAgKndpZHRoIC09IChpbnQzMl90KSB0bXA7CiB9
CiAgICB9CiAgICBlbHNlCiAgICB7CiAqbGVmdF9wYWQgPSAwOwogICAgfQogICAgdG1wID0gKChp
bnQ2NF90KSB1bml0X3ggLSAxIC0gdnggKyBtYXhfdngpIC8gdW5pdF94IC0gKmxlZnRfcGFkOwog
ICAgaWYgKHRtcCA8IDApCiAgICB7CiAqcmlnaHRfcGFkID0gKndpZHRoOwogKndpZHRoID0gMDsK
ICAgIH0KICAgIGVsc2UgaWYgKHRtcCA+PSAqd2lkdGgpCiAgICB7CiAqcmlnaHRfcGFkID0gMDsK
ICAgIH0KICAgIGVsc2UKICAgIHsKICpyaWdodF9wYWQgPSAqd2lkdGggLSAoaW50MzJfdCkgdG1w
OwogKndpZHRoID0gKGludDMyX3QpIHRtcDsKICAgIH0KfQojIDc1OSAiL2hvbWUvcGkvd2Via2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4v
cGl4bWFuLWlubGluZXMuaCIKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZApiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9zY2FubGluZV9ib3Vu
ZHMgKGludDMyX3Qgc291cmNlX2ltYWdlX3dpZHRoLAogICAgICBwaXhtYW5fZml4ZWRfdCB2eCwK
ICAgICAgcGl4bWFuX2ZpeGVkX3QgdW5pdF94LAogICAgICBpbnQzMl90ICogbGVmdF9wYWQsCiAg
ICAgIGludDMyX3QgKiBsZWZ0X3R6LAogICAgICBpbnQzMl90ICogd2lkdGgsCiAgICAgIGludDMy
X3QgKiByaWdodF90eiwKICAgICAgaW50MzJfdCAqIHJpZ2h0X3BhZCkKewogaW50IHdpZHRoMSA9
ICp3aWR0aCwgbGVmdF9wYWQxLCByaWdodF9wYWQxOwogaW50IHdpZHRoMiA9ICp3aWR0aCwgbGVm
dF9wYWQyLCByaWdodF9wYWQyOwoKIHBhZF9yZXBlYXRfZ2V0X3NjYW5saW5lX2JvdW5kcyAoc291
cmNlX2ltYWdlX3dpZHRoLCB2eCwgdW5pdF94LAogICAgICZ3aWR0aDEsICZsZWZ0X3BhZDEsICZy
aWdodF9wYWQxKTsKIHBhZF9yZXBlYXRfZ2V0X3NjYW5saW5lX2JvdW5kcyAoc291cmNlX2ltYWdl
X3dpZHRoLCB2eCArICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpLAogICAgIHVuaXRf
eCwgJndpZHRoMiwgJmxlZnRfcGFkMiwgJnJpZ2h0X3BhZDIpOwoKICpsZWZ0X3BhZCA9IGxlZnRf
cGFkMjsKICpsZWZ0X3R6ID0gbGVmdF9wYWQxIC0gbGVmdF9wYWQyOwogKnJpZ2h0X3R6ID0gcmln
aHRfcGFkMiAtIHJpZ2h0X3BhZDE7CiAqcmlnaHRfcGFkID0gcmlnaHRfcGFkMTsKICp3aWR0aCAt
PSAqbGVmdF9wYWQgKyAqbGVmdF90eiArICpyaWdodF90eiArICpyaWdodF9wYWQ7Cn0KIyA0NiAi
L2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFu
LTAuMzIuNi9waXhtYW4vcGl4bWFuLW1teC5jIiAyCiMgMTc5ICIvaG9tZS9waS93ZWJraXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXht
YW4tbW14LmMiCnR5cGVkZWYgdWludDY0X3QgbW14ZGF0YWZpZWxkOwoKCgoKdHlwZWRlZiBzdHJ1
Y3QKewogICAgbW14ZGF0YWZpZWxkIG1teF80eDAwZmY7CiAgICBtbXhkYXRhZmllbGQgbW14XzR4
MDA4MDsKICAgIG1teGRhdGFmaWVsZCBtbXhfNTY1X3JnYjsKICAgIG1teGRhdGFmaWVsZCBtbXhf
NTY1X3VucGFja19tdWx0aXBsaWVyOwogICAgbW14ZGF0YWZpZWxkIG1teF81NjVfcGFja19tdWx0
aXBsaWVyOwogICAgbW14ZGF0YWZpZWxkIG1teF81NjVfcjsKICAgIG1teGRhdGFmaWVsZCBtbXhf
NTY1X2c7CiAgICBtbXhkYXRhZmllbGQgbW14XzU2NV9iOwogICAgbW14ZGF0YWZpZWxkIG1teF9w
YWNrZWRfNTY1X3JiOwogICAgbW14ZGF0YWZpZWxkIG1teF9wYWNrZWRfNTY1X2c7CiAgICBtbXhk
YXRhZmllbGQgbW14X2V4cGFuZF81NjVfZzsKICAgIG1teGRhdGFmaWVsZCBtbXhfZXhwYW5kXzU2
NV9iOwogICAgbW14ZGF0YWZpZWxkIG1teF9leHBhbmRfNTY1X3I7CgogICAgbW14ZGF0YWZpZWxk
IG1teF9tYXNrXzA7CiAgICBtbXhkYXRhZmllbGQgbW14X21hc2tfMTsKICAgIG1teGRhdGFmaWVs
ZCBtbXhfbWFza18yOwogICAgbW14ZGF0YWZpZWxkIG1teF9tYXNrXzM7CgogICAgbW14ZGF0YWZp
ZWxkIG1teF9mdWxsX2FscGhhOwogICAgbW14ZGF0YWZpZWxkIG1teF80eDAxMDE7CiAgICBtbXhk
YXRhZmllbGQgbW14X2ZmMDAwMDAwOwp9IG1teF9kYXRhX3Q7CiMgMjE4ICIvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1h
bi9waXhtYW4tbW14LmMiCnN0YXRpYyBjb25zdCBtbXhfZGF0YV90IGMgPQp7CiAgICAubW14XzR4
MDBmZiA9IDB4MDBmZjAwZmYwMGZmMDBmZlVMTCwKICAgIC5tbXhfNHgwMDgwID0gMHgwMDgwMDA4
MDAwODAwMDgwVUxMLAogICAgLm1teF81NjVfcmdiID0gMHgwMDAwMDFmMDAwM2YwMDFmVUxMLAog
ICAgLm1teF81NjVfdW5wYWNrX211bHRpcGxpZXIgPSAweDAwMDAwMDg0MDQxMDA4NDBVTEwsCiAg
ICAubW14XzU2NV9wYWNrX211bHRpcGxpZXIgPSAweDIwMDAwMDA0MjAwMDAwMDRVTEwsCiAgICAu
bW14XzU2NV9yID0gMHgwMDAwMDBmODAwMDAwMDAwVUxMLAogICAgLm1teF81NjVfZyA9IDB4MDAw
MDAwMDAwMGZjMDAwMFVMTCwKICAgIC5tbXhfNTY1X2IgPSAweDAwMDAwMDAwMDAwMDAwZjhVTEws
CiAgICAubW14X3BhY2tlZF81NjVfcmIgPSAweDAwZjgwMGY4MDBmODAwZjhVTEwsCiAgICAubW14
X3BhY2tlZF81NjVfZyA9IDB4MDAwMGZjMDAwMDAwZmMwMFVMTCwKICAgIC5tbXhfZXhwYW5kXzU2
NV9nID0gMHgwN2UwMDdlMDA3ZTAwN2UwVUxMLAogICAgLm1teF9leHBhbmRfNTY1X2IgPSAweDAw
MWYwMDFmMDAxZjAwMWZVTEwsCiAgICAubW14X2V4cGFuZF81NjVfciA9IDB4ZjgwMGY4MDBmODAw
ZjgwMFVMTCwKCiAgICAubW14X21hc2tfMCA9IDB4ZmZmZmZmZmZmZmZmMDAwMFVMTCwKICAgIC5t
bXhfbWFza18xID0gMHhmZmZmZmZmZjAwMDBmZmZmVUxMLAogICAgLm1teF9tYXNrXzIgPSAweGZm
ZmYwMDAwZmZmZmZmZmZVTEwsCiAgICAubW14X21hc2tfMyA9IDB4MDAwMGZmZmZmZmZmZmZmZlVM
TCwKCiAgICAubW14X2Z1bGxfYWxwaGEgPSAweDAwZmYwMDAwMDAwMDAwMDBVTEwsCiAgICAubW14
XzR4MDEwMSA9IDB4MDEwMTAxMDEwMTAxMDEwMVVMTCwKICAgIC5tbXhfZmYwMDAwMDAgPSAweGZm
MDAwMDAwZmYwMDAwMDBVTEwsCn07CiMgMjU0ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tbW14LmMi
CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9f
bTY0CnRvX202NCAodWludDY0X3QgeCkKewojIDI2NyAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLW1t
eC5jIgogICAgcmV0dXJuIChfX202NCl4OwoKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgdWludDY0X3QKdG9fdWludDY0IChfX202NCB4KQp7
CiMgMjgyICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJj
ZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tbW14LmMiCiAgICByZXR1cm4gKHVpbnQ2NF90
KXg7Cgp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18pKSBfX202NApzaGlmdCAoX19tNjQgdiwKICAgICAgIGludCBzKQp7CiAgICBpZiAocyA+IDAp
CiByZXR1cm4gX21tX3NsbGlfc2k2NCAodiwgcyk7CiAgICBlbHNlIGlmIChzIDwgMCkKIHJldHVy
biBfbW1fc3JsaV9zaTY0ICh2LCAtcyk7CiAgICBlbHNlCiByZXR1cm4gdjsKfQoKc3RhdGljIF9f
aW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKbmVnYXRl
IChfX202NCBtYXNrKQp7CiAgICByZXR1cm4gX21tX3hvcl9zaTY0IChtYXNrLCAoKF9fbTY0KWMu
bW14XzR4MDBmZikpOwp9CiMgMzI3ICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tbW14LmMiCnN0YXRp
YyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbTY0CnBp
eF9tdWx0aXBseSAoX19tNjQgYSwgX19tNjQgYikKewogICAgX19tNjQgcmVzOwoKICAgIHJlcyA9
IF9tbV9tdWxsb19waTE2IChhLCBiKTsKICAgIHJlcyA9IF9tbV9hZGRzX3B1MTYgKHJlcywgKChf
X202NCljLm1teF80eDAwODApKTsKICAgIHJlcyA9IF9tbV9tdWxoaV9wdTE2IChyZXMsICgoX19t
NjQpYy5tbXhfNHgwMTAxKSk7CgogICAgcmV0dXJuIHJlczsKfQoKc3RhdGljIF9faW5saW5lX18g
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKcGl4X2FkZCAoX19tNjQg
YSwgX19tNjQgYikKewogICAgcmV0dXJuIF9tbV9hZGRzX3B1OCAoYSwgYik7Cn0KCnN0YXRpYyBf
X2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbTY0CmV4cGFu
ZF9hbHBoYSAoX19tNjQgcGl4ZWwpCnsKICAgIHJldHVybiAoKF9fbTY0KSBfX2J1aWx0aW5fYXJt
X3dzaHVmaCAoKF9fdjRoaSkocGl4ZWwpLCAoKCgoMykgPDwgNikgfCAoKDMpIDw8IDQpIHwgKCgz
KSA8PCAyKSB8ICgzKSkpKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXykpIF9fbTY0CmV4cGFuZF9hbHBoYV9yZXYgKF9fbTY0IHBpeGVsKQp7
CiAgICByZXR1cm4gKChfX202NCkgX19idWlsdGluX2FybV93c2h1ZmggKChfX3Y0aGkpKHBpeGVs
KSwgKCgoKDApIDw8IDYpIHwgKCgwKSA8PCA0KSB8ICgoMCkgPDwgMikgfCAoMCkpKSkpOwp9Cgpz
dGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX202
NAppbnZlcnRfY29sb3JzIChfX202NCBwaXhlbCkKewogICAgcmV0dXJuICgoX19tNjQpIF9fYnVp
bHRpbl9hcm1fd3NodWZoICgoX192NGhpKShwaXhlbCksICgoKCgzKSA8PCA2KSB8ICgoMCkgPDwg
NCkgfCAoKDEpIDw8IDIpIHwgKDIpKSkpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKb3ZlciAoX19tNjQgc3JjLAogICAgICBf
X202NCBzcmNhLAogICAgICBfX202NCBkZXN0KQp7CiAgICByZXR1cm4gX21tX2FkZHNfcHU4IChz
cmMsIHBpeF9tdWx0aXBseSAoZGVzdCwgbmVnYXRlIChzcmNhKSkpOwp9CgpzdGF0aWMgX19pbmxp
bmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX202NApvdmVyX3Jldl9u
b25fcHJlIChfX202NCBzcmMsIF9fbTY0IGRlc3QpCnsKICAgIF9fbTY0IHNyY2EgPSBleHBhbmRf
YWxwaGEgKHNyYyk7CiAgICBfX202NCBzcmNmYWFhID0gX21tX29yX3NpNjQgKHNyY2EsICgoX19t
NjQpYy5tbXhfZnVsbF9hbHBoYSkpOwoKICAgIHJldHVybiBvdmVyIChwaXhfbXVsdGlwbHkgKGlu
dmVydF9jb2xvcnMgKHNyYyksIHNyY2ZhYWEpLCBzcmNhLCBkZXN0KTsKfQoKc3RhdGljIF9faW5s
aW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKaW4gKF9fbTY0
IHNyYywgX19tNjQgbWFzaykKewogICAgcmV0dXJuIHBpeF9tdWx0aXBseSAoc3JjLCBtYXNrKTsK
fQoKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
IF9fbTY0CmluX292ZXIgKF9fbTY0IHNyYywgX19tNjQgc3JjYSwgX19tNjQgbWFzaywgX19tNjQg
ZGVzdCkKewogICAgcmV0dXJuIG92ZXIgKGluIChzcmMsIG1hc2spLCBwaXhfbXVsdGlwbHkgKHNy
Y2EsIG1hc2spLCBkZXN0KTsKfQojIDQwMiAiL2hvbWUvcGkvd2Via2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXhtYW4vcGl4bWFuLW1teC5jIgpz
dGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX202
NCBsZHFfdShfX202NCAqcCkKewoKCgoKICAgIGludCBhbGlnbiA9ICh1aW50cHRyX3QpcCAmIDc7
CiAgICBfX202NCAqYWxpZ25lZF9wOwogICAgaWYgKGFsaWduID09IDApCiByZXR1cm4gKnA7CiAg
ICBhbGlnbmVkX3AgPSAoX19tNjQgKikoKHVpbnRwdHJfdClwICYgfjcpOwogICAgcmV0dXJuIChf
X202NCkgKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbiAoKF9fdjhxaSkgKGFsaWduZWRfcFsw
XSksKF9fdjhxaSkgKGFsaWduZWRfcFsxXSksIChhbGlnbikpOwoKCgoKCn0KCnN0YXRpYyBfX2lu
bGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHVpbnQzMl90IGxkbF91
KGNvbnN0IHVpbnQzMl90ICpwKQp7CgoKCgogICAgc3RydWN0IF9fdW5hX3UzMiB7IHVpbnQzMl90
IHggX19hdHRyaWJ1dGVfXygocGFja2VkKSk7IH07CiAgICBjb25zdCBzdHJ1Y3QgX191bmFfdTMy
ICpwdHIgPSAoY29uc3Qgc3RydWN0IF9fdW5hX3UzMiAqKSBwOwogICAgcmV0dXJuIHB0ci0+eDsK
Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
IF9fbTY0CmxvYWQgKGNvbnN0IHVpbnQzMl90ICp2KQp7CiMgNDQ0ICIvaG9tZS9waS93ZWJraXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9w
aXhtYW4tbW14LmMiCiAgICByZXR1cm4gX21tX2N2dHNpMzJfc2k2NCAoKnYpOwoKfQoKc3RhdGlj
IF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKbG9h
ZDg4ODggKGNvbnN0IHVpbnQzMl90ICp2KQp7CgoKCiAgICByZXR1cm4gX21tX3VucGFja2xvX3Bp
OCAobG9hZCAodiksIF9tbV9zZXR6ZXJvX3NpNjQgKCkpOwoKfQoKc3RhdGljIF9faW5saW5lX18g
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKbG9hZDg4ODh1IChjb25z
dCB1aW50MzJfdCAqdikKewogICAgdWludDMyX3QgbCA9IGxkbF91ICh2KTsKICAgIHJldHVybiBs
b2FkODg4OCAoJmwpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18pKSBfX202NApwYWNrODg4OCAoX19tNjQgbG8sIF9fbTY0IGhpKQp7CiAgICBy
ZXR1cm4gX21tX3BhY2tzX3B1MTYgKGxvLCBoaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQKc3RvcmUgKHVpbnQzMl90ICpkZXN0
LCBfX202NCB2KQp7CgoKCgoKCgogICAgKmRlc3QgPSBfbW1fY3Z0c2k2NF9zaTMyICh2KTsKCn0K
CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQKc3RvcmU4ODg4ICh1aW50MzJfdCAqZGVzdCwgX19tNjQgdikKewogICAgdiA9IHBhY2s4ODg4
ICh2LCBfbW1fc2V0emVyb19zaTY0ICgpKTsKICAgIHN0b3JlIChkZXN0LCB2KTsKfQoKc3RhdGlj
IF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgcGl4bWFuX2Jv
b2xfdAppc19lcXVhbCAoX19tNjQgYSwgX19tNjQgYikKewoKCgoKICAgIHJldHVybiBfbW1fbW92
ZW1hc2tfcGk4IChfbW1fY21wZXFfcGk4IChhLCBiKSkgPT0gMHhmZjsKCn0KCnN0YXRpYyBfX2lu
bGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHBpeG1hbl9ib29sX3QK
aXNfb3BhcXVlIChfX202NCB2KQp7CgoKCiAgICBfX202NCBmZnMgPSBfbW1fY21wZXFfcGk4ICh2
LCB2KTsKICAgIHJldHVybiAoX21tX21vdmVtYXNrX3BpOCAoX21tX2NtcGVxX3BpOCAodiwgZmZz
KSkgJiAweDQwKTsKCn0KCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXykpIHBpeG1hbl9ib29sX3QKaXNfemVybyAoX19tNjQgdikKewogICAgcmV0dXJu
IGlzX2VxdWFsICh2LCBfbW1fc2V0emVyb19zaTY0ICgpKTsKfQojIDUzNCAiL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXht
YW4vcGl4bWFuLW1teC5jIgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18pKSBfX202NApleHBhbmQ1NjUgKF9fbTY0IHBpeGVsLCBpbnQgcG9zKQp7CiAg
ICBfX202NCBwID0gcGl4ZWw7CiAgICBfX202NCB0MSwgdDI7CgoKCgoKICAgIHAgPSBzaGlmdCAo
c2hpZnQgKHAsICgzIC0gcG9zKSAqIDE2KSwgLTQ4KTsKCgogICAgdDEgPSBzaGlmdCAocCwgMzYg
LSAxMSk7CiAgICB0MiA9IHNoaWZ0IChwLCAxNiAtIDUpOwoKICAgIHAgPSBfbW1fb3Jfc2k2NCAo
dDEsIHApOwogICAgcCA9IF9tbV9vcl9zaTY0ICh0MiwgcCk7CiAgICBwID0gX21tX2FuZF9zaTY0
IChwLCAoKF9fbTY0KWMubW14XzU2NV9yZ2IpKTsKCiAgICBwaXhlbCA9IF9tbV9tdWxsb19waTE2
IChwLCAoKF9fbTY0KWMubW14XzU2NV91bnBhY2tfbXVsdGlwbGllcikpOwogICAgcmV0dXJuIF9t
bV9zcmxpX3BpMTYgKHBpeGVsLCA4KTsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQKZXhwYW5kXzR4cGFja2VkNTY1IChfX202
NCB2aW4sIF9fbTY0ICp2b3V0MCwgX19tNjQgKnZvdXQxLCBpbnQgZnVsbF9hbHBoYSkKewogICAg
X19tNjQgdDAsIHQxLCBhbHBoYSA9IF9tbV9zZXR6ZXJvX3NpNjQgKCk7CiAgICBfX202NCByID0g
X21tX2FuZF9zaTY0ICh2aW4sICgoX19tNjQpYy5tbXhfZXhwYW5kXzU2NV9yKSk7CiAgICBfX202
NCBnID0gX21tX2FuZF9zaTY0ICh2aW4sICgoX19tNjQpYy5tbXhfZXhwYW5kXzU2NV9nKSk7CiAg
ICBfX202NCBiID0gX21tX2FuZF9zaTY0ICh2aW4sICgoX19tNjQpYy5tbXhfZXhwYW5kXzU2NV9i
KSk7CiAgICBpZiAoZnVsbF9hbHBoYSkKIGFscGhhID0gX21tX2NtcGVxX3BpMzIgKGFscGhhLCBh
bHBoYSk7CgoKICAgIHIgPSBfbW1fb3Jfc2k2NCAoX21tX3NybGlfcGkxNiAociwgOCksIF9tbV9z
cmxpX3BpMTYgKHIsIDEzKSk7CiAgICBnID0gX21tX29yX3NpNjQgKF9tbV9zcmxpX3BpMTYgKGcs
IDMpLCBfbW1fc3JsaV9waTE2IChnLCA5KSk7CiAgICBiID0gX21tX29yX3NpNjQgKF9tbV9zbGxp
X3BpMTYgKGIsIDMpLCBfbW1fc3JsaV9waTE2IChiLCAyKSk7CgogICAgciA9IF9tbV9wYWNrc19w
dTE2IChyLCBfbW1fc2V0emVyb19zaTY0ICgpKTsKICAgIGcgPSBfbW1fcGFja3NfcHUxNiAoZywg
X21tX3NldHplcm9fc2k2NCAoKSk7CiAgICBiID0gX21tX3BhY2tzX3B1MTYgKGIsIF9tbV9zZXR6
ZXJvX3NpNjQgKCkpOwoKICAgIHQxID0gX21tX3VucGFja2xvX3BpOCAociwgYWxwaGEpOwogICAg
dDAgPSBfbW1fdW5wYWNrbG9fcGk4IChiLCBnKTsKCiAgICAqdm91dDAgPSBfbW1fdW5wYWNrbG9f
cGkxNiAodDAsIHQxKTsKICAgICp2b3V0MSA9IF9tbV91bnBhY2toaV9waTE2ICh0MCwgdDEpOwp9
CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBf
X202NApleHBhbmQ4ODg4IChfX202NCBpbiwgaW50IHBvcykKewogICAgaWYgKHBvcyA9PSAwKQog
cmV0dXJuIF9tbV91bnBhY2tsb19waTggKGluLCBfbW1fc2V0emVyb19zaTY0ICgpKTsKICAgIGVs
c2UKIHJldHVybiBfbW1fdW5wYWNraGlfcGk4IChpbiwgX21tX3NldHplcm9fc2k2NCAoKSk7Cn0K
CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9f
bTY0CmV4cGFuZHg4ODggKF9fbTY0IGluLCBpbnQgcG9zKQp7CiAgICByZXR1cm4gX21tX29yX3Np
NjQgKGV4cGFuZDg4ODggKGluLCBwb3MpLCAoKF9fbTY0KWMubW14X2Z1bGxfYWxwaGEpKTsKfQoK
c3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZApleHBhbmRfNHg1NjUgKF9fbTY0IHZpbiwgX19tNjQgKnZvdXQwLCBfX202NCAqdm91dDEsIF9f
bTY0ICp2b3V0MiwgX19tNjQgKnZvdXQzLCBpbnQgZnVsbF9hbHBoYSkKewogICAgX19tNjQgdjAs
IHYxOwogICAgZXhwYW5kXzR4cGFja2VkNTY1ICh2aW4sICZ2MCwgJnYxLCBmdWxsX2FscGhhKTsK
ICAgICp2b3V0MCA9IGV4cGFuZDg4ODggKHYwLCAwKTsKICAgICp2b3V0MSA9IGV4cGFuZDg4ODgg
KHYwLCAxKTsKICAgICp2b3V0MiA9IGV4cGFuZDg4ODggKHYxLCAwKTsKICAgICp2b3V0MyA9IGV4
cGFuZDg4ODggKHYxLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fKSkgX19tNjQKcGFja181NjUgKF9fbTY0IHBpeGVsLCBfX202NCB0YXJn
ZXQsIGludCBwb3MpCnsKICAgIF9fbTY0IHAgPSBwaXhlbDsKICAgIF9fbTY0IHQgPSB0YXJnZXQ7
CiAgICBfX202NCByLCBnLCBiOwoKICAgIHIgPSBfbW1fYW5kX3NpNjQgKHAsICgoX19tNjQpYy5t
bXhfNTY1X3IpKTsKICAgIGcgPSBfbW1fYW5kX3NpNjQgKHAsICgoX19tNjQpYy5tbXhfNTY1X2cp
KTsKICAgIGIgPSBfbW1fYW5kX3NpNjQgKHAsICgoX19tNjQpYy5tbXhfNTY1X2IpKTsKIyA2MzQg
Ii9ob21lL3BpL3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1h
bi0wLjMyLjYvcGl4bWFuL3BpeG1hbi1tbXguYyIKICAgIHIgPSBzaGlmdCAociwgLSgzMiAtIDgp
ICsgcG9zICogMTYpOwogICAgZyA9IHNoaWZ0IChnLCAtKDE2IC0gMykgKyBwb3MgKiAxNik7CiAg
ICBiID0gc2hpZnQgKGIsIC0oMCArIDMpICsgcG9zICogMTYpOwoKICAgIGlmIChwb3MgPT0gMCkK
IHQgPSBfbW1fYW5kX3NpNjQgKHQsICgoX19tNjQpYy5tbXhfbWFza18wKSk7CiAgICBlbHNlIGlm
IChwb3MgPT0gMSkKIHQgPSBfbW1fYW5kX3NpNjQgKHQsICgoX19tNjQpYy5tbXhfbWFza18xKSk7
CiAgICBlbHNlIGlmIChwb3MgPT0gMikKIHQgPSBfbW1fYW5kX3NpNjQgKHQsICgoX19tNjQpYy5t
bXhfbWFza18yKSk7CiAgICBlbHNlIGlmIChwb3MgPT0gMykKIHQgPSBfbW1fYW5kX3NpNjQgKHQs
ICgoX19tNjQpYy5tbXhfbWFza18zKSk7CgogICAgcCA9IF9tbV9vcl9zaTY0IChyLCB0KTsKICAg
IHAgPSBfbW1fb3Jfc2k2NCAoZywgcCk7CgogICAgcmV0dXJuIF9tbV9vcl9zaTY0IChiLCBwKTsK
Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
IF9fbTY0CnBhY2tfNHhwYWNrZWQ1NjUgKF9fbTY0IGEsIF9fbTY0IGIpCnsKICAgIF9fbTY0IHJi
MCA9IF9tbV9hbmRfc2k2NCAoYSwgKChfX202NCljLm1teF9wYWNrZWRfNTY1X3JiKSk7CiAgICBf
X202NCByYjEgPSBfbW1fYW5kX3NpNjQgKGIsICgoX19tNjQpYy5tbXhfcGFja2VkXzU2NV9yYikp
OwoKICAgIF9fbTY0IHQwID0gX21tX21hZGRfcGkxNiAocmIwLCAoKF9fbTY0KWMubW14XzU2NV9w
YWNrX211bHRpcGxpZXIpKTsKICAgIF9fbTY0IHQxID0gX21tX21hZGRfcGkxNiAocmIxLCAoKF9f
bTY0KWMubW14XzU2NV9wYWNrX211bHRpcGxpZXIpKTsKCiAgICBfX202NCBnMCA9IF9tbV9hbmRf
c2k2NCAoYSwgKChfX202NCljLm1teF9wYWNrZWRfNTY1X2cpKTsKICAgIF9fbTY0IGcxID0gX21t
X2FuZF9zaTY0IChiLCAoKF9fbTY0KWMubW14X3BhY2tlZF81NjVfZykpOwoKICAgIHQwID0gX21t
X29yX3NpNjQgKHQwLCBnMCk7CiAgICB0MSA9IF9tbV9vcl9zaTY0ICh0MSwgZzEpOwoKICAgIHQw
ID0gc2hpZnQodDAsIC01KTsKCiAgICB0MSA9IHNoaWZ0KHQxLCAtNSk7CiAgICByZXR1cm4gX21t
X3BhY2tzX3B1MzIgKHQwLCB0MSk7CgoKCgp9CgoKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbTY0CnBhY2tfNHg1NjUgKF9fbTY0IHYwLCBf
X202NCB2MSwgX19tNjQgdjIsIF9fbTY0IHYzKQp7CiAgICByZXR1cm4gcGFja180eHBhY2tlZDU2
NSAocGFjazg4ODggKHYwLCB2MSksIHBhY2s4ODg4ICh2MiwgdjMpKTsKfQoKc3RhdGljIF9faW5s
aW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19tNjQKcGl4X2FkZF9t
dWwgKF9fbTY0IHgsIF9fbTY0IGEsIF9fbTY0IHksIF9fbTY0IGIpCnsKICAgIHggPSBwaXhfbXVs
dGlwbHkgKHgsIGEpOwogICAgeSA9IHBpeF9tdWx0aXBseSAoeSwgYik7CgogICAgcmV0dXJuIHBp
eF9hZGQgKHgsIHkpOwp9CiMgNzEyICIvaG9tZS9waS93ZWJraXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1hbi9waXhtYW4tbW14LmMiCnN0YXRp
YyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbTY0CmNv
bWJpbmUgKGNvbnN0IHVpbnQzMl90ICpzcmMsIGNvbnN0IHVpbnQzMl90ICptYXNrKQp7CiAgICBf
X202NCB2c3JjID0gbG9hZDg4ODggKHNyYyk7CgogICAgaWYgKG1hc2spCiAgICB7CiBfX202NCBt
ID0gbG9hZDg4ODggKG1hc2spOwoKIG0gPSBleHBhbmRfYWxwaGEgKG0pOwogdnNyYyA9IHBpeF9t
dWx0aXBseSAodnNyYywgbSk7CiAgICB9CgogICAgcmV0dXJuIHZzcmM7Cn0KCnN0YXRpYyBfX2lu
bGluZV9fIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbTY0CmNvcmVfY29t
YmluZV9vdmVyX3VfcGl4ZWxfbW14IChfX202NCB2c3JjLCBfX202NCB2ZHN0KQp7CiAgICB2c3Jj
ID0gX21tX3VucGFja2xvX3BpOCAodnNyYywgX21tX3NldHplcm9fc2k2NCAoKSk7CgogICAgaWYg
KGlzX29wYXF1ZSAodnNyYykpCiAgICB7CiByZXR1cm4gdnNyYzsKICAgIH0KICAgIGVsc2UgaWYg
KCFpc196ZXJvICh2c3JjKSkKICAgIHsKIHJldHVybiBvdmVyICh2c3JjLCBleHBhbmRfYWxwaGEg
KHZzcmMpLAogICAgICAgX21tX3VucGFja2xvX3BpOCAodmRzdCwgX21tX3NldHplcm9fc2k2NCAo
KSkpOwogICAgfQoKICAgIHJldHVybiBfbW1fdW5wYWNrbG9fcGk4ICh2ZHN0LCBfbW1fc2V0emVy
b19zaTY0ICgpKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbWJpbmVfb3Zlcl91IChwaXhtYW5faW1w
bGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90IG9wLAog
ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICogZGVzdCwKICAgICAgICAgICAgICAgICAgICBj
b25zdCB1aW50MzJfdCAqIHNyYywKICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAq
IG1hc2ssCiAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJf
dCAqZW5kID0gZGVzdCArIHdpZHRoOwoKICAgIHdoaWxlIChkZXN0IDwgZW5kKQogICAgewogX19t
NjQgdnNyYyA9IGNvbWJpbmUgKHNyYywgbWFzayk7CgogaWYgKGlzX29wYXF1ZSAodnNyYykpCiB7
CiAgICAgc3RvcmU4ODg4IChkZXN0LCB2c3JjKTsKIH0KIGVsc2UgaWYgKCFpc196ZXJvICh2c3Jj
KSkKIHsKICAgICBfX202NCBzYSA9IGV4cGFuZF9hbHBoYSAodnNyYyk7CiAgICAgc3RvcmU4ODg4
IChkZXN0LCBvdmVyICh2c3JjLCBzYSwgbG9hZDg4ODggKGRlc3QpKSk7CiB9CgogKytkZXN0Owog
KytzcmM7CiBpZiAobWFzaykKICAgICArK21hc2s7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0K
CnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX292ZXJfcmV2ZXJzZV91IChwaXhtYW5faW1wbGVtZW50
YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qgb3As
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIHNyYywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IGRlc3QgKyB3aWR0aDsK
CiAgICB3aGlsZSAoZGVzdCA8IGVuZCkKICAgIHsKIF9fbTY0IGQsIGRhOwogX19tNjQgcyA9IGNv
bWJpbmUgKHNyYywgbWFzayk7CgogZCA9IGxvYWQ4ODg4IChkZXN0KTsKIGRhID0gZXhwYW5kX2Fs
cGhhIChkKTsKIHN0b3JlODg4OCAoZGVzdCwgb3ZlciAoZCwgZGEsIHMpKTsKCiArK2Rlc3Q7CiAr
K3NyYzsKIGlmIChtYXNrKQogICAgIG1hc2srKzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoK
c3RhdGljIHZvaWQKbW14X2NvbWJpbmVfaW5fdSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmlt
cCwKICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICAgICAgIHVp
bnQzMl90ICogZGVzdCwKICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiBzcmMsCiAg
ICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAgICAgICAgICAg
aW50IHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gZGVzdCArIHdpZHRoOwoKICAg
IHdoaWxlIChkZXN0IDwgZW5kKQogICAgewogX19tNjQgYTsKIF9fbTY0IHggPSBjb21iaW5lIChz
cmMsIG1hc2spOwoKIGEgPSBsb2FkODg4OCAoZGVzdCk7CiBhID0gZXhwYW5kX2FscGhhIChhKTsK
IHggPSBwaXhfbXVsdGlwbHkgKHgsIGEpOwoKIHN0b3JlODg4OCAoZGVzdCwgeCk7CgogKytkZXN0
OwogKytzcmM7CiBpZiAobWFzaykKICAgICBtYXNrKys7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7
Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2luX3JldmVyc2VfdSAocGl4bWFuX2ltcGxlbWVu
dGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fb3BfdCBvcCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiBzcmMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgdWludDMyX3QgKiBtYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3
aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IGRlc3QgKyB3aWR0aDsKCiAgICB3aGls
ZSAoZGVzdCA8IGVuZCkKICAgIHsKIF9fbTY0IGEgPSBjb21iaW5lIChzcmMsIG1hc2spOwogX19t
NjQgeDsKCiB4ID0gbG9hZDg4ODggKGRlc3QpOwogYSA9IGV4cGFuZF9hbHBoYSAoYSk7CiB4ID0g
cGl4X211bHRpcGx5ICh4LCBhKTsKIHN0b3JlODg4OCAoZGVzdCwgeCk7CgogKytkZXN0OwogKytz
cmM7CiBpZiAobWFzaykKICAgICBtYXNrKys7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0
YXRpYyB2b2lkCm1teF9jb21iaW5lX291dF91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1w
LAogICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICAgICAgICB1
aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIHNyYywK
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAgICAgICAg
ICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IGRlc3QgKyB3aWR0aDsK
CiAgICB3aGlsZSAoZGVzdCA8IGVuZCkKICAgIHsKIF9fbTY0IGE7CiBfX202NCB4ID0gY29tYmlu
ZSAoc3JjLCBtYXNrKTsKCiBhID0gbG9hZDg4ODggKGRlc3QpOwogYSA9IGV4cGFuZF9hbHBoYSAo
YSk7CiBhID0gbmVnYXRlIChhKTsKIHggPSBwaXhfbXVsdGlwbHkgKHgsIGEpOwogc3RvcmU4ODg4
IChkZXN0LCB4KTsKCiArK2Rlc3Q7CiArK3NyYzsKIGlmIChtYXNrKQogICAgIG1hc2srKzsKICAg
IH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbWJpbmVfb3V0X3JldmVy
c2VfdSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90
ICogZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiBzcmMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5k
ID0gZGVzdCArIHdpZHRoOwoKICAgIHdoaWxlIChkZXN0IDwgZW5kKQogICAgewogX19tNjQgYSA9
IGNvbWJpbmUgKHNyYywgbWFzayk7CiBfX202NCB4OwoKIHggPSBsb2FkODg4OCAoZGVzdCk7CiBh
ID0gZXhwYW5kX2FscGhhIChhKTsKIGEgPSBuZWdhdGUgKGEpOwogeCA9IHBpeF9tdWx0aXBseSAo
eCwgYSk7Cgogc3RvcmU4ODg4IChkZXN0LCB4KTsKCiArK2Rlc3Q7CiArK3NyYzsKIGlmIChtYXNr
KQogICAgIG1hc2srKzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14
X2NvbWJpbmVfYXRvcF91IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAg
ICAgICAgICAgIHBpeG1hbl9vcF90IG9wLAogICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICog
ZGVzdCwKICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIHNyYywKICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIG1hc2ssCiAgICAgICAgICAgICAgICAgICAgaW50
IHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAqZW5kID0gZGVzdCArIHdpZHRoOwoKICAgIHdo
aWxlIChkZXN0IDwgZW5kKQogICAgewogX19tNjQgZGEsIGQsIHNpYTsKIF9fbTY0IHMgPSBjb21i
aW5lIChzcmMsIG1hc2spOwoKIGQgPSBsb2FkODg4OCAoZGVzdCk7CiBzaWEgPSBleHBhbmRfYWxw
aGEgKHMpOwogc2lhID0gbmVnYXRlIChzaWEpOwogZGEgPSBleHBhbmRfYWxwaGEgKGQpOwogcyA9
IHBpeF9hZGRfbXVsIChzLCBkYSwgZCwgc2lhKTsKIHN0b3JlODg4OCAoZGVzdCwgcyk7CgogKytk
ZXN0OwogKytzcmM7CiBpZiAobWFzaykKICAgICBtYXNrKys7CiAgICB9CiAgICBfbW1fZW1wdHkg
KCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2F0b3BfcmV2ZXJzZV91IChwaXhtYW5faW1w
bGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29w
X3Qgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIHNyYywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZDsKCiAgICBlbmQg
PSBkZXN0ICsgd2lkdGg7CgogICAgd2hpbGUgKGRlc3QgPCBlbmQpCiAgICB7CiBfX202NCBkaWEs
IGQsIHNhOwogX19tNjQgcyA9IGNvbWJpbmUgKHNyYywgbWFzayk7CgogZCA9IGxvYWQ4ODg4IChk
ZXN0KTsKIHNhID0gZXhwYW5kX2FscGhhIChzKTsKIGRpYSA9IGV4cGFuZF9hbHBoYSAoZCk7CiBk
aWEgPSBuZWdhdGUgKGRpYSk7CiBzID0gcGl4X2FkZF9tdWwgKHMsIGRpYSwgZCwgc2EpOwogc3Rv
cmU4ODg4IChkZXN0LCBzKTsKCiArK2Rlc3Q7CiArK3NyYzsKIGlmIChtYXNrKQogICAgIG1hc2sr
KzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbWJpbmVfeG9y
X3UgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICBwaXht
YW5fb3BfdCBvcCwKICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICogZGVzdCwKICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3JjLAogICAgICAgICAgICAgICAgICAgY29uc3Qg
dWludDMyX3QgKiBtYXNrLAogICAgICAgICAgICAgICAgICAgaW50IHdpZHRoKQp7CiAgICBjb25z
dCB1aW50MzJfdCAqZW5kID0gZGVzdCArIHdpZHRoOwoKICAgIHdoaWxlIChkZXN0IDwgZW5kKQog
ICAgewogX19tNjQgZGlhLCBkLCBzaWE7CiBfX202NCBzID0gY29tYmluZSAoc3JjLCBtYXNrKTsK
CiBkID0gbG9hZDg4ODggKGRlc3QpOwogc2lhID0gZXhwYW5kX2FscGhhIChzKTsKIGRpYSA9IGV4
cGFuZF9hbHBoYSAoZCk7CiBzaWEgPSBuZWdhdGUgKHNpYSk7CiBkaWEgPSBuZWdhdGUgKGRpYSk7
CiBzID0gcGl4X2FkZF9tdWwgKHMsIGRpYSwgZCwgc2lhKTsKIHN0b3JlODg4OCAoZGVzdCwgcyk7
CgogKytkZXN0OwogKytzcmM7CiBpZiAobWFzaykKICAgICBtYXNrKys7CiAgICB9CiAgICBfbW1f
ZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2FkZF91IChwaXhtYW5faW1wbGVt
ZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAgICAgICAgICBjb25zdCB1
aW50MzJfdCAqIHNyYywKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywK
ICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9
IGRlc3QgKyB3aWR0aDsKCiAgICB3aGlsZSAoZGVzdCA8IGVuZCkKICAgIHsKIF9fbTY0IGQ7CiBf
X202NCBzID0gY29tYmluZSAoc3JjLCBtYXNrKTsKCiBkID0gbG9hZDg4ODggKGRlc3QpOwogcyA9
IHBpeF9hZGQgKHMsIGQpOwogc3RvcmU4ODg4IChkZXN0LCBzKTsKCiArK2Rlc3Q7CiArK3NyYzsK
IGlmIChtYXNrKQogICAgIG1hc2srKzsKICAgIH0KICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGlj
IHZvaWQKbW14X2NvbWJpbmVfc2F0dXJhdGVfdSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmlt
cCwKICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICogZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dWludDMyX3QgKiBzcmMsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICog
bWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoKQp7CiAgICBjb25zdCB1aW50
MzJfdCAqZW5kID0gZGVzdCArIHdpZHRoOwoKICAgIHdoaWxlIChkZXN0IDwgZW5kKQogICAgewog
dWludDMyX3Qgcywgc2EsIGRhOwogdWludDMyX3QgZCA9ICpkZXN0OwogX19tNjQgbXMgPSBjb21i
aW5lIChzcmMsIG1hc2spOwogX19tNjQgbWQgPSBsb2FkODg4OCAoZGVzdCk7Cgogc3RvcmU4ODg4
KCZzLCBtcyk7CiBkYSA9IH5kID4+IDI0Owogc2EgPSBzID4+IDI0OwoKIGlmIChzYSA+IGRhKQog
ewogICAgIHVpbnQzMl90IHF1b3QgPSAoKCh1aW50MTZfdCkgKGRhKSAqIDB4ZmYgKyAoKHNhKSAv
IDIpKSAvIChzYSkpIDw8IDI0OwogICAgIF9fbTY0IG1zYSA9IGxvYWQ4ODg4ICgmcXVvdCk7CiAg
ICAgbXNhID0gZXhwYW5kX2FscGhhIChtc2EpOwogICAgIG1zID0gcGl4X211bHRpcGx5IChtcywg
bXNhKTsKIH0KCiBtZCA9IHBpeF9hZGQgKG1kLCBtcyk7CiBzdG9yZTg4ODggKGRlc3QsIG1kKTsK
CiArK3NyYzsKICsrZGVzdDsKIGlmIChtYXNrKQogICAgIG1hc2srKzsKICAgIH0KICAgIF9tbV9l
bXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbWJpbmVfc3JjX2NhIChwaXhtYW5faW1wbGVt
ZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90IG9wLAogICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90ICogZGVzdCwKICAgICAgICAgICAgICAgICAgICBjb25z
dCB1aW50MzJfdCAqIHNyYywKICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIG1h
c2ssCiAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoKQp7CiAgICBjb25zdCB1aW50MzJfdCAq
ZW5kID0gc3JjICsgd2lkdGg7CgogICAgd2hpbGUgKHNyYyA8IGVuZCkKICAgIHsKIF9fbTY0IGEg
PSBsb2FkODg4OCAobWFzayk7CiBfX202NCBzID0gbG9hZDg4ODggKHNyYyk7CgogcyA9IHBpeF9t
dWx0aXBseSAocywgYSk7CiBzdG9yZTg4ODggKGRlc3QsIHMpOwoKICsrc3JjOwogKyttYXNrOwog
KytkZXN0OwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tYmlu
ZV9vdmVyX2NhIChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAg
ICAgICBwaXhtYW5fb3BfdCBvcCwKICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiBkZXN0
LAogICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIHNyYywKICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdWludDMyX3QgKiBtYXNrLAogICAgICAgICAgICAgICAgICAgICBpbnQg
d2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBzcmMgKyB3aWR0aDsKCiAgICB3aGls
ZSAoc3JjIDwgZW5kKQogICAgewogX19tNjQgYSA9IGxvYWQ4ODg4IChtYXNrKTsKIF9fbTY0IHMg
PSBsb2FkODg4OCAoc3JjKTsKIF9fbTY0IGQgPSBsb2FkODg4OCAoZGVzdCk7CiBfX202NCBzYSA9
IGV4cGFuZF9hbHBoYSAocyk7Cgogc3RvcmU4ODg4IChkZXN0LCBpbl9vdmVyIChzLCBzYSwgYSwg
ZCkpOwoKICsrc3JjOwogKytkZXN0OwogKyttYXNrOwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9
CgpzdGF0aWMgdm9pZAptbXhfY29tYmluZV9vdmVyX3JldmVyc2VfY2EgKHBpeG1hbl9pbXBsZW1l
bnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qg
b3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiBkZXN0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3JjLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgd2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBzcmMgKyB3
aWR0aDsKCiAgICB3aGlsZSAoc3JjIDwgZW5kKQogICAgewogX19tNjQgYSA9IGxvYWQ4ODg4ICht
YXNrKTsKIF9fbTY0IHMgPSBsb2FkODg4OCAoc3JjKTsKIF9fbTY0IGQgPSBsb2FkODg4OCAoZGVz
dCk7CiBfX202NCBkYSA9IGV4cGFuZF9hbHBoYSAoZCk7Cgogc3RvcmU4ODg4IChkZXN0LCBvdmVy
IChkLCBkYSwgaW4gKHMsIGEpKSk7CgogKytzcmM7CiArK2Rlc3Q7CiArK21hc2s7CiAgICB9CiAg
ICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2luX2NhIChwaXhtYW5f
aW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgcGl4bWFuX29wX3Qgb3As
CiAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAgICAgICAgICBj
b25zdCB1aW50MzJfdCAqIHNyYywKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICog
bWFzaywKICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3Qg
KmVuZCA9IHNyYyArIHdpZHRoOwoKICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CiBfX202NCBh
ID0gbG9hZDg4ODggKG1hc2spOwogX19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwogX19tNjQgZCA9
IGxvYWQ4ODg4IChkZXN0KTsKIF9fbTY0IGRhID0gZXhwYW5kX2FscGhhIChkKTsKCiBzID0gcGl4
X211bHRpcGx5IChzLCBhKTsKIHMgPSBwaXhfbXVsdGlwbHkgKHMsIGRhKTsKIHN0b3JlODg4OCAo
ZGVzdCwgcyk7CgogKytzcmM7CiArK2Rlc3Q7CiArK21hc2s7CiAgICB9CiAgICBfbW1fZW1wdHkg
KCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2luX3JldmVyc2VfY2EgKHBpeG1hbl9pbXBs
ZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90
IG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3JjLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIG1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IHNyYyArIHdpZHRoOwoK
ICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CiBfX202NCBhID0gbG9hZDg4ODggKG1hc2spOwog
X19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwogX19tNjQgZCA9IGxvYWQ4ODg4IChkZXN0KTsKIF9f
bTY0IHNhID0gZXhwYW5kX2FscGhhIChzKTsKCiBhID0gcGl4X211bHRpcGx5IChhLCBzYSk7CiBk
ID0gcGl4X211bHRpcGx5IChkLCBhKTsKIHN0b3JlODg4OCAoZGVzdCwgZCk7CgogKytzcmM7CiAr
K2Rlc3Q7CiArK21hc2s7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1t
eF9jb21iaW5lX291dF9jYSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAg
ICAgICAgICAgICBwaXhtYW5fb3BfdCBvcCwKICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAq
IGRlc3QsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiBzcmMsCiAgICAgICAg
ICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiBtYXNrLAogICAgICAgICAgICAgICAgICAgIGlu
dCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9IHNyYyArIHdpZHRoOwoKICAgIHdo
aWxlIChzcmMgPCBlbmQpCiAgICB7CiBfX202NCBhID0gbG9hZDg4ODggKG1hc2spOwogX19tNjQg
cyA9IGxvYWQ4ODg4IChzcmMpOwogX19tNjQgZCA9IGxvYWQ4ODg4IChkZXN0KTsKIF9fbTY0IGRh
ID0gZXhwYW5kX2FscGhhIChkKTsKCiBkYSA9IG5lZ2F0ZSAoZGEpOwogcyA9IHBpeF9tdWx0aXBs
eSAocywgYSk7CiBzID0gcGl4X211bHRpcGx5IChzLCBkYSk7CiBzdG9yZTg4ODggKGRlc3QsIHMp
OwoKICsrc3JjOwogKytkZXN0OwogKyttYXNrOwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9Cgpz
dGF0aWMgdm9pZAptbXhfY29tYmluZV9vdXRfcmV2ZXJzZV9jYSAocGl4bWFuX2ltcGxlbWVudGF0
aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90IG9wLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiBkZXN0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKiBzcmMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB1aW50MzJfdCAqIG1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgd2lkdGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBzcmMgKyB3aWR0aDsKCiAg
ICB3aGlsZSAoc3JjIDwgZW5kKQogICAgewogX19tNjQgYSA9IGxvYWQ4ODg4IChtYXNrKTsKIF9f
bTY0IHMgPSBsb2FkODg4OCAoc3JjKTsKIF9fbTY0IGQgPSBsb2FkODg4OCAoZGVzdCk7CiBfX202
NCBzYSA9IGV4cGFuZF9hbHBoYSAocyk7CgogYSA9IHBpeF9tdWx0aXBseSAoYSwgc2EpOwogYSA9
IG5lZ2F0ZSAoYSk7CiBkID0gcGl4X211bHRpcGx5IChkLCBhKTsKIHN0b3JlODg4OCAoZGVzdCwg
ZCk7CgogKytzcmM7CiArK2Rlc3Q7CiArK21hc2s7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0K
CnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2F0b3BfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90
ICppbXAsCiAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9vcF90IG9wLAogICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQz
Ml90ICogc3JjLAogICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqIG1hc2ssCiAg
ICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMyX3QgKmVuZCA9
IHNyYyArIHdpZHRoOwoKICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CiBfX202NCBhID0gbG9h
ZDg4ODggKG1hc2spOwogX19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwogX19tNjQgZCA9IGxvYWQ4
ODg4IChkZXN0KTsKIF9fbTY0IGRhID0gZXhwYW5kX2FscGhhIChkKTsKIF9fbTY0IHNhID0gZXhw
YW5kX2FscGhhIChzKTsKCiBzID0gcGl4X211bHRpcGx5IChzLCBhKTsKIGEgPSBwaXhfbXVsdGlw
bHkgKGEsIHNhKTsKIGEgPSBuZWdhdGUgKGEpOwogZCA9IHBpeF9hZGRfbXVsIChkLCBhLCBzLCBk
YSk7CiBzdG9yZTg4ODggKGRlc3QsIGQpOwoKICsrc3JjOwogKytkZXN0OwogKyttYXNrOwogICAg
fQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tYmluZV9hdG9wX3JldmVy
c2VfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QgKiBkZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90
ICogc3JjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFz
aywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgpCnsKICAgIGNvbnN0IHVp
bnQzMl90ICplbmQgPSBzcmMgKyB3aWR0aDsKCiAgICB3aGlsZSAoc3JjIDwgZW5kKQogICAgewog
X19tNjQgYSA9IGxvYWQ4ODg4IChtYXNrKTsKIF9fbTY0IHMgPSBsb2FkODg4OCAoc3JjKTsKIF9f
bTY0IGQgPSBsb2FkODg4OCAoZGVzdCk7CiBfX202NCBkYSA9IGV4cGFuZF9hbHBoYSAoZCk7CiBf
X202NCBzYSA9IGV4cGFuZF9hbHBoYSAocyk7CgogcyA9IHBpeF9tdWx0aXBseSAocywgYSk7CiBh
ID0gcGl4X211bHRpcGx5IChhLCBzYSk7CiBkYSA9IG5lZ2F0ZSAoZGEpOwogZCA9IHBpeF9hZGRf
bXVsIChkLCBhLCBzLCBkYSk7CiBzdG9yZTg4ODggKGRlc3QsIGQpOwoKICsrc3JjOwogKytkZXN0
OwogKyttYXNrOwogICAgfQogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29t
YmluZV94b3JfY2EgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAg
ICAgICAgcGl4bWFuX29wX3Qgb3AsCiAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKiBkZXN0
LAogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3JjLAogICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAgICAgICAgICAgICBpbnQgd2lk
dGgpCnsKICAgIGNvbnN0IHVpbnQzMl90ICplbmQgPSBzcmMgKyB3aWR0aDsKCiAgICB3aGlsZSAo
c3JjIDwgZW5kKQogICAgewogX19tNjQgYSA9IGxvYWQ4ODg4IChtYXNrKTsKIF9fbTY0IHMgPSBs
b2FkODg4OCAoc3JjKTsKIF9fbTY0IGQgPSBsb2FkODg4OCAoZGVzdCk7CiBfX202NCBkYSA9IGV4
cGFuZF9hbHBoYSAoZCk7CiBfX202NCBzYSA9IGV4cGFuZF9hbHBoYSAocyk7CgogcyA9IHBpeF9t
dWx0aXBseSAocywgYSk7CiBhID0gcGl4X211bHRpcGx5IChhLCBzYSk7CiBkYSA9IG5lZ2F0ZSAo
ZGEpOwogYSA9IG5lZ2F0ZSAoYSk7CiBkID0gcGl4X2FkZF9tdWwgKGQsIGEsIHMsIGRhKTsKIHN0
b3JlODg4OCAoZGVzdCwgZCk7CgogKytzcmM7CiArK2Rlc3Q7CiArK21hc2s7CiAgICB9CiAgICBf
bW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21iaW5lX2FkZF9jYSAocGl4bWFuX2lt
cGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICBwaXhtYW5fb3BfdCBvcCwK
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqIGRlc3QsCiAgICAgICAgICAgICAgICAgICAg
Y29uc3QgdWludDMyX3QgKiBzcmMsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3Qg
KiBtYXNrLAogICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCkKewogICAgY29uc3QgdWludDMy
X3QgKmVuZCA9IHNyYyArIHdpZHRoOwoKICAgIHdoaWxlIChzcmMgPCBlbmQpCiAgICB7CiBfX202
NCBhID0gbG9hZDg4ODggKG1hc2spOwogX19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwogX19tNjQg
ZCA9IGxvYWQ4ODg4IChkZXN0KTsKCiBzID0gcGl4X211bHRpcGx5IChzLCBhKTsKIGQgPSBwaXhf
YWRkIChzLCBkKTsKIHN0b3JlODg4OCAoZGVzdCwgZCk7CgogKytzcmM7CiArK2Rlc3Q7CiArK21h
c2s7CiAgICB9CiAgICBfbW1fZW1wdHkgKCk7Cn0KCgoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0
ZV9vdmVyX25fODg4OCAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmlidXRl
X18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2ltYWdl
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2UgPSBp
bmZvLT5tYXNrX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAq
IGRlc3RfaW1hZ2UgPSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IHNyY194ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3Qgc3JjX3kgPSBpbmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBt
YXNrX3ggPSBpbmZvLT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFz
a195ID0gaW5mby0+bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3Rf
eCA9IGluZm8tPmRlc3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3kg
PSBpbmZvLT5kZXN0X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGggPSBp
bmZvLT53aWR0aDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBpbmZv
LT5oZWlnaHQ7CiAgICB1aW50MzJfdCBzcmM7CiAgICB1aW50MzJfdCAqZHN0X2xpbmUsICpkc3Q7
CiAgICBpbnQzMl90IHc7CiAgICBpbnQgZHN0X3N0cmlkZTsKICAgIF9fbTY0IHZzcmMsIHZzcmNh
OwoKICAgIDsKCiAgICBzcmMgPSBfcGl4bWFuX2ltYWdlX2dldF9zb2xpZCAoaW1wLCBzcmNfaW1h
Z2UsIGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsKCiAgICBpZiAoc3JjID09IDApCiByZXR1cm47
CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9
IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93
c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJf
dCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKGRzdF9saW5lKSA9ICgodWludDMyX3QgKikg
X19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3
aGlsZSAoMCk7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgmc3JjKTsKICAgIHZzcmNhID0gZXhwYW5k
X2FscGhhICh2c3JjKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CiBkc3QgPSBkc3RfbGlu
ZTsKIGRzdF9saW5lICs9IGRzdF9zdHJpZGU7CiB3ID0gd2lkdGg7CgogOwoKIHdoaWxlICh3ICYm
ICh1aW50cHRyX3QpZHN0ICYgNykKIHsKICAgICBzdG9yZTg4ODggKGRzdCwgb3ZlciAodnNyYywg
dnNyY2EsIGxvYWQ4ODg4IChkc3QpKSk7CgogICAgIHctLTsKICAgICBkc3QrKzsKIH0KCiB3aGls
ZSAodyA+PSAyKQogewogICAgIF9fbTY0IHZkZXN0OwogICAgIF9fbTY0IGRlc3QwLCBkZXN0MTsK
CiAgICAgdmRlc3QgPSAqKF9fbTY0ICopZHN0OwoKICAgICBkZXN0MCA9IG92ZXIgKHZzcmMsIHZz
cmNhLCBleHBhbmQ4ODg4ICh2ZGVzdCwgMCkpOwogICAgIGRlc3QxID0gb3ZlciAodnNyYywgdnNy
Y2EsIGV4cGFuZDg4ODggKHZkZXN0LCAxKSk7CgogICAgICooX19tNjQgKilkc3QgPSBwYWNrODg4
OCAoZGVzdDAsIGRlc3QxKTsKCiAgICAgZHN0ICs9IDI7CiAgICAgdyAtPSAyOwogfQoKIDsKCiBp
ZiAodykKIHsKICAgICBzdG9yZTg4ODggKGRzdCwgb3ZlciAodnNyYywgdnNyY2EsIGxvYWQ4ODg4
IChkc3QpKSk7CiB9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhf
Y29tcG9zaXRlX292ZXJfbl8wNTY1IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykKewog
ICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5z
cmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFza19p
bWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9p
bWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVu
dXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCB3
aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhlaWdo
dCA9IGluZm8tPmhlaWdodDsKICAgIHVpbnQzMl90IHNyYzsKICAgIHVpbnQxNl90ICpkc3RfbGlu
ZSwgKmRzdDsKICAgIGludDMyX3QgdzsKICAgIGludCBkc3Rfc3RyaWRlOwogICAgX19tNjQgdnNy
YywgdnNyY2E7CgogICAgOwoKICAgIHNyYyA9IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAs
IHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOwoKICAgIGlmIChzcmMgPT0gMCkK
IHJldHVybjsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9f
Yml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+
Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2Yg
KHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDE2X3QpOyAoZHN0X2xpbmUpID0gKCh1aW50
MTZfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgxKSAqIChkZXN0
X3gpOyB9IHdoaWxlICgwKTsKCiAgICB2c3JjID0gbG9hZDg4ODggKCZzcmMpOwogICAgdnNyY2Eg
PSBleHBhbmRfYWxwaGEgKHZzcmMpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKIGRzdCA9
IGRzdF9saW5lOwogZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsKIHcgPSB3aWR0aDsKCiA7Cgogd2hp
bGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiA3KQogewogICAgIHVpbnQ2NF90IGQgPSAqZHN0Owog
ICAgIF9fbTY0IHZkZXN0ID0gZXhwYW5kNTY1ICh0b19tNjQgKGQpLCAwKTsKCiAgICAgdmRlc3Qg
PSBwYWNrXzU2NSAob3ZlciAodnNyYywgdnNyY2EsIHZkZXN0KSwgdmRlc3QsIDApOwogICAgICpk
c3QgPSB0b191aW50NjQgKHZkZXN0KTsKCiAgICAgdy0tOwogICAgIGRzdCsrOwogfQoKIHdoaWxl
ICh3ID49IDQpCiB7CiAgICAgX19tNjQgdmRlc3QgPSAqKF9fbTY0ICopZHN0OwogICAgIF9fbTY0
IHYwLCB2MSwgdjIsIHYzOwoKICAgICBleHBhbmRfNHg1NjUgKHZkZXN0LCAmdjAsICZ2MSwgJnYy
LCAmdjMsIDApOwoKICAgICB2MCA9IG92ZXIgKHZzcmMsIHZzcmNhLCB2MCk7CiAgICAgdjEgPSBv
dmVyICh2c3JjLCB2c3JjYSwgdjEpOwogICAgIHYyID0gb3ZlciAodnNyYywgdnNyY2EsIHYyKTsK
ICAgICB2MyA9IG92ZXIgKHZzcmMsIHZzcmNhLCB2Myk7CgogICAgICooX19tNjQgKilkc3QgPSBw
YWNrXzR4NTY1ICh2MCwgdjEsIHYyLCB2Myk7CgogICAgIGRzdCArPSA0OwogICAgIHcgLT0gNDsK
IH0KCiA7Cgogd2hpbGUgKHcpCiB7CiAgICAgdWludDY0X3QgZCA9ICpkc3Q7CiAgICAgX19tNjQg
dmRlc3QgPSBleHBhbmQ1NjUgKHRvX202NCAoZCksIDApOwoKICAgICB2ZGVzdCA9IHBhY2tfNTY1
IChvdmVyICh2c3JjLCB2c3JjYSwgdmRlc3QpLCB2ZGVzdCwgMCk7CiAgICAgKmRzdCA9IHRvX3Vp
bnQ2NCAodmRlc3QpOwoKICAgICB3LS07CiAgICAgZHN0Kys7CiB9CiAgICB9CgogICAgX21tX2Vt
cHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX292ZXJfbl84ODg4Xzg4ODhfY2Eg
KHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIF9fYXR0cmlidXRl
X18oKHVudXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmlidXRlX18oKHVu
dXNlZCkpIHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2ltYWdlOyBfX2F0
dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2UgPSBpbmZvLT5t
YXNrX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIGRlc3Rf
aW1hZ2UgPSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IHNyY194ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3Jj
X3kgPSBpbmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3gg
PSBpbmZvLT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza195ID0g
aW5mby0+bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeCA9IGlu
Zm8tPmRlc3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3kgPSBpbmZv
LT5kZXN0X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGggPSBpbmZvLT53
aWR0aDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBpbmZvLT5oZWln
aHQ7CiAgICB1aW50MzJfdCBzcmM7CiAgICB1aW50MzJfdCAqZHN0X2xpbmU7CiAgICB1aW50MzJf
dCAqbWFza19saW5lOwogICAgaW50IGRzdF9zdHJpZGUsIG1hc2tfc3RyaWRlOwogICAgX19tNjQg
dnNyYywgdnNyY2E7CgogICAgOwoKICAgIHNyYyA9IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChp
bXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOwoKICAgIGlmIChzcmMgPT0g
MCkKIHJldHVybjsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187
IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9pbWFn
ZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXpl
b2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoZHN0X2xpbmUpID0gKCh1
aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgxKSAqIChk
ZXN0X3gpOyB9IHdoaWxlICgwKTsKICAgIGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19z
dHJpZGVfXzsgX19iaXRzX18gPSBtYXNrX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBt
YXNrX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKG1hc2tfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAo
aW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAobWFza19s
aW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKG1hc2tfc3RyaWRlKSAqIChtYXNrX3kp
ICsgKDEpICogKG1hc2tfeCk7IH0gd2hpbGUgKDApOwoKICAgIHZzcmMgPSBsb2FkODg4OCAoJnNy
Yyk7CiAgICB2c3JjYSA9IGV4cGFuZF9hbHBoYSAodnNyYyk7CgogICAgd2hpbGUgKGhlaWdodC0t
KQogICAgewogaW50IHR3aWR0aCA9IHdpZHRoOwogdWludDMyX3QgKnAgPSAodWludDMyX3QgKilt
YXNrX2xpbmU7CiB1aW50MzJfdCAqcSA9ICh1aW50MzJfdCAqKWRzdF9saW5lOwoKIHdoaWxlICh0
d2lkdGggJiYgKHVpbnRwdHJfdClxICYgNykKIHsKICAgICB1aW50MzJfdCBtID0gKih1aW50MzJf
dCAqKXA7CgogICAgIGlmIChtKQogICAgIHsKICBfX202NCB2ZGVzdCA9IGxvYWQ4ODg4IChxKTsK
ICB2ZGVzdCA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBsb2FkODg4OCAoJm0pLCB2ZGVzdCk7CiAg
c3RvcmU4ODg4IChxLCB2ZGVzdCk7CiAgICAgfQoKICAgICB0d2lkdGgtLTsKICAgICBwKys7CiAg
ICAgcSsrOwogfQoKIHdoaWxlICh0d2lkdGggPj0gMikKIHsKICAgICB1aW50MzJfdCBtMCwgbTE7
CiAgICAgbTAgPSAqcDsKICAgICBtMSA9ICoocCArIDEpOwoKICAgICBpZiAobTAgfCBtMSkKICAg
ICB7CiAgX19tNjQgZGVzdDAsIGRlc3QxOwogIF9fbTY0IHZkZXN0ID0gKihfX202NCAqKXE7Cgog
IGRlc3QwID0gaW5fb3ZlciAodnNyYywgdnNyY2EsIGxvYWQ4ODg4ICgmbTApLAogICAgICAgICAg
ICAgICAgICAgZXhwYW5kODg4OCAodmRlc3QsIDApKTsKICBkZXN0MSA9IGluX292ZXIgKHZzcmMs
IHZzcmNhLCBsb2FkODg4OCAoJm0xKSwKICAgICAgICAgICAgICAgICAgIGV4cGFuZDg4ODggKHZk
ZXN0LCAxKSk7CgogICooX19tNjQgKilxID0gcGFjazg4ODggKGRlc3QwLCBkZXN0MSk7CiAgICAg
fQoKICAgICBwICs9IDI7CiAgICAgcSArPSAyOwogICAgIHR3aWR0aCAtPSAyOwogfQoKIGlmICh0
d2lkdGgpCiB7CiAgICAgdWludDMyX3QgbSA9ICoodWludDMyX3QgKilwOwoKICAgICBpZiAobSkK
ICAgICB7CiAgX19tNjQgdmRlc3QgPSBsb2FkODg4OCAocSk7CiAgdmRlc3QgPSBpbl9vdmVyICh2
c3JjLCB2c3JjYSwgbG9hZDg4ODggKCZtKSwgdmRlc3QpOwogIHN0b3JlODg4OCAocSwgdmRlc3Qp
OwogICAgIH0KCiAgICAgdHdpZHRoLS07CiAgICAgcCsrOwogICAgIHErKzsKIH0KCiBkc3RfbGlu
ZSArPSBkc3Rfc3RyaWRlOwogbWFza19saW5lICs9IG1hc2tfc3RyaWRlOwogICAgfQoKICAgIF9t
bV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9vdmVyXzg4ODhfbl84ODg4
IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRy
aWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFz
a19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2lt
YWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBz
cmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195
ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0g
aW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGlu
Zm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZv
LT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+
ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lk
dGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0
OwogICAgdWludDMyX3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDMyX3QgKnNyY19saW5lLCAq
c3JjOwogICAgdWludDMyX3QgbWFzazsKICAgIF9fbTY0IHZtYXNrOwogICAgaW50IGRzdF9zdHJp
ZGUsIHNyY19zdHJpZGU7CiAgICBpbnQzMl90IHc7CgogICAgOwoKICAgIGRvIHsgdWludDMyX3Qg
Kl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdlLT5iaXRzLmJp
dHM7IF9fc3RyaWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRzdF9zdHJpZGUp
ID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1
aW50MzJfdCk7IChkc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChkc3Rfc3Ry
aWRlKSAqIChkZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOwogICAgZG8geyB1
aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+
Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKHNyY19z
dHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6
ZW9mICh1aW50MzJfdCk7IChzcmNfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChz
cmNfc3RyaWRlKSAqIChzcmNfeSkgKyAoMSkgKiAoc3JjX3gpOyB9IHdoaWxlICgwKTsKCiAgICBt
YXNrID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwgZGVzdF9pbWFn
ZS0+Yml0cy5mb3JtYXQpOwogICAgdm1hc2sgPSBleHBhbmRfYWxwaGEgKGxvYWQ4ODg4ICgmbWFz
aykpOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKIGRzdCA9IGRzdF9saW5lOwogZHN0X2xp
bmUgKz0gZHN0X3N0cmlkZTsKIHNyYyA9IHNyY19saW5lOwogc3JjX2xpbmUgKz0gc3JjX3N0cmlk
ZTsKIHcgPSB3aWR0aDsKCiB3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCiB7CiAgICAg
X19tNjQgcyA9IGxvYWQ4ODg4IChzcmMpOwogICAgIF9fbTY0IGQgPSBsb2FkODg4OCAoZHN0KTsK
CiAgICAgc3RvcmU4ODg4IChkc3QsIGluX292ZXIgKHMsIGV4cGFuZF9hbHBoYSAocyksIHZtYXNr
LCBkKSk7CgogICAgIHctLTsKICAgICBkc3QrKzsKICAgICBzcmMrKzsKIH0KCiB3aGlsZSAodyA+
PSAyKQogewogICAgIF9fbTY0IHZzID0gbGRxX3UgKChfX202NCAqKXNyYyk7CiAgICAgX19tNjQg
dmQgPSAqKF9fbTY0ICopZHN0OwogICAgIF9fbTY0IHZzcmMwID0gZXhwYW5kODg4OCAodnMsIDAp
OwogICAgIF9fbTY0IHZzcmMxID0gZXhwYW5kODg4OCAodnMsIDEpOwoKICAgICAqKF9fbTY0ICop
ZHN0ID0gcGFjazg4ODggKAogICAgICAgICBpbl9vdmVyICh2c3JjMCwgZXhwYW5kX2FscGhhICh2
c3JjMCksIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZCwgMCkpLAogICAgICAgICBpbl9vdmVyICh2c3Jj
MSwgZXhwYW5kX2FscGhhICh2c3JjMSksIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZCwgMSkpKTsKCiAg
ICAgdyAtPSAyOwogICAgIGRzdCArPSAyOwogICAgIHNyYyArPSAyOwogfQoKIGlmICh3KQogewog
ICAgIF9fbTY0IHMgPSBsb2FkODg4OCAoc3JjKTsKICAgICBfX202NCBkID0gbG9hZDg4ODggKGRz
dCk7CgogICAgIHN0b3JlODg4OCAoZHN0LCBpbl9vdmVyIChzLCBleHBhbmRfYWxwaGEgKHMpLCB2
bWFzaywgZCkpOwogfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14
X2NvbXBvc2l0ZV9vdmVyX3g4ODhfbl84ODg4IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1w
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190
ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGlu
Zm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFn
ZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdl
X3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRy
aWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0
ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1
bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51
c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNl
ZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGlu
dDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAgdWludDMyX3QgKmRzdF9saW5lLCAqZHN0
OwogICAgdWludDMyX3QgKnNyY19saW5lLCAqc3JjOwogICAgdWludDMyX3QgbWFzazsKICAgIF9f
bTY0IHZtYXNrOwogICAgaW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAgICBpbnQzMl90IHc7
CiAgICBfX202NCBzcmNhOwoKICAgIDsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50
IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9f
ID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18g
KiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoZHN0
X2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95
KSArICgxKSAqIChkZXN0X3gpOyB9IHdoaWxlICgwKTsKICAgIGRvIHsgdWludDMyX3QgKl9fYml0
c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBzcmNfaW1hZ2UtPmJpdHMuYml0czsgX19z
dHJpZGVfXyA9IHNyY19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChzcmNfc3RyaWRlKSA9IF9fc3Ry
aWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3Qp
OyAoc3JjX2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoc3JjX3N0cmlkZSkgKiAo
c3JjX3kpICsgKDEpICogKHNyY194KTsgfSB3aGlsZSAoMCk7CiAgICBtYXNrID0gX3BpeG1hbl9p
bWFnZV9nZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQp
OwoKICAgIHZtYXNrID0gZXhwYW5kX2FscGhhIChsb2FkODg4OCAoJm1hc2spKTsKICAgIHNyY2Eg
PSAoKF9fbTY0KWMubW14XzR4MDBmZik7CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewogZHN0
ID0gZHN0X2xpbmU7CiBkc3RfbGluZSArPSBkc3Rfc3RyaWRlOwogc3JjID0gc3JjX2xpbmU7CiBz
cmNfbGluZSArPSBzcmNfc3RyaWRlOwogdyA9IHdpZHRoOwoKIHdoaWxlICh3ICYmICh1aW50cHRy
X3QpZHN0ICYgNykKIHsKICAgICB1aW50MzJfdCBzc3JjID0gKnNyYyB8IDB4ZmYwMDAwMDA7CiAg
ICAgX19tNjQgcyA9IGxvYWQ4ODg4ICgmc3NyYyk7CiAgICAgX19tNjQgZCA9IGxvYWQ4ODg4IChk
c3QpOwoKICAgICBzdG9yZTg4ODggKGRzdCwgaW5fb3ZlciAocywgc3JjYSwgdm1hc2ssIGQpKTsK
CiAgICAgdy0tOwogICAgIGRzdCsrOwogICAgIHNyYysrOwogfQoKIHdoaWxlICh3ID49IDE2KQog
ewogICAgIF9fbTY0IHZkMCA9ICooX19tNjQgKikoZHN0ICsgMCk7CiAgICAgX19tNjQgdmQxID0g
KihfX202NCAqKShkc3QgKyAyKTsKICAgICBfX202NCB2ZDIgPSAqKF9fbTY0ICopKGRzdCArIDQp
OwogICAgIF9fbTY0IHZkMyA9ICooX19tNjQgKikoZHN0ICsgNik7CiAgICAgX19tNjQgdmQ0ID0g
KihfX202NCAqKShkc3QgKyA4KTsKICAgICBfX202NCB2ZDUgPSAqKF9fbTY0ICopKGRzdCArIDEw
KTsKICAgICBfX202NCB2ZDYgPSAqKF9fbTY0ICopKGRzdCArIDEyKTsKICAgICBfX202NCB2ZDcg
PSAqKF9fbTY0ICopKGRzdCArIDE0KTsKCiAgICAgX19tNjQgdnMwID0gbGRxX3UgKChfX202NCAq
KShzcmMgKyAwKSk7CiAgICAgX19tNjQgdnMxID0gbGRxX3UgKChfX202NCAqKShzcmMgKyAyKSk7
CiAgICAgX19tNjQgdnMyID0gbGRxX3UgKChfX202NCAqKShzcmMgKyA0KSk7CiAgICAgX19tNjQg
dnMzID0gbGRxX3UgKChfX202NCAqKShzcmMgKyA2KSk7CiAgICAgX19tNjQgdnM0ID0gbGRxX3Ug
KChfX202NCAqKShzcmMgKyA4KSk7CiAgICAgX19tNjQgdnM1ID0gbGRxX3UgKChfX202NCAqKShz
cmMgKyAxMCkpOwogICAgIF9fbTY0IHZzNiA9IGxkcV91ICgoX19tNjQgKikoc3JjICsgMTIpKTsK
ICAgICBfX202NCB2czcgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDE0KSk7CgogICAgIHZkMCA9
IHBhY2s4ODg4ICgKICAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4OCAodnMwLCAwKSwgc3JjYSwg
dm1hc2ssIGV4cGFuZDg4ODggKHZkMCwgMCkpLAogICAgICAgICBpbl9vdmVyIChleHBhbmR4ODg4
ICh2czAsIDEpLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQwLCAxKSkpOwoKICAgICB2ZDEg
PSBwYWNrODg4OCAoCiAgICAgICAgIGluX292ZXIgKGV4cGFuZHg4ODggKHZzMSwgMCksIHNyY2Es
IHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDEsIDApKSwKICAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4
OCAodnMxLCAxKSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkMSwgMSkpKTsKCiAgICAgdmQy
ID0gcGFjazg4ODggKAogICAgICAgICBpbl9vdmVyIChleHBhbmR4ODg4ICh2czIsIDApLCBzcmNh
LCB2bWFzaywgZXhwYW5kODg4OCAodmQyLCAwKSksCiAgICAgICAgIGluX292ZXIgKGV4cGFuZHg4
ODggKHZzMiwgMSksIHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDIsIDEpKSk7CgogICAgIHZk
MyA9IHBhY2s4ODg4ICgKICAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4OCAodnMzLCAwKSwgc3Jj
YSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkMywgMCkpLAogICAgICAgICBpbl9vdmVyIChleHBhbmR4
ODg4ICh2czMsIDEpLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQzLCAxKSkpOwoKICAgICB2
ZDQgPSBwYWNrODg4OCAoCiAgICAgICAgIGluX292ZXIgKGV4cGFuZHg4ODggKHZzNCwgMCksIHNy
Y2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDQsIDApKSwKICAgICAgICAgaW5fb3ZlciAoZXhwYW5k
eDg4OCAodnM0LCAxKSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkNCwgMSkpKTsKCiAgICAg
dmQ1ID0gcGFjazg4ODggKAogICAgICAgICBpbl9vdmVyIChleHBhbmR4ODg4ICh2czUsIDApLCBz
cmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQ1LCAwKSksCiAgICAgICAgIGluX292ZXIgKGV4cGFu
ZHg4ODggKHZzNSwgMSksIHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDUsIDEpKSk7CgogICAg
IHZkNiA9IHBhY2s4ODg4ICgKICAgICAgICAgaW5fb3ZlciAoZXhwYW5keDg4OCAodnM2LCAwKSwg
c3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkNiwgMCkpLAogICAgICAgICBpbl9vdmVyIChleHBh
bmR4ODg4ICh2czYsIDEpLCBzcmNhLCB2bWFzaywgZXhwYW5kODg4OCAodmQ2LCAxKSkpOwoKICAg
ICB2ZDcgPSBwYWNrODg4OCAoCiAgICAgICAgIGluX292ZXIgKGV4cGFuZHg4ODggKHZzNywgMCks
IHNyY2EsIHZtYXNrLCBleHBhbmQ4ODg4ICh2ZDcsIDApKSwKICAgICAgICAgaW5fb3ZlciAoZXhw
YW5keDg4OCAodnM3LCAxKSwgc3JjYSwgdm1hc2ssIGV4cGFuZDg4ODggKHZkNywgMSkpKTsKCiAg
ICAgKihfX202NCAqKShkc3QgKyAwKSA9IHZkMDsKICAgICAqKF9fbTY0ICopKGRzdCArIDIpID0g
dmQxOwogICAgICooX19tNjQgKikoZHN0ICsgNCkgPSB2ZDI7CiAgICAgKihfX202NCAqKShkc3Qg
KyA2KSA9IHZkMzsKICAgICAqKF9fbTY0ICopKGRzdCArIDgpID0gdmQ0OwogICAgICooX19tNjQg
KikoZHN0ICsgMTApID0gdmQ1OwogICAgICooX19tNjQgKikoZHN0ICsgMTIpID0gdmQ2OwogICAg
ICooX19tNjQgKikoZHN0ICsgMTQpID0gdmQ3OwoKICAgICB3IC09IDE2OwogICAgIGRzdCArPSAx
NjsKICAgICBzcmMgKz0gMTY7CiB9Cgogd2hpbGUgKHcpCiB7CiAgICAgdWludDMyX3Qgc3NyYyA9
ICpzcmMgfCAweGZmMDAwMDAwOwogICAgIF9fbTY0IHMgPSBsb2FkODg4OCAoJnNzcmMpOwogICAg
IF9fbTY0IGQgPSBsb2FkODg4OCAoZHN0KTsKCiAgICAgc3RvcmU4ODg4IChkc3QsIGluX292ZXIg
KHMsIHNyY2EsIHZtYXNrLCBkKSk7CgogICAgIHctLTsKICAgICBkc3QrKzsKICAgICBzcmMrKzsK
IH0KICAgIH0KCiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVf
b3Zlcl84ODg4Xzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJp
YnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19p
bWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdl
ID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdl
X3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBk
ZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVz
dF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRo
ID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0g
aW5mby0+aGVpZ2h0OwogICAgdWludDMyX3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDMyX3Qg
KnNyY19saW5lLCAqc3JjOwogICAgdWludDMyX3QgczsKICAgIGludCBkc3Rfc3RyaWRlLCBzcmNf
c3RyaWRlOwogICAgdWludDhfdCBhOwogICAgaW50MzJfdCB3OwoKICAgIDsKCiAgICBkbyB7IHVp
bnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+
Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rf
c3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNp
emVvZiAodWludDMyX3QpOyAoZHN0X2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAo
ZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgxKSAqIChkZXN0X3gpOyB9IHdoaWxlICgwKTsKICAg
IGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBzcmNf
aW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IHNyY19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7
IChzcmNfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChp
bnQpIHNpemVvZiAodWludDMyX3QpOyAoc3JjX2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNf
XykgKyAoc3JjX3N0cmlkZSkgKiAoc3JjX3kpICsgKDEpICogKHNyY194KTsgfSB3aGlsZSAoMCk7
CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewogZHN0ID0gZHN0X2xpbmU7CiBkc3RfbGluZSAr
PSBkc3Rfc3RyaWRlOwogc3JjID0gc3JjX2xpbmU7CiBzcmNfbGluZSArPSBzcmNfc3RyaWRlOwog
dyA9IHdpZHRoOwoKIHdoaWxlICh3LS0pCiB7CiAgICAgcyA9ICpzcmMrKzsKICAgICBhID0gcyA+
PiAyNDsKCiAgICAgaWYgKGEgPT0gMHhmZikKICAgICB7CiAgKmRzdCA9IHM7CiAgICAgfQogICAg
IGVsc2UgaWYgKHMpCiAgICAgewogIF9fbTY0IG1zLCBzYTsKICBtcyA9IGxvYWQ4ODg4ICgmcyk7
CiAgc2EgPSBleHBhbmRfYWxwaGEgKG1zKTsKICBzdG9yZTg4ODggKGRzdCwgb3ZlciAobXMsIHNh
LCBsb2FkODg4OCAoZHN0KSkpOwogICAgIH0KCiAgICAgZHN0Kys7CiB9CiAgICB9CiAgICBfbW1f
ZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVfb3Zlcl84ODg4XzA1NjUgKHBp
eG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBw
aXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVf
XygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFn
ZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0g
aW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9
IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5m
by0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+
bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1h
c2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0
X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9f
YXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAg
dWludDE2X3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDMyX3QgKnNyY19saW5lLCAqc3JjOwog
ICAgaW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAgICBpbnQzMl90IHc7CgogICAgOwoKICAg
IGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBkZXN0
X2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlk
ZTsgKGRzdF9zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8g
KGludCkgc2l6ZW9mICh1aW50MTZfdCk7IChkc3RfbGluZSkgPSAoKHVpbnQxNl90ICopIF9fYml0
c19fKSArIChkc3Rfc3RyaWRlKSAqIChkZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hpbGUg
KDApOwogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNf
XyA9IHNyY19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJv
d3N0cmlkZTsgKHNyY19zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMy
X3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChzcmNfbGluZSkgPSAoKHVpbnQzMl90ICop
IF9fYml0c19fKSArIChzcmNfc3RyaWRlKSAqIChzcmNfeSkgKyAoMSkgKiAoc3JjX3gpOyB9IHdo
aWxlICgwKTsKCgoKCgoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKIGRzdCA9IGRzdF9saW5l
OwogZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsKIHNyYyA9IHNyY19saW5lOwogc3JjX2xpbmUgKz0g
c3JjX3N0cmlkZTsKIHcgPSB3aWR0aDsKCiA7Cgogd2hpbGUgKHcgJiYgKHVpbnRwdHJfdClkc3Qg
JiA3KQogewogICAgIF9fbTY0IHZzcmMgPSBsb2FkODg4OCAoc3JjKTsKICAgICB1aW50NjRfdCBk
ID0gKmRzdDsKICAgICBfX202NCB2ZGVzdCA9IGV4cGFuZDU2NSAodG9fbTY0IChkKSwgMCk7Cgog
ICAgIHZkZXN0ID0gcGFja181NjUgKAogIG92ZXIgKHZzcmMsIGV4cGFuZF9hbHBoYSAodnNyYyks
IHZkZXN0KSwgdmRlc3QsIDApOwoKICAgICAqZHN0ID0gdG9fdWludDY0ICh2ZGVzdCk7CgogICAg
IHctLTsKICAgICBkc3QrKzsKICAgICBzcmMrKzsKIH0KCiA7Cgogd2hpbGUgKHcgPj0gNCkKIHsK
ICAgICBfX202NCB2ZGVzdCA9ICooX19tNjQgKilkc3Q7CiAgICAgX19tNjQgdjAsIHYxLCB2Miwg
djM7CiAgICAgX19tNjQgdnNyYzAsIHZzcmMxLCB2c3JjMiwgdnNyYzM7CgogICAgIGV4cGFuZF80
eDU2NSAodmRlc3QsICZ2MCwgJnYxLCAmdjIsICZ2MywgMCk7CgogICAgIHZzcmMwID0gbG9hZDg4
ODggKChzcmMgKyAwKSk7CiAgICAgdnNyYzEgPSBsb2FkODg4OCAoKHNyYyArIDEpKTsKICAgICB2
c3JjMiA9IGxvYWQ4ODg4ICgoc3JjICsgMikpOwogICAgIHZzcmMzID0gbG9hZDg4ODggKChzcmMg
KyAzKSk7CgogICAgIHYwID0gb3ZlciAodnNyYzAsIGV4cGFuZF9hbHBoYSAodnNyYzApLCB2MCk7
CiAgICAgdjEgPSBvdmVyICh2c3JjMSwgZXhwYW5kX2FscGhhICh2c3JjMSksIHYxKTsKICAgICB2
MiA9IG92ZXIgKHZzcmMyLCBleHBhbmRfYWxwaGEgKHZzcmMyKSwgdjIpOwogICAgIHYzID0gb3Zl
ciAodnNyYzMsIGV4cGFuZF9hbHBoYSAodnNyYzMpLCB2Myk7CgogICAgICooX19tNjQgKilkc3Qg
PSBwYWNrXzR4NTY1ICh2MCwgdjEsIHYyLCB2Myk7CgogICAgIHcgLT0gNDsKICAgICBkc3QgKz0g
NDsKICAgICBzcmMgKz0gNDsKIH0KCiA7Cgogd2hpbGUgKHcpCiB7CiAgICAgX19tNjQgdnNyYyA9
IGxvYWQ4ODg4IChzcmMpOwogICAgIHVpbnQ2NF90IGQgPSAqZHN0OwogICAgIF9fbTY0IHZkZXN0
ID0gZXhwYW5kNTY1ICh0b19tNjQgKGQpLCAwKTsKCiAgICAgdmRlc3QgPSBwYWNrXzU2NSAob3Zl
ciAodnNyYywgZXhwYW5kX2FscGhhICh2c3JjKSwgdmRlc3QpLCB2ZGVzdCwgMCk7CgogICAgICpk
c3QgPSB0b191aW50NjQgKHZkZXN0KTsKCiAgICAgdy0tOwogICAgIGRzdCsrOwogICAgIHNyYysr
OwogfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0
ZV9vdmVyX25fOF84ODg4IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJp
YnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19p
bWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdl
ID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdl
X3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBk
ZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVz
dF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRo
ID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0g
aW5mby0+aGVpZ2h0OwogICAgdWludDMyX3Qgc3JjLCBzcmNhOwogICAgdWludDMyX3QgKmRzdF9s
aW5lLCAqZHN0OwogICAgdWludDhfdCAqbWFza19saW5lLCAqbWFzazsKICAgIGludCBkc3Rfc3Ry
aWRlLCBtYXNrX3N0cmlkZTsKICAgIGludDMyX3QgdzsKICAgIF9fbTY0IHZzcmMsIHZzcmNhOwog
ICAgdWludDY0X3Qgc3Jjc3JjOwoKICAgIDsKCiAgICBzcmMgPSBfcGl4bWFuX2ltYWdlX2dldF9z
b2xpZCAoaW1wLCBzcmNfaW1hZ2UsIGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsKCiAgICBzcmNh
ID0gc3JjID4+IDI0OwogICAgaWYgKHNyYyA9PSAwKQogcmV0dXJuOwoKICAgIHNyY3NyYyA9ICh1
aW50NjRfdClzcmMgPDwgMzIgfCBzcmM7CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGlu
dCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVf
XyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9f
ICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKGRz
dF9saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3Rf
eSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2Jp
dHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBf
X3N0cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBf
X3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQ4
X3QpOyAobWFza19saW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUp
ICogKG1hc2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7CgogICAgdnNyYyA9IGxv
YWQ4ODg4ICgmc3JjKTsKICAgIHZzcmNhID0gZXhwYW5kX2FscGhhICh2c3JjKTsKCiAgICB3aGls
ZSAoaGVpZ2h0LS0pCiAgICB7CiBkc3QgPSBkc3RfbGluZTsKIGRzdF9saW5lICs9IGRzdF9zdHJp
ZGU7CiBtYXNrID0gbWFza19saW5lOwogbWFza19saW5lICs9IG1hc2tfc3RyaWRlOwogdyA9IHdp
ZHRoOwoKIDsKCiB3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDcpCiB7CiAgICAgdWludDY0
X3QgbSA9ICptYXNrOwoKICAgICBpZiAobSkKICAgICB7CiAgX19tNjQgdmRlc3QgPSBpbl9vdmVy
ICh2c3JjLCB2c3JjYSwKICAgICAgICAgICBleHBhbmRfYWxwaGFfcmV2ICh0b19tNjQgKG0pKSwK
ICAgICAgICAgICBsb2FkODg4OCAoZHN0KSk7CgogIHN0b3JlODg4OCAoZHN0LCB2ZGVzdCk7CiAg
ICAgfQoKICAgICB3LS07CiAgICAgbWFzaysrOwogICAgIGRzdCsrOwogfQoKIDsKCiB3aGlsZSAo
dyA+PSAyKQogewogICAgIHVpbnQ2NF90IG0wLCBtMTsKCiAgICAgbTAgPSAqbWFzazsKICAgICBt
MSA9ICoobWFzayArIDEpOwoKICAgICBpZiAoc3JjYSA9PSAweGZmICYmIChtMCAmIG0xKSA9PSAw
eGZmKQogICAgIHsKICAqKHVpbnQ2NF90ICopZHN0ID0gc3Jjc3JjOwogICAgIH0KICAgICBlbHNl
IGlmIChtMCB8IG0xKQogICAgIHsKICBfX202NCB2ZGVzdDsKICBfX202NCBkZXN0MCwgZGVzdDE7
CgogIHZkZXN0ID0gKihfX202NCAqKWRzdDsKCiAgZGVzdDAgPSBpbl9vdmVyICh2c3JjLCB2c3Jj
YSwgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtMCkpLAogICAgIGV4cGFuZDg4ODggKHZkZXN0
LCAwKSk7CiAgZGVzdDEgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgZXhwYW5kX2FscGhhX3JldiAo
dG9fbTY0IChtMSkpLAogICAgIGV4cGFuZDg4ODggKHZkZXN0LCAxKSk7CgogICooX19tNjQgKilk
c3QgPSBwYWNrODg4OCAoZGVzdDAsIGRlc3QxKTsKICAgICB9CgogICAgIG1hc2sgKz0gMjsKICAg
ICBkc3QgKz0gMjsKICAgICB3IC09IDI7CiB9CgogOwoKIGlmICh3KQogewogICAgIHVpbnQ2NF90
IG0gPSAqbWFzazsKCiAgICAgaWYgKG0pCiAgICAgewogIF9fbTY0IHZkZXN0ID0gbG9hZDg4ODgg
KGRzdCk7CgogIHZkZXN0ID0gaW5fb3ZlciAoCiAgICAgIHZzcmMsIHZzcmNhLCBleHBhbmRfYWxw
aGFfcmV2ICh0b19tNjQgKG0pKSwgdmRlc3QpOwogIHN0b3JlODg4OCAoZHN0LCB2ZGVzdCk7CiAg
ICAgfQogfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHBpeG1hbl9ib29sX3QK
bW14X2ZpbGwgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICB1aW50MzJf
dCAqIGJpdHMsCiAgICAgICAgICBpbnQgc3RyaWRlLAogICAgICAgICAgaW50IGJwcCwKICAgICAg
ICAgIGludCB4LAogICAgICAgICAgaW50IHksCiAgICAgICAgICBpbnQgd2lkdGgsCiAgICAgICAg
ICBpbnQgaGVpZ2h0LAogICAgICAgICAgdWludDMyX3QgZmlsbGVyKQp7CiAgICB1aW50NjRfdCBm
aWxsOwogICAgX19tNjQgdmZpbGw7CiAgICB1aW50MzJfdCBieXRlX3dpZHRoOwogICAgdWludDhf
dCAqYnl0ZV9saW5lOwoKCgoKCiAgICBpZiAoYnBwICE9IDE2ICYmIGJwcCAhPSAzMiAmJiBicHAg
IT0gOCkKIHJldHVybiAwOwoKICAgIGlmIChicHAgPT0gOCkKICAgIHsKIHN0cmlkZSA9IHN0cmlk
ZSAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gMTsKIGJ5dGVfbGluZSA9ICh1aW50OF90ICop
KCgodWludDhfdCAqKWJpdHMpICsgc3RyaWRlICogeSArIHgpOwogYnl0ZV93aWR0aCA9IHdpZHRo
Owogc3RyaWRlICo9IDE7CiAgICAgICAgZmlsbGVyID0gKGZpbGxlciAmIDB4ZmYpICogMHgwMTAx
MDEwMTsKICAgIH0KICAgIGVsc2UgaWYgKGJwcCA9PSAxNikKICAgIHsKIHN0cmlkZSA9IHN0cmlk
ZSAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gMjsKIGJ5dGVfbGluZSA9ICh1aW50OF90ICop
KCgodWludDE2X3QgKiliaXRzKSArIHN0cmlkZSAqIHkgKyB4KTsKIGJ5dGVfd2lkdGggPSAyICog
d2lkdGg7CiBzdHJpZGUgKj0gMjsKICAgICAgICBmaWxsZXIgPSAoZmlsbGVyICYgMHhmZmZmKSAq
IDB4MDAwMTAwMDE7CiAgICB9CiAgICBlbHNlCiAgICB7CiBzdHJpZGUgPSBzdHJpZGUgKiAoaW50
KSBzaXplb2YgKHVpbnQzMl90KSAvIDQ7CiBieXRlX2xpbmUgPSAodWludDhfdCAqKSgoKHVpbnQz
Ml90ICopYml0cykgKyBzdHJpZGUgKiB5ICsgeCk7CiBieXRlX3dpZHRoID0gNCAqIHdpZHRoOwog
c3RyaWRlICo9IDQ7CiAgICB9CgogICAgZmlsbCA9ICgodWludDY0X3QpZmlsbGVyIDw8IDMyKSB8
IGZpbGxlcjsKICAgIHZmaWxsID0gdG9fbTY0IChmaWxsKTsKIyAyMTQzICIvaG9tZS9waS93ZWJr
aXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzR1RLL1NvdXJjZS9waXhtYW4tMC4zMi42L3BpeG1h
bi9waXhtYW4tbW14LmMiCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CiBpbnQgdzsKIHVpbnQ4
X3QgKmQgPSBieXRlX2xpbmU7CgogYnl0ZV9saW5lICs9IHN0cmlkZTsKIHcgPSBieXRlX3dpZHRo
OwoKIGlmICh3ID49IDEgJiYgKCh1aW50cHRyX3QpZCAmIDEpKQogewogICAgICoodWludDhfdCAq
KWQgPSAoZmlsbGVyICYgMHhmZik7CiAgICAgdy0tOwogICAgIGQrKzsKIH0KCiBpZiAodyA+PSAy
ICYmICgodWludHB0cl90KWQgJiAzKSkKIHsKICAgICAqKHVpbnQxNl90ICopZCA9IGZpbGxlcjsK
ICAgICB3IC09IDI7CiAgICAgZCArPSAyOwogfQoKIHdoaWxlICh3ID49IDQgJiYgKCh1aW50cHRy
X3QpZCAmIDcpKQogewogICAgICoodWludDMyX3QgKilkID0gZmlsbGVyOwoKICAgICB3IC09IDQ7
CiAgICAgZCArPSA0OwogfQoKIHdoaWxlICh3ID49IDY0KQogewojIDIxOTEgIi9ob21lL3BpL3dl
YmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYvcGl4
bWFuL3BpeG1hbi1tbXguYyIKICAgICAqKF9fbTY0KikgKGQgKyAwKSA9IHZmaWxsOwogICAgICoo
X19tNjQqKSAoZCArIDgpID0gdmZpbGw7CiAgICAgKihfX202NCopIChkICsgMTYpID0gdmZpbGw7
CiAgICAgKihfX202NCopIChkICsgMjQpID0gdmZpbGw7CiAgICAgKihfX202NCopIChkICsgMzIp
ID0gdmZpbGw7CiAgICAgKihfX202NCopIChkICsgNDApID0gdmZpbGw7CiAgICAgKihfX202NCop
IChkICsgNDgpID0gdmZpbGw7CiAgICAgKihfX202NCopIChkICsgNTYpID0gdmZpbGw7CgogICAg
IHcgLT0gNjQ7CiAgICAgZCArPSA2NDsKIH0KCiB3aGlsZSAodyA+PSA0KQogewogICAgICoodWlu
dDMyX3QgKilkID0gZmlsbGVyOwoKICAgICB3IC09IDQ7CiAgICAgZCArPSA0OwogfQogaWYgKHcg
Pj0gMikKIHsKICAgICAqKHVpbnQxNl90ICopZCA9IGZpbGxlcjsKICAgICB3IC09IDI7CiAgICAg
ZCArPSAyOwogfQogaWYgKHcgPj0gMSkKIHsKICAgICAqKHVpbnQ4X3QgKilkID0gKGZpbGxlciAm
IDB4ZmYpOwogICAgIHctLTsKICAgICBkKys7CiB9CgogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsK
ICAgIHJldHVybiAxOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX3NyY194ODg4XzA1NjUg
KHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIF9fYXR0cmlidXRlX18oKHVu
dXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2ltYWdlOyBfX2F0dHJpYnV0
ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2UgPSBpbmZvLT5tYXNrX2lt
YWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIGRlc3RfaW1hZ2Ug
PSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY194
ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3kgPSBp
bmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3ggPSBpbmZv
LT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza195ID0gaW5mby0+
bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeCA9IGluZm8tPmRl
c3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3kgPSBpbmZvLT5kZXN0
X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGggPSBpbmZvLT53aWR0aDsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBpbmZvLT5oZWlnaHQ7CiAg
ICB1aW50MTZfdCAqZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50MzJfdCAqc3JjX2xpbmUsICpzcmMs
IHM7CiAgICBpbnQgZHN0X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBk
byB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gc3JjX2lt
YWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBzcmNfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAo
c3JjX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50
KSBzaXplb2YgKHVpbnQzMl90KTsgKHNyY19saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18p
ICsgKHNyY19zdHJpZGUpICogKHNyY195KSArICgxKSAqIChzcmNfeCk7IH0gd2hpbGUgKDApOwog
ICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IGRl
c3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93c3Ry
aWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkg
LyAoaW50KSBzaXplb2YgKHVpbnQxNl90KTsgKGRzdF9saW5lKSA9ICgodWludDE2X3QgKikgX19i
aXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGls
ZSAoMCk7CgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewogZHN0ID0gZHN0X2xpbmU7CiBkc3Rf
bGluZSArPSBkc3Rfc3RyaWRlOwogc3JjID0gc3JjX2xpbmU7CiBzcmNfbGluZSArPSBzcmNfc3Ry
aWRlOwogdyA9IHdpZHRoOwoKIHdoaWxlICh3ICYmICh1aW50cHRyX3QpZHN0ICYgNykKIHsKICAg
ICBzID0gKnNyYysrOwogICAgICpkc3QgPSBjb252ZXJ0Xzg4ODhfdG9fMDU2NSAocyk7CiAgICAg
ZHN0Kys7CiAgICAgdy0tOwogfQoKIHdoaWxlICh3ID49IDQpCiB7CiAgICAgX19tNjQgdmRlc3Q7
CiAgICAgX19tNjQgdnNyYzAgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDApKTsKICAgICBfX202
NCB2c3JjMSA9IGxkcV91ICgoX19tNjQgKikoc3JjICsgMikpOwoKICAgICB2ZGVzdCA9IHBhY2tf
NHhwYWNrZWQ1NjUgKHZzcmMwLCB2c3JjMSk7CgogICAgICooX19tNjQgKilkc3QgPSB2ZGVzdDsK
CiAgICAgdyAtPSA0OwogICAgIHNyYyArPSA0OwogICAgIGRzdCArPSA0OwogfQoKIHdoaWxlICh3
KQogewogICAgIHMgPSAqc3JjKys7CiAgICAgKmRzdCA9IGNvbnZlcnRfODg4OF90b18wNTY1IChz
KTsKICAgICBkc3QrKzsKICAgICB3LS07CiB9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9Cgpz
dGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX3NyY19uXzhfODg4OCAocGl4bWFuX2ltcGxlbWVudGF0
aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVf
aW5mb190ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBv
cCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNy
Y19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFu
X2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0
dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmli
dXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0
ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVf
XygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1
bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNl
ZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAgdWludDMyX3Qgc3JjLCBzcmNh
OwogICAgdWludDMyX3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDhfdCAqbWFza19saW5lLCAq
bWFzazsKICAgIGludCBkc3Rfc3RyaWRlLCBtYXNrX3N0cmlkZTsKICAgIGludDMyX3QgdzsKICAg
IF9fbTY0IHZzcmM7CiAgICB1aW50NjRfdCBzcmNzcmM7CgogICAgOwoKICAgIHNyYyA9IF9waXht
YW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3Jt
YXQpOwoKICAgIHNyY2EgPSBzcmMgPj4gMjQ7CiAgICBpZiAoc3JjID09IDApCiAgICB7CiBtbXhf
ZmlsbCAoaW1wLCBkZXN0X2ltYWdlLT5iaXRzLmJpdHMsIGRlc3RfaW1hZ2UtPmJpdHMucm93c3Ry
aWRlLAogICAgKCgoZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpID4+IDI0KSApLAogICAgZGVzdF94
LCBkZXN0X3ksIHdpZHRoLCBoZWlnaHQsIDApOwogcmV0dXJuOwogICAgfQoKICAgIHNyY3NyYyA9
ICh1aW50NjRfdClzcmMgPDwgMzIgfCBzcmM7CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187
IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJp
ZGVfXyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlk
ZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsg
KGRzdF9saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRl
c3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpf
X2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRz
OyBfX3N0cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkg
PSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVp
bnQ4X3QpOyAobWFza19saW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJp
ZGUpICogKG1hc2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7CgogICAgdnNyYyA9
IGxvYWQ4ODg4ICgmc3JjKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CiBkc3QgPSBkc3Rf
bGluZTsKIGRzdF9saW5lICs9IGRzdF9zdHJpZGU7CiBtYXNrID0gbWFza19saW5lOwogbWFza19s
aW5lICs9IG1hc2tfc3RyaWRlOwogdyA9IHdpZHRoOwoKIDsKCiB3aGlsZSAodyAmJiAodWludHB0
cl90KWRzdCAmIDcpCiB7CiAgICAgdWludDY0X3QgbSA9ICptYXNrOwoKICAgICBpZiAobSkKICAg
ICB7CiAgX19tNjQgdmRlc3QgPSBpbiAodnNyYywgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0ICht
KSkpOwoKICBzdG9yZTg4ODggKGRzdCwgdmRlc3QpOwogICAgIH0KICAgICBlbHNlCiAgICAgewog
ICpkc3QgPSAwOwogICAgIH0KCiAgICAgdy0tOwogICAgIG1hc2srKzsKICAgICBkc3QrKzsKIH0K
CiA7Cgogd2hpbGUgKHcgPj0gMikKIHsKICAgICB1aW50NjRfdCBtMCwgbTE7CiAgICAgbTAgPSAq
bWFzazsKICAgICBtMSA9ICoobWFzayArIDEpOwoKICAgICBpZiAoc3JjYSA9PSAweGZmICYmICht
MCAmIG0xKSA9PSAweGZmKQogICAgIHsKICAqKHVpbnQ2NF90ICopZHN0ID0gc3Jjc3JjOwogICAg
IH0KICAgICBlbHNlIGlmIChtMCB8IG0xKQogICAgIHsKICBfX202NCBkZXN0MCwgZGVzdDE7Cgog
IGRlc3QwID0gaW4gKHZzcmMsIGV4cGFuZF9hbHBoYV9yZXYgKHRvX202NCAobTApKSk7CiAgZGVz
dDEgPSBpbiAodnNyYywgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtMSkpKTsKCiAgKihfX202
NCAqKWRzdCA9IHBhY2s4ODg4IChkZXN0MCwgZGVzdDEpOwogICAgIH0KICAgICBlbHNlCiAgICAg
ewogICoodWludDY0X3QgKilkc3QgPSAwOwogICAgIH0KCiAgICAgbWFzayArPSAyOwogICAgIGRz
dCArPSAyOwogICAgIHcgLT0gMjsKIH0KCiA7CgogaWYgKHcpCiB7CiAgICAgdWludDY0X3QgbSA9
ICptYXNrOwoKICAgICBpZiAobSkKICAgICB7CiAgX19tNjQgdmRlc3QgPSBsb2FkODg4OCAoZHN0
KTsKCiAgdmRlc3QgPSBpbiAodnNyYywgZXhwYW5kX2FscGhhX3JldiAodG9fbTY0IChtKSkpOwog
IHN0b3JlODg4OCAoZHN0LCB2ZGVzdCk7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgKmRzdCA9
IDA7CiAgICAgfQogfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14
X2NvbXBvc2l0ZV9vdmVyX25fOF8wNTY1IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZv
KQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9w
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGlu
Zm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBt
YXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4
bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVf
XygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1
bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNl
ZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg
aW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGlu
dDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQz
Ml90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qg
aGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAgdWludDMyX3Qgc3JjLCBzcmNhOwogICAgdWludDE2
X3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWludDhfdCAqbWFza19saW5lLCAqbWFzazsKICAgIGlu
dCBkc3Rfc3RyaWRlLCBtYXNrX3N0cmlkZTsKICAgIGludDMyX3QgdzsKICAgIF9fbTY0IHZzcmMs
IHZzcmNhLCB0bXA7CiAgICBfX202NCBzcmNzcmNzcmNzcmM7CgogICAgOwoKICAgIHNyYyA9IF9w
aXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAsIHNyY19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5m
b3JtYXQpOwoKICAgIHNyY2EgPSBzcmMgPj4gMjQ7CiAgICBpZiAoc3JjID09IDApCiByZXR1cm47
CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9
IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93
c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJf
dCkgLyAoaW50KSBzaXplb2YgKHVpbnQxNl90KTsgKGRzdF9saW5lKSA9ICgodWludDE2X3QgKikg
X19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3
aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9f
Yml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gbWFza19pbWFnZS0+
Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9m
ICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQ4X3QpOyAobWFza19saW5lKSA9ICgodWlu
dDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICogKG1hc2tfeSkgKyAoMSkgKiAobWFz
a194KTsgfSB3aGlsZSAoMCk7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgmc3JjKTsKICAgIHZzcmNh
ID0gZXhwYW5kX2FscGhhICh2c3JjKTsKCiAgICB0bXAgPSBwYWNrXzU2NSAodnNyYywgX21tX3Nl
dHplcm9fc2k2NCAoKSwgMCk7CiAgICBzcmNzcmNzcmNzcmMgPSBleHBhbmRfYWxwaGFfcmV2ICh0
bXApOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKIGRzdCA9IGRzdF9saW5lOwogZHN0X2xp
bmUgKz0gZHN0X3N0cmlkZTsKIG1hc2sgPSBtYXNrX2xpbmU7CiBtYXNrX2xpbmUgKz0gbWFza19z
dHJpZGU7CiB3ID0gd2lkdGg7CgogOwoKIHdoaWxlICh3ICYmICh1aW50cHRyX3QpZHN0ICYgNykK
IHsKICAgICB1aW50NjRfdCBtID0gKm1hc2s7CgogICAgIGlmIChtKQogICAgIHsKICB1aW50NjRf
dCBkID0gKmRzdDsKICBfX202NCB2ZCA9IHRvX202NCAoZCk7CiAgX19tNjQgdmRlc3QgPSBpbl9v
dmVyICgKICAgICAgdnNyYywgdnNyY2EsIGV4cGFuZF9hbHBoYV9yZXYgKHRvX202NCAobSkpLCBl
eHBhbmQ1NjUgKHZkLCAwKSk7CgogIHZkID0gcGFja181NjUgKHZkZXN0LCBfbW1fc2V0emVyb19z
aTY0ICgpLCAwKTsKICAqZHN0ID0gdG9fdWludDY0ICh2ZCk7CiAgICAgfQoKICAgICB3LS07CiAg
ICAgbWFzaysrOwogICAgIGRzdCsrOwogfQoKIDsKCiB3aGlsZSAodyA+PSA0KQogewogICAgIHVp
bnQ2NF90IG0wLCBtMSwgbTIsIG0zOwogICAgIG0wID0gKm1hc2s7CiAgICAgbTEgPSAqKG1hc2sg
KyAxKTsKICAgICBtMiA9ICoobWFzayArIDIpOwogICAgIG0zID0gKihtYXNrICsgMyk7CgogICAg
IGlmIChzcmNhID09IDB4ZmYgJiYgKG0wICYgbTEgJiBtMiAmIG0zKSA9PSAweGZmKQogICAgIHsK
ICAqKF9fbTY0ICopZHN0ID0gc3Jjc3Jjc3Jjc3JjOwogICAgIH0KICAgICBlbHNlIGlmIChtMCB8
IG0xIHwgbTIgfCBtMykKICAgICB7CiAgX19tNjQgdmRlc3QgPSAqKF9fbTY0ICopZHN0OwogIF9f
bTY0IHYwLCB2MSwgdjIsIHYzOwogIF9fbTY0IHZtMCwgdm0xLCB2bTIsIHZtMzsKCiAgZXhwYW5k
XzR4NTY1ICh2ZGVzdCwgJnYwLCAmdjEsICZ2MiwgJnYzLCAwKTsKCiAgdm0wID0gdG9fbTY0ICht
MCk7CiAgdjAgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgZXhwYW5kX2FscGhhX3JldiAodm0wKSwg
djApOwoKICB2bTEgPSB0b19tNjQgKG0xKTsKICB2MSA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBl
eHBhbmRfYWxwaGFfcmV2ICh2bTEpLCB2MSk7CgogIHZtMiA9IHRvX202NCAobTIpOwogIHYyID0g
aW5fb3ZlciAodnNyYywgdnNyY2EsIGV4cGFuZF9hbHBoYV9yZXYgKHZtMiksIHYyKTsKCiAgdm0z
ID0gdG9fbTY0IChtMyk7CiAgdjMgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgZXhwYW5kX2FscGhh
X3JldiAodm0zKSwgdjMpOwoKICAqKF9fbTY0ICopZHN0ID0gcGFja180eDU2NSAodjAsIHYxLCB2
MiwgdjMpOzsKICAgICB9CgogICAgIHcgLT0gNDsKICAgICBtYXNrICs9IDQ7CiAgICAgZHN0ICs9
IDQ7CiB9CgogOwoKIHdoaWxlICh3KQogewogICAgIHVpbnQ2NF90IG0gPSAqbWFzazsKCiAgICAg
aWYgKG0pCiAgICAgewogIHVpbnQ2NF90IGQgPSAqZHN0OwogIF9fbTY0IHZkID0gdG9fbTY0IChk
KTsKICBfX202NCB2ZGVzdCA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBleHBhbmRfYWxwaGFfcmV2
ICh0b19tNjQgKG0pKSwKICAgICAgICAgICBleHBhbmQ1NjUgKHZkLCAwKSk7CiAgdmQgPSBwYWNr
XzU2NSAodmRlc3QsIF9tbV9zZXR6ZXJvX3NpNjQgKCksIDApOwogICpkc3QgPSB0b191aW50NjQg
KHZkKTsKICAgICB9CgogICAgIHctLTsKICAgICBtYXNrKys7CiAgICAgZHN0Kys7CiB9CiAgICB9
CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX292ZXJfcGl4
YnVmXzA1NjUgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmlidXRl
X18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2ltYWdl
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2UgPSBp
bmZvLT5tYXNrX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAq
IGRlc3RfaW1hZ2UgPSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IHNyY194ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3Qgc3JjX3kgPSBpbmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBt
YXNrX3ggPSBpbmZvLT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFz
a195ID0gaW5mby0+bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3Rf
eCA9IGluZm8tPmRlc3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3kg
PSBpbmZvLT5kZXN0X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGggPSBp
bmZvLT53aWR0aDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBpbmZv
LT5oZWlnaHQ7CiAgICB1aW50MTZfdCAqZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50MzJfdCAqc3Jj
X2xpbmUsICpzcmM7CiAgICBpbnQgZHN0X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3Qg
dzsKCiAgICA7CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBf
X2JpdHNfXyA9IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3RfaW1hZ2Ut
PmJpdHMucm93c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9m
ICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQxNl90KTsgKGRzdF9saW5lKSA9ICgodWlu
dDE2X3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAoZGVz
dF94KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3Ry
aWRlX187IF9fYml0c19fID0gc3JjX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBzcmNf
aW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoc3JjX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkg
c2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKHNyY19saW5lKSA9
ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKHNyY19zdHJpZGUpICogKHNyY195KSArICgxKSAq
IChzcmNfeCk7IH0gd2hpbGUgKDApOwoKCgoKCgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewog
ZHN0ID0gZHN0X2xpbmU7CiBkc3RfbGluZSArPSBkc3Rfc3RyaWRlOwogc3JjID0gc3JjX2xpbmU7
CiBzcmNfbGluZSArPSBzcmNfc3RyaWRlOwogdyA9IHdpZHRoOwoKIDsKCiB3aGlsZSAodyAmJiAo
dWludHB0cl90KWRzdCAmIDcpCiB7CiAgICAgX19tNjQgdnNyYyA9IGxvYWQ4ODg4IChzcmMpOwog
ICAgIHVpbnQ2NF90IGQgPSAqZHN0OwogICAgIF9fbTY0IHZkZXN0ID0gZXhwYW5kNTY1ICh0b19t
NjQgKGQpLCAwKTsKCiAgICAgdmRlc3QgPSBwYWNrXzU2NSAob3Zlcl9yZXZfbm9uX3ByZSAodnNy
YywgdmRlc3QpLCB2ZGVzdCwgMCk7CgogICAgICpkc3QgPSB0b191aW50NjQgKHZkZXN0KTsKCiAg
ICAgdy0tOwogICAgIGRzdCsrOwogICAgIHNyYysrOwogfQoKIDsKCiB3aGlsZSAodyA+PSA0KQog
ewogICAgIHVpbnQzMl90IHMwLCBzMSwgczIsIHMzOwogICAgIHVuc2lnbmVkIGNoYXIgYTAsIGEx
LCBhMiwgYTM7CgogICAgIHMwID0gKnNyYzsKICAgICBzMSA9ICooc3JjICsgMSk7CiAgICAgczIg
PSAqKHNyYyArIDIpOwogICAgIHMzID0gKihzcmMgKyAzKTsKCiAgICAgYTAgPSAoczAgPj4gMjQp
OwogICAgIGExID0gKHMxID4+IDI0KTsKICAgICBhMiA9IChzMiA+PiAyNCk7CiAgICAgYTMgPSAo
czMgPj4gMjQpOwoKICAgICBpZiAoKGEwICYgYTEgJiBhMiAmIGEzKSA9PSAweEZGKQogICAgIHsK
ICBfX202NCB2MCA9IGludmVydF9jb2xvcnMgKGxvYWQ4ODg4ICgmczApKTsKICBfX202NCB2MSA9
IGludmVydF9jb2xvcnMgKGxvYWQ4ODg4ICgmczEpKTsKICBfX202NCB2MiA9IGludmVydF9jb2xv
cnMgKGxvYWQ4ODg4ICgmczIpKTsKICBfX202NCB2MyA9IGludmVydF9jb2xvcnMgKGxvYWQ4ODg4
ICgmczMpKTsKCiAgKihfX202NCAqKWRzdCA9IHBhY2tfNHg1NjUgKHYwLCB2MSwgdjIsIHYzKTsK
ICAgICB9CiAgICAgZWxzZSBpZiAoczAgfCBzMSB8IHMyIHwgczMpCiAgICAgewogIF9fbTY0IHZk
ZXN0ID0gKihfX202NCAqKWRzdDsKICBfX202NCB2MCwgdjEsIHYyLCB2MzsKCiAgX19tNjQgdnNy
YzAgPSBsb2FkODg4OCAoJnMwKTsKICBfX202NCB2c3JjMSA9IGxvYWQ4ODg4ICgmczEpOwogIF9f
bTY0IHZzcmMyID0gbG9hZDg4ODggKCZzMik7CiAgX19tNjQgdnNyYzMgPSBsb2FkODg4OCAoJnMz
KTsKCiAgZXhwYW5kXzR4NTY1ICh2ZGVzdCwgJnYwLCAmdjEsICZ2MiwgJnYzLCAwKTsKCiAgdjAg
PSBvdmVyX3Jldl9ub25fcHJlICh2c3JjMCwgdjApOwogIHYxID0gb3Zlcl9yZXZfbm9uX3ByZSAo
dnNyYzEsIHYxKTsKICB2MiA9IG92ZXJfcmV2X25vbl9wcmUgKHZzcmMyLCB2Mik7CiAgdjMgPSBv
dmVyX3Jldl9ub25fcHJlICh2c3JjMywgdjMpOwoKICAqKF9fbTY0ICopZHN0ID0gcGFja180eDU2
NSAodjAsIHYxLCB2MiwgdjMpOwogICAgIH0KCiAgICAgdyAtPSA0OwogICAgIGRzdCArPSA0Owog
ICAgIHNyYyArPSA0OwogfQoKIDsKCiB3aGlsZSAodykKIHsKICAgICBfX202NCB2c3JjID0gbG9h
ZDg4ODggKHNyYyk7CiAgICAgdWludDY0X3QgZCA9ICpkc3Q7CiAgICAgX19tNjQgdmRlc3QgPSBl
eHBhbmQ1NjUgKHRvX202NCAoZCksIDApOwoKICAgICB2ZGVzdCA9IHBhY2tfNTY1IChvdmVyX3Jl
dl9ub25fcHJlICh2c3JjLCB2ZGVzdCksIHZkZXN0LCAwKTsKCiAgICAgKmRzdCA9IHRvX3VpbnQ2
NCAodmRlc3QpOwoKICAgICB3LS07CiAgICAgZHN0Kys7CiAgICAgc3JjKys7CiB9CiAgICB9Cgog
ICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRlX292ZXJfcGl4YnVm
Xzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIF9fYXR0cmli
dXRlX18oKHVudXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2ltYWdlOyBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2UgPSBpbmZv
LT5tYXNrX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIGRl
c3RfaW1hZ2UgPSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQz
Ml90IHNyY194ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qg
c3JjX3kgPSBpbmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNr
X3ggPSBpbmZvLT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza195
ID0gaW5mby0+bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeCA9
IGluZm8tPmRlc3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3kgPSBp
bmZvLT5kZXN0X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGggPSBpbmZv
LT53aWR0aDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBpbmZvLT5o
ZWlnaHQ7CiAgICB1aW50MzJfdCAqZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50MzJfdCAqc3JjX2xp
bmUsICpzcmM7CiAgICBpbnQgZHN0X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMyX3QgdzsK
CiAgICA7CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2Jp
dHNfXyA9IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3RfaW1hZ2UtPmJp
dHMucm93c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1
aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKGRzdF9saW5lKSA9ICgodWludDMy
X3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAoZGVzdF94
KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRl
X187IF9fYml0c19fID0gc3JjX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBzcmNfaW1h
Z2UtPmJpdHMucm93c3RyaWRlOyAoc3JjX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6
ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKHNyY19saW5lKSA9ICgo
dWludDMyX3QgKikgX19iaXRzX18pICsgKHNyY19zdHJpZGUpICogKHNyY195KSArICgxKSAqIChz
cmNfeCk7IH0gd2hpbGUgKDApOwoKCgoKCgogICAgd2hpbGUgKGhlaWdodC0tKQogICAgewogZHN0
ID0gZHN0X2xpbmU7CiBkc3RfbGluZSArPSBkc3Rfc3RyaWRlOwogc3JjID0gc3JjX2xpbmU7CiBz
cmNfbGluZSArPSBzcmNfc3RyaWRlOwogdyA9IHdpZHRoOwoKIHdoaWxlICh3ICYmICh1aW50cHRy
X3QpZHN0ICYgNykKIHsKICAgICBfX202NCBzID0gbG9hZDg4ODggKHNyYyk7CiAgICAgX19tNjQg
ZCA9IGxvYWQ4ODg4IChkc3QpOwoKICAgICBzdG9yZTg4ODggKGRzdCwgb3Zlcl9yZXZfbm9uX3By
ZSAocywgZCkpOwoKICAgICB3LS07CiAgICAgZHN0Kys7CiAgICAgc3JjKys7CiB9Cgogd2hpbGUg
KHcgPj0gMikKIHsKICAgICB1aW50MzJfdCBzMCwgczE7CiAgICAgdW5zaWduZWQgY2hhciBhMCwg
YTE7CiAgICAgX19tNjQgZDAsIGQxOwoKICAgICBzMCA9ICpzcmM7CiAgICAgczEgPSAqKHNyYyAr
IDEpOwoKICAgICBhMCA9IChzMCA+PiAyNCk7CiAgICAgYTEgPSAoczEgPj4gMjQpOwoKICAgICBp
ZiAoKGEwICYgYTEpID09IDB4RkYpCiAgICAgewogIGQwID0gaW52ZXJ0X2NvbG9ycyAobG9hZDg4
ODggKCZzMCkpOwogIGQxID0gaW52ZXJ0X2NvbG9ycyAobG9hZDg4ODggKCZzMSkpOwoKICAqKF9f
bTY0ICopZHN0ID0gcGFjazg4ODggKGQwLCBkMSk7CiAgICAgfQogICAgIGVsc2UgaWYgKHMwIHwg
czEpCiAgICAgewogIF9fbTY0IHZkZXN0ID0gKihfX202NCAqKWRzdDsKCiAgZDAgPSBvdmVyX3Jl
dl9ub25fcHJlIChsb2FkODg4OCAoJnMwKSwgZXhwYW5kODg4OCAodmRlc3QsIDApKTsKICBkMSA9
IG92ZXJfcmV2X25vbl9wcmUgKGxvYWQ4ODg4ICgmczEpLCBleHBhbmQ4ODg4ICh2ZGVzdCwgMSkp
OwoKICAqKF9fbTY0ICopZHN0ID0gcGFjazg4ODggKGQwLCBkMSk7CiAgICAgfQoKICAgICB3IC09
IDI7CiAgICAgZHN0ICs9IDI7CiAgICAgc3JjICs9IDI7CiB9CgogaWYgKHcpCiB7CiAgICAgX19t
NjQgcyA9IGxvYWQ4ODg4IChzcmMpOwogICAgIF9fbTY0IGQgPSBsb2FkODg4OCAoZHN0KTsKCiAg
ICAgc3RvcmU4ODg4IChkc3QsIG92ZXJfcmV2X25vbl9wcmUgKHMsIGQpKTsKIH0KICAgIH0KCiAg
ICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVfb3Zlcl9uXzg4ODhf
MDU2NV9jYSAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsgX19hdHRyaWJ1
dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5zcmNfaW1h
Z2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFza19pbWFnZSA9
IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90
ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBt
YXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVz
dF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3Rf
eSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCB3aWR0aCA9
IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhlaWdodCA9IGlu
Zm8tPmhlaWdodDsKICAgIHVpbnQzMl90IHNyYzsKICAgIHVpbnQxNl90ICpkc3RfbGluZTsKICAg
IHVpbnQzMl90ICptYXNrX2xpbmU7CiAgICBpbnQgZHN0X3N0cmlkZSwgbWFza19zdHJpZGU7CiAg
ICBfX202NCB2c3JjLCB2c3JjYTsKCiAgICA7CgogICAgc3JjID0gX3BpeG1hbl9pbWFnZV9nZXRf
c29saWQgKGltcCwgc3JjX2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7CgogICAgaWYg
KHNyYyA9PSAwKQogcmV0dXJuOwoKICAgIGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19z
dHJpZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBk
ZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRzdF9zdHJpZGUpID0gX19zdHJpZGVfXyAqIChp
bnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MTZfdCk7IChkc3RfbGlu
ZSkgPSAoKHVpbnQxNl90ICopIF9fYml0c19fKSArIChkc3Rfc3RyaWRlKSAqIChkZXN0X3kpICsg
KDEpICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOwogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187
IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IG1hc2tfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJp
ZGVfXyA9IG1hc2tfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAobWFza19zdHJpZGUpID0gX19zdHJp
ZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7
IChtYXNrX2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICog
KG1hc2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7CgogICAgdnNyYyA9IGxvYWQ4
ODg4ICgmc3JjKTsKICAgIHZzcmNhID0gZXhwYW5kX2FscGhhICh2c3JjKTsKCiAgICB3aGlsZSAo
aGVpZ2h0LS0pCiAgICB7CiBpbnQgdHdpZHRoID0gd2lkdGg7CiB1aW50MzJfdCAqcCA9ICh1aW50
MzJfdCAqKW1hc2tfbGluZTsKIHVpbnQxNl90ICpxID0gKHVpbnQxNl90ICopZHN0X2xpbmU7Cgog
d2hpbGUgKHR3aWR0aCAmJiAoKHVpbnRwdHJfdClxICYgNykpCiB7CiAgICAgdWludDMyX3QgbSA9
ICoodWludDMyX3QgKilwOwoKICAgICBpZiAobSkKICAgICB7CiAgdWludDY0X3QgZCA9ICpxOwog
IF9fbTY0IHZkZXN0ID0gZXhwYW5kNTY1ICh0b19tNjQgKGQpLCAwKTsKICB2ZGVzdCA9IHBhY2tf
NTY1IChpbl9vdmVyICh2c3JjLCB2c3JjYSwgbG9hZDg4ODggKCZtKSwgdmRlc3QpLCB2ZGVzdCwg
MCk7CiAgKnEgPSB0b191aW50NjQgKHZkZXN0KTsKICAgICB9CgogICAgIHR3aWR0aC0tOwogICAg
IHArKzsKICAgICBxKys7CiB9Cgogd2hpbGUgKHR3aWR0aCA+PSA0KQogewogICAgIHVpbnQzMl90
IG0wLCBtMSwgbTIsIG0zOwoKICAgICBtMCA9ICpwOwogICAgIG0xID0gKihwICsgMSk7CiAgICAg
bTIgPSAqKHAgKyAyKTsKICAgICBtMyA9ICoocCArIDMpOwoKICAgICBpZiAoKG0wIHwgbTEgfCBt
MiB8IG0zKSkKICAgICB7CiAgX19tNjQgdmRlc3QgPSAqKF9fbTY0ICopcTsKICBfX202NCB2MCwg
djEsIHYyLCB2MzsKCiAgZXhwYW5kXzR4NTY1ICh2ZGVzdCwgJnYwLCAmdjEsICZ2MiwgJnYzLCAw
KTsKCiAgdjAgPSBpbl9vdmVyICh2c3JjLCB2c3JjYSwgbG9hZDg4ODggKCZtMCksIHYwKTsKICB2
MSA9IGluX292ZXIgKHZzcmMsIHZzcmNhLCBsb2FkODg4OCAoJm0xKSwgdjEpOwogIHYyID0gaW5f
b3ZlciAodnNyYywgdnNyY2EsIGxvYWQ4ODg4ICgmbTIpLCB2Mik7CiAgdjMgPSBpbl9vdmVyICh2
c3JjLCB2c3JjYSwgbG9hZDg4ODggKCZtMyksIHYzKTsKCiAgKihfX202NCAqKXEgPSBwYWNrXzR4
NTY1ICh2MCwgdjEsIHYyLCB2Myk7CiAgICAgfQogICAgIHR3aWR0aCAtPSA0OwogICAgIHAgKz0g
NDsKICAgICBxICs9IDQ7CiB9Cgogd2hpbGUgKHR3aWR0aCkKIHsKICAgICB1aW50MzJfdCBtOwoK
ICAgICBtID0gKih1aW50MzJfdCAqKXA7CiAgICAgaWYgKG0pCiAgICAgewogIHVpbnQ2NF90IGQg
PSAqcTsKICBfX202NCB2ZGVzdCA9IGV4cGFuZDU2NSAodG9fbTY0IChkKSwgMCk7CiAgdmRlc3Qg
PSBwYWNrXzU2NSAoaW5fb3ZlciAodnNyYywgdnNyY2EsIGxvYWQ4ODg4ICgmbSksIHZkZXN0KSwg
dmRlc3QsIDApOwogICpxID0gdG9fdWludDY0ICh2ZGVzdCk7CiAgICAgfQoKICAgICB0d2lkdGgt
LTsKICAgICBwKys7CiAgICAgcSsrOwogfQoKIG1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsKIGRz
dF9saW5lICs9IGRzdF9zdHJpZGU7CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMg
dm9pZAptbXhfY29tcG9zaXRlX2luX25fOF84IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1w
LAogICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykK
ewogICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZv
LT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFz
a19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1h
bl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51
c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg
aW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGlu
dDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQz
Ml90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJf
dCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhl
aWdodCA9IGluZm8tPmhlaWdodDsKICAgIHVpbnQ4X3QgKmRzdF9saW5lLCAqZHN0OwogICAgdWlu
dDhfdCAqbWFza19saW5lLCAqbWFzazsKICAgIGludCBkc3Rfc3RyaWRlLCBtYXNrX3N0cmlkZTsK
ICAgIGludDMyX3QgdzsKICAgIHVpbnQzMl90IHNyYzsKICAgIHVpbnQ4X3Qgc2E7CiAgICBfX202
NCB2c3JjLCB2c3JjYTsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRl
X187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9p
bWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBz
aXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDhfdCk7IChkc3RfbGluZSkgPSAo
KHVpbnQ4X3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAo
ZGVzdF94KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9f
c3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0g
bWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0cmlkZV9fICog
KGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQ4X3QpOyAobWFza19s
aW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICogKG1hc2tfeSkg
KyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7CgogICAgc3JjID0gX3BpeG1hbl9pbWFnZV9n
ZXRfc29saWQgKGltcCwgc3JjX2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7CgogICAg
c2EgPSBzcmMgPj4gMjQ7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgmc3JjKTsKICAgIHZzcmNhID0g
ZXhwYW5kX2FscGhhICh2c3JjKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CiBkc3QgPSBk
c3RfbGluZTsKIGRzdF9saW5lICs9IGRzdF9zdHJpZGU7CiBtYXNrID0gbWFza19saW5lOwogbWFz
a19saW5lICs9IG1hc2tfc3RyaWRlOwogdyA9IHdpZHRoOwoKIHdoaWxlICh3ICYmICh1aW50cHRy
X3QpZHN0ICYgNykKIHsKICAgICB1aW50MTZfdCB0bXA7CiAgICAgdWludDhfdCBhOwogICAgIHVp
bnQzMl90IG0sIGQ7CgogICAgIGEgPSAqbWFzaysrOwogICAgIGQgPSAqZHN0OwoKICAgICBtID0g
KCh0bXApID0gKHNhKSAqICh1aW50MTZfdCkoYSkgKyAweDgwLCAoKCgodG1wKSA+PiA4ICkgKyAo
dG1wKSApID4+IDggKSk7CiAgICAgZCA9ICgodG1wKSA9IChtKSAqICh1aW50MTZfdCkoZCkgKyAw
eDgwLCAoKCgodG1wKSA+PiA4ICkgKyAodG1wKSApID4+IDggKSk7CgogICAgICpkc3QrKyA9IGQ7
CiAgICAgdy0tOwogfQoKIHdoaWxlICh3ID49IDQpCiB7CiAgICAgX19tNjQgdm1hc2s7CiAgICAg
X19tNjQgdmRlc3Q7CgogICAgIHZtYXNrID0gbG9hZDg4ODh1ICgodWludDMyX3QgKiltYXNrKTsK
ICAgICB2ZGVzdCA9IGxvYWQ4ODg4ICgodWludDMyX3QgKilkc3QpOwoKICAgICBzdG9yZTg4ODgg
KCh1aW50MzJfdCAqKWRzdCwgaW4gKGluICh2c3JjYSwgdm1hc2spLCB2ZGVzdCkpOwoKICAgICBk
c3QgKz0gNDsKICAgICBtYXNrICs9IDQ7CiAgICAgdyAtPSA0OwogfQoKIHdoaWxlICh3LS0pCiB7
CiAgICAgdWludDE2X3QgdG1wOwogICAgIHVpbnQ4X3QgYTsKICAgICB1aW50MzJfdCBtLCBkOwoK
ICAgICBhID0gKm1hc2srKzsKICAgICBkID0gKmRzdDsKCiAgICAgbSA9ICgodG1wKSA9IChzYSkg
KiAodWludDE2X3QpKGEpICsgMHg4MCwgKCgoKHRtcCkgPj4gOCApICsgKHRtcCkgKSA+PiA4ICkp
OwogICAgIGQgPSAoKHRtcCkgPSAobSkgKiAodWludDE2X3QpKGQpICsgMHg4MCwgKCgoKHRtcCkg
Pj4gOCApICsgKHRtcCkgKSA+PiA4ICkpOwoKICAgICAqZHN0KysgPSBkOwogfQogICAgfQoKICAg
IF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9pbl84XzggKHBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5fY29t
cG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFu
X29wX3Qgb3AgPSBpbmZvLT5vcDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdl
X3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IHBpeG1hbl9pbWFnZV90ICogbWFza19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmli
dXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3Rf
aW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNf
eDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJp
YnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1
dGVfXygodW51c2VkKSkgaW50MzJfdCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBpbnQzMl90IGhlaWdodCA9IGluZm8tPmhlaWdodDsKICAgIHVpbnQ4X3QgKmRz
dF9saW5lLCAqZHN0OwogICAgdWludDhfdCAqc3JjX2xpbmUsICpzcmM7CiAgICBpbnQgc3JjX3N0
cmlkZSwgZHN0X3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2Jp
dHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBf
X3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9f
c3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDhf
dCk7IChkc3RfbGluZSkgPSAoKHVpbnQ4X3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICog
KGRlc3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90
ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gc3JjX2ltYWdlLT5iaXRzLmJp
dHM7IF9fc3RyaWRlX18gPSBzcmNfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoc3JjX3N0cmlkZSkg
PSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVp
bnQ4X3QpOyAoc3JjX2xpbmUpID0gKCh1aW50OF90ICopIF9fYml0c19fKSArIChzcmNfc3RyaWRl
KSAqIChzcmNfeSkgKyAoMSkgKiAoc3JjX3gpOyB9IHdoaWxlICgwKTsKCiAgICB3aGlsZSAoaGVp
Z2h0LS0pCiAgICB7CiBkc3QgPSBkc3RfbGluZTsKIGRzdF9saW5lICs9IGRzdF9zdHJpZGU7CiBz
cmMgPSBzcmNfbGluZTsKIHNyY19saW5lICs9IHNyY19zdHJpZGU7CiB3ID0gd2lkdGg7Cgogd2hp
bGUgKHcgJiYgKHVpbnRwdHJfdClkc3QgJiAzKQogewogICAgIHVpbnQ4X3QgcywgZDsKICAgICB1
aW50MTZfdCB0bXA7CgogICAgIHMgPSAqc3JjOwogICAgIGQgPSAqZHN0OwoKICAgICAqZHN0ID0g
KCh0bXApID0gKHMpICogKHVpbnQxNl90KShkKSArIDB4ODAsICgoKCh0bXApID4+IDggKSArICh0
bXApICkgPj4gOCApKTsKCiAgICAgc3JjKys7CiAgICAgZHN0Kys7CiAgICAgdy0tOwogfQoKIHdo
aWxlICh3ID49IDQpCiB7CiAgICAgdWludDMyX3QgKnMgPSAodWludDMyX3QgKilzcmM7CiAgICAg
dWludDMyX3QgKmQgPSAodWludDMyX3QgKilkc3Q7CgogICAgIHN0b3JlODg4OCAoZCwgaW4gKGxv
YWQ4ODg4dSAocyksIGxvYWQ4ODg4IChkKSkpOwoKICAgICB3IC09IDQ7CiAgICAgZHN0ICs9IDQ7
CiAgICAgc3JjICs9IDQ7CiB9Cgogd2hpbGUgKHctLSkKIHsKICAgICB1aW50OF90IHMsIGQ7CiAg
ICAgdWludDE2X3QgdG1wOwoKICAgICBzID0gKnNyYzsKICAgICBkID0gKmRzdDsKCiAgICAgKmRz
dCA9ICgodG1wKSA9IChzKSAqICh1aW50MTZfdCkoZCkgKyAweDgwLCAoKCgodG1wKSA+PiA4ICkg
KyAodG1wKSApID4+IDggKSk7CgogICAgIHNyYysrOwogICAgIGRzdCsrOwogfQogICAgfQoKICAg
IF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9hZGRfbl84XzggKHBp
eG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAq
aW5mbykKewogICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZv
LT5vcDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2Ug
PSBpbmZvLT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90
ICogbWFza19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IHBpeG1hbl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmli
dXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVf
XygodW51c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1
bnVzZWQpKSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51
c2VkKSkgaW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNl
ZCkpIGludDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBpbnQzMl90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg
aW50MzJfdCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQz
Ml90IGhlaWdodCA9IGluZm8tPmhlaWdodDsKICAgIHVpbnQ4X3QgKmRzdF9saW5lLCAqZHN0Owog
ICAgdWludDhfdCAqbWFza19saW5lLCAqbWFzazsKICAgIGludCBkc3Rfc3RyaWRlLCBtYXNrX3N0
cmlkZTsKICAgIGludDMyX3QgdzsKICAgIHVpbnQzMl90IHNyYzsKICAgIHVpbnQ4X3Qgc2E7CiAg
ICBfX202NCB2c3JjLCB2c3JjYTsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9f
c3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0g
ZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAo
aW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDhfdCk7IChkc3RfbGlu
ZSkgPSAoKHVpbnQ4X3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAo
MSkgKiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsg
aW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlk
ZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0cmlk
ZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQ4X3QpOyAo
bWFza19saW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICogKG1h
c2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7CgogICAgc3JjID0gX3BpeG1hbl9p
bWFnZV9nZXRfc29saWQgKGltcCwgc3JjX2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7
CgogICAgc2EgPSBzcmMgPj4gMjQ7CgogICAgaWYgKHNyYyA9PSAwKQogcmV0dXJuOwoKICAgIHZz
cmMgPSBsb2FkODg4OCAoJnNyYyk7CiAgICB2c3JjYSA9IGV4cGFuZF9hbHBoYSAodnNyYyk7Cgog
ICAgd2hpbGUgKGhlaWdodC0tKQogICAgewogZHN0ID0gZHN0X2xpbmU7CiBkc3RfbGluZSArPSBk
c3Rfc3RyaWRlOwogbWFzayA9IG1hc2tfbGluZTsKIG1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsK
IHcgPSB3aWR0aDsKCiB3aGlsZSAodyAmJiAodWludHB0cl90KWRzdCAmIDMpCiB7CiAgICAgdWlu
dDE2X3QgdG1wOwogICAgIHVpbnQxNl90IGE7CiAgICAgdWludDMyX3QgbSwgZDsKICAgICB1aW50
MzJfdCByOwoKICAgICBhID0gKm1hc2srKzsKICAgICBkID0gKmRzdDsKCiAgICAgbSA9ICgodG1w
KSA9IChzYSkgKiAodWludDE2X3QpKGEpICsgMHg4MCwgKCgoKHRtcCkgPj4gOCApICsgKHRtcCkg
KSA+PiA4ICkpOwogICAgIHIgPSAoKHRtcCkgPSAobSkgKyAoZCksICh1aW50MzJfdCkgKHVpbnQ4
X3QpICgodG1wKSB8ICgwIC0gKCh0bXApID4+IDgpKSkpOwoKICAgICAqZHN0KysgPSByOwogICAg
IHctLTsKIH0KCiB3aGlsZSAodyA+PSA0KQogewogICAgIF9fbTY0IHZtYXNrOwogICAgIF9fbTY0
IHZkZXN0OwoKICAgICB2bWFzayA9IGxvYWQ4ODg4dSAoKHVpbnQzMl90ICopbWFzayk7CiAgICAg
dmRlc3QgPSBsb2FkODg4OCAoKHVpbnQzMl90ICopZHN0KTsKCiAgICAgc3RvcmU4ODg4ICgodWlu
dDMyX3QgKilkc3QsIF9tbV9hZGRzX3B1OCAoaW4gKHZzcmNhLCB2bWFzayksIHZkZXN0KSk7Cgog
ICAgIGRzdCArPSA0OwogICAgIG1hc2sgKz0gNDsKICAgICB3IC09IDQ7CiB9Cgogd2hpbGUgKHct
LSkKIHsKICAgICB1aW50MTZfdCB0bXA7CiAgICAgdWludDE2X3QgYTsKICAgICB1aW50MzJfdCBt
LCBkOwogICAgIHVpbnQzMl90IHI7CgogICAgIGEgPSAqbWFzaysrOwogICAgIGQgPSAqZHN0OwoK
ICAgICBtID0gKCh0bXApID0gKHNhKSAqICh1aW50MTZfdCkoYSkgKyAweDgwLCAoKCgodG1wKSA+
PiA4ICkgKyAodG1wKSApID4+IDggKSk7CiAgICAgciA9ICgodG1wKSA9IChtKSArIChkKSwgKHVp
bnQzMl90KSAodWludDhfdCkgKCh0bXApIHwgKDAgLSAoKHRtcCkgPj4gOCkpKSk7CgogICAgICpk
c3QrKyA9IHI7CiB9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhf
Y29tcG9zaXRlX2FkZF84XzggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAg
IHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBw
aXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVf
XygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFn
ZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0g
aW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9
IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5m
by0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+
bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1h
c2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0
X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9f
YXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAg
dWludDhfdCAqZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50OF90ICpzcmNfbGluZSwgKnNyYzsKICAg
IGludCBkc3Rfc3RyaWRlLCBzcmNfc3RyaWRlOwogICAgaW50MzJfdCB3OwogICAgdWludDhfdCBz
LCBkOwogICAgdWludDE2X3QgdDsKCiAgICA7CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187
IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlk
ZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKHNyY19zdHJpZGUpID0gX19zdHJpZGVf
XyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50OF90KTsgKHNy
Y19saW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAoc3JjX3N0cmlkZSkgKiAoc3JjX3kp
ICsgKDEpICogKHNyY194KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNf
XzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0
cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3Ry
aWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDhfdCk7
IChkc3RfbGluZSkgPSAoKHVpbnQ4X3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRl
c3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7CgogICAgd2hpbGUgKGhlaWdodC0t
KQogICAgewogZHN0ID0gZHN0X2xpbmU7CiBkc3RfbGluZSArPSBkc3Rfc3RyaWRlOwogc3JjID0g
c3JjX2xpbmU7CiBzcmNfbGluZSArPSBzcmNfc3RyaWRlOwogdyA9IHdpZHRoOwoKIHdoaWxlICh3
ICYmICh1aW50cHRyX3QpZHN0ICYgNykKIHsKICAgICBzID0gKnNyYzsKICAgICBkID0gKmRzdDsK
ICAgICB0ID0gZCArIHM7CiAgICAgcyA9IHQgfCAoMCAtICh0ID4+IDgpKTsKICAgICAqZHN0ID0g
czsKCiAgICAgZHN0Kys7CiAgICAgc3JjKys7CiAgICAgdy0tOwogfQoKIHdoaWxlICh3ID49IDgp
CiB7CiAgICAgKihfX202NCopZHN0ID0gX21tX2FkZHNfcHU4IChsZHFfdSAoKF9fbTY0ICopc3Jj
KSwgKihfX202NCopZHN0KTsKICAgICBkc3QgKz0gODsKICAgICBzcmMgKz0gODsKICAgICB3IC09
IDg7CiB9Cgogd2hpbGUgKHcpCiB7CiAgICAgcyA9ICpzcmM7CiAgICAgZCA9ICpkc3Q7CiAgICAg
dCA9IGQgKyBzOwogICAgIHMgPSB0IHwgKDAgLSAodCA+PiA4KSk7CiAgICAgKmRzdCA9IHM7Cgog
ICAgIGRzdCsrOwogICAgIHNyYysrOwogICAgIHctLTsKIH0KICAgIH0KCiAgICBfbW1fZW1wdHkg
KCk7Cn0KCnN0YXRpYyB2b2lkCm1teF9jb21wb3NpdGVfYWRkXzA1NjVfMDU2NSAocGl4bWFuX2lt
cGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhtYW5f
Y29tcG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4
bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2lt
YWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNl
ZCkpIHBpeG1hbl9pbWFnZV90ICogbWFza19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRl
c3RfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5z
cmNfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9f
YXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0
dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRy
aWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0
ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhlaWdodCA9IGluZm8tPmhlaWdodDsKICAgIHVpbnQxNl90
ICpkc3RfbGluZSwgKmRzdDsKICAgIHVpbnQzMl90IGQ7CiAgICB1aW50MTZfdCAqc3JjX2xpbmUs
ICpzcmM7CiAgICB1aW50MzJfdCBzOwogICAgaW50IGRzdF9zdHJpZGUsIHNyY19zdHJpZGU7CiAg
ICBpbnQzMl90IHc7CgogICAgOwoKICAgIGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19z
dHJpZGVfXzsgX19iaXRzX18gPSBzcmNfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IHNy
Y19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChzcmNfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50
KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDE2X3QpOyAoc3JjX2xpbmUp
ID0gKCh1aW50MTZfdCAqKSBfX2JpdHNfXykgKyAoc3JjX3N0cmlkZSkgKiAoc3JjX3kpICsgKDEp
ICogKHNyY194KTsgfSB3aGlsZSAoMCk7CiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50
IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9f
ID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18g
KiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDE2X3QpOyAoZHN0
X2xpbmUpID0gKCh1aW50MTZfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95
KSArICgxKSAqIChkZXN0X3gpOyB9IHdoaWxlICgwKTsKCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAg
ICB7CiBkc3QgPSBkc3RfbGluZTsKIGRzdF9saW5lICs9IGRzdF9zdHJpZGU7CiBzcmMgPSBzcmNf
bGluZTsKIHNyY19saW5lICs9IHNyY19zdHJpZGU7CiB3ID0gd2lkdGg7Cgogd2hpbGUgKHcgJiYg
KHVpbnRwdHJfdClkc3QgJiA3KQogewogICAgIHMgPSAqc3JjKys7CiAgICAgaWYgKHMpCiAgICAg
ewogIGQgPSAqZHN0OwogIHMgPSBjb252ZXJ0XzA1NjVfdG9fODg4OCAocyk7CiAgaWYgKGQpCiAg
ewogICAgICBkID0gY29udmVydF8wNTY1X3RvXzg4ODggKGQpOwogICAgICBkbyB7IHVpbnQzMl90
IHIxX18sIHIyX18sIHIzX18sIHRfXzsgcjFfXyA9IChzKSAmIDB4ZmYwMGZmOyByMl9fID0gKGQp
ICYgMHhmZjAwZmY7IGRvIHsgdF9fID0gKChyMV9fKSArIChyMl9fKSk7IHRfXyB8PSAweDEwMDAw
MTAwIC0gKCh0X18gPj4gOCkgJiAweGZmMDBmZik7IHIxX18gPSAodF9fICYgMHhmZjAwZmYpOyB9
IHdoaWxlICgwKTsgcjJfXyA9ICgocykgPj4gOCkgJiAweGZmMDBmZjsgcjNfXyA9ICgoZCkgPj4g
OCkgJiAweGZmMDBmZjsgZG8geyB0X18gPSAoKHIyX18pICsgKHIzX18pKTsgdF9fIHw9IDB4MTAw
MDAxMDAgLSAoKHRfXyA+PiA4KSAmIDB4ZmYwMGZmKTsgcjJfXyA9ICh0X18gJiAweGZmMDBmZik7
IH0gd2hpbGUgKDApOyBzID0gcjFfXyB8IChyMl9fIDw8IDgpOyB9IHdoaWxlICgwKTsKICB9CiAg
KmRzdCA9IGNvbnZlcnRfODg4OF90b18wNTY1IChzKTsKICAgICB9CiAgICAgZHN0Kys7CiAgICAg
dy0tOwogfQoKIHdoaWxlICh3ID49IDQpCiB7CiAgICAgX19tNjQgdmRlc3QgPSAqKF9fbTY0ICop
ZHN0OwogICAgIF9fbTY0IHZzcmMgPSBsZHFfdSAoKF9fbTY0ICopc3JjKTsKICAgICBfX202NCB2
ZDAsIHZkMTsKICAgICBfX202NCB2czAsIHZzMTsKCiAgICAgZXhwYW5kXzR4cGFja2VkNTY1ICh2
ZGVzdCwgJnZkMCwgJnZkMSwgMCk7CiAgICAgZXhwYW5kXzR4cGFja2VkNTY1ICh2c3JjLCAmdnMw
LCAmdnMxLCAwKTsKCiAgICAgdmQwID0gX21tX2FkZHNfcHU4ICh2ZDAsIHZzMCk7CiAgICAgdmQx
ID0gX21tX2FkZHNfcHU4ICh2ZDEsIHZzMSk7CgogICAgICooX19tNjQgKilkc3QgPSBwYWNrXzR4
cGFja2VkNTY1ICh2ZDAsIHZkMSk7CgogICAgIGRzdCArPSA0OwogICAgIHNyYyArPSA0OwogICAg
IHcgLT0gNDsKIH0KCiB3aGlsZSAody0tKQogewogICAgIHMgPSAqc3JjKys7CiAgICAgaWYgKHMp
CiAgICAgewogIGQgPSAqZHN0OwogIHMgPSBjb252ZXJ0XzA1NjVfdG9fODg4OCAocyk7CiAgaWYg
KGQpCiAgewogICAgICBkID0gY29udmVydF8wNTY1X3RvXzg4ODggKGQpOwogICAgICBkbyB7IHVp
bnQzMl90IHIxX18sIHIyX18sIHIzX18sIHRfXzsgcjFfXyA9IChzKSAmIDB4ZmYwMGZmOyByMl9f
ID0gKGQpICYgMHhmZjAwZmY7IGRvIHsgdF9fID0gKChyMV9fKSArIChyMl9fKSk7IHRfXyB8PSAw
eDEwMDAwMTAwIC0gKCh0X18gPj4gOCkgJiAweGZmMDBmZik7IHIxX18gPSAodF9fICYgMHhmZjAw
ZmYpOyB9IHdoaWxlICgwKTsgcjJfXyA9ICgocykgPj4gOCkgJiAweGZmMDBmZjsgcjNfXyA9ICgo
ZCkgPj4gOCkgJiAweGZmMDBmZjsgZG8geyB0X18gPSAoKHIyX18pICsgKHIzX18pKTsgdF9fIHw9
IDB4MTAwMDAxMDAgLSAoKHRfXyA+PiA4KSAmIDB4ZmYwMGZmKTsgcjJfXyA9ICh0X18gJiAweGZm
MDBmZik7IH0gd2hpbGUgKDApOyBzID0gcjFfXyB8IChyMl9fIDw8IDgpOyB9IHdoaWxlICgwKTsK
ICB9CiAgKmRzdCA9IGNvbnZlcnRfODg4OF90b18wNTY1IChzKTsKICAgICB9CiAgICAgZHN0Kys7
CiB9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CgpzdGF0aWMgdm9pZAptbXhfY29tcG9zaXRl
X2FkZF84ODg4Xzg4ODggKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pCnsKICAgIF9f
YXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmli
dXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2lt
YWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2Ug
PSBpbmZvLT5tYXNrX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2Vf
dCAqIGRlc3RfaW1hZ2UgPSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBpbnQzMl90IHNyY194ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGlu
dDMyX3Qgc3JjX3kgPSBpbmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJf
dCBtYXNrX3ggPSBpbmZvLT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qg
bWFza195ID0gaW5mby0+bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRl
c3RfeCA9IGluZm8tPmRlc3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0
X3kgPSBpbmZvLT5kZXN0X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGgg
PSBpbmZvLT53aWR0aDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBp
bmZvLT5oZWlnaHQ7CiAgICB1aW50MzJfdCAqZHN0X2xpbmUsICpkc3Q7CiAgICB1aW50MzJfdCAq
c3JjX2xpbmUsICpzcmM7CiAgICBpbnQgZHN0X3N0cmlkZSwgc3JjX3N0cmlkZTsKICAgIGludDMy
X3QgdzsKCiAgICA7CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9f
OyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gc3JjX2ltYWdl
LT5iaXRzLnJvd3N0cmlkZTsgKHNyY19zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVv
ZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChzcmNfbGluZSkgPSAoKHVp
bnQzMl90ICopIF9fYml0c19fKSArIChzcmNfc3RyaWRlKSAqIChzcmNfeSkgKyAoMSkgKiAoc3Jj
X3gpOyB9IHdoaWxlICgwKTsKICAgIGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJp
ZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBkZXN0
X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRzdF9zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQp
IHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChkc3RfbGluZSkg
PSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChkc3Rfc3RyaWRlKSAqIChkZXN0X3kpICsgKDEp
ICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOwoKICAgIHdoaWxlIChoZWlnaHQtLSkKICAgIHsKIGRz
dCA9IGRzdF9saW5lOwogZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsKIHNyYyA9IHNyY19saW5lOwog
c3JjX2xpbmUgKz0gc3JjX3N0cmlkZTsKIHcgPSB3aWR0aDsKCiB3aGlsZSAodyAmJiAodWludHB0
cl90KWRzdCAmIDcpCiB7CiAgICAgc3RvcmUgKGRzdCwgX21tX2FkZHNfcHU4IChsb2FkICgoY29u
c3QgdWludDMyX3QgKilzcmMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZCAo
KGNvbnN0IHVpbnQzMl90ICopZHN0KSkpOwogICAgIGRzdCsrOwogICAgIHNyYysrOwogICAgIHct
LTsKIH0KCiB3aGlsZSAodyA+PSAyKQogewogICAgICooX19tNjQgKilkc3QgPSBfbW1fYWRkc19w
dTggKGxkcV91ICgoX19tNjQgKilzcmMpLCAqKF9fbTY0Kilkc3QpOwogICAgIGRzdCArPSAyOwog
ICAgIHNyYyArPSAyOwogICAgIHcgLT0gMjsKIH0KCiBpZiAodykKIHsKICAgICBzdG9yZSAoZHN0
LCBfbW1fYWRkc19wdTggKGxvYWQgKChjb25zdCB1aW50MzJfdCAqKXNyYyksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2FkICgoY29uc3QgdWludDMyX3QgKilkc3QpKSk7CgogfQog
ICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHBpeG1hbl9ib29sX3QKbW14X2JsdCAo
cGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwKICAgICAgICAgdWludDMyX3QgKiBzcmNfYml0
cywKICAgICAgICAgdWludDMyX3QgKiBkc3RfYml0cywKICAgICAgICAgaW50IHNyY19zdHJpZGUs
CiAgICAgICAgIGludCBkc3Rfc3RyaWRlLAogICAgICAgICBpbnQgc3JjX2JwcCwKICAgICAgICAg
aW50IGRzdF9icHAsCiAgICAgICAgIGludCBzcmNfeCwKICAgICAgICAgaW50IHNyY195LAogICAg
ICAgICBpbnQgZGVzdF94LAogICAgICAgICBpbnQgZGVzdF95LAogICAgICAgICBpbnQgd2lkdGgs
CiAgICAgICAgIGludCBoZWlnaHQpCnsKICAgIHVpbnQ4X3QgKiBzcmNfYnl0ZXM7CiAgICB1aW50
OF90ICogZHN0X2J5dGVzOwogICAgaW50IGJ5dGVfd2lkdGg7CgogICAgaWYgKHNyY19icHAgIT0g
ZHN0X2JwcCkKIHJldHVybiAwOwoKICAgIGlmIChzcmNfYnBwID09IDE2KQogICAgewogc3JjX3N0
cmlkZSA9IHNyY19zdHJpZGUgKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIDI7CiBkc3Rfc3Ry
aWRlID0gZHN0X3N0cmlkZSAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gMjsKIHNyY19ieXRl
cyA9ICh1aW50OF90ICopKCgodWludDE2X3QgKilzcmNfYml0cykgKyBzcmNfc3RyaWRlICogKHNy
Y195KSArIChzcmNfeCkpOwogZHN0X2J5dGVzID0gKHVpbnQ4X3QgKikoKCh1aW50MTZfdCAqKWRz
dF9iaXRzKSArIGRzdF9zdHJpZGUgKiAoZGVzdF95KSArIChkZXN0X3gpKTsKIGJ5dGVfd2lkdGgg
PSAyICogd2lkdGg7CiBzcmNfc3RyaWRlICo9IDI7CiBkc3Rfc3RyaWRlICo9IDI7CiAgICB9CiAg
ICBlbHNlIGlmIChzcmNfYnBwID09IDMyKQogICAgewogc3JjX3N0cmlkZSA9IHNyY19zdHJpZGUg
KiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIDQ7CiBkc3Rfc3RyaWRlID0gZHN0X3N0cmlkZSAq
IChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gNDsKIHNyY19ieXRlcyA9ICh1aW50OF90ICopKCgo
dWludDMyX3QgKilzcmNfYml0cykgKyBzcmNfc3RyaWRlICogKHNyY195KSArIChzcmNfeCkpOwog
ZHN0X2J5dGVzID0gKHVpbnQ4X3QgKikoKCh1aW50MzJfdCAqKWRzdF9iaXRzKSArIGRzdF9zdHJp
ZGUgKiAoZGVzdF95KSArIChkZXN0X3gpKTsKIGJ5dGVfd2lkdGggPSA0ICogd2lkdGg7CiBzcmNf
c3RyaWRlICo9IDQ7CiBkc3Rfc3RyaWRlICo9IDQ7CiAgICB9CiAgICBlbHNlCiAgICB7CiByZXR1
cm4gMDsKICAgIH0KCiAgICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CiBpbnQgdzsKIHVpbnQ4X3Qg
KnMgPSBzcmNfYnl0ZXM7CiB1aW50OF90ICpkID0gZHN0X2J5dGVzOwogc3JjX2J5dGVzICs9IHNy
Y19zdHJpZGU7CiBkc3RfYnl0ZXMgKz0gZHN0X3N0cmlkZTsKIHcgPSBieXRlX3dpZHRoOwoKIGlm
ICh3ID49IDEgJiYgKCh1aW50cHRyX3QpZCAmIDEpKQogewogICAgICoodWludDhfdCAqKWQgPSAq
KHVpbnQ4X3QgKilzOwogICAgIHcgLT0gMTsKICAgICBzICs9IDE7CiAgICAgZCArPSAxOwogfQoK
IGlmICh3ID49IDIgJiYgKCh1aW50cHRyX3QpZCAmIDMpKQogewogICAgICoodWludDE2X3QgKilk
ID0gKih1aW50MTZfdCAqKXM7CiAgICAgdyAtPSAyOwogICAgIHMgKz0gMjsKICAgICBkICs9IDI7
CiB9Cgogd2hpbGUgKHcgPj0gNCAmJiAoKHVpbnRwdHJfdClkICYgNykpCiB7CiAgICAgKih1aW50
MzJfdCAqKWQgPSBsZGxfdSAoKHVpbnQzMl90ICopcyk7CgogICAgIHcgLT0gNDsKICAgICBzICs9
IDQ7CiAgICAgZCArPSA0OwogfQoKIHdoaWxlICh3ID49IDY0KQogewojIDMzNzIgIi9ob21lL3Bp
L3dlYmtpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXNHVEsvU291cmNlL3BpeG1hbi0wLjMyLjYv
cGl4bWFuL3BpeG1hbi1tbXguYyIKICAgICBfX202NCB2MCA9IGxkcV91ICgoX19tNjQgKikocyAr
IDApKTsKICAgICBfX202NCB2MSA9IGxkcV91ICgoX19tNjQgKikocyArIDgpKTsKICAgICBfX202
NCB2MiA9IGxkcV91ICgoX19tNjQgKikocyArIDE2KSk7CiAgICAgX19tNjQgdjMgPSBsZHFfdSAo
KF9fbTY0ICopKHMgKyAyNCkpOwogICAgIF9fbTY0IHY0ID0gbGRxX3UgKChfX202NCAqKShzICsg
MzIpKTsKICAgICBfX202NCB2NSA9IGxkcV91ICgoX19tNjQgKikocyArIDQwKSk7CiAgICAgX19t
NjQgdjYgPSBsZHFfdSAoKF9fbTY0ICopKHMgKyA0OCkpOwogICAgIF9fbTY0IHY3ID0gbGRxX3Ug
KChfX202NCAqKShzICsgNTYpKTsKICAgICAqKF9fbTY0ICopKGQgKyAwKSA9IHYwOwogICAgICoo
X19tNjQgKikoZCArIDgpID0gdjE7CiAgICAgKihfX202NCAqKShkICsgMTYpID0gdjI7CiAgICAg
KihfX202NCAqKShkICsgMjQpID0gdjM7CiAgICAgKihfX202NCAqKShkICsgMzIpID0gdjQ7CiAg
ICAgKihfX202NCAqKShkICsgNDApID0gdjU7CiAgICAgKihfX202NCAqKShkICsgNDgpID0gdjY7
CiAgICAgKihfX202NCAqKShkICsgNTYpID0gdjc7CgoKICAgICB3IC09IDY0OwogICAgIHMgKz0g
NjQ7CiAgICAgZCArPSA2NDsKIH0KIHdoaWxlICh3ID49IDQpCiB7CiAgICAgKih1aW50MzJfdCAq
KWQgPSBsZGxfdSAoKHVpbnQzMl90ICopcyk7CgogICAgIHcgLT0gNDsKICAgICBzICs9IDQ7CiAg
ICAgZCArPSA0OwogfQogaWYgKHcgPj0gMikKIHsKICAgICAqKHVpbnQxNl90ICopZCA9ICoodWlu
dDE2X3QgKilzOwogICAgIHcgLT0gMjsKICAgICBzICs9IDI7CiAgICAgZCArPSAyOwogfQogICAg
fQoKICAgIF9tbV9lbXB0eSAoKTsKCiAgICByZXR1cm4gMTsKfQoKc3RhdGljIHZvaWQKbW14X2Nv
bXBvc2l0ZV9jb3B5X2FyZWEgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsCiAgICAgICAg
ICAgICAgICAgICAgICAgICBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykKewogICAgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsgX19hdHRyaWJ1
dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5zcmNfaW1h
Z2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFza19pbWFnZSA9
IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90
ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBt
YXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVz
dF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3Rf
eSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCB3aWR0aCA9
IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhlaWdodCA9IGlu
Zm8tPmhlaWdodDsKCiAgICBtbXhfYmx0IChpbXAsIHNyY19pbWFnZS0+Yml0cy5iaXRzLAogICAg
ICBkZXN0X2ltYWdlLT5iaXRzLmJpdHMsCiAgICAgIHNyY19pbWFnZS0+Yml0cy5yb3dzdHJpZGUs
CiAgICAgIGRlc3RfaW1hZ2UtPmJpdHMucm93c3RyaWRlLAogICAgICAoKChzcmNfaW1hZ2UtPmJp
dHMuZm9ybWF0KSA+PiAyNCkgKSwKICAgICAgKCgoZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpID4+
IDI0KSApLAogICAgICBzcmNfeCwgc3JjX3ksIGRlc3RfeCwgZGVzdF95LCB3aWR0aCwgaGVpZ2h0
KTsKfQoKc3RhdGljIHZvaWQKbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfOF84ODg4IChwaXhtYW5f
aW1wbGVtZW50YXRpb25fdCAqaW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBp
eG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXht
YW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5m
by0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGlu
Zm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+
c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFz
a194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tf
eTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7
IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAgdWlu
dDMyX3QgKnNyYywgKnNyY19saW5lOwogICAgdWludDMyX3QgKmRzdCwgKmRzdF9saW5lOwogICAg
dWludDhfdCAqbWFzaywgKm1hc2tfbGluZTsKICAgIGludCBzcmNfc3RyaWRlLCBtYXNrX3N0cmlk
ZSwgZHN0X3N0cmlkZTsKICAgIGludDMyX3QgdzsKCiAgICBkbyB7IHVpbnQzMl90ICpfX2JpdHNf
XzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0
cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3Ry
aWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3Qp
OyAoZHN0X2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAo
ZGVzdF95KSArICgxKSAqIChkZXN0X3gpOyB9IHdoaWxlICgwKTsKICAgIGRvIHsgdWludDMyX3Qg
Kl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBtYXNrX2ltYWdlLT5iaXRzLmJp
dHM7IF9fc3RyaWRlX18gPSBtYXNrX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKG1hc2tfc3RyaWRl
KSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAo
dWludDhfdCk7IChtYXNrX2xpbmUpID0gKCh1aW50OF90ICopIF9fYml0c19fKSArIChtYXNrX3N0
cmlkZSkgKiAobWFza195KSArICgxKSAqIChtYXNrX3gpOyB9IHdoaWxlICgwKTsKICAgIGRvIHsg
dWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBzcmNfaW1hZ2Ut
PmJpdHMuYml0czsgX19zdHJpZGVfXyA9IHNyY19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChzcmNf
c3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNp
emVvZiAodWludDMyX3QpOyAoc3JjX2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAo
c3JjX3N0cmlkZSkgKiAoc3JjX3kpICsgKDEpICogKHNyY194KTsgfSB3aGlsZSAoMCk7CgogICAg
d2hpbGUgKGhlaWdodC0tKQogICAgewogc3JjID0gc3JjX2xpbmU7CiBzcmNfbGluZSArPSBzcmNf
c3RyaWRlOwogZHN0ID0gZHN0X2xpbmU7CiBkc3RfbGluZSArPSBkc3Rfc3RyaWRlOwogbWFzayA9
IG1hc2tfbGluZTsKIG1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsKCiB3ID0gd2lkdGg7Cgogd2hp
bGUgKHctLSkKIHsKICAgICB1aW50NjRfdCBtID0gKm1hc2s7CgogICAgIGlmIChtKQogICAgIHsK
ICB1aW50MzJfdCBzc3JjID0gKnNyYyB8IDB4ZmYwMDAwMDA7CiAgX19tNjQgcyA9IGxvYWQ4ODg4
ICgmc3NyYyk7CgogIGlmIChtID09IDB4ZmYpCiAgewogICAgICBzdG9yZTg4ODggKGRzdCwgcyk7
CiAgfQogIGVsc2UKICB7CiAgICAgIF9fbTY0IHNhID0gZXhwYW5kX2FscGhhIChzKTsKICAgICAg
X19tNjQgdm0gPSBleHBhbmRfYWxwaGFfcmV2ICh0b19tNjQgKG0pKTsKICAgICAgX19tNjQgdmRl
c3QgPSBpbl9vdmVyIChzLCBzYSwgdm0sIGxvYWQ4ODg4IChkc3QpKTsKCiAgICAgIHN0b3JlODg4
OCAoZHN0LCB2ZGVzdCk7CiAgfQogICAgIH0KCiAgICAgbWFzaysrOwogICAgIGRzdCsrOwogICAg
IHNyYysrOwogfQogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQKbW14X2Nv
bXBvc2l0ZV9vdmVyX3JldmVyc2Vfbl84ODg4IChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1w
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeG1hbl9jb21wb3NpdGVfaW5m
b190ICppbmZvKQp7CiAgICBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9
IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19p
bWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2lt
YWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51
c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJp
YnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRl
X18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVu
dXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OwogICAgdWludDMyX3Qgc3JjOwogICAgdWlu
dDMyX3QgKmRzdF9saW5lLCAqZHN0OwogICAgaW50MzJfdCB3OwogICAgaW50IGRzdF9zdHJpZGU7
CiAgICBfX202NCB2c3JjOwoKICAgIDsKCiAgICBzcmMgPSBfcGl4bWFuX2ltYWdlX2dldF9zb2xp
ZCAoaW1wLCBzcmNfaW1hZ2UsIGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsKCiAgICBpZiAoc3Jj
ID09IDApCiByZXR1cm47CgogICAgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlk
ZV9fOyBfX2JpdHNfXyA9IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3Rf
aW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkg
c2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKGRzdF9saW5lKSA9
ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkg
KiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7CgogICAgdnNyYyA9IGxvYWQ4ODg4ICgmc3JjKTsKCiAg
ICB3aGlsZSAoaGVpZ2h0LS0pCiAgICB7CiBkc3QgPSBkc3RfbGluZTsKIGRzdF9saW5lICs9IGRz
dF9zdHJpZGU7CiB3ID0gd2lkdGg7CgogOwoKIHdoaWxlICh3ICYmICh1aW50cHRyX3QpZHN0ICYg
NykKIHsKICAgICBfX202NCB2ZGVzdCA9IGxvYWQ4ODg4IChkc3QpOwoKICAgICBzdG9yZTg4ODgg
KGRzdCwgb3ZlciAodmRlc3QsIGV4cGFuZF9hbHBoYSAodmRlc3QpLCB2c3JjKSk7CgogICAgIHct
LTsKICAgICBkc3QrKzsKIH0KCiB3aGlsZSAodyA+PSAyKQogewogICAgIF9fbTY0IHZkZXN0ID0g
KihfX202NCAqKWRzdDsKICAgICBfX202NCBkZXN0MCA9IGV4cGFuZDg4ODggKHZkZXN0LCAwKTsK
ICAgICBfX202NCBkZXN0MSA9IGV4cGFuZDg4ODggKHZkZXN0LCAxKTsKCgogICAgIGRlc3QwID0g
b3ZlciAoZGVzdDAsIGV4cGFuZF9hbHBoYSAoZGVzdDApLCB2c3JjKTsKICAgICBkZXN0MSA9IG92
ZXIgKGRlc3QxLCBleHBhbmRfYWxwaGEgKGRlc3QxKSwgdnNyYyk7CgogICAgICooX19tNjQgKilk
c3QgPSBwYWNrODg4OCAoZGVzdDAsIGRlc3QxKTsKCiAgICAgZHN0ICs9IDI7CiAgICAgdyAtPSAy
OwogfQoKIDsKCiBpZiAodykKIHsKICAgICBfX202NCB2ZGVzdCA9IGxvYWQ4ODg4IChkc3QpOwoK
ICAgICBzdG9yZTg4ODggKGRzdCwgb3ZlciAodmRlc3QsIGV4cGFuZF9hbHBoYSAodmRlc3QpLCB2
c3JjKSk7CiB9CiAgICB9CgogICAgX21tX2VtcHR5ICgpOwp9CiMgMzYwNyAiL2hvbWUvcGkvd2Vi
a2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dUSy9Tb3VyY2UvcGl4bWFuLTAuMzIuNi9waXht
YW4vcGl4bWFuLW1teC5jIgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkCnNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4
X1NSQyAodWludDMyX3QgKiBkc3QsCiAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAg
ICAgICAgY29uc3QgdWludDMyX3QgKiBzcmNfdG9wLAogICAgICAgICBjb25zdCB1aW50MzJfdCAq
IHNyY19ib3R0b20sCiAgICAgICAgIGludDMyX3QgdywKICAgICAgICAgaW50IHd0LAogICAgICAg
ICBpbnQgd2IsCiAgICAgICAgIHBpeG1hbl9maXhlZF90IHZ4LAogICAgICAgICBwaXhtYW5fZml4
ZWRfdCB1bml0X3gsCiAgICAgICAgIHBpeG1hbl9maXhlZF90IG1heF92eCwKICAgICAgICAgcGl4
bWFuX2Jvb2xfdCB6ZXJvX3NyYykKewogICAgY29uc3QgX19tNjQgbW1fd3QgPSBfbW1fc2V0X3Bp
MTYgKHd0LCB3dCwgd3QsIHd0KTsgY29uc3QgX19tNjQgbW1fd2IgPSBfbW1fc2V0X3BpMTYgKHdi
LCB3Yiwgd2IsIHdiKTsgY29uc3QgX19tNjQgbW1fYWRkYzcgPSBfbW1fc2V0X3BpMTYgKDAsIDEs
IDAsIDEpOyBjb25zdCBfX202NCBtbV94b3JjNyA9IF9tbV9zZXRfcGkxNiAoMCwgKCgoMSA8PCA3
KSkgLSAxKSwgMCwgKCgoMSA8PCA3KSkgLSAxKSk7IGNvbnN0IF9fbTY0IG1tX3V4ID0gX21tX3Nl
dF9waTE2ICh1bml0X3gsIHVuaXRfeCwgdW5pdF94LCB1bml0X3gpOyBjb25zdCBfX202NCBtbV96
ZXJvID0gX21tX3NldHplcm9fc2k2NCAoKTsgX19tNjQgbW1feCA9IF9tbV9zZXRfcGkxNiAodngs
IHZ4LCB2eCwgdngpOwogICAgX19tNjQgcGl4OwoKICAgIHdoaWxlICh3LS0pCiAgICB7CiBkbyB7
IF9fbTY0IHQgPSBsZHFfdSAoKF9fbTY0ICopJnNyY190b3AgWygoaW50KSAoKHZ4KSA+PiAxNikp
XSk7IF9fbTY0IGIgPSBsZHFfdSAoKF9fbTY0ICopJnNyY19ib3R0b20gWygoaW50KSAoKHZ4KSA+
PiAxNikpXSk7IF9fbTY0IHRfaGkgPSBfbW1fbXVsbG9fcGkxNiAoX21tX3VucGFja2hpX3BpOCAo
dCwgbW1femVybyksIG1tX3d0KTsgX19tNjQgdF9sbyA9IF9tbV9tdWxsb19waTE2IChfbW1fdW5w
YWNrbG9fcGk4ICh0LCBtbV96ZXJvKSwgbW1fd3QpOyBfX202NCBiX2hpID0gX21tX211bGxvX3Bp
MTYgKF9tbV91bnBhY2toaV9waTggKGIsIG1tX3plcm8pLCBtbV93Yik7IF9fbTY0IGJfbG8gPSBf
bW1fbXVsbG9fcGkxNiAoX21tX3VucGFja2xvX3BpOCAoYiwgbW1femVybyksIG1tX3diKTsgX19t
NjQgaGkgPSBfbW1fYWRkX3BpMTYgKHRfaGksIGJfaGkpOyBfX202NCBsbyA9IF9tbV9hZGRfcGkx
NiAodF9sbywgYl9sbyk7IF9fbTY0IG1tX3doID0gX21tX2FkZF9waTE2IChtbV9hZGRjNywgX21t
X3hvcl9zaTY0IChtbV94b3JjNywgX21tX3NybGlfcGkxNiAobW1feCwgMTYgLSA3KSkpOyBfX202
NCBwID0gX21tX3VucGFja2xvX3BpMTYgKGxvLCBoaSk7IF9fbTY0IHEgPSBfbW1fdW5wYWNraGlf
cGkxNiAobG8sIGhpKTsgdnggKz0gdW5pdF94OyBsbyA9IF9tbV9tYWRkX3BpMTYgKHAsIG1tX3do
KTsgaGkgPSBfbW1fbWFkZF9waTE2IChxLCBtbV93aCk7IG1tX3ggPSBfbW1fYWRkX3BpMTYgKG1t
X3gsIG1tX3V4KTsgaGkgPSBfbW1fc3JsaV9waTMyIChoaSwgNyAqIDIpOyBsbyA9IF9tbV9zcmxp
X3BpMzIgKGxvLCA3ICogMik7IGxvID0gX21tX3BhY2tzX3BpMzIgKGxvLCBoaSk7IGxvID0gX21t
X3BhY2tzX3B1MTYgKGxvLCBsbyk7IHBpeCA9IGxvOyB9IHdoaWxlICgwKTsKIHN0b3JlIChkc3Qs
IHBpeCk7CiBkc3QrKzsKICAgIH0KCiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRpYyB2b2lkIGZh
c3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4X2NvdmVyX1NSQyAocGl4
bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8p
IHsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5z
cmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFza19p
bWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9p
bWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVu
dXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCB3
aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhlaWdo
dCA9IGluZm8tPmhlaWdodDsgdWludDMyX3QgKmRzdF9saW5lOyB1aW50MzJfdCAqbWFza19saW5l
OyB1aW50MzJfdCAqc3JjX2ZpcnN0X2xpbmU7IGludCB5MSwgeTI7IHBpeG1hbl9maXhlZF90IG1h
eF92eCA9ICgyMTQ3NDgzNjQ3KTsgcGl4bWFuX3ZlY3Rvcl90IHY7IHBpeG1hbl9maXhlZF90IHZ4
LCB2eTsgcGl4bWFuX2ZpeGVkX3QgdW5pdF94LCB1bml0X3k7IGludDMyX3QgbGVmdF9wYWQsIGxl
ZnRfdHosIHJpZ2h0X3R6LCByaWdodF9wYWQ7IHVpbnQzMl90ICpkc3Q7IHVpbnQzMl90IHNvbGlk
X21hc2s7IGNvbnN0IHVpbnQzMl90ICptYXNrID0gJnNvbGlkX21hc2s7IGludCBzcmNfc3RyaWRl
LCBtYXNrX3N0cmlkZSwgZHN0X3N0cmlkZTsgaW50IHNyY193aWR0aDsgcGl4bWFuX2ZpeGVkX3Qg
c3JjX3dpZHRoX2ZpeGVkOyBpbnQgbWF4X3g7IHBpeG1hbl9ib29sX3QgbmVlZF9zcmNfZXh0ZW5z
aW9uOyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0g
ZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dz
dHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90
KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoZHN0X2xpbmUpID0gKCh1aW50MzJfdCAqKSBf
X2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgxKSAqIChkZXN0X3gpOyB9IHdo
aWxlICgwKTsgaWYgKCgwKSAmICgxIDw8IDEpKSB7IHNvbGlkX21hc2sgPSBfcGl4bWFuX2ltYWdl
X2dldF9zb2xpZCAoaW1wLCBtYXNrX2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7IG1h
c2tfc3RyaWRlID0gMDsgfSBlbHNlIGlmICgoMCkgJiAoMSA8PCAyKSkgeyBkbyB7IHVpbnQzMl90
ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5i
aXRzOyBfX3N0cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlk
ZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2Yg
KHVpbnQzMl90KTsgKG1hc2tfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChtYXNr
X3N0cmlkZSkgKiAobWFza195KSArICgxKSAqIChtYXNrX3gpOyB9IHdoaWxlICgwKTsgfSBkbyB7
IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gc3JjX2ltYWdl
LT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBzcmNfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoc3Jj
X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBz
aXplb2YgKHVpbnQzMl90KTsgKHNyY19maXJzdF9saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRz
X18pICsgKHNyY19zdHJpZGUpICogKDApICsgKDEpICogKDApOyB9IHdoaWxlICgwKTsgdi52ZWN0
b3JbMF0gPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY194KSA8PCAxNikpICsgKCgocGl4bWFuX2Zp
eGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsxXSA9ICgocGl4bWFuX2ZpeGVkX3Qp
ICgoc3JjX3kpIDw8IDE2KSkgKyAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7
IHYudmVjdG9yWzJdID0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSk7IGlmICghcGl4
bWFuX3RyYW5zZm9ybV9wb2ludF8zZCAoc3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3JtLCAmdikp
IHJldHVybjsgdW5pdF94ID0gc3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3JtLT5tYXRyaXhbMF1b
MF07IHVuaXRfeSA9IHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzFdWzFdOyB2
LnZlY3RvclswXSAtPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHYudmVj
dG9yWzFdIC09ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdnkgPSB2LnZl
Y3RvclsxXTsgaWYgKC0xID09IFBJWE1BTl9SRVBFQVRfUEFEIHx8IC0xID09IFBJWE1BTl9SRVBF
QVRfTk9ORSkgeyBiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9zY2FubGluZV9ib3VuZHMgKHNyY19p
bWFnZS0+Yml0cy53aWR0aCwgdi52ZWN0b3JbMF0sIHVuaXRfeCwgJmxlZnRfcGFkLCAmbGVmdF90
eiwgJndpZHRoLCAmcmlnaHRfdHosICZyaWdodF9wYWQpOyBpZiAoLTEgPT0gUElYTUFOX1JFUEVB
VF9QQUQpIHsgbGVmdF9wYWQgKz0gbGVmdF90ejsgcmlnaHRfcGFkICs9IHJpZ2h0X3R6OyBsZWZ0
X3R6ID0gcmlnaHRfdHogPSAwOyB9IHYudmVjdG9yWzBdICs9IGxlZnRfcGFkICogdW5pdF94OyB9
IGlmICgtMSA9PSBQSVhNQU5fUkVQRUFUX05PUk1BTCkgeyB2eCA9IHYudmVjdG9yWzBdOyByZXBl
YXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX2lt
YWdlLT5iaXRzLndpZHRoKSA8PCAxNikpKTsgbWF4X3ggPSAoKGludCkgKCh2eCArICh3aWR0aCAt
IDEpICogKGludDY0X3QpdW5pdF94KSA+PiAxNikpICsgMTsgaWYgKHNyY19pbWFnZS0+Yml0cy53
aWR0aCA8IDY0KSB7IHNyY193aWR0aCA9IDA7IHdoaWxlIChzcmNfd2lkdGggPCA2NCAmJiBzcmNf
d2lkdGggPD0gbWF4X3gpIHNyY193aWR0aCArPSBzcmNfaW1hZ2UtPmJpdHMud2lkdGg7IG5lZWRf
c3JjX2V4dGVuc2lvbiA9IDE7IH0gZWxzZSB7IHNyY193aWR0aCA9IHNyY19pbWFnZS0+Yml0cy53
aWR0aDsgbmVlZF9zcmNfZXh0ZW5zaW9uID0gMDsgfSBzcmNfd2lkdGhfZml4ZWQgPSAoKHBpeG1h
bl9maXhlZF90KSAoKHNyY193aWR0aCkgPDwgMTYpKTsgfSB3aGlsZSAoLS1oZWlnaHQgPj0gMCkg
eyBpbnQgd2VpZ2h0MSwgd2VpZ2h0MjsgZHN0ID0gZHN0X2xpbmU7IGRzdF9saW5lICs9IGRzdF9z
dHJpZGU7IHZ4ID0gdi52ZWN0b3JbMF07IGlmICgoMCkgJiAoMSA8PCAyKSkgeyBtYXNrID0gbWFz
a19saW5lOyBtYXNrX2xpbmUgKz0gbWFza19zdHJpZGU7IH0geTEgPSAoKGludCkgKCh2eSkgPj4g
MTYpKTsgd2VpZ2h0MiA9IHBpeG1hbl9maXhlZF90b19iaWxpbmVhcl93ZWlnaHQgKHZ5KTsgaWYg
KHdlaWdodDIpIHsgeTIgPSB5MSArIDE7IHdlaWdodDEgPSAoMSA8PCA3KSAtIHdlaWdodDI7IH0g
ZWxzZSB7IHkyID0geTE7IHdlaWdodDEgPSB3ZWlnaHQyID0gKDEgPDwgNykgLyAyOyB9IHZ5ICs9
IHVuaXRfeTsgaWYgKC0xID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IHVpbnQzMl90ICpzcmMxLCAq
c3JjMjsgdWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgcmVwZWF0IChQSVhNQU5f
UkVQRUFUX1BBRCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5f
UkVQRUFUX1BBRCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjMSA9IHNyY19maXJz
dF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3Ry
aWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMxWzBd
OyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9t
bXhfODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0
MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMCk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAmICgxIDw8
IDIpKSBtYXNrICs9IGxlZnRfcGFkOyB9IGlmICh3aWR0aCA+IDApIHsgc2NhbGVkX2JpbGluZWFy
X3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIHNyYzEsIHNyYzIsIHdpZHRo
LCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IHdpZHRoOyBpZiAo
KDApICYgKDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7IH0gaWYgKHJpZ2h0X3BhZCA+IDApIHsgYnVm
MVswXSA9IGJ1ZjFbMV0gPSBzcmMxW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYyWzBd
ID0gYnVmMlsxXSA9IHNyYzJbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IHNjYWxlZF9iaWxp
bmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBy
aWdodF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyB9IH0gZWxzZSBpZiAoLTEg
PT0gUElYTUFOX1JFUEVBVF9OT05FKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWludDMyX3Qg
YnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgaWYgKHkxIDwgMCkgeyB3ZWlnaHQxID0gMDsgeTEg
PSAwOyB9IGlmICh5MSA+PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KSB7IHdlaWdodDEgPSAwOyB5
MSA9IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQgLSAxOyB9IGlmICh5MiA8IDApIHsgd2VpZ2h0MiA9
IDA7IHkyID0gMDsgfSBpZiAoeTIgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWlnaHQy
ID0gMDsgeTIgPSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBzcmMxID0gc3JjX2ZpcnN0
X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJp
ZGUgKiB5MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IDA7IGJ1ZjJb
MF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhf
U1JDIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIGxlZnRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAw
LCAwLCAwLCAxKTsgZHN0ICs9IGxlZnRfcGFkOyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0g
bGVmdF9wYWQ7IH0gaWYgKGxlZnRfdHogPiAwKSB7IGJ1ZjFbMF0gPSAwOyBidWYxWzFdID0gc3Jj
MVswXTsgYnVmMlswXSA9IDA7IGJ1ZjJbMV0gPSBzcmMyWzBdOyBzY2FsZWRfYmlsaW5lYXJfc2Nh
bmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbGVmdF90eiwg
d2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYp
KSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gbGVmdF90
ejsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfdHo7IHZ4ICs9IGxlZnRfdHogKiB1
bml0X3g7IH0gaWYgKHdpZHRoID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4
ODhfODg4OF9TUkMgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdlaWdo
dDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMCkgJiAoMSA8PCAyKSkg
bWFzayArPSB3aWR0aDsgdnggKz0gd2lkdGggKiB1bml0X3g7IH0gaWYgKHJpZ2h0X3R6ID4gMCkg
eyBidWYxWzBdID0gc3JjMVtzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVmMVsxXSA9IDA7
IGJ1ZjJbMF0gPSBzcmMyW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYyWzFdID0gMDsg
c2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1
ZjEsIGJ1ZjIsIHJpZ2h0X3R6LCB3ZWlnaHQxLCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXhtYW5f
Zml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtICgocGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRfeCwg
MCwgMCk7IGRzdCArPSByaWdodF90ejsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IHJpZ2h0
X3R6OyB9IGlmIChyaWdodF9wYWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlsw
XSA9IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9T
UkMgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgcmlnaHRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAw
LCAwLCAwLCAxKTsgfSB9IGVsc2UgaWYgKC0xID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IGlu
dDMyX3QgbnVtX3BpeGVsczsgaW50MzJfdCB3aWR0aF9yZW1haW47IHVpbnQzMl90ICogc3JjX2xp
bmVfdG9wOyB1aW50MzJfdCAqIHNyY19saW5lX2JvdHRvbTsgdWludDMyX3QgYnVmMVsyXTsgdWlu
dDMyX3QgYnVmMlsyXTsgdWludDMyX3QgZXh0ZW5kZWRfc3JjX2xpbmUwWzY0KjJdOyB1aW50MzJf
dCBleHRlbmRlZF9zcmNfbGluZTFbNjQqMl07IGludCBpLCBqOyByZXBlYXQgKFBJWE1BTl9SRVBF
QVRfTk9STUFMLCAmeTEsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyByZXBlYXQgKFBJWE1BTl9S
RVBFQVRfTk9STUFMLCAmeTIsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyBzcmNfbGluZV90b3Ag
PSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MTsgc3JjX2xpbmVfYm90dG9tID0gc3Jj
X2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChuZWVkX3NyY19leHRlbnNpb24pIHsg
Zm9yIChpPTA7IGk8c3JjX3dpZHRoOykgeyBmb3IgKGo9MDsgajxzcmNfaW1hZ2UtPmJpdHMud2lk
dGg7IGorKywgaSsrKSB7IGV4dGVuZGVkX3NyY19saW5lMFtpXSA9IHNyY19saW5lX3RvcFtqXTsg
ZXh0ZW5kZWRfc3JjX2xpbmUxW2ldID0gc3JjX2xpbmVfYm90dG9tW2pdOyB9IH0gc3JjX2xpbmVf
dG9wID0gJmV4dGVuZGVkX3NyY19saW5lMFswXTsgc3JjX2xpbmVfYm90dG9tID0gJmV4dGVuZGVk
X3NyY19saW5lMVswXTsgfSBidWYxWzBdID0gc3JjX2xpbmVfdG9wW3NyY193aWR0aCAtIDFdOyBi
dWYxWzFdID0gc3JjX2xpbmVfdG9wWzBdOyBidWYyWzBdID0gc3JjX2xpbmVfYm90dG9tW3NyY193
aWR0aCAtIDFdOyBidWYyWzFdID0gc3JjX2xpbmVfYm90dG9tWzBdOyB3aWR0aF9yZW1haW4gPSB3
aWR0aDsgd2hpbGUgKHdpZHRoX3JlbWFpbiA+IDApIHsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05P
Uk1BTCwgJnZ4LCBzcmNfd2lkdGhfZml4ZWQpOyBpZiAoKChpbnQpICgodngpID4+IDE2KSkgPT0g
c3JjX3dpZHRoIC0gMSkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSB2eCAtICgo
cGl4bWFuX2ZpeGVkX3QpIDEpKSAvIHVuaXRfeCkgKyAxOyBpZiAobnVtX3BpeGVscyA+IHdpZHRo
X3JlbWFpbikgbnVtX3BpeGVscyA9IHdpZHRoX3JlbWFpbjsgc2NhbGVkX2JpbGluZWFyX3NjYW5s
aW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIG51bV9waXhlbHMs
IHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2
KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCBzcmNfd2lkdGhfZml4ZWQsIDAp
OyB3aWR0aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3BpeGVscyAqIHVuaXRfeDsg
ZHN0ICs9IG51bV9waXhlbHM7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxz
OyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0aF9maXhlZCk7IH0g
aWYgKCgoaW50KSAoKHZ4KSA+PiAxNikpICE9IHNyY193aWR0aCAtIDEgJiYgd2lkdGhfcmVtYWlu
ID4gMCkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSAoKChwaXhtYW5fZml4ZWRf
dCkgKCgxKSA8PCAxNikpKSAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSAr
IDE7IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVt
YWluOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFz
aywgc3JjX2xpbmVfdG9wLCBzcmNfbGluZV9ib3R0b20sIG51bV9waXhlbHMsIHdlaWdodDEsIHdl
aWdodDIsIHZ4LCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRoX3JlbWFpbiAtPSBu
dW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0gbnVtX3BpeGVsczsg
aWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhlbHM7IH0gfSB9IGVsc2UgeyBzY2Fs
ZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFzaywgc3JjX2Zp
cnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTEsIHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAq
IHkyLCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgbWF4X3Z4LCAwKTsgfSB9
IH0KCgoKc3RhdGljIHZvaWQgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4
Xzg4ODhfcGFkX1NSQyAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwgcGl4bWFuX2NvbXBv
c2l0ZV9pbmZvX3QgKmluZm8pIHsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qg
b3AgPSBpbmZvLT5vcDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBz
cmNfaW1hZ2UgPSBpbmZvLT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1h
bl9pbWFnZV90ICogbWFza19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7
IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJp
YnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1
dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRl
X18oKHVudXNlZCkpIGludDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgaW50MzJfdCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBpbnQzMl90IGhlaWdodCA9IGluZm8tPmhlaWdodDsgdWludDMyX3QgKmRzdF9saW5lOyB1
aW50MzJfdCAqbWFza19saW5lOyB1aW50MzJfdCAqc3JjX2ZpcnN0X2xpbmU7IGludCB5MSwgeTI7
IHBpeG1hbl9maXhlZF90IG1heF92eCA9ICgyMTQ3NDgzNjQ3KTsgcGl4bWFuX3ZlY3Rvcl90IHY7
IHBpeG1hbl9maXhlZF90IHZ4LCB2eTsgcGl4bWFuX2ZpeGVkX3QgdW5pdF94LCB1bml0X3k7IGlu
dDMyX3QgbGVmdF9wYWQsIGxlZnRfdHosIHJpZ2h0X3R6LCByaWdodF9wYWQ7IHVpbnQzMl90ICpk
c3Q7IHVpbnQzMl90IHNvbGlkX21hc2s7IGNvbnN0IHVpbnQzMl90ICptYXNrID0gJnNvbGlkX21h
c2s7IGludCBzcmNfc3RyaWRlLCBtYXNrX3N0cmlkZSwgZHN0X3N0cmlkZTsgaW50IHNyY193aWR0
aDsgcGl4bWFuX2ZpeGVkX3Qgc3JjX3dpZHRoX2ZpeGVkOyBpbnQgbWF4X3g7IHBpeG1hbl9ib29s
X3QgbmVlZF9zcmNfZXh0ZW5zaW9uOyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3Ry
aWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVz
dF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50
KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoZHN0X2xpbmUp
ID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgx
KSAqIChkZXN0X3gpOyB9IHdoaWxlICgwKTsgaWYgKCgwKSAmICgxIDw8IDEpKSB7IHNvbGlkX21h
c2sgPSBfcGl4bWFuX2ltYWdlX2dldF9zb2xpZCAoaW1wLCBtYXNrX2ltYWdlLCBkZXN0X2ltYWdl
LT5iaXRzLmZvcm1hdCk7IG1hc2tfc3RyaWRlID0gMDsgfSBlbHNlIGlmICgoMCkgJiAoMSA8PCAy
KSkgeyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0g
bWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dz
dHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJf
dCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKG1hc2tfbGluZSkgPSAoKHVpbnQzMl90ICop
IF9fYml0c19fKSArIChtYXNrX3N0cmlkZSkgKiAobWFza195KSArICgxKSAqIChtYXNrX3gpOyB9
IHdoaWxlICgwKTsgfSBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9f
Yml0c19fID0gc3JjX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBzcmNfaW1hZ2UtPmJp
dHMucm93c3RyaWRlOyAoc3JjX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1
aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKHNyY19maXJzdF9saW5lKSA9ICgo
dWludDMyX3QgKikgX19iaXRzX18pICsgKHNyY19zdHJpZGUpICogKDApICsgKDEpICogKDApOyB9
IHdoaWxlICgwKTsgdi52ZWN0b3JbMF0gPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY194KSA8PCAx
NikpICsgKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsxXSA9
ICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX3kpIDw8IDE2KSkgKyAoKChwaXhtYW5fZml4ZWRfdCkg
KCgxKSA8PCAxNikpKSAvIDI7IHYudmVjdG9yWzJdID0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkg
PDwgMTYpKSk7IGlmICghcGl4bWFuX3RyYW5zZm9ybV9wb2ludF8zZCAoc3JjX2ltYWdlLT5jb21t
b24udHJhbnNmb3JtLCAmdikpIHJldHVybjsgdW5pdF94ID0gc3JjX2ltYWdlLT5jb21tb24udHJh
bnNmb3JtLT5tYXRyaXhbMF1bMF07IHVuaXRfeSA9IHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9y
bS0+bWF0cml4WzFdWzFdOyB2LnZlY3RvclswXSAtPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8
PCAxNikpKSAvIDI7IHYudmVjdG9yWzFdIC09ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2
KSkpIC8gMjsgdnkgPSB2LnZlY3RvclsxXTsgaWYgKFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1B
Tl9SRVBFQVRfUEFEIHx8IFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1BTl9SRVBFQVRfTk9ORSkg
eyBiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9zY2FubGluZV9ib3VuZHMgKHNyY19pbWFnZS0+Yml0
cy53aWR0aCwgdi52ZWN0b3JbMF0sIHVuaXRfeCwgJmxlZnRfcGFkLCAmbGVmdF90eiwgJndpZHRo
LCAmcmlnaHRfdHosICZyaWdodF9wYWQpOyBpZiAoUElYTUFOX1JFUEVBVF9QQUQgPT0gUElYTUFO
X1JFUEVBVF9QQUQpIHsgbGVmdF9wYWQgKz0gbGVmdF90ejsgcmlnaHRfcGFkICs9IHJpZ2h0X3R6
OyBsZWZ0X3R6ID0gcmlnaHRfdHogPSAwOyB9IHYudmVjdG9yWzBdICs9IGxlZnRfcGFkICogdW5p
dF94OyB9IGlmIChQSVhNQU5fUkVQRUFUX1BBRCA9PSBQSVhNQU5fUkVQRUFUX05PUk1BTCkgeyB2
eCA9IHYudmVjdG9yWzBdOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsICgocGl4
bWFuX2ZpeGVkX3QpICgoc3JjX2ltYWdlLT5iaXRzLndpZHRoKSA8PCAxNikpKTsgbWF4X3ggPSAo
KGludCkgKCh2eCArICh3aWR0aCAtIDEpICogKGludDY0X3QpdW5pdF94KSA+PiAxNikpICsgMTsg
aWYgKHNyY19pbWFnZS0+Yml0cy53aWR0aCA8IDY0KSB7IHNyY193aWR0aCA9IDA7IHdoaWxlIChz
cmNfd2lkdGggPCA2NCAmJiBzcmNfd2lkdGggPD0gbWF4X3gpIHNyY193aWR0aCArPSBzcmNfaW1h
Z2UtPmJpdHMud2lkdGg7IG5lZWRfc3JjX2V4dGVuc2lvbiA9IDE7IH0gZWxzZSB7IHNyY193aWR0
aCA9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsgbmVlZF9zcmNfZXh0ZW5zaW9uID0gMDsgfSBzcmNf
d2lkdGhfZml4ZWQgPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY193aWR0aCkgPDwgMTYpKTsgfSB3
aGlsZSAoLS1oZWlnaHQgPj0gMCkgeyBpbnQgd2VpZ2h0MSwgd2VpZ2h0MjsgZHN0ID0gZHN0X2xp
bmU7IGRzdF9saW5lICs9IGRzdF9zdHJpZGU7IHZ4ID0gdi52ZWN0b3JbMF07IGlmICgoMCkgJiAo
MSA8PCAyKSkgeyBtYXNrID0gbWFza19saW5lOyBtYXNrX2xpbmUgKz0gbWFza19zdHJpZGU7IH0g
eTEgPSAoKGludCkgKCh2eSkgPj4gMTYpKTsgd2VpZ2h0MiA9IHBpeG1hbl9maXhlZF90b19iaWxp
bmVhcl93ZWlnaHQgKHZ5KTsgaWYgKHdlaWdodDIpIHsgeTIgPSB5MSArIDE7IHdlaWdodDEgPSAo
MSA8PCA3KSAtIHdlaWdodDI7IH0gZWxzZSB7IHkyID0geTE7IHdlaWdodDEgPSB3ZWlnaHQyID0g
KDEgPDwgNykgLyAyOyB9IHZ5ICs9IHVuaXRfeTsgaWYgKFBJWE1BTl9SRVBFQVRfUEFEID09IFBJ
WE1BTl9SRVBFQVRfUEFEKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWludDMyX3QgYnVmMVsy
XTsgdWludDMyX3QgYnVmMlsyXTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkxLCBzcmNf
aW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkyLCBzcmNf
aW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjMSA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAq
IHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChsZWZ0X3Bh
ZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYyWzBdID0gYnVmMlsxXSA9
IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0
LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwg
MCk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfcGFk
OyB9IGlmICh3aWR0aCA+IDApIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4
ODhfU1JDIChkc3QsIG1hc2ssIHNyYzEsIHNyYzIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2
eCwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IHdpZHRoOyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sg
Kz0gd2lkdGg7IH0gaWYgKHJpZ2h0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMx
W3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJbc3Jj
X2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4
OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF9wYWQsIHdlaWdodDEsIHdl
aWdodDIsIDAsIDAsIDAsIDApOyB9IH0gZWxzZSBpZiAoUElYTUFOX1JFUEVBVF9QQUQgPT0gUElY
TUFOX1JFUEVBVF9OT05FKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWludDMyX3QgYnVmMVsy
XTsgdWludDMyX3QgYnVmMlsyXTsgaWYgKHkxIDwgMCkgeyB3ZWlnaHQxID0gMDsgeTEgPSAwOyB9
IGlmICh5MSA+PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KSB7IHdlaWdodDEgPSAwOyB5MSA9IHNy
Y19pbWFnZS0+Yml0cy5oZWlnaHQgLSAxOyB9IGlmICh5MiA8IDApIHsgd2VpZ2h0MiA9IDA7IHky
ID0gMDsgfSBpZiAoeTIgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWlnaHQyID0gMDsg
eTIgPSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBzcmMxID0gc3JjX2ZpcnN0X2xpbmUg
KyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5
MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IDA7IGJ1ZjJbMF0gPSBi
dWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChk
c3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIGxlZnRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAw
LCAxKTsgZHN0ICs9IGxlZnRfcGFkOyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF9w
YWQ7IH0gaWYgKGxlZnRfdHogPiAwKSB7IGJ1ZjFbMF0gPSAwOyBidWYxWzFdID0gc3JjMVswXTsg
YnVmMlswXSA9IDA7IGJ1ZjJbMV0gPSBzcmMyWzBdOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVf
bW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbGVmdF90eiwgd2VpZ2h0
MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAo
KHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gbGVmdF90ejsgaWYg
KCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfdHo7IHZ4ICs9IGxlZnRfdHogKiB1bml0X3g7
IH0gaWYgKHdpZHRoID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4
OF9TUkMgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4
LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayAr
PSB3aWR0aDsgdnggKz0gd2lkdGggKiB1bml0X3g7IH0gaWYgKHJpZ2h0X3R6ID4gMCkgeyBidWYx
WzBdID0gc3JjMVtzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVmMVsxXSA9IDA7IGJ1ZjJb
MF0gPSBzcmMyW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYyWzFdID0gMDsgc2NhbGVk
X2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1
ZjIsIHJpZ2h0X3R6LCB3ZWlnaHQxLCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXhtYW5fZml4ZWRf
dCkgKCgxKSA8PCAxNikpKSAtICgocGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRfeCwgMCwgMCk7
IGRzdCArPSByaWdodF90ejsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IHJpZ2h0X3R6OyB9
IGlmIChyaWdodF9wYWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1
ZjJbMV0gPSAwOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRz
dCwgbWFzaywgYnVmMSwgYnVmMiwgcmlnaHRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAw
LCAxKTsgfSB9IGVsc2UgaWYgKFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1BTl9SRVBFQVRfTk9S
TUFMKSB7IGludDMyX3QgbnVtX3BpeGVsczsgaW50MzJfdCB3aWR0aF9yZW1haW47IHVpbnQzMl90
ICogc3JjX2xpbmVfdG9wOyB1aW50MzJfdCAqIHNyY19saW5lX2JvdHRvbTsgdWludDMyX3QgYnVm
MVsyXTsgdWludDMyX3QgYnVmMlsyXTsgdWludDMyX3QgZXh0ZW5kZWRfc3JjX2xpbmUwWzY0KjJd
OyB1aW50MzJfdCBleHRlbmRlZF9zcmNfbGluZTFbNjQqMl07IGludCBpLCBqOyByZXBlYXQgKFBJ
WE1BTl9SRVBFQVRfTk9STUFMLCAmeTEsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyByZXBlYXQg
KFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmeTIsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyBzcmNf
bGluZV90b3AgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MTsgc3JjX2xpbmVfYm90
dG9tID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChuZWVkX3NyY19leHRl
bnNpb24pIHsgZm9yIChpPTA7IGk8c3JjX3dpZHRoOykgeyBmb3IgKGo9MDsgajxzcmNfaW1hZ2Ut
PmJpdHMud2lkdGg7IGorKywgaSsrKSB7IGV4dGVuZGVkX3NyY19saW5lMFtpXSA9IHNyY19saW5l
X3RvcFtqXTsgZXh0ZW5kZWRfc3JjX2xpbmUxW2ldID0gc3JjX2xpbmVfYm90dG9tW2pdOyB9IH0g
c3JjX2xpbmVfdG9wID0gJmV4dGVuZGVkX3NyY19saW5lMFswXTsgc3JjX2xpbmVfYm90dG9tID0g
JmV4dGVuZGVkX3NyY19saW5lMVswXTsgfSBidWYxWzBdID0gc3JjX2xpbmVfdG9wW3NyY193aWR0
aCAtIDFdOyBidWYxWzFdID0gc3JjX2xpbmVfdG9wWzBdOyBidWYyWzBdID0gc3JjX2xpbmVfYm90
dG9tW3NyY193aWR0aCAtIDFdOyBidWYyWzFdID0gc3JjX2xpbmVfYm90dG9tWzBdOyB3aWR0aF9y
ZW1haW4gPSB3aWR0aDsgd2hpbGUgKHdpZHRoX3JlbWFpbiA+IDApIHsgcmVwZWF0IChQSVhNQU5f
UkVQRUFUX05PUk1BTCwgJnZ4LCBzcmNfd2lkdGhfZml4ZWQpOyBpZiAoKChpbnQpICgodngpID4+
IDE2KSkgPT0gc3JjX3dpZHRoIC0gMSkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQg
LSB2eCAtICgocGl4bWFuX2ZpeGVkX3QpIDEpKSAvIHVuaXRfeCkgKyAxOyBpZiAobnVtX3BpeGVs
cyA+IHdpZHRoX3JlbWFpbikgbnVtX3BpeGVscyA9IHdpZHRoX3JlbWFpbjsgc2NhbGVkX2JpbGlu
ZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIG51
bV9waXhlbHMsIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAo
KDEpIDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCBzcmNfd2lkdGhf
Zml4ZWQsIDApOyB3aWR0aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3BpeGVscyAq
IHVuaXRfeDsgZHN0ICs9IG51bV9waXhlbHM7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBu
dW1fcGl4ZWxzOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0aF9m
aXhlZCk7IH0gaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikpICE9IHNyY193aWR0aCAtIDEgJiYgd2lk
dGhfcmVtYWluID4gMCkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSAoKChwaXht
YW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpIC8g
dW5pdF94KSArIDE7IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxzID0g
d2lkdGhfcmVtYWluOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMg
KGRzdCwgbWFzaywgc3JjX2xpbmVfdG9wLCBzcmNfbGluZV9ib3R0b20sIG51bV9waXhlbHMsIHdl
aWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRoX3Jl
bWFpbiAtPSBudW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0gbnVt
X3BpeGVsczsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhlbHM7IH0gfSB9IGVs
c2UgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFz
aywgc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTEsIHNyY19maXJzdF9saW5lICsgc3Jj
X3N0cmlkZSAqIHkyLCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgbWF4X3Z4
LCAwKTsgfSB9IH0KCgoKc3RhdGljIHZvaWQgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFy
X21teF84ODg4Xzg4ODhfbm9uZV9TUkMgKHBpeG1hbl9pbXBsZW1lbnRhdGlvbl90ICppbXAsIHBp
eG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKSB7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBp
eG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9p
bWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3JjX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1hZ2UgPSBpbmZvLT5tYXNrX2ltYWdlOyBfX2F0
dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIGRlc3RfaW1hZ2UgPSBpbmZvLT5k
ZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY194ID0gaW5mby0+
c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3kgPSBpbmZvLT5zcmNf
eTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3ggPSBpbmZvLT5tYXNrX3g7
IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza195ID0gaW5mby0+bWFza195OyBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeCA9IGluZm8tPmRlc3RfeDsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3kgPSBpbmZvLT5kZXN0X3k7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lkdGggPSBpbmZvLT53aWR0aDsgX19hdHRyaWJ1
dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQgPSBpbmZvLT5oZWlnaHQ7IHVpbnQzMl90ICpk
c3RfbGluZTsgdWludDMyX3QgKm1hc2tfbGluZTsgdWludDMyX3QgKnNyY19maXJzdF9saW5lOyBp
bnQgeTEsIHkyOyBwaXhtYW5fZml4ZWRfdCBtYXhfdnggPSAoMjE0NzQ4MzY0Nyk7IHBpeG1hbl92
ZWN0b3JfdCB2OyBwaXhtYW5fZml4ZWRfdCB2eCwgdnk7IHBpeG1hbl9maXhlZF90IHVuaXRfeCwg
dW5pdF95OyBpbnQzMl90IGxlZnRfcGFkLCBsZWZ0X3R6LCByaWdodF90eiwgcmlnaHRfcGFkOyB1
aW50MzJfdCAqZHN0OyB1aW50MzJfdCBzb2xpZF9tYXNrOyBjb25zdCB1aW50MzJfdCAqbWFzayA9
ICZzb2xpZF9tYXNrOyBpbnQgc3JjX3N0cmlkZSwgbWFza19zdHJpZGUsIGRzdF9zdHJpZGU7IGlu
dCBzcmNfd2lkdGg7IHBpeG1hbl9maXhlZF90IHNyY193aWR0aF9maXhlZDsgaW50IG1heF94OyBw
aXhtYW5fYm9vbF90IG5lZWRfc3JjX2V4dGVuc2lvbjsgZG8geyB1aW50MzJfdCAqX19iaXRzX187
IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IGRlc3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJp
ZGVfXyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlk
ZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsg
KGRzdF9saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRl
c3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGlsZSAoMCk7IGlmICgoMCkgJiAoMSA8PCAxKSkg
eyBzb2xpZF9tYXNrID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwg
ZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOyBtYXNrX3N0cmlkZSA9IDA7IH0gZWxzZSBpZiAoKDAp
ICYgKDEgPDwgMikpIHsgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBf
X2JpdHNfXyA9IG1hc2tfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IG1hc2tfaW1hZ2Ut
PmJpdHMucm93c3RyaWRlOyAobWFza19zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVv
ZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChtYXNrX2xpbmUpID0gKCh1
aW50MzJfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICogKG1hc2tfeSkgKyAoMSkgKiAo
bWFza194KTsgfSB3aGlsZSAoMCk7IH0gZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0
cmlkZV9fOyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gc3Jj
X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKHNyY19zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQp
IHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChzcmNfZmlyc3Rf
bGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChzcmNfc3RyaWRlKSAqICgwKSArICgx
KSAqICgwKTsgfSB3aGlsZSAoMCk7IHYudmVjdG9yWzBdID0gKChwaXhtYW5fZml4ZWRfdCkgKChz
cmNfeCkgPDwgMTYpKSArICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52
ZWN0b3JbMV0gPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY195KSA8PCAxNikpICsgKCgocGl4bWFu
X2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsyXSA9ICgoKHBpeG1hbl9maXhl
ZF90KSAoKDEpIDw8IDE2KSkpOyBpZiAoIXBpeG1hbl90cmFuc2Zvcm1fcG9pbnRfM2QgKHNyY19p
bWFnZS0+Y29tbW9uLnRyYW5zZm9ybSwgJnYpKSByZXR1cm47IHVuaXRfeCA9IHNyY19pbWFnZS0+
Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzBdWzBdOyB1bml0X3kgPSBzcmNfaW1hZ2UtPmNvbW1v
bi50cmFuc2Zvcm0tPm1hdHJpeFsxXVsxXTsgdi52ZWN0b3JbMF0gLT0gKCgocGl4bWFuX2ZpeGVk
X3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsxXSAtPSAoKChwaXhtYW5fZml4ZWRfdCkg
KCgxKSA8PCAxNikpKSAvIDI7IHZ5ID0gdi52ZWN0b3JbMV07IGlmIChQSVhNQU5fUkVQRUFUX05P
TkUgPT0gUElYTUFOX1JFUEVBVF9QQUQgfHwgUElYTUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9S
RVBFQVRfTk9ORSkgeyBiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9zY2FubGluZV9ib3VuZHMgKHNy
Y19pbWFnZS0+Yml0cy53aWR0aCwgdi52ZWN0b3JbMF0sIHVuaXRfeCwgJmxlZnRfcGFkLCAmbGVm
dF90eiwgJndpZHRoLCAmcmlnaHRfdHosICZyaWdodF9wYWQpOyBpZiAoUElYTUFOX1JFUEVBVF9O
T05FID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IGxlZnRfcGFkICs9IGxlZnRfdHo7IHJpZ2h0X3Bh
ZCArPSByaWdodF90ejsgbGVmdF90eiA9IHJpZ2h0X3R6ID0gMDsgfSB2LnZlY3RvclswXSArPSBs
ZWZ0X3BhZCAqIHVuaXRfeDsgfSBpZiAoUElYTUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBF
QVRfTk9STUFMKSB7IHZ4ID0gdi52ZWN0b3JbMF07IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JN
QUwsICZ2eCwgKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfaW1hZ2UtPmJpdHMud2lkdGgpIDw8IDE2
KSkpOyBtYXhfeCA9ICgoaW50KSAoKHZ4ICsgKHdpZHRoIC0gMSkgKiAoaW50NjRfdCl1bml0X3gp
ID4+IDE2KSkgKyAxOyBpZiAoc3JjX2ltYWdlLT5iaXRzLndpZHRoIDwgNjQpIHsgc3JjX3dpZHRo
ID0gMDsgd2hpbGUgKHNyY193aWR0aCA8IDY0ICYmIHNyY193aWR0aCA8PSBtYXhfeCkgc3JjX3dp
ZHRoICs9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsgbmVlZF9zcmNfZXh0ZW5zaW9uID0gMTsgfSBl
bHNlIHsgc3JjX3dpZHRoID0gc3JjX2ltYWdlLT5iaXRzLndpZHRoOyBuZWVkX3NyY19leHRlbnNp
b24gPSAwOyB9IHNyY193aWR0aF9maXhlZCA9ICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX3dpZHRo
KSA8PCAxNikpOyB9IHdoaWxlICgtLWhlaWdodCA+PSAwKSB7IGludCB3ZWlnaHQxLCB3ZWlnaHQy
OyBkc3QgPSBkc3RfbGluZTsgZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsgdnggPSB2LnZlY3Rvclsw
XTsgaWYgKCgwKSAmICgxIDw8IDIpKSB7IG1hc2sgPSBtYXNrX2xpbmU7IG1hc2tfbGluZSArPSBt
YXNrX3N0cmlkZTsgfSB5MSA9ICgoaW50KSAoKHZ5KSA+PiAxNikpOyB3ZWlnaHQyID0gcGl4bWFu
X2ZpeGVkX3RvX2JpbGluZWFyX3dlaWdodCAodnkpOyBpZiAod2VpZ2h0MikgeyB5MiA9IHkxICsg
MTsgd2VpZ2h0MSA9ICgxIDw8IDcpIC0gd2VpZ2h0MjsgfSBlbHNlIHsgeTIgPSB5MTsgd2VpZ2h0
MSA9IHdlaWdodDIgPSAoMSA8PCA3KSAvIDI7IH0gdnkgKz0gdW5pdF95OyBpZiAoUElYTUFOX1JF
UEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsg
dWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgcmVwZWF0IChQSVhNQU5fUkVQRUFU
X1BBRCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFU
X1BBRCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjMSA9IHNyY19maXJzdF9saW5l
ICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICog
eTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYy
WzBdID0gYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4
OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2Vp
Z2h0MiwgMCwgMCwgMCwgMCk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAmICgxIDw8IDIpKSBt
YXNrICs9IGxlZnRfcGFkOyB9IGlmICh3aWR0aCA+IDApIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5s
aW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIHNyYzEsIHNyYzIsIHdpZHRoLCB3ZWln
aHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IHdpZHRoOyBpZiAoKDApICYg
KDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7IH0gaWYgKHJpZ2h0X3BhZCA+IDApIHsgYnVmMVswXSA9
IGJ1ZjFbMV0gPSBzcmMxW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYyWzBdID0gYnVm
MlsxXSA9IHNyYzJbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IHNjYWxlZF9iaWxpbmVhcl9z
Y2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF9w
YWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyB9IH0gZWxzZSBpZiAoUElYTUFOX1JF
UEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfTk9ORSkgeyB1aW50MzJfdCAqc3JjMSwgKnNyYzI7
IHVpbnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90IGJ1ZjJbMl07IGlmICh5MSA8IDApIHsgd2VpZ2h0
MSA9IDA7IHkxID0gMDsgfSBpZiAoeTEgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWln
aHQxID0gMDsgeTEgPSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBpZiAoeTIgPCAwKSB7
IHdlaWdodDIgPSAwOyB5MiA9IDA7IH0gaWYgKHkyID49IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQp
IHsgd2VpZ2h0MiA9IDA7IHkyID0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCAtIDE7IH0gc3JjMSA9
IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUg
KyBzcmNfc3RyaWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0g
PSAwOyBidWYyWzBdID0gYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhf
ODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwg
d2VpZ2h0MiwgMCwgMCwgMCwgMSk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAmICgxIDw8IDIp
KSBtYXNrICs9IGxlZnRfcGFkOyB9IGlmIChsZWZ0X3R6ID4gMCkgeyBidWYxWzBdID0gMDsgYnVm
MVsxXSA9IHNyYzFbMF07IGJ1ZjJbMF0gPSAwOyBidWYyWzFdID0gc3JjMlswXTsgc2NhbGVkX2Jp
bGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIs
IGxlZnRfdHosIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAo
KDEpIDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCAwLCAwKTsgZHN0
ICs9IGxlZnRfdHo7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBsZWZ0X3R6OyB2eCArPSBs
ZWZ0X3R6ICogdW5pdF94OyB9IGlmICh3aWR0aCA+IDApIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5s
aW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIHNyYzEsIHNyYzIsIHdpZHRoLCB3ZWln
aHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IHdpZHRoOyBpZiAoKDApICYg
KDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7IHZ4ICs9IHdpZHRoICogdW5pdF94OyB9IGlmIChyaWdo
dF90eiA+IDApIHsgYnVmMVswXSA9IHNyYzFbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1
ZjFbMV0gPSAwOyBidWYyWzBdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVm
MlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0
LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF90eiwgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAo
KCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkp
LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gcmlnaHRfdHo7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFz
ayArPSByaWdodF90ejsgfSBpZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9
IDA7IGJ1ZjJbMF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84
ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIHJpZ2h0X3BhZCwgd2VpZ2h0MSwg
d2VpZ2h0MiwgMCwgMCwgMCwgMSk7IH0gfSBlbHNlIGlmIChQSVhNQU5fUkVQRUFUX05PTkUgPT0g
UElYTUFOX1JFUEVBVF9OT1JNQUwpIHsgaW50MzJfdCBudW1fcGl4ZWxzOyBpbnQzMl90IHdpZHRo
X3JlbWFpbjsgdWludDMyX3QgKiBzcmNfbGluZV90b3A7IHVpbnQzMl90ICogc3JjX2xpbmVfYm90
dG9tOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJfdCBidWYyWzJdOyB1aW50MzJfdCBleHRlbmRl
ZF9zcmNfbGluZTBbNjQqMl07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19saW5lMVs2NCoyXTsgaW50
IGksIGo7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ5MSwgc3JjX2ltYWdlLT5iaXRz
LmhlaWdodCk7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ5Miwgc3JjX2ltYWdlLT5i
aXRzLmhlaWdodCk7IHNyY19saW5lX3RvcCA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAq
IHkxOyBzcmNfbGluZV9ib3R0b20gPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5Mjsg
aWYgKG5lZWRfc3JjX2V4dGVuc2lvbikgeyBmb3IgKGk9MDsgaTxzcmNfd2lkdGg7KSB7IGZvciAo
aj0wOyBqPHNyY19pbWFnZS0+Yml0cy53aWR0aDsgaisrLCBpKyspIHsgZXh0ZW5kZWRfc3JjX2xp
bmUwW2ldID0gc3JjX2xpbmVfdG9wW2pdOyBleHRlbmRlZF9zcmNfbGluZTFbaV0gPSBzcmNfbGlu
ZV9ib3R0b21bal07IH0gfSBzcmNfbGluZV90b3AgPSAmZXh0ZW5kZWRfc3JjX2xpbmUwWzBdOyBz
cmNfbGluZV9ib3R0b20gPSAmZXh0ZW5kZWRfc3JjX2xpbmUxWzBdOyB9IGJ1ZjFbMF0gPSBzcmNf
bGluZV90b3Bbc3JjX3dpZHRoIC0gMV07IGJ1ZjFbMV0gPSBzcmNfbGluZV90b3BbMF07IGJ1ZjJb
MF0gPSBzcmNfbGluZV9ib3R0b21bc3JjX3dpZHRoIC0gMV07IGJ1ZjJbMV0gPSBzcmNfbGluZV9i
b3R0b21bMF07IHdpZHRoX3JlbWFpbiA9IHdpZHRoOyB3aGlsZSAod2lkdGhfcmVtYWluID4gMCkg
eyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0aF9maXhlZCk7IGlm
ICgoKGludCkgKCh2eCkgPj4gMTYpKSA9PSBzcmNfd2lkdGggLSAxKSB7IG51bV9waXhlbHMgPSAo
KHNyY193aWR0aF9maXhlZCAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSAr
IDE7IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVt
YWluOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFz
aywgYnVmMSwgYnVmMiwgbnVtX3BpeGVscywgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgo
cGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1
bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRoX3JlbWFpbiAtPSBudW1fcGl4ZWxzOyB2
eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0gbnVtX3BpeGVsczsgaWYgKCgwKSAmICgx
IDw8IDIpKSBtYXNrICs9IG51bV9waXhlbHM7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUws
ICZ2eCwgc3JjX3dpZHRoX2ZpeGVkKTsgfSBpZiAoKChpbnQpICgodngpID4+IDE2KSkgIT0gc3Jj
X3dpZHRoIC0gMSAmJiB3aWR0aF9yZW1haW4gPiAwKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0
aF9maXhlZCAtICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC0gdnggLSAoKHBpeG1h
bl9maXhlZF90KSAxKSkgLyB1bml0X3gpICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1h
aW4pIG51bV9waXhlbHMgPSB3aWR0aF9yZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9t
bXhfODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBzcmNfbGluZV90b3AsIHNyY19saW5lX2JvdHRv
bSwgbnVtX3BpeGVscywgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgc3JjX3dpZHRoX2Zp
eGVkLCAwKTsgd2lkdGhfcmVtYWluIC09IG51bV9waXhlbHM7IHZ4ICs9IG51bV9waXhlbHMgKiB1
bml0X3g7IGRzdCArPSBudW1fcGl4ZWxzOyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbnVt
X3BpeGVsczsgfSB9IH0gZWxzZSB7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84
ODg4X1NSQyAoZHN0LCBtYXNrLCBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MSwgc3Jj
X2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2
eCwgdW5pdF94LCBtYXhfdngsIDApOyB9IH0gfQoKCgpzdGF0aWMgdm9pZCBmYXN0X2NvbXBvc2l0
ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9ub3JtYWxfU1JDIChwaXhtYW5faW1wbGVt
ZW50YXRpb25fdCAqaW1wLCBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykgeyBfX2F0dHJp
YnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5m
by0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBk
ZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFz
a194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tf
eSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3gg
PSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0g
aW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5m
by0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+
aGVpZ2h0OyB1aW50MzJfdCAqZHN0X2xpbmU7IHVpbnQzMl90ICptYXNrX2xpbmU7IHVpbnQzMl90
ICpzcmNfZmlyc3RfbGluZTsgaW50IHkxLCB5MjsgcGl4bWFuX2ZpeGVkX3QgbWF4X3Z4ID0gKDIx
NDc0ODM2NDcpOyBwaXhtYW5fdmVjdG9yX3QgdjsgcGl4bWFuX2ZpeGVkX3QgdngsIHZ5OyBwaXht
YW5fZml4ZWRfdCB1bml0X3gsIHVuaXRfeTsgaW50MzJfdCBsZWZ0X3BhZCwgbGVmdF90eiwgcmln
aHRfdHosIHJpZ2h0X3BhZDsgdWludDMyX3QgKmRzdDsgdWludDMyX3Qgc29saWRfbWFzazsgY29u
c3QgdWludDMyX3QgKm1hc2sgPSAmc29saWRfbWFzazsgaW50IHNyY19zdHJpZGUsIG1hc2tfc3Ry
aWRlLCBkc3Rfc3RyaWRlOyBpbnQgc3JjX3dpZHRoOyBwaXhtYW5fZml4ZWRfdCBzcmNfd2lkdGhf
Zml4ZWQ7IGludCBtYXhfeDsgcGl4bWFuX2Jvb2xfdCBuZWVkX3NyY19leHRlbnNpb247IGRvIHsg
dWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdl
LT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRz
dF9zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkg
c2l6ZW9mICh1aW50MzJfdCk7IChkc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSAr
IChkc3Rfc3RyaWRlKSAqIChkZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOyBp
ZiAoKDApICYgKDEgPDwgMSkpIHsgc29saWRfbWFzayA9IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlk
IChpbXAsIG1hc2tfaW1hZ2UsIGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsgbWFza19zdHJpZGUg
PSAwOyB9IGVsc2UgaWYgKCgwKSAmICgxIDw8IDIpKSB7IGRvIHsgdWludDMyX3QgKl9fYml0c19f
OyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBtYXNrX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3Ry
aWRlX18gPSBtYXNrX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKG1hc2tfc3RyaWRlKSA9IF9fc3Ry
aWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3Qp
OyAobWFza19saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKG1hc2tfc3RyaWRlKSAq
IChtYXNrX3kpICsgKDEpICogKG1hc2tfeCk7IH0gd2hpbGUgKDApOyB9IGRvIHsgdWludDMyX3Qg
Kl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBzcmNfaW1hZ2UtPmJpdHMuYml0
czsgX19zdHJpZGVfXyA9IHNyY19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChzcmNfc3RyaWRlKSA9
IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWlu
dDMyX3QpOyAoc3JjX2ZpcnN0X2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoc3Jj
X3N0cmlkZSkgKiAoMCkgKyAoMSkgKiAoMCk7IH0gd2hpbGUgKDApOyB2LnZlY3RvclswXSA9ICgo
cGl4bWFuX2ZpeGVkX3QpICgoc3JjX3gpIDw8IDE2KSkgKyAoKChwaXhtYW5fZml4ZWRfdCkgKCgx
KSA8PCAxNikpKSAvIDI7IHYudmVjdG9yWzFdID0gKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfeSkg
PDwgMTYpKSArICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3Jb
Ml0gPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKTsgaWYgKCFwaXhtYW5fdHJhbnNm
b3JtX3BvaW50XzNkIChzcmNfaW1hZ2UtPmNvbW1vbi50cmFuc2Zvcm0sICZ2KSkgcmV0dXJuOyB1
bml0X3ggPSBzcmNfaW1hZ2UtPmNvbW1vbi50cmFuc2Zvcm0tPm1hdHJpeFswXVswXTsgdW5pdF95
ID0gc3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3JtLT5tYXRyaXhbMV1bMV07IHYudmVjdG9yWzBd
IC09ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMV0gLT0g
KCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2eSA9IHYudmVjdG9yWzFdOyBp
ZiAoUElYTUFOX1JFUEVBVF9OT1JNQUwgPT0gUElYTUFOX1JFUEVBVF9QQUQgfHwgUElYTUFOX1JF
UEVBVF9OT1JNQUwgPT0gUElYTUFOX1JFUEVBVF9OT05FKSB7IGJpbGluZWFyX3BhZF9yZXBlYXRf
Z2V0X3NjYW5saW5lX2JvdW5kcyAoc3JjX2ltYWdlLT5iaXRzLndpZHRoLCB2LnZlY3RvclswXSwg
dW5pdF94LCAmbGVmdF9wYWQsICZsZWZ0X3R6LCAmd2lkdGgsICZyaWdodF90eiwgJnJpZ2h0X3Bh
ZCk7IGlmIChQSVhNQU5fUkVQRUFUX05PUk1BTCA9PSBQSVhNQU5fUkVQRUFUX1BBRCkgeyBsZWZ0
X3BhZCArPSBsZWZ0X3R6OyByaWdodF9wYWQgKz0gcmlnaHRfdHo7IGxlZnRfdHogPSByaWdodF90
eiA9IDA7IH0gdi52ZWN0b3JbMF0gKz0gbGVmdF9wYWQgKiB1bml0X3g7IH0gaWYgKFBJWE1BTl9S
RVBFQVRfTk9STUFMID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IHZ4ID0gdi52ZWN0b3JbMF07
IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgKChwaXhtYW5fZml4ZWRfdCkgKChz
cmNfaW1hZ2UtPmJpdHMud2lkdGgpIDw8IDE2KSkpOyBtYXhfeCA9ICgoaW50KSAoKHZ4ICsgKHdp
ZHRoIC0gMSkgKiAoaW50NjRfdCl1bml0X3gpID4+IDE2KSkgKyAxOyBpZiAoc3JjX2ltYWdlLT5i
aXRzLndpZHRoIDwgNjQpIHsgc3JjX3dpZHRoID0gMDsgd2hpbGUgKHNyY193aWR0aCA8IDY0ICYm
IHNyY193aWR0aCA8PSBtYXhfeCkgc3JjX3dpZHRoICs9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsg
bmVlZF9zcmNfZXh0ZW5zaW9uID0gMTsgfSBlbHNlIHsgc3JjX3dpZHRoID0gc3JjX2ltYWdlLT5i
aXRzLndpZHRoOyBuZWVkX3NyY19leHRlbnNpb24gPSAwOyB9IHNyY193aWR0aF9maXhlZCA9ICgo
cGl4bWFuX2ZpeGVkX3QpICgoc3JjX3dpZHRoKSA8PCAxNikpOyB9IHdoaWxlICgtLWhlaWdodCA+
PSAwKSB7IGludCB3ZWlnaHQxLCB3ZWlnaHQyOyBkc3QgPSBkc3RfbGluZTsgZHN0X2xpbmUgKz0g
ZHN0X3N0cmlkZTsgdnggPSB2LnZlY3RvclswXTsgaWYgKCgwKSAmICgxIDw8IDIpKSB7IG1hc2sg
PSBtYXNrX2xpbmU7IG1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsgfSB5MSA9ICgoaW50KSAoKHZ5
KSA+PiAxNikpOyB3ZWlnaHQyID0gcGl4bWFuX2ZpeGVkX3RvX2JpbGluZWFyX3dlaWdodCAodnkp
OyBpZiAod2VpZ2h0MikgeyB5MiA9IHkxICsgMTsgd2VpZ2h0MSA9ICgxIDw8IDcpIC0gd2VpZ2h0
MjsgfSBlbHNlIHsgeTIgPSB5MTsgd2VpZ2h0MSA9IHdlaWdodDIgPSAoMSA8PCA3KSAvIDI7IH0g
dnkgKz0gdW5pdF95OyBpZiAoUElYTUFOX1JFUEVBVF9OT1JNQUwgPT0gUElYTUFOX1JFUEVBVF9Q
QUQpIHsgdWludDMyX3QgKnNyYzEsICpzcmMyOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJfdCBi
dWYyWzJdOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfUEFELCAmeTEsIHNyY19pbWFnZS0+Yml0cy5o
ZWlnaHQpOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfUEFELCAmeTIsIHNyY19pbWFnZS0+Yml0cy5o
ZWlnaHQpOyBzcmMxID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBz
cmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYx
WzBdID0gYnVmMVsxXSA9IHNyYzFbMF07IGJ1ZjJbMF0gPSBidWYyWzFdID0gc3JjMlswXTsgc2Nh
bGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChkc3QsIG1hc2ssIGJ1ZjEs
IGJ1ZjIsIGxlZnRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAwKTsgZHN0ICs9IGxl
ZnRfcGFkOyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF9wYWQ7IH0gaWYgKHdpZHRo
ID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwg
bWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIDAs
IDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSB3aWR0aDsgfSBp
ZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IHNyYzFbc3JjX2ltYWdlLT5i
aXRzLndpZHRoIC0gMV07IGJ1ZjJbMF0gPSBidWYyWzFdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMu
d2lkdGggLSAxXTsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfU1JDIChk
c3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIHJpZ2h0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwg
MCwgMCk7IH0gfSBlbHNlIGlmIChQSVhNQU5fUkVQRUFUX05PUk1BTCA9PSBQSVhNQU5fUkVQRUFU
X05PTkUpIHsgdWludDMyX3QgKnNyYzEsICpzcmMyOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJf
dCBidWYyWzJdOyBpZiAoeTEgPCAwKSB7IHdlaWdodDEgPSAwOyB5MSA9IDA7IH0gaWYgKHkxID49
IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpIHsgd2VpZ2h0MSA9IDA7IHkxID0gc3JjX2ltYWdlLT5i
aXRzLmhlaWdodCAtIDE7IH0gaWYgKHkyIDwgMCkgeyB3ZWlnaHQyID0gMDsgeTIgPSAwOyB9IGlm
ICh5MiA+PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KSB7IHdlaWdodDIgPSAwOyB5MiA9IHNyY19p
bWFnZS0+Yml0cy5oZWlnaHQgLSAxOyB9IHNyYzEgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJp
ZGUgKiB5MTsgc3JjMiA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobGVm
dF9wYWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAw
OyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFzaywg
YnVmMSwgYnVmMiwgbGVmdF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDEpOyBkc3Qg
Kz0gbGVmdF9wYWQ7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBsZWZ0X3BhZDsgfSBpZiAo
bGVmdF90eiA+IDApIHsgYnVmMVswXSA9IDA7IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYyWzBdID0g
MDsgYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84
ODg4X1NSQyAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3R6LCB3ZWlnaHQxLCB3ZWlnaHQy
LCAoKHZ4KSAmICgoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtICgocGl4bWFuX2Zp
eGVkX3QpIDEpKSksIHVuaXRfeCwgMCwgMCk7IGRzdCArPSBsZWZ0X3R6OyBpZiAoKDApICYgKDEg
PDwgMikpIG1hc2sgKz0gbGVmdF90ejsgdnggKz0gbGVmdF90eiAqIHVuaXRfeDsgfSBpZiAod2lk
dGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0
LCBtYXNrLCBzcmMxLCBzcmMyLCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwg
MCwgMCk7IGRzdCArPSB3aWR0aDsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IHdpZHRoOyB2
eCArPSB3aWR0aCAqIHVuaXRfeDsgfSBpZiAocmlnaHRfdHogPiAwKSB7IGJ1ZjFbMF0gPSBzcmMx
W3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYxWzFdID0gMDsgYnVmMlswXSA9IHNyYzJb
c3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmlsaW5lYXJf
c2NhbmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgcmlnaHRf
dHosIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8
IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IHJp
Z2h0X3R6OyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gcmlnaHRfdHo7IH0gaWYgKHJpZ2h0
X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gYnVmMlsxXSA9IDA7
IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBi
dWYxLCBidWYyLCByaWdodF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDEpOyB9IH0g
ZWxzZSBpZiAoUElYTUFOX1JFUEVBVF9OT1JNQUwgPT0gUElYTUFOX1JFUEVBVF9OT1JNQUwpIHsg
aW50MzJfdCBudW1fcGl4ZWxzOyBpbnQzMl90IHdpZHRoX3JlbWFpbjsgdWludDMyX3QgKiBzcmNf
bGluZV90b3A7IHVpbnQzMl90ICogc3JjX2xpbmVfYm90dG9tOyB1aW50MzJfdCBidWYxWzJdOyB1
aW50MzJfdCBidWYyWzJdOyB1aW50MzJfdCBleHRlbmRlZF9zcmNfbGluZTBbNjQqMl07IHVpbnQz
Ml90IGV4dGVuZGVkX3NyY19saW5lMVs2NCoyXTsgaW50IGksIGo7IHJlcGVhdCAoUElYTUFOX1JF
UEVBVF9OT1JNQUwsICZ5MSwgc3JjX2ltYWdlLT5iaXRzLmhlaWdodCk7IHJlcGVhdCAoUElYTUFO
X1JFUEVBVF9OT1JNQUwsICZ5Miwgc3JjX2ltYWdlLT5iaXRzLmhlaWdodCk7IHNyY19saW5lX3Rv
cCA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmNfbGluZV9ib3R0b20gPSBz
cmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MjsgaWYgKG5lZWRfc3JjX2V4dGVuc2lvbikg
eyBmb3IgKGk9MDsgaTxzcmNfd2lkdGg7KSB7IGZvciAoaj0wOyBqPHNyY19pbWFnZS0+Yml0cy53
aWR0aDsgaisrLCBpKyspIHsgZXh0ZW5kZWRfc3JjX2xpbmUwW2ldID0gc3JjX2xpbmVfdG9wW2pd
OyBleHRlbmRlZF9zcmNfbGluZTFbaV0gPSBzcmNfbGluZV9ib3R0b21bal07IH0gfSBzcmNfbGlu
ZV90b3AgPSAmZXh0ZW5kZWRfc3JjX2xpbmUwWzBdOyBzcmNfbGluZV9ib3R0b20gPSAmZXh0ZW5k
ZWRfc3JjX2xpbmUxWzBdOyB9IGJ1ZjFbMF0gPSBzcmNfbGluZV90b3Bbc3JjX3dpZHRoIC0gMV07
IGJ1ZjFbMV0gPSBzcmNfbGluZV90b3BbMF07IGJ1ZjJbMF0gPSBzcmNfbGluZV9ib3R0b21bc3Jj
X3dpZHRoIC0gMV07IGJ1ZjJbMV0gPSBzcmNfbGluZV9ib3R0b21bMF07IHdpZHRoX3JlbWFpbiA9
IHdpZHRoOyB3aGlsZSAod2lkdGhfcmVtYWluID4gMCkgeyByZXBlYXQgKFBJWE1BTl9SRVBFQVRf
Tk9STUFMLCAmdngsIHNyY193aWR0aF9maXhlZCk7IGlmICgoKGludCkgKCh2eCkgPj4gMTYpKSA9
PSBzcmNfd2lkdGggLSAxKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhlZCAtIHZ4IC0g
KChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSArIDE7IGlmIChudW1fcGl4ZWxzID4gd2lk
dGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVtYWluOyBzY2FsZWRfYmlsaW5lYXJfc2Nh
bmxpbmVfbW14Xzg4ODhfODg4OF9TUkMgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbnVtX3BpeGVs
cywgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwg
MTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwg
MCk7IHdpZHRoX3JlbWFpbiAtPSBudW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94
OyBkc3QgKz0gbnVtX3BpeGVsczsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhl
bHM7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2ZpeGVkKTsg
fSBpZiAoKChpbnQpICgodngpID4+IDE2KSkgIT0gc3JjX3dpZHRoIC0gMSAmJiB3aWR0aF9yZW1h
aW4gPiAwKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhlZCAtICgoKHBpeG1hbl9maXhl
ZF90KSAoKDEpIDw8IDE2KSkpIC0gdnggLSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1bml0X3gp
ICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3aWR0aF9y
ZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0LCBt
YXNrLCBzcmNfbGluZV90b3AsIHNyY19saW5lX2JvdHRvbSwgbnVtX3BpeGVscywgd2VpZ2h0MSwg
d2VpZ2h0MiwgdngsIHVuaXRfeCwgc3JjX3dpZHRoX2ZpeGVkLCAwKTsgd2lkdGhfcmVtYWluIC09
IG51bV9waXhlbHM7IHZ4ICs9IG51bV9waXhlbHMgKiB1bml0X3g7IGRzdCArPSBudW1fcGl4ZWxz
OyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbnVtX3BpeGVsczsgfSB9IH0gZWxzZSB7IHNj
YWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X1NSQyAoZHN0LCBtYXNrLCBzcmNf
Zmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MSwgc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRl
ICogeTIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCBtYXhfdngsIDApOyB9
IH0gfQoKCgoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZApzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSICh1
aW50MzJfdCAqIGRzdCwKICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogbWFzaywKICAgICAgICAg
IGNvbnN0IHVpbnQzMl90ICogc3JjX3RvcCwKICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3Jj
X2JvdHRvbSwKICAgICAgICAgIGludDMyX3QgdywKICAgICAgICAgIGludCB3dCwKICAgICAgICAg
IGludCB3YiwKICAgICAgICAgIHBpeG1hbl9maXhlZF90IHZ4LAogICAgICAgICAgcGl4bWFuX2Zp
eGVkX3QgdW5pdF94LAogICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgbWF4X3Z4LAogICAgICAgICAg
cGl4bWFuX2Jvb2xfdCB6ZXJvX3NyYykKewogICAgY29uc3QgX19tNjQgbW1fd3QgPSBfbW1fc2V0
X3BpMTYgKHd0LCB3dCwgd3QsIHd0KTsgY29uc3QgX19tNjQgbW1fd2IgPSBfbW1fc2V0X3BpMTYg
KHdiLCB3Yiwgd2IsIHdiKTsgY29uc3QgX19tNjQgbW1fYWRkYzcgPSBfbW1fc2V0X3BpMTYgKDAs
IDEsIDAsIDEpOyBjb25zdCBfX202NCBtbV94b3JjNyA9IF9tbV9zZXRfcGkxNiAoMCwgKCgoMSA8
PCA3KSkgLSAxKSwgMCwgKCgoMSA8PCA3KSkgLSAxKSk7IGNvbnN0IF9fbTY0IG1tX3V4ID0gX21t
X3NldF9waTE2ICh1bml0X3gsIHVuaXRfeCwgdW5pdF94LCB1bml0X3gpOyBjb25zdCBfX202NCBt
bV96ZXJvID0gX21tX3NldHplcm9fc2k2NCAoKTsgX19tNjQgbW1feCA9IF9tbV9zZXRfcGkxNiAo
dngsIHZ4LCB2eCwgdngpOwogICAgX19tNjQgcGl4MSwgcGl4MjsKCiAgICB3aGlsZSAodykKICAg
IHsKIGRvIHsgX19tNjQgdCA9IGxkcV91ICgoX19tNjQgKikmc3JjX3RvcCBbKChpbnQpICgodngp
ID4+IDE2KSldKTsgX19tNjQgYiA9IGxkcV91ICgoX19tNjQgKikmc3JjX2JvdHRvbSBbKChpbnQp
ICgodngpID4+IDE2KSldKTsgX19tNjQgdF9oaSA9IF9tbV9tdWxsb19waTE2IChfbW1fdW5wYWNr
aGlfcGk4ICh0LCBtbV96ZXJvKSwgbW1fd3QpOyBfX202NCB0X2xvID0gX21tX211bGxvX3BpMTYg
KF9tbV91bnBhY2tsb19waTggKHQsIG1tX3plcm8pLCBtbV93dCk7IF9fbTY0IGJfaGkgPSBfbW1f
bXVsbG9fcGkxNiAoX21tX3VucGFja2hpX3BpOCAoYiwgbW1femVybyksIG1tX3diKTsgX19tNjQg
Yl9sbyA9IF9tbV9tdWxsb19waTE2IChfbW1fdW5wYWNrbG9fcGk4IChiLCBtbV96ZXJvKSwgbW1f
d2IpOyBfX202NCBoaSA9IF9tbV9hZGRfcGkxNiAodF9oaSwgYl9oaSk7IF9fbTY0IGxvID0gX21t
X2FkZF9waTE2ICh0X2xvLCBiX2xvKTsgX19tNjQgbW1fd2ggPSBfbW1fYWRkX3BpMTYgKG1tX2Fk
ZGM3LCBfbW1feG9yX3NpNjQgKG1tX3hvcmM3LCBfbW1fc3JsaV9waTE2IChtbV94LCAxNiAtIDcp
KSk7IF9fbTY0IHAgPSBfbW1fdW5wYWNrbG9fcGkxNiAobG8sIGhpKTsgX19tNjQgcSA9IF9tbV91
bnBhY2toaV9waTE2IChsbywgaGkpOyB2eCArPSB1bml0X3g7IGxvID0gX21tX21hZGRfcGkxNiAo
cCwgbW1fd2gpOyBoaSA9IF9tbV9tYWRkX3BpMTYgKHEsIG1tX3doKTsgbW1feCA9IF9tbV9hZGRf
cGkxNiAobW1feCwgbW1fdXgpOyBoaSA9IF9tbV9zcmxpX3BpMzIgKGhpLCA3ICogMik7IGxvID0g
X21tX3NybGlfcGkzMiAobG8sIDcgKiAyKTsgbG8gPSBfbW1fcGFja3NfcGkzMiAobG8sIGhpKTsg
bG8gPSBfbW1fcGFja3NfcHUxNiAobG8sIGxvKTsgcGl4MSA9IGxvOyB9IHdoaWxlICgwKTsKCiBp
ZiAoIWlzX3plcm8gKHBpeDEpKQogewogICAgIHBpeDIgPSBsb2FkIChkc3QpOwogICAgIHN0b3Jl
ODg4OCAoZHN0LCBjb3JlX2NvbWJpbmVfb3Zlcl91X3BpeGVsX21teCAocGl4MSwgcGl4MikpOwog
fQoKIHctLTsKIGRzdCsrOwogICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKfQoKc3RhdGljIHZvaWQg
ZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfY292ZXJfT1ZFUiAo
cGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmlu
Zm8pIHsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZv
LT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFz
a19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1h
bl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51
c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg
aW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGlu
dDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQz
Ml90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJf
dCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhl
aWdodCA9IGluZm8tPmhlaWdodDsgdWludDMyX3QgKmRzdF9saW5lOyB1aW50MzJfdCAqbWFza19s
aW5lOyB1aW50MzJfdCAqc3JjX2ZpcnN0X2xpbmU7IGludCB5MSwgeTI7IHBpeG1hbl9maXhlZF90
IG1heF92eCA9ICgyMTQ3NDgzNjQ3KTsgcGl4bWFuX3ZlY3Rvcl90IHY7IHBpeG1hbl9maXhlZF90
IHZ4LCB2eTsgcGl4bWFuX2ZpeGVkX3QgdW5pdF94LCB1bml0X3k7IGludDMyX3QgbGVmdF9wYWQs
IGxlZnRfdHosIHJpZ2h0X3R6LCByaWdodF9wYWQ7IHVpbnQzMl90ICpkc3Q7IHVpbnQzMl90IHNv
bGlkX21hc2s7IGNvbnN0IHVpbnQzMl90ICptYXNrID0gJnNvbGlkX21hc2s7IGludCBzcmNfc3Ry
aWRlLCBtYXNrX3N0cmlkZSwgZHN0X3N0cmlkZTsgaW50IHNyY193aWR0aDsgcGl4bWFuX2ZpeGVk
X3Qgc3JjX3dpZHRoX2ZpeGVkOyBpbnQgbWF4X3g7IHBpeG1hbl9ib29sX3QgbmVlZF9zcmNfZXh0
ZW5zaW9uOyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19f
ID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5y
b3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQz
Ml90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoZHN0X2xpbmUpID0gKCh1aW50MzJfdCAq
KSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgxKSAqIChkZXN0X3gpOyB9
IHdoaWxlICgwKTsgaWYgKCgwKSAmICgxIDw8IDEpKSB7IHNvbGlkX21hc2sgPSBfcGl4bWFuX2lt
YWdlX2dldF9zb2xpZCAoaW1wLCBtYXNrX2ltYWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7
IG1hc2tfc3RyaWRlID0gMDsgfSBlbHNlIGlmICgoMCkgJiAoMSA8PCAyKSkgeyBkbyB7IHVpbnQz
Ml90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0
cy5iaXRzOyBfX3N0cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0
cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXpl
b2YgKHVpbnQzMl90KTsgKG1hc2tfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArICht
YXNrX3N0cmlkZSkgKiAobWFza195KSArICgxKSAqIChtYXNrX3gpOyB9IHdoaWxlICgwKTsgfSBk
byB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gc3JjX2lt
YWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBzcmNfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAo
c3JjX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50
KSBzaXplb2YgKHVpbnQzMl90KTsgKHNyY19maXJzdF9saW5lKSA9ICgodWludDMyX3QgKikgX19i
aXRzX18pICsgKHNyY19zdHJpZGUpICogKDApICsgKDEpICogKDApOyB9IHdoaWxlICgwKTsgdi52
ZWN0b3JbMF0gPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY194KSA8PCAxNikpICsgKCgocGl4bWFu
X2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsxXSA9ICgocGl4bWFuX2ZpeGVk
X3QpICgoc3JjX3kpIDw8IDE2KSkgKyAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAv
IDI7IHYudmVjdG9yWzJdID0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSk7IGlmICgh
cGl4bWFuX3RyYW5zZm9ybV9wb2ludF8zZCAoc3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3JtLCAm
dikpIHJldHVybjsgdW5pdF94ID0gc3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3JtLT5tYXRyaXhb
MF1bMF07IHVuaXRfeSA9IHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzFdWzFd
OyB2LnZlY3RvclswXSAtPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHYu
dmVjdG9yWzFdIC09ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdnkgPSB2
LnZlY3RvclsxXTsgaWYgKC0xID09IFBJWE1BTl9SRVBFQVRfUEFEIHx8IC0xID09IFBJWE1BTl9S
RVBFQVRfTk9ORSkgeyBiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9zY2FubGluZV9ib3VuZHMgKHNy
Y19pbWFnZS0+Yml0cy53aWR0aCwgdi52ZWN0b3JbMF0sIHVuaXRfeCwgJmxlZnRfcGFkLCAmbGVm
dF90eiwgJndpZHRoLCAmcmlnaHRfdHosICZyaWdodF9wYWQpOyBpZiAoLTEgPT0gUElYTUFOX1JF
UEVBVF9QQUQpIHsgbGVmdF9wYWQgKz0gbGVmdF90ejsgcmlnaHRfcGFkICs9IHJpZ2h0X3R6OyBs
ZWZ0X3R6ID0gcmlnaHRfdHogPSAwOyB9IHYudmVjdG9yWzBdICs9IGxlZnRfcGFkICogdW5pdF94
OyB9IGlmICgtMSA9PSBQSVhNQU5fUkVQRUFUX05PUk1BTCkgeyB2eCA9IHYudmVjdG9yWzBdOyBy
ZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsICgocGl4bWFuX2ZpeGVkX3QpICgoc3Jj
X2ltYWdlLT5iaXRzLndpZHRoKSA8PCAxNikpKTsgbWF4X3ggPSAoKGludCkgKCh2eCArICh3aWR0
aCAtIDEpICogKGludDY0X3QpdW5pdF94KSA+PiAxNikpICsgMTsgaWYgKHNyY19pbWFnZS0+Yml0
cy53aWR0aCA8IDY0KSB7IHNyY193aWR0aCA9IDA7IHdoaWxlIChzcmNfd2lkdGggPCA2NCAmJiBz
cmNfd2lkdGggPD0gbWF4X3gpIHNyY193aWR0aCArPSBzcmNfaW1hZ2UtPmJpdHMud2lkdGg7IG5l
ZWRfc3JjX2V4dGVuc2lvbiA9IDE7IH0gZWxzZSB7IHNyY193aWR0aCA9IHNyY19pbWFnZS0+Yml0
cy53aWR0aDsgbmVlZF9zcmNfZXh0ZW5zaW9uID0gMDsgfSBzcmNfd2lkdGhfZml4ZWQgPSAoKHBp
eG1hbl9maXhlZF90KSAoKHNyY193aWR0aCkgPDwgMTYpKTsgfSB3aGlsZSAoLS1oZWlnaHQgPj0g
MCkgeyBpbnQgd2VpZ2h0MSwgd2VpZ2h0MjsgZHN0ID0gZHN0X2xpbmU7IGRzdF9saW5lICs9IGRz
dF9zdHJpZGU7IHZ4ID0gdi52ZWN0b3JbMF07IGlmICgoMCkgJiAoMSA8PCAyKSkgeyBtYXNrID0g
bWFza19saW5lOyBtYXNrX2xpbmUgKz0gbWFza19zdHJpZGU7IH0geTEgPSAoKGludCkgKCh2eSkg
Pj4gMTYpKTsgd2VpZ2h0MiA9IHBpeG1hbl9maXhlZF90b19iaWxpbmVhcl93ZWlnaHQgKHZ5KTsg
aWYgKHdlaWdodDIpIHsgeTIgPSB5MSArIDE7IHdlaWdodDEgPSAoMSA8PCA3KSAtIHdlaWdodDI7
IH0gZWxzZSB7IHkyID0geTE7IHdlaWdodDEgPSB3ZWlnaHQyID0gKDEgPDwgNykgLyAyOyB9IHZ5
ICs9IHVuaXRfeTsgaWYgKC0xID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IHVpbnQzMl90ICpzcmMx
LCAqc3JjMjsgdWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgcmVwZWF0IChQSVhN
QU5fUkVQRUFUX1BBRCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhN
QU5fUkVQRUFUX1BBRCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjMSA9IHNyY19m
aXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNf
c3RyaWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMx
WzBdOyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGlu
ZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbGVmdF9wYWQsIHdl
aWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyBkc3QgKz0gbGVmdF9wYWQ7IGlmICgoMCkgJiAo
MSA8PCAyKSkgbWFzayArPSBsZWZ0X3BhZDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9iaWxp
bmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwg
d2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7
IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSB3aWR0aDsgfSBpZiAocmlnaHRfcGFkID4gMCkg
eyBidWYxWzBdID0gYnVmMVsxXSA9IHNyYzFbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1
ZjJbMF0gPSBidWYyWzFdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgc2NhbGVk
X2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBi
dWYyLCByaWdodF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyB9IH0gZWxzZSBp
ZiAoLTEgPT0gUElYTUFOX1JFUEVBVF9OT05FKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWlu
dDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgaWYgKHkxIDwgMCkgeyB3ZWlnaHQxID0g
MDsgeTEgPSAwOyB9IGlmICh5MSA+PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KSB7IHdlaWdodDEg
PSAwOyB5MSA9IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQgLSAxOyB9IGlmICh5MiA8IDApIHsgd2Vp
Z2h0MiA9IDA7IHkyID0gMDsgfSBpZiAoeTIgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3
ZWlnaHQyID0gMDsgeTIgPSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBzcmMxID0gc3Jj
X2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBzcmNfZmlyc3RfbGluZSArIHNy
Y19zdHJpZGUgKiB5MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IDA7
IGJ1ZjJbMF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4
Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2Vp
Z2h0MiwgMCwgMCwgMCwgMSk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAmICgxIDw8IDIpKSBt
YXNrICs9IGxlZnRfcGFkOyB9IGlmIChsZWZ0X3R6ID4gMCkgeyBidWYxWzBdID0gMDsgYnVmMVsx
XSA9IHNyYzFbMF07IGJ1ZjJbMF0gPSAwOyBidWYyWzFdID0gc3JjMlswXTsgc2NhbGVkX2JpbGlu
ZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBs
ZWZ0X3R6LCB3ZWlnaHQxLCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXhtYW5fZml4ZWRfdCkgKCgx
KSA8PCAxNikpKSAtICgocGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRfeCwgMCwgMCk7IGRzdCAr
PSBsZWZ0X3R6OyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF90ejsgdnggKz0gbGVm
dF90eiAqIHVuaXRfeDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGlu
ZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdo
dDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMCkgJiAo
MSA8PCAyKSkgbWFzayArPSB3aWR0aDsgdnggKz0gd2lkdGggKiB1bml0X3g7IH0gaWYgKHJpZ2h0
X3R6ID4gMCkgeyBidWYxWzBdID0gc3JjMVtzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVm
MVsxXSA9IDA7IGJ1ZjJbMF0gPSBzcmMyW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYy
WzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0
LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF90eiwgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAo
KCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkp
LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gcmlnaHRfdHo7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFz
ayArPSByaWdodF90ejsgfSBpZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9
IDA7IGJ1ZjJbMF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84
ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF9wYWQsIHdlaWdodDEs
IHdlaWdodDIsIDAsIDAsIDAsIDEpOyB9IH0gZWxzZSBpZiAoLTEgPT0gUElYTUFOX1JFUEVBVF9O
T1JNQUwpIHsgaW50MzJfdCBudW1fcGl4ZWxzOyBpbnQzMl90IHdpZHRoX3JlbWFpbjsgdWludDMy
X3QgKiBzcmNfbGluZV90b3A7IHVpbnQzMl90ICogc3JjX2xpbmVfYm90dG9tOyB1aW50MzJfdCBi
dWYxWzJdOyB1aW50MzJfdCBidWYyWzJdOyB1aW50MzJfdCBleHRlbmRlZF9zcmNfbGluZTBbNjQq
Ml07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19saW5lMVs2NCoyXTsgaW50IGksIGo7IHJlcGVhdCAo
UElYTUFOX1JFUEVBVF9OT1JNQUwsICZ5MSwgc3JjX2ltYWdlLT5iaXRzLmhlaWdodCk7IHJlcGVh
dCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ5Miwgc3JjX2ltYWdlLT5iaXRzLmhlaWdodCk7IHNy
Y19saW5lX3RvcCA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmNfbGluZV9i
b3R0b20gPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MjsgaWYgKG5lZWRfc3JjX2V4
dGVuc2lvbikgeyBmb3IgKGk9MDsgaTxzcmNfd2lkdGg7KSB7IGZvciAoaj0wOyBqPHNyY19pbWFn
ZS0+Yml0cy53aWR0aDsgaisrLCBpKyspIHsgZXh0ZW5kZWRfc3JjX2xpbmUwW2ldID0gc3JjX2xp
bmVfdG9wW2pdOyBleHRlbmRlZF9zcmNfbGluZTFbaV0gPSBzcmNfbGluZV9ib3R0b21bal07IH0g
fSBzcmNfbGluZV90b3AgPSAmZXh0ZW5kZWRfc3JjX2xpbmUwWzBdOyBzcmNfbGluZV9ib3R0b20g
PSAmZXh0ZW5kZWRfc3JjX2xpbmUxWzBdOyB9IGJ1ZjFbMF0gPSBzcmNfbGluZV90b3Bbc3JjX3dp
ZHRoIC0gMV07IGJ1ZjFbMV0gPSBzcmNfbGluZV90b3BbMF07IGJ1ZjJbMF0gPSBzcmNfbGluZV9i
b3R0b21bc3JjX3dpZHRoIC0gMV07IGJ1ZjJbMV0gPSBzcmNfbGluZV9ib3R0b21bMF07IHdpZHRo
X3JlbWFpbiA9IHdpZHRoOyB3aGlsZSAod2lkdGhfcmVtYWluID4gMCkgeyByZXBlYXQgKFBJWE1B
Tl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0aF9maXhlZCk7IGlmICgoKGludCkgKCh2eCkg
Pj4gMTYpKSA9PSBzcmNfd2lkdGggLSAxKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhl
ZCAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSArIDE7IGlmIChudW1fcGl4
ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVtYWluOyBzY2FsZWRfYmls
aW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIs
IG51bV9waXhlbHMsIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90
KSAoKDEpIDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCBzcmNfd2lk
dGhfZml4ZWQsIDApOyB3aWR0aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3BpeGVs
cyAqIHVuaXRfeDsgZHN0ICs9IG51bV9waXhlbHM7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayAr
PSBudW1fcGl4ZWxzOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0
aF9maXhlZCk7IH0gaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikpICE9IHNyY193aWR0aCAtIDEgJiYg
d2lkdGhfcmVtYWluID4gMCkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSAoKChw
aXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkp
IC8gdW5pdF94KSArIDE7IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxz
ID0gd2lkdGhfcmVtYWluOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9P
VkVSIChkc3QsIG1hc2ssIHNyY19saW5lX3RvcCwgc3JjX2xpbmVfYm90dG9tLCBudW1fcGl4ZWxz
LCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCBzcmNfd2lkdGhfZml4ZWQsIDApOyB3aWR0
aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3BpeGVscyAqIHVuaXRfeDsgZHN0ICs9
IG51bV9waXhlbHM7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxzOyB9IH0g
fSBlbHNlIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0
LCBtYXNrLCBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MSwgc3JjX2ZpcnN0X2xpbmUg
KyBzcmNfc3RyaWRlICogeTIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCBt
YXhfdngsIDApOyB9IH0gfQoKCgpzdGF0aWMgdm9pZCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmls
aW5lYXJfbW14Xzg4ODhfODg4OF9wYWRfT1ZFUiAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmlt
cCwgcGl4bWFuX2NvbXBvc2l0ZV9pbmZvX3QgKmluZm8pIHsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgcGl4bWFuX29wX3Qgb3AgPSBpbmZvLT5vcDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4
bWFuX2ltYWdlX3QgKiBzcmNfaW1hZ2UgPSBpbmZvLT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18o
KHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogbWFza19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7
IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGlu
Zm8tPmRlc3RfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBp
bmZvLT5zcmNfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8t
PnNyY195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1h
c2tfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNr
X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0
dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IGhlaWdodCA9IGluZm8tPmhlaWdodDsgdWludDMy
X3QgKmRzdF9saW5lOyB1aW50MzJfdCAqbWFza19saW5lOyB1aW50MzJfdCAqc3JjX2ZpcnN0X2xp
bmU7IGludCB5MSwgeTI7IHBpeG1hbl9maXhlZF90IG1heF92eCA9ICgyMTQ3NDgzNjQ3KTsgcGl4
bWFuX3ZlY3Rvcl90IHY7IHBpeG1hbl9maXhlZF90IHZ4LCB2eTsgcGl4bWFuX2ZpeGVkX3QgdW5p
dF94LCB1bml0X3k7IGludDMyX3QgbGVmdF9wYWQsIGxlZnRfdHosIHJpZ2h0X3R6LCByaWdodF9w
YWQ7IHVpbnQzMl90ICpkc3Q7IHVpbnQzMl90IHNvbGlkX21hc2s7IGNvbnN0IHVpbnQzMl90ICpt
YXNrID0gJnNvbGlkX21hc2s7IGludCBzcmNfc3RyaWRlLCBtYXNrX3N0cmlkZSwgZHN0X3N0cmlk
ZTsgaW50IHNyY193aWR0aDsgcGl4bWFuX2ZpeGVkX3Qgc3JjX3dpZHRoX2ZpeGVkOyBpbnQgbWF4
X3g7IHBpeG1hbl9ib29sX3QgbmVlZF9zcmNfZXh0ZW5zaW9uOyBkbyB7IHVpbnQzMl90ICpfX2Jp
dHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBf
X3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9f
c3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMy
X3QpOyAoZHN0X2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkg
KiAoZGVzdF95KSArICgxKSAqIChkZXN0X3gpOyB9IHdoaWxlICgwKTsgaWYgKCgwKSAmICgxIDw8
IDEpKSB7IHNvbGlkX21hc2sgPSBfcGl4bWFuX2ltYWdlX2dldF9zb2xpZCAoaW1wLCBtYXNrX2lt
YWdlLCBkZXN0X2ltYWdlLT5iaXRzLmZvcm1hdCk7IG1hc2tfc3RyaWRlID0gMDsgfSBlbHNlIGlm
ICgoMCkgJiAoMSA8PCAyKSkgeyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRl
X187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gbWFza19p
bWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkg
c2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKG1hc2tfbGluZSkg
PSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChtYXNrX3N0cmlkZSkgKiAobWFza195KSArICgx
KSAqIChtYXNrX3gpOyB9IHdoaWxlICgwKTsgfSBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50
IF9fc3RyaWRlX187IF9fYml0c19fID0gc3JjX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18g
PSBzcmNfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAoc3JjX3N0cmlkZSkgPSBfX3N0cmlkZV9fICog
KGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKHNyY19m
aXJzdF9saW5lKSA9ICgodWludDMyX3QgKikgX19iaXRzX18pICsgKHNyY19zdHJpZGUpICogKDAp
ICsgKDEpICogKDApOyB9IHdoaWxlICgwKTsgdi52ZWN0b3JbMF0gPSAoKHBpeG1hbl9maXhlZF90
KSAoKHNyY194KSA8PCAxNikpICsgKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAy
OyB2LnZlY3RvclsxXSA9ICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX3kpIDw8IDE2KSkgKyAoKChw
aXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHYudmVjdG9yWzJdID0gKCgocGl4bWFu
X2ZpeGVkX3QpICgoMSkgPDwgMTYpKSk7IGlmICghcGl4bWFuX3RyYW5zZm9ybV9wb2ludF8zZCAo
c3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3JtLCAmdikpIHJldHVybjsgdW5pdF94ID0gc3JjX2lt
YWdlLT5jb21tb24udHJhbnNmb3JtLT5tYXRyaXhbMF1bMF07IHVuaXRfeSA9IHNyY19pbWFnZS0+
Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzFdWzFdOyB2LnZlY3RvclswXSAtPSAoKChwaXhtYW5f
Zml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHYudmVjdG9yWzFdIC09ICgoKHBpeG1hbl9maXhl
ZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdnkgPSB2LnZlY3RvclsxXTsgaWYgKFBJWE1BTl9SRVBF
QVRfUEFEID09IFBJWE1BTl9SRVBFQVRfUEFEIHx8IFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1B
Tl9SRVBFQVRfTk9ORSkgeyBiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9zY2FubGluZV9ib3VuZHMg
KHNyY19pbWFnZS0+Yml0cy53aWR0aCwgdi52ZWN0b3JbMF0sIHVuaXRfeCwgJmxlZnRfcGFkLCAm
bGVmdF90eiwgJndpZHRoLCAmcmlnaHRfdHosICZyaWdodF9wYWQpOyBpZiAoUElYTUFOX1JFUEVB
VF9QQUQgPT0gUElYTUFOX1JFUEVBVF9QQUQpIHsgbGVmdF9wYWQgKz0gbGVmdF90ejsgcmlnaHRf
cGFkICs9IHJpZ2h0X3R6OyBsZWZ0X3R6ID0gcmlnaHRfdHogPSAwOyB9IHYudmVjdG9yWzBdICs9
IGxlZnRfcGFkICogdW5pdF94OyB9IGlmIChQSVhNQU5fUkVQRUFUX1BBRCA9PSBQSVhNQU5fUkVQ
RUFUX05PUk1BTCkgeyB2eCA9IHYudmVjdG9yWzBdOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9S
TUFMLCAmdngsICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX2ltYWdlLT5iaXRzLndpZHRoKSA8PCAx
NikpKTsgbWF4X3ggPSAoKGludCkgKCh2eCArICh3aWR0aCAtIDEpICogKGludDY0X3QpdW5pdF94
KSA+PiAxNikpICsgMTsgaWYgKHNyY19pbWFnZS0+Yml0cy53aWR0aCA8IDY0KSB7IHNyY193aWR0
aCA9IDA7IHdoaWxlIChzcmNfd2lkdGggPCA2NCAmJiBzcmNfd2lkdGggPD0gbWF4X3gpIHNyY193
aWR0aCArPSBzcmNfaW1hZ2UtPmJpdHMud2lkdGg7IG5lZWRfc3JjX2V4dGVuc2lvbiA9IDE7IH0g
ZWxzZSB7IHNyY193aWR0aCA9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsgbmVlZF9zcmNfZXh0ZW5z
aW9uID0gMDsgfSBzcmNfd2lkdGhfZml4ZWQgPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY193aWR0
aCkgPDwgMTYpKTsgfSB3aGlsZSAoLS1oZWlnaHQgPj0gMCkgeyBpbnQgd2VpZ2h0MSwgd2VpZ2h0
MjsgZHN0ID0gZHN0X2xpbmU7IGRzdF9saW5lICs9IGRzdF9zdHJpZGU7IHZ4ID0gdi52ZWN0b3Jb
MF07IGlmICgoMCkgJiAoMSA8PCAyKSkgeyBtYXNrID0gbWFza19saW5lOyBtYXNrX2xpbmUgKz0g
bWFza19zdHJpZGU7IH0geTEgPSAoKGludCkgKCh2eSkgPj4gMTYpKTsgd2VpZ2h0MiA9IHBpeG1h
bl9maXhlZF90b19iaWxpbmVhcl93ZWlnaHQgKHZ5KTsgaWYgKHdlaWdodDIpIHsgeTIgPSB5MSAr
IDE7IHdlaWdodDEgPSAoMSA8PCA3KSAtIHdlaWdodDI7IH0gZWxzZSB7IHkyID0geTE7IHdlaWdo
dDEgPSB3ZWlnaHQyID0gKDEgPDwgNykgLyAyOyB9IHZ5ICs9IHVuaXRfeTsgaWYgKFBJWE1BTl9S
RVBFQVRfUEFEID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsg
dWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgcmVwZWF0IChQSVhNQU5fUkVQRUFU
X1BBRCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFU
X1BBRCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjMSA9IHNyY19maXJzdF9saW5l
ICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICog
eTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYy
WzBdID0gYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4
OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbGVmdF9wYWQsIHdlaWdodDEsIHdl
aWdodDIsIDAsIDAsIDAsIDApOyBkc3QgKz0gbGVmdF9wYWQ7IGlmICgoMCkgJiAoMSA8PCAyKSkg
bWFzayArPSBsZWZ0X3BhZDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9zY2Fu
bGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdl
aWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMCkg
JiAoMSA8PCAyKSkgbWFzayArPSB3aWR0aDsgfSBpZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBd
ID0gYnVmMVsxXSA9IHNyYzFbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1ZjJbMF0gPSBi
dWYyWzFdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgc2NhbGVkX2JpbGluZWFy
X3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdo
dF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyB9IH0gZWxzZSBpZiAoUElYTUFO
X1JFUEVBVF9QQUQgPT0gUElYTUFOX1JFUEVBVF9OT05FKSB7IHVpbnQzMl90ICpzcmMxLCAqc3Jj
MjsgdWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsyXTsgaWYgKHkxIDwgMCkgeyB3ZWln
aHQxID0gMDsgeTEgPSAwOyB9IGlmICh5MSA+PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KSB7IHdl
aWdodDEgPSAwOyB5MSA9IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQgLSAxOyB9IGlmICh5MiA8IDAp
IHsgd2VpZ2h0MiA9IDA7IHkyID0gMDsgfSBpZiAoeTIgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdo
dCkgeyB3ZWlnaHQyID0gMDsgeTIgPSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBzcmMx
ID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBzcmNfZmlyc3RfbGlu
ZSArIHNyY19zdHJpZGUgKiB5MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsx
XSA9IDA7IGJ1ZjJbMF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21t
eF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0
MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMSk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAmICgxIDw8
IDIpKSBtYXNrICs9IGxlZnRfcGFkOyB9IGlmIChsZWZ0X3R6ID4gMCkgeyBidWYxWzBdID0gMDsg
YnVmMVsxXSA9IHNyYzFbMF07IGJ1ZjJbMF0gPSAwOyBidWYyWzFdID0gc3JjMlswXTsgc2NhbGVk
X2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBi
dWYyLCBsZWZ0X3R6LCB3ZWlnaHQxLCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXhtYW5fZml4ZWRf
dCkgKCgxKSA8PCAxNikpKSAtICgocGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRfeCwgMCwgMCk7
IGRzdCArPSBsZWZ0X3R6OyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF90ejsgdngg
Kz0gbGVmdF90eiAqIHVuaXRfeDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9z
Y2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgs
IHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgo
MCkgJiAoMSA8PCAyKSkgbWFzayArPSB3aWR0aDsgdnggKz0gd2lkdGggKiB1bml0X3g7IH0gaWYg
KHJpZ2h0X3R6ID4gMCkgeyBidWYxWzBdID0gc3JjMVtzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAx
XTsgYnVmMVsxXSA9IDA7IGJ1ZjJbMF0gPSBzcmMyW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFd
OyBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZF
UiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF90eiwgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2
eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90
KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gcmlnaHRfdHo7IGlmICgoMCkgJiAoMSA8PCAy
KSkgbWFzayArPSByaWdodF90ejsgfSBpZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVm
MVsxXSA9IDA7IGJ1ZjJbMF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5l
X21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF9wYWQsIHdl
aWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDEpOyB9IH0gZWxzZSBpZiAoUElYTUFOX1JFUEVBVF9Q
QUQgPT0gUElYTUFOX1JFUEVBVF9OT1JNQUwpIHsgaW50MzJfdCBudW1fcGl4ZWxzOyBpbnQzMl90
IHdpZHRoX3JlbWFpbjsgdWludDMyX3QgKiBzcmNfbGluZV90b3A7IHVpbnQzMl90ICogc3JjX2xp
bmVfYm90dG9tOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJfdCBidWYyWzJdOyB1aW50MzJfdCBl
eHRlbmRlZF9zcmNfbGluZTBbNjQqMl07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19saW5lMVs2NCoy
XTsgaW50IGksIGo7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ5MSwgc3JjX2ltYWdl
LT5iaXRzLmhlaWdodCk7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ5Miwgc3JjX2lt
YWdlLT5iaXRzLmhlaWdodCk7IHNyY19saW5lX3RvcCA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0
cmlkZSAqIHkxOyBzcmNfbGluZV9ib3R0b20gPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUg
KiB5MjsgaWYgKG5lZWRfc3JjX2V4dGVuc2lvbikgeyBmb3IgKGk9MDsgaTxzcmNfd2lkdGg7KSB7
IGZvciAoaj0wOyBqPHNyY19pbWFnZS0+Yml0cy53aWR0aDsgaisrLCBpKyspIHsgZXh0ZW5kZWRf
c3JjX2xpbmUwW2ldID0gc3JjX2xpbmVfdG9wW2pdOyBleHRlbmRlZF9zcmNfbGluZTFbaV0gPSBz
cmNfbGluZV9ib3R0b21bal07IH0gfSBzcmNfbGluZV90b3AgPSAmZXh0ZW5kZWRfc3JjX2xpbmUw
WzBdOyBzcmNfbGluZV9ib3R0b20gPSAmZXh0ZW5kZWRfc3JjX2xpbmUxWzBdOyB9IGJ1ZjFbMF0g
PSBzcmNfbGluZV90b3Bbc3JjX3dpZHRoIC0gMV07IGJ1ZjFbMV0gPSBzcmNfbGluZV90b3BbMF07
IGJ1ZjJbMF0gPSBzcmNfbGluZV9ib3R0b21bc3JjX3dpZHRoIC0gMV07IGJ1ZjJbMV0gPSBzcmNf
bGluZV9ib3R0b21bMF07IHdpZHRoX3JlbWFpbiA9IHdpZHRoOyB3aGlsZSAod2lkdGhfcmVtYWlu
ID4gMCkgeyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0aF9maXhl
ZCk7IGlmICgoKGludCkgKCh2eCkgPj4gMTYpKSA9PSBzcmNfd2lkdGggLSAxKSB7IG51bV9waXhl
bHMgPSAoKHNyY193aWR0aF9maXhlZCAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5p
dF94KSArIDE7IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lk
dGhfcmVtYWluOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChk
c3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIG51bV9waXhlbHMsIHdlaWdodDEsIHdlaWdodDIsICgodngp
ICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkg
MSkpKSwgdW5pdF94LCBzcmNfd2lkdGhfZml4ZWQsIDApOyB3aWR0aF9yZW1haW4gLT0gbnVtX3Bp
eGVsczsgdnggKz0gbnVtX3BpeGVscyAqIHVuaXRfeDsgZHN0ICs9IG51bV9waXhlbHM7IGlmICgo
MCkgJiAoMSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxzOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRf
Tk9STUFMLCAmdngsIHNyY193aWR0aF9maXhlZCk7IH0gaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikp
ICE9IHNyY193aWR0aCAtIDEgJiYgd2lkdGhfcmVtYWluID4gMCkgeyBudW1fcGl4ZWxzID0gKChz
cmNfd2lkdGhfZml4ZWQgLSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtIHZ4IC0g
KChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSArIDE7IGlmIChudW1fcGl4ZWxzID4gd2lk
dGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVtYWluOyBzY2FsZWRfYmlsaW5lYXJfc2Nh
bmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIHNyY19saW5lX3RvcCwgc3JjX2xp
bmVfYm90dG9tLCBudW1fcGl4ZWxzLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCBzcmNf
d2lkdGhfZml4ZWQsIDApOyB3aWR0aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3Bp
eGVscyAqIHVuaXRfeDsgZHN0ICs9IG51bV9waXhlbHM7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFz
ayArPSBudW1fcGl4ZWxzOyB9IH0gfSBlbHNlIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21t
eF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUg
KiB5MSwgc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTIsIHdpZHRoLCB3ZWlnaHQxLCB3
ZWlnaHQyLCB2eCwgdW5pdF94LCBtYXhfdngsIDApOyB9IH0gfQoKCgpzdGF0aWMgdm9pZCBmYXN0
X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9ub25lX09WRVIgKHBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICppbXAsIHBpeG1hbl9jb21wb3NpdGVfaW5mb190ICppbmZvKSB7
IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9vcF90IG9wID0gaW5mby0+b3A7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFnZV90ICogc3JjX2ltYWdlID0gaW5mby0+c3Jj
X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIG1hc2tfaW1h
Z2UgPSBpbmZvLT5tYXNrX2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1h
Z2VfdCAqIGRlc3RfaW1hZ2UgPSBpbmZvLT5kZXN0X2ltYWdlOyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBpbnQzMl90IHNyY194ID0gaW5mby0+c3JjX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IGludDMyX3Qgc3JjX3kgPSBpbmZvLT5zcmNfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBtYXNrX3ggPSBpbmZvLT5tYXNrX3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3QgbWFza195ID0gaW5mby0+bWFza195OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IGRlc3RfeCA9IGluZm8tPmRlc3RfeDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBk
ZXN0X3kgPSBpbmZvLT5kZXN0X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgd2lk
dGggPSBpbmZvLT53aWR0aDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBoZWlnaHQg
PSBpbmZvLT5oZWlnaHQ7IHVpbnQzMl90ICpkc3RfbGluZTsgdWludDMyX3QgKm1hc2tfbGluZTsg
dWludDMyX3QgKnNyY19maXJzdF9saW5lOyBpbnQgeTEsIHkyOyBwaXhtYW5fZml4ZWRfdCBtYXhf
dnggPSAoMjE0NzQ4MzY0Nyk7IHBpeG1hbl92ZWN0b3JfdCB2OyBwaXhtYW5fZml4ZWRfdCB2eCwg
dnk7IHBpeG1hbl9maXhlZF90IHVuaXRfeCwgdW5pdF95OyBpbnQzMl90IGxlZnRfcGFkLCBsZWZ0
X3R6LCByaWdodF90eiwgcmlnaHRfcGFkOyB1aW50MzJfdCAqZHN0OyB1aW50MzJfdCBzb2xpZF9t
YXNrOyBjb25zdCB1aW50MzJfdCAqbWFzayA9ICZzb2xpZF9tYXNrOyBpbnQgc3JjX3N0cmlkZSwg
bWFza19zdHJpZGUsIGRzdF9zdHJpZGU7IGludCBzcmNfd2lkdGg7IHBpeG1hbl9maXhlZF90IHNy
Y193aWR0aF9maXhlZDsgaW50IG1heF94OyBwaXhtYW5fYm9vbF90IG5lZWRfc3JjX2V4dGVuc2lv
bjsgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IGRl
c3RfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IGRlc3RfaW1hZ2UtPmJpdHMucm93c3Ry
aWRlOyAoZHN0X3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkg
LyAoaW50KSBzaXplb2YgKHVpbnQzMl90KTsgKGRzdF9saW5lKSA9ICgodWludDMyX3QgKikgX19i
aXRzX18pICsgKGRzdF9zdHJpZGUpICogKGRlc3RfeSkgKyAoMSkgKiAoZGVzdF94KTsgfSB3aGls
ZSAoMCk7IGlmICgoMCkgJiAoMSA8PCAxKSkgeyBzb2xpZF9tYXNrID0gX3BpeG1hbl9pbWFnZV9n
ZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOyBtYXNr
X3N0cmlkZSA9IDA7IH0gZWxzZSBpZiAoKDApICYgKDEgPDwgMikpIHsgZG8geyB1aW50MzJfdCAq
X19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IG1hc2tfaW1hZ2UtPmJpdHMuYml0
czsgX19zdHJpZGVfXyA9IG1hc2tfaW1hZ2UtPmJpdHMucm93c3RyaWRlOyAobWFza19zdHJpZGUp
ID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1
aW50MzJfdCk7IChtYXNrX2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAobWFza19z
dHJpZGUpICogKG1hc2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7IH0gZG8geyB1
aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+
Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKHNyY19z
dHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6
ZW9mICh1aW50MzJfdCk7IChzcmNfZmlyc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19f
KSArIChzcmNfc3RyaWRlKSAqICgwKSArICgxKSAqICgwKTsgfSB3aGlsZSAoMCk7IHYudmVjdG9y
WzBdID0gKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfeCkgPDwgMTYpKSArICgoKHBpeG1hbl9maXhl
ZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMV0gPSAoKHBpeG1hbl9maXhlZF90KSAo
KHNyY195KSA8PCAxNikpICsgKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2
LnZlY3RvclsyXSA9ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpOyBpZiAoIXBpeG1h
bl90cmFuc2Zvcm1fcG9pbnRfM2QgKHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybSwgJnYpKSBy
ZXR1cm47IHVuaXRfeCA9IHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzBdWzBd
OyB1bml0X3kgPSBzcmNfaW1hZ2UtPmNvbW1vbi50cmFuc2Zvcm0tPm1hdHJpeFsxXVsxXTsgdi52
ZWN0b3JbMF0gLT0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3Rv
clsxXSAtPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHZ5ID0gdi52ZWN0
b3JbMV07IGlmIChQSVhNQU5fUkVQRUFUX05PTkUgPT0gUElYTUFOX1JFUEVBVF9QQUQgfHwgUElY
TUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfTk9ORSkgeyBiaWxpbmVhcl9wYWRfcmVw
ZWF0X2dldF9zY2FubGluZV9ib3VuZHMgKHNyY19pbWFnZS0+Yml0cy53aWR0aCwgdi52ZWN0b3Jb
MF0sIHVuaXRfeCwgJmxlZnRfcGFkLCAmbGVmdF90eiwgJndpZHRoLCAmcmlnaHRfdHosICZyaWdo
dF9wYWQpOyBpZiAoUElYTUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IGxl
ZnRfcGFkICs9IGxlZnRfdHo7IHJpZ2h0X3BhZCArPSByaWdodF90ejsgbGVmdF90eiA9IHJpZ2h0
X3R6ID0gMDsgfSB2LnZlY3RvclswXSArPSBsZWZ0X3BhZCAqIHVuaXRfeDsgfSBpZiAoUElYTUFO
X1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IHZ4ID0gdi52ZWN0b3JbMF07
IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgKChwaXhtYW5fZml4ZWRfdCkgKChz
cmNfaW1hZ2UtPmJpdHMud2lkdGgpIDw8IDE2KSkpOyBtYXhfeCA9ICgoaW50KSAoKHZ4ICsgKHdp
ZHRoIC0gMSkgKiAoaW50NjRfdCl1bml0X3gpID4+IDE2KSkgKyAxOyBpZiAoc3JjX2ltYWdlLT5i
aXRzLndpZHRoIDwgNjQpIHsgc3JjX3dpZHRoID0gMDsgd2hpbGUgKHNyY193aWR0aCA8IDY0ICYm
IHNyY193aWR0aCA8PSBtYXhfeCkgc3JjX3dpZHRoICs9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsg
bmVlZF9zcmNfZXh0ZW5zaW9uID0gMTsgfSBlbHNlIHsgc3JjX3dpZHRoID0gc3JjX2ltYWdlLT5i
aXRzLndpZHRoOyBuZWVkX3NyY19leHRlbnNpb24gPSAwOyB9IHNyY193aWR0aF9maXhlZCA9ICgo
cGl4bWFuX2ZpeGVkX3QpICgoc3JjX3dpZHRoKSA8PCAxNikpOyB9IHdoaWxlICgtLWhlaWdodCA+
PSAwKSB7IGludCB3ZWlnaHQxLCB3ZWlnaHQyOyBkc3QgPSBkc3RfbGluZTsgZHN0X2xpbmUgKz0g
ZHN0X3N0cmlkZTsgdnggPSB2LnZlY3RvclswXTsgaWYgKCgwKSAmICgxIDw8IDIpKSB7IG1hc2sg
PSBtYXNrX2xpbmU7IG1hc2tfbGluZSArPSBtYXNrX3N0cmlkZTsgfSB5MSA9ICgoaW50KSAoKHZ5
KSA+PiAxNikpOyB3ZWlnaHQyID0gcGl4bWFuX2ZpeGVkX3RvX2JpbGluZWFyX3dlaWdodCAodnkp
OyBpZiAod2VpZ2h0MikgeyB5MiA9IHkxICsgMTsgd2VpZ2h0MSA9ICgxIDw8IDcpIC0gd2VpZ2h0
MjsgfSBlbHNlIHsgeTIgPSB5MTsgd2VpZ2h0MSA9IHdlaWdodDIgPSAoMSA8PCA3KSAvIDI7IH0g
dnkgKz0gdW5pdF95OyBpZiAoUElYTUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfUEFE
KSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVm
MlsyXTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVp
Z2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVp
Z2h0KTsgc3JjMSA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3Jj
X2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVsw
XSA9IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxl
ZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwg
YnVmMiwgbGVmdF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyBkc3QgKz0gbGVm
dF9wYWQ7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBsZWZ0X3BhZDsgfSBpZiAod2lkdGgg
PiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwg
bWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIDAs
IDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSB3aWR0aDsgfSBp
ZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IHNyYzFbc3JjX2ltYWdlLT5i
aXRzLndpZHRoIC0gMV07IGJ1ZjJbMF0gPSBidWYyWzFdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMu
d2lkdGggLSAxXTsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAo
ZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAs
IDAsIDApOyB9IH0gZWxzZSBpZiAoUElYTUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRf
Tk9ORSkgeyB1aW50MzJfdCAqc3JjMSwgKnNyYzI7IHVpbnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90
IGJ1ZjJbMl07IGlmICh5MSA8IDApIHsgd2VpZ2h0MSA9IDA7IHkxID0gMDsgfSBpZiAoeTEgPj0g
c3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWlnaHQxID0gMDsgeTEgPSBzcmNfaW1hZ2UtPmJp
dHMuaGVpZ2h0IC0gMTsgfSBpZiAoeTIgPCAwKSB7IHdlaWdodDIgPSAwOyB5MiA9IDA7IH0gaWYg
KHkyID49IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpIHsgd2VpZ2h0MiA9IDA7IHkyID0gc3JjX2lt
YWdlLT5iaXRzLmhlaWdodCAtIDE7IH0gc3JjMSA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlk
ZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChsZWZ0
X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gYnVmMlsxXSA9IDA7
IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywg
YnVmMSwgYnVmMiwgbGVmdF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDEpOyBkc3Qg
Kz0gbGVmdF9wYWQ7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayArPSBsZWZ0X3BhZDsgfSBpZiAo
bGVmdF90eiA+IDApIHsgYnVmMVswXSA9IDA7IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYyWzBdID0g
MDsgYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84
ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbGVmdF90eiwgd2VpZ2h0MSwgd2VpZ2h0
MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9m
aXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gbGVmdF90ejsgaWYgKCgwKSAmICgx
IDw8IDIpKSBtYXNrICs9IGxlZnRfdHo7IHZ4ICs9IGxlZnRfdHogKiB1bml0X3g7IH0gaWYgKHdp
ZHRoID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChk
c3QsIG1hc2ssIHNyYzEsIHNyYzIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94
LCAwLCAwKTsgZHN0ICs9IHdpZHRoOyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7
IHZ4ICs9IHdpZHRoICogdW5pdF94OyB9IGlmIChyaWdodF90eiA+IDApIHsgYnVmMVswXSA9IHNy
YzFbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gc3Jj
MltzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVh
cl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgcmln
aHRfdHosIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEp
IDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCAwLCAwKTsgZHN0ICs9
IHJpZ2h0X3R6OyBpZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gcmlnaHRfdHo7IH0gaWYgKHJp
Z2h0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gYnVmMlsxXSA9
IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFz
aywgYnVmMSwgYnVmMiwgcmlnaHRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAxKTsg
fSB9IGVsc2UgaWYgKFBJWE1BTl9SRVBFQVRfTk9ORSA9PSBQSVhNQU5fUkVQRUFUX05PUk1BTCkg
eyBpbnQzMl90IG51bV9waXhlbHM7IGludDMyX3Qgd2lkdGhfcmVtYWluOyB1aW50MzJfdCAqIHNy
Y19saW5lX3RvcDsgdWludDMyX3QgKiBzcmNfbGluZV9ib3R0b207IHVpbnQzMl90IGJ1ZjFbMl07
IHVpbnQzMl90IGJ1ZjJbMl07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19saW5lMFs2NCoyXTsgdWlu
dDMyX3QgZXh0ZW5kZWRfc3JjX2xpbmUxWzY0KjJdOyBpbnQgaSwgajsgcmVwZWF0IChQSVhNQU5f
UkVQRUFUX05PUk1BTCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhN
QU5fUkVQRUFUX05PUk1BTCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjX2xpbmVf
dG9wID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyY19saW5lX2JvdHRvbSA9
IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobmVlZF9zcmNfZXh0ZW5zaW9u
KSB7IGZvciAoaT0wOyBpPHNyY193aWR0aDspIHsgZm9yIChqPTA7IGo8c3JjX2ltYWdlLT5iaXRz
LndpZHRoOyBqKyssIGkrKykgeyBleHRlbmRlZF9zcmNfbGluZTBbaV0gPSBzcmNfbGluZV90b3Bb
al07IGV4dGVuZGVkX3NyY19saW5lMVtpXSA9IHNyY19saW5lX2JvdHRvbVtqXTsgfSB9IHNyY19s
aW5lX3RvcCA9ICZleHRlbmRlZF9zcmNfbGluZTBbMF07IHNyY19saW5lX2JvdHRvbSA9ICZleHRl
bmRlZF9zcmNfbGluZTFbMF07IH0gYnVmMVswXSA9IHNyY19saW5lX3RvcFtzcmNfd2lkdGggLSAx
XTsgYnVmMVsxXSA9IHNyY19saW5lX3RvcFswXTsgYnVmMlswXSA9IHNyY19saW5lX2JvdHRvbVtz
cmNfd2lkdGggLSAxXTsgYnVmMlsxXSA9IHNyY19saW5lX2JvdHRvbVswXTsgd2lkdGhfcmVtYWlu
ID0gd2lkdGg7IHdoaWxlICh3aWR0aF9yZW1haW4gPiAwKSB7IHJlcGVhdCAoUElYTUFOX1JFUEVB
VF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2ZpeGVkKTsgaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikp
ID09IHNyY193aWR0aCAtIDEpIHsgbnVtX3BpeGVscyA9ICgoc3JjX3dpZHRoX2ZpeGVkIC0gdngg
LSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1bml0X3gpICsgMTsgaWYgKG51bV9waXhlbHMgPiB3
aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3aWR0aF9yZW1haW47IHNjYWxlZF9iaWxpbmVhcl9z
Y2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbnVtX3Bp
eGVscywgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkg
PDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIHNyY193aWR0aF9maXhl
ZCwgMCk7IHdpZHRoX3JlbWFpbiAtPSBudW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5p
dF94OyBkc3QgKz0gbnVtX3BpeGVsczsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9w
aXhlbHM7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2ZpeGVk
KTsgfSBpZiAoKChpbnQpICgodngpID4+IDE2KSkgIT0gc3JjX3dpZHRoIC0gMSAmJiB3aWR0aF9y
ZW1haW4gPiAwKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhlZCAtICgoKHBpeG1hbl9m
aXhlZF90KSAoKDEpIDw8IDE2KSkpIC0gdnggLSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1bml0
X3gpICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3aWR0
aF9yZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRz
dCwgbWFzaywgc3JjX2xpbmVfdG9wLCBzcmNfbGluZV9ib3R0b20sIG51bV9waXhlbHMsIHdlaWdo
dDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRoX3JlbWFp
biAtPSBudW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0gbnVtX3Bp
eGVsczsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhlbHM7IH0gfSB9IGVsc2Ug
eyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ss
IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxLCBzcmNfZmlyc3RfbGluZSArIHNyY19z
dHJpZGUgKiB5Miwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIG1heF92eCwg
MCk7IH0gfSB9CgoKCnN0YXRpYyB2b2lkIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9t
bXhfODg4OF84ODg4X25vcm1hbF9PVkVSIChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLCBw
aXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykgeyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBw
aXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5f
aW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51
c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsgX19h
dHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5mby0+
ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGluZm8t
PnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+c3Jj
X3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFza194
OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9f
YXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBfX2F0
dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0cmli
dXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OyB1aW50MzJfdCAq
ZHN0X2xpbmU7IHVpbnQzMl90ICptYXNrX2xpbmU7IHVpbnQzMl90ICpzcmNfZmlyc3RfbGluZTsg
aW50IHkxLCB5MjsgcGl4bWFuX2ZpeGVkX3QgbWF4X3Z4ID0gKDIxNDc0ODM2NDcpOyBwaXhtYW5f
dmVjdG9yX3QgdjsgcGl4bWFuX2ZpeGVkX3QgdngsIHZ5OyBwaXhtYW5fZml4ZWRfdCB1bml0X3gs
IHVuaXRfeTsgaW50MzJfdCBsZWZ0X3BhZCwgbGVmdF90eiwgcmlnaHRfdHosIHJpZ2h0X3BhZDsg
dWludDMyX3QgKmRzdDsgdWludDMyX3Qgc29saWRfbWFzazsgY29uc3QgdWludDMyX3QgKm1hc2sg
PSAmc29saWRfbWFzazsgaW50IHNyY19zdHJpZGUsIG1hc2tfc3RyaWRlLCBkc3Rfc3RyaWRlOyBp
bnQgc3JjX3dpZHRoOyBwaXhtYW5fZml4ZWRfdCBzcmNfd2lkdGhfZml4ZWQ7IGludCBtYXhfeDsg
cGl4bWFuX2Jvb2xfdCBuZWVkX3NyY19leHRlbnNpb247IGRvIHsgdWludDMyX3QgKl9fYml0c19f
OyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdlLT5iaXRzLmJpdHM7IF9fc3Ry
aWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRzdF9zdHJpZGUpID0gX19zdHJp
ZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7
IChkc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChkc3Rfc3RyaWRlKSAqIChk
ZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOyBpZiAoKDApICYgKDEgPDwgMSkp
IHsgc29saWRfbWFzayA9IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAsIG1hc2tfaW1hZ2Us
IGRlc3RfaW1hZ2UtPmJpdHMuZm9ybWF0KTsgbWFza19zdHJpZGUgPSAwOyB9IGVsc2UgaWYgKCgw
KSAmICgxIDw8IDIpKSB7IGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsg
X19iaXRzX18gPSBtYXNrX2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBtYXNrX2ltYWdl
LT5iaXRzLnJvd3N0cmlkZTsgKG1hc2tfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXpl
b2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAobWFza19saW5lKSA9ICgo
dWludDMyX3QgKikgX19iaXRzX18pICsgKG1hc2tfc3RyaWRlKSAqIChtYXNrX3kpICsgKDEpICog
KG1hc2tfeCk7IH0gd2hpbGUgKDApOyB9IGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19z
dHJpZGVfXzsgX19iaXRzX18gPSBzcmNfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IHNy
Y19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChzcmNfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50
KSBzaXplb2YgKHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoc3JjX2ZpcnN0
X2xpbmUpID0gKCh1aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoc3JjX3N0cmlkZSkgKiAoMCkgKyAo
MSkgKiAoMCk7IH0gd2hpbGUgKDApOyB2LnZlY3RvclswXSA9ICgocGl4bWFuX2ZpeGVkX3QpICgo
c3JjX3gpIDw8IDE2KSkgKyAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHYu
dmVjdG9yWzFdID0gKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfeSkgPDwgMTYpKSArICgoKHBpeG1h
bl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMl0gPSAoKChwaXhtYW5fZml4
ZWRfdCkgKCgxKSA8PCAxNikpKTsgaWYgKCFwaXhtYW5fdHJhbnNmb3JtX3BvaW50XzNkIChzcmNf
aW1hZ2UtPmNvbW1vbi50cmFuc2Zvcm0sICZ2KSkgcmV0dXJuOyB1bml0X3ggPSBzcmNfaW1hZ2Ut
PmNvbW1vbi50cmFuc2Zvcm0tPm1hdHJpeFswXVswXTsgdW5pdF95ID0gc3JjX2ltYWdlLT5jb21t
b24udHJhbnNmb3JtLT5tYXRyaXhbMV1bMV07IHYudmVjdG9yWzBdIC09ICgoKHBpeG1hbl9maXhl
ZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMV0gLT0gKCgocGl4bWFuX2ZpeGVkX3Qp
ICgoMSkgPDwgMTYpKSkgLyAyOyB2eSA9IHYudmVjdG9yWzFdOyBpZiAoUElYTUFOX1JFUEVBVF9O
T1JNQUwgPT0gUElYTUFOX1JFUEVBVF9QQUQgfHwgUElYTUFOX1JFUEVBVF9OT1JNQUwgPT0gUElY
TUFOX1JFUEVBVF9OT05FKSB7IGJpbGluZWFyX3BhZF9yZXBlYXRfZ2V0X3NjYW5saW5lX2JvdW5k
cyAoc3JjX2ltYWdlLT5iaXRzLndpZHRoLCB2LnZlY3RvclswXSwgdW5pdF94LCAmbGVmdF9wYWQs
ICZsZWZ0X3R6LCAmd2lkdGgsICZyaWdodF90eiwgJnJpZ2h0X3BhZCk7IGlmIChQSVhNQU5fUkVQ
RUFUX05PUk1BTCA9PSBQSVhNQU5fUkVQRUFUX1BBRCkgeyBsZWZ0X3BhZCArPSBsZWZ0X3R6OyBy
aWdodF9wYWQgKz0gcmlnaHRfdHo7IGxlZnRfdHogPSByaWdodF90eiA9IDA7IH0gdi52ZWN0b3Jb
MF0gKz0gbGVmdF9wYWQgKiB1bml0X3g7IH0gaWYgKFBJWE1BTl9SRVBFQVRfTk9STUFMID09IFBJ
WE1BTl9SRVBFQVRfTk9STUFMKSB7IHZ4ID0gdi52ZWN0b3JbMF07IHJlcGVhdCAoUElYTUFOX1JF
UEVBVF9OT1JNQUwsICZ2eCwgKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfaW1hZ2UtPmJpdHMud2lk
dGgpIDw8IDE2KSkpOyBtYXhfeCA9ICgoaW50KSAoKHZ4ICsgKHdpZHRoIC0gMSkgKiAoaW50NjRf
dCl1bml0X3gpID4+IDE2KSkgKyAxOyBpZiAoc3JjX2ltYWdlLT5iaXRzLndpZHRoIDwgNjQpIHsg
c3JjX3dpZHRoID0gMDsgd2hpbGUgKHNyY193aWR0aCA8IDY0ICYmIHNyY193aWR0aCA8PSBtYXhf
eCkgc3JjX3dpZHRoICs9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsgbmVlZF9zcmNfZXh0ZW5zaW9u
ID0gMTsgfSBlbHNlIHsgc3JjX3dpZHRoID0gc3JjX2ltYWdlLT5iaXRzLndpZHRoOyBuZWVkX3Ny
Y19leHRlbnNpb24gPSAwOyB9IHNyY193aWR0aF9maXhlZCA9ICgocGl4bWFuX2ZpeGVkX3QpICgo
c3JjX3dpZHRoKSA8PCAxNikpOyB9IHdoaWxlICgtLWhlaWdodCA+PSAwKSB7IGludCB3ZWlnaHQx
LCB3ZWlnaHQyOyBkc3QgPSBkc3RfbGluZTsgZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsgdnggPSB2
LnZlY3RvclswXTsgaWYgKCgwKSAmICgxIDw8IDIpKSB7IG1hc2sgPSBtYXNrX2xpbmU7IG1hc2tf
bGluZSArPSBtYXNrX3N0cmlkZTsgfSB5MSA9ICgoaW50KSAoKHZ5KSA+PiAxNikpOyB3ZWlnaHQy
ID0gcGl4bWFuX2ZpeGVkX3RvX2JpbGluZWFyX3dlaWdodCAodnkpOyBpZiAod2VpZ2h0MikgeyB5
MiA9IHkxICsgMTsgd2VpZ2h0MSA9ICgxIDw8IDcpIC0gd2VpZ2h0MjsgfSBlbHNlIHsgeTIgPSB5
MTsgd2VpZ2h0MSA9IHdlaWdodDIgPSAoMSA8PCA3KSAvIDI7IH0gdnkgKz0gdW5pdF95OyBpZiAo
UElYTUFOX1JFUEVBVF9OT1JNQUwgPT0gUElYTUFOX1JFUEVBVF9QQUQpIHsgdWludDMyX3QgKnNy
YzEsICpzcmMyOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJfdCBidWYyWzJdOyByZXBlYXQgKFBJ
WE1BTl9SRVBFQVRfUEFELCAmeTEsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyByZXBlYXQgKFBJ
WE1BTl9SRVBFQVRfUEFELCAmeTIsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyBzcmMxID0gc3Jj
X2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBzcmNfZmlyc3RfbGluZSArIHNy
Y19zdHJpZGUgKiB5MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IHNy
YzFbMF07IGJ1ZjJbMF0gPSBidWYyWzFdID0gc3JjMlswXTsgc2NhbGVkX2JpbGluZWFyX3NjYW5s
aW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwg
d2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMCk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgwKSAm
ICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfcGFkOyB9IGlmICh3aWR0aCA+IDApIHsgc2NhbGVkX2Jp
bGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmMxLCBzcmMy
LCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgMCwgMCk7IGRzdCArPSB3aWR0
aDsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IHdpZHRoOyB9IGlmIChyaWdodF9wYWQgPiAw
KSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gc3JjMVtzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsg
YnVmMlswXSA9IGJ1ZjJbMV0gPSBzcmMyW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBzY2Fs
ZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEs
IGJ1ZjIsIHJpZ2h0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMCk7IH0gfSBlbHNl
IGlmIChQSVhNQU5fUkVQRUFUX05PUk1BTCA9PSBQSVhNQU5fUkVQRUFUX05PTkUpIHsgdWludDMy
X3QgKnNyYzEsICpzcmMyOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJfdCBidWYyWzJdOyBpZiAo
eTEgPCAwKSB7IHdlaWdodDEgPSAwOyB5MSA9IDA7IH0gaWYgKHkxID49IHNyY19pbWFnZS0+Yml0
cy5oZWlnaHQpIHsgd2VpZ2h0MSA9IDA7IHkxID0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCAtIDE7
IH0gaWYgKHkyIDwgMCkgeyB3ZWlnaHQyID0gMDsgeTIgPSAwOyB9IGlmICh5MiA+PSBzcmNfaW1h
Z2UtPmJpdHMuaGVpZ2h0KSB7IHdlaWdodDIgPSAwOyB5MiA9IHNyY19pbWFnZS0+Yml0cy5oZWln
aHQgLSAxOyB9IHNyYzEgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MTsgc3JjMiA9
IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobGVmdF9wYWQgPiAwKSB7IGJ1
ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmlsaW5l
YXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIGxl
ZnRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAxKTsgZHN0ICs9IGxlZnRfcGFkOyBp
ZiAoKDApICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF9wYWQ7IH0gaWYgKGxlZnRfdHogPiAwKSB7
IGJ1ZjFbMF0gPSAwOyBidWYxWzFdID0gc3JjMVswXTsgYnVmMlswXSA9IDA7IGJ1ZjJbMV0gPSBz
cmMyWzBdOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3Qs
IG1hc2ssIGJ1ZjEsIGJ1ZjIsIGxlZnRfdHosIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgo
KHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwg
dW5pdF94LCAwLCAwKTsgZHN0ICs9IGxlZnRfdHo7IGlmICgoMCkgJiAoMSA8PCAyKSkgbWFzayAr
PSBsZWZ0X3R6OyB2eCArPSBsZWZ0X3R6ICogdW5pdF94OyB9IGlmICh3aWR0aCA+IDApIHsgc2Nh
bGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmMx
LCBzcmMyLCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgMCwgMCk7IGRzdCAr
PSB3aWR0aDsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IHdpZHRoOyB2eCArPSB3aWR0aCAq
IHVuaXRfeDsgfSBpZiAocmlnaHRfdHogPiAwKSB7IGJ1ZjFbMF0gPSBzcmMxW3NyY19pbWFnZS0+
Yml0cy53aWR0aCAtIDFdOyBidWYxWzFdID0gMDsgYnVmMlswXSA9IHNyYzJbc3JjX2ltYWdlLT5i
aXRzLndpZHRoIC0gMV07IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14
Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIHJpZ2h0X3R6LCB3ZWlnaHQx
LCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtICgo
cGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRfeCwgMCwgMCk7IGRzdCArPSByaWdodF90ejsgaWYg
KCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IHJpZ2h0X3R6OyB9IGlmIChyaWdodF9wYWQgPiAwKSB7
IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmls
aW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIs
IHJpZ2h0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMSk7IH0gfSBlbHNlIGlmIChQ
SVhNQU5fUkVQRUFUX05PUk1BTCA9PSBQSVhNQU5fUkVQRUFUX05PUk1BTCkgeyBpbnQzMl90IG51
bV9waXhlbHM7IGludDMyX3Qgd2lkdGhfcmVtYWluOyB1aW50MzJfdCAqIHNyY19saW5lX3RvcDsg
dWludDMyX3QgKiBzcmNfbGluZV9ib3R0b207IHVpbnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90IGJ1
ZjJbMl07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19saW5lMFs2NCoyXTsgdWludDMyX3QgZXh0ZW5k
ZWRfc3JjX2xpbmUxWzY0KjJdOyBpbnQgaSwgajsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1B
TCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05P
Uk1BTCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjX2xpbmVfdG9wID0gc3JjX2Zp
cnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyY19saW5lX2JvdHRvbSA9IHNyY19maXJzdF9s
aW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobmVlZF9zcmNfZXh0ZW5zaW9uKSB7IGZvciAoaT0w
OyBpPHNyY193aWR0aDspIHsgZm9yIChqPTA7IGo8c3JjX2ltYWdlLT5iaXRzLndpZHRoOyBqKyss
IGkrKykgeyBleHRlbmRlZF9zcmNfbGluZTBbaV0gPSBzcmNfbGluZV90b3Bbal07IGV4dGVuZGVk
X3NyY19saW5lMVtpXSA9IHNyY19saW5lX2JvdHRvbVtqXTsgfSB9IHNyY19saW5lX3RvcCA9ICZl
eHRlbmRlZF9zcmNfbGluZTBbMF07IHNyY19saW5lX2JvdHRvbSA9ICZleHRlbmRlZF9zcmNfbGlu
ZTFbMF07IH0gYnVmMVswXSA9IHNyY19saW5lX3RvcFtzcmNfd2lkdGggLSAxXTsgYnVmMVsxXSA9
IHNyY19saW5lX3RvcFswXTsgYnVmMlswXSA9IHNyY19saW5lX2JvdHRvbVtzcmNfd2lkdGggLSAx
XTsgYnVmMlsxXSA9IHNyY19saW5lX2JvdHRvbVswXTsgd2lkdGhfcmVtYWluID0gd2lkdGg7IHdo
aWxlICh3aWR0aF9yZW1haW4gPiAwKSB7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2
eCwgc3JjX3dpZHRoX2ZpeGVkKTsgaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikpID09IHNyY193aWR0
aCAtIDEpIHsgbnVtX3BpeGVscyA9ICgoc3JjX3dpZHRoX2ZpeGVkIC0gdnggLSAoKHBpeG1hbl9m
aXhlZF90KSAxKSkgLyB1bml0X3gpICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4p
IG51bV9waXhlbHMgPSB3aWR0aF9yZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhf
ODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbnVtX3BpeGVscywgd2VpZ2h0
MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAo
KHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRo
X3JlbWFpbiAtPSBudW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0g
bnVtX3BpeGVsczsgaWYgKCgwKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhlbHM7IHJlcGVh
dCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2ZpeGVkKTsgfSBpZiAoKChp
bnQpICgodngpID4+IDE2KSkgIT0gc3JjX3dpZHRoIC0gMSAmJiB3aWR0aF9yZW1haW4gPiAwKSB7
IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhlZCAtICgoKHBpeG1hbl9maXhlZF90KSAoKDEp
IDw8IDE2KSkpIC0gdnggLSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1bml0X3gpICsgMTsgaWYg
KG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3aWR0aF9yZW1haW47IHNj
YWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3Jj
X2xpbmVfdG9wLCBzcmNfbGluZV9ib3R0b20sIG51bV9waXhlbHMsIHdlaWdodDEsIHdlaWdodDIs
IHZ4LCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRoX3JlbWFpbiAtPSBudW1fcGl4
ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0gbnVtX3BpeGVsczsgaWYgKCgw
KSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhlbHM7IH0gfSB9IGVsc2UgeyBzY2FsZWRfYmls
aW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfODg4OF9PVkVSIChkc3QsIG1hc2ssIHNyY19maXJzdF9s
aW5lICsgc3JjX3N0cmlkZSAqIHkxLCBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5Miwg
d2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIG1heF92eCwgMCk7IH0gfSB9CgoK
CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSB2
b2lkCnNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAodWludDMy
X3QgKiBkc3QsCiAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKiBtYXNrLAogICAgICAgICAgICBj
b25zdCB1aW50MzJfdCAqIHNyY190b3AsCiAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICogc3Jj
X2JvdHRvbSwKICAgICAgICAgICAgaW50MzJfdCB3LAogICAgICAgICAgICBpbnQgd3QsCiAgICAg
ICAgICAgIGludCB3YiwKICAgICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgdngsCiAgICAgICAgICAg
IHBpeG1hbl9maXhlZF90IHVuaXRfeCwKICAgICAgICAgICAgcGl4bWFuX2ZpeGVkX3QgbWF4X3Z4
LAogICAgICAgICAgICBwaXhtYW5fYm9vbF90IHplcm9fc3JjKQp7CiAgICBjb25zdCBfX202NCBt
bV93dCA9IF9tbV9zZXRfcGkxNiAod3QsIHd0LCB3dCwgd3QpOyBjb25zdCBfX202NCBtbV93YiA9
IF9tbV9zZXRfcGkxNiAod2IsIHdiLCB3Yiwgd2IpOyBjb25zdCBfX202NCBtbV9hZGRjNyA9IF9t
bV9zZXRfcGkxNiAoMCwgMSwgMCwgMSk7IGNvbnN0IF9fbTY0IG1tX3hvcmM3ID0gX21tX3NldF9w
aTE2ICgwLCAoKCgxIDw8IDcpKSAtIDEpLCAwLCAoKCgxIDw8IDcpKSAtIDEpKTsgY29uc3QgX19t
NjQgbW1fdXggPSBfbW1fc2V0X3BpMTYgKHVuaXRfeCwgdW5pdF94LCB1bml0X3gsIHVuaXRfeCk7
IGNvbnN0IF9fbTY0IG1tX3plcm8gPSBfbW1fc2V0emVyb19zaTY0ICgpOyBfX202NCBtbV94ID0g
X21tX3NldF9waTE2ICh2eCwgdngsIHZ4LCB2eCk7CiAgICBfX202NCBwaXgxLCBwaXgyOwogICAg
dWludDMyX3QgbTsKCiAgICB3aGlsZSAodykKICAgIHsKIG0gPSAodWludDMyX3QpICptYXNrKys7
CgogaWYgKG0pCiB7CiAgICAgZG8geyBfX202NCB0ID0gbGRxX3UgKChfX202NCAqKSZzcmNfdG9w
IFsoKGludCkgKCh2eCkgPj4gMTYpKV0pOyBfX202NCBiID0gbGRxX3UgKChfX202NCAqKSZzcmNf
Ym90dG9tIFsoKGludCkgKCh2eCkgPj4gMTYpKV0pOyBfX202NCB0X2hpID0gX21tX211bGxvX3Bp
MTYgKF9tbV91bnBhY2toaV9waTggKHQsIG1tX3plcm8pLCBtbV93dCk7IF9fbTY0IHRfbG8gPSBf
bW1fbXVsbG9fcGkxNiAoX21tX3VucGFja2xvX3BpOCAodCwgbW1femVybyksIG1tX3d0KTsgX19t
NjQgYl9oaSA9IF9tbV9tdWxsb19waTE2IChfbW1fdW5wYWNraGlfcGk4IChiLCBtbV96ZXJvKSwg
bW1fd2IpOyBfX202NCBiX2xvID0gX21tX211bGxvX3BpMTYgKF9tbV91bnBhY2tsb19waTggKGIs
IG1tX3plcm8pLCBtbV93Yik7IF9fbTY0IGhpID0gX21tX2FkZF9waTE2ICh0X2hpLCBiX2hpKTsg
X19tNjQgbG8gPSBfbW1fYWRkX3BpMTYgKHRfbG8sIGJfbG8pOyBfX202NCBtbV93aCA9IF9tbV9h
ZGRfcGkxNiAobW1fYWRkYzcsIF9tbV94b3Jfc2k2NCAobW1feG9yYzcsIF9tbV9zcmxpX3BpMTYg
KG1tX3gsIDE2IC0gNykpKTsgX19tNjQgcCA9IF9tbV91bnBhY2tsb19waTE2IChsbywgaGkpOyBf
X202NCBxID0gX21tX3VucGFja2hpX3BpMTYgKGxvLCBoaSk7IHZ4ICs9IHVuaXRfeDsgbG8gPSBf
bW1fbWFkZF9waTE2IChwLCBtbV93aCk7IGhpID0gX21tX21hZGRfcGkxNiAocSwgbW1fd2gpOyBt
bV94ID0gX21tX2FkZF9waTE2IChtbV94LCBtbV91eCk7IGhpID0gX21tX3NybGlfcGkzMiAoaGks
IDcgKiAyKTsgbG8gPSBfbW1fc3JsaV9waTMyIChsbywgNyAqIDIpOyBsbyA9IF9tbV9wYWNrc19w
aTMyIChsbywgaGkpOyBsbyA9IF9tbV9wYWNrc19wdTE2IChsbywgbG8pOyBwaXgxID0gbG87IH0g
d2hpbGUgKDApOwoKICAgICBpZiAobSA9PSAweGZmICYmIGlzX29wYXF1ZSAocGl4MSkpCiAgICAg
ewogIHN0b3JlIChkc3QsIHBpeDEpOwogICAgIH0KICAgICBlbHNlCiAgICAgewogIF9fbTY0IG1z
LCBtZCwgbWEsIG1zYTsKCiAgcGl4MiA9IGxvYWQgKGRzdCk7CiAgbWEgPSBleHBhbmRfYWxwaGFf
cmV2ICh0b19tNjQgKG0pKTsKICBtcyA9IF9tbV91bnBhY2tsb19waTggKHBpeDEsIF9tbV9zZXR6
ZXJvX3NpNjQgKCkpOwogIG1kID0gX21tX3VucGFja2xvX3BpOCAocGl4MiwgX21tX3NldHplcm9f
c2k2NCAoKSk7CgogIG1zYSA9IGV4cGFuZF9hbHBoYSAobXMpOwoKICBzdG9yZTg4ODggKGRzdCwg
KGluX292ZXIgKG1zLCBtc2EsIG1hLCBtZCkpKTsKICAgICB9CiB9CiBlbHNlCiB7CiAgICAgZG8g
eyB2eCArPSB1bml0X3g7IG1tX3ggPSBfbW1fYWRkX3BpMTYgKG1tX3gsIG1tX3V4KTsgfSB3aGls
ZSgwKTsKIH0KCiB3LS07CiBkc3QrKzsKICAgIH0KCiAgICBfbW1fZW1wdHkgKCk7Cn0KCnN0YXRp
YyB2b2lkIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84Xzg4ODhfY292
ZXJfT1ZFUiAocGl4bWFuX2ltcGxlbWVudGF0aW9uX3QgKmltcCwgcGl4bWFuX2NvbXBvc2l0ZV9p
bmZvX3QgKmluZm8pIHsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX29wX3Qgb3AgPSBp
bmZvLT5vcDsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBzcmNfaW1h
Z2UgPSBpbmZvLT5zcmNfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIHBpeG1hbl9pbWFn
ZV90ICogbWFza19pbWFnZSA9IGluZm8tPm1hc2tfaW1hZ2U7IF9fYXR0cmlidXRlX18oKHVudXNl
ZCkpIHBpeG1hbl9pbWFnZV90ICogZGVzdF9pbWFnZSA9IGluZm8tPmRlc3RfaW1hZ2U7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIGludDMyX3Qgc3JjX3ggPSBpbmZvLT5zcmNfeDsgX19hdHRyaWJ1
dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeSA9IGluZm8tPnNyY195OyBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeCA9IGluZm8tPm1hc2tfeDsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgaW50MzJfdCBtYXNrX3kgPSBpbmZvLT5tYXNrX3k7IF9fYXR0cmlidXRlX18oKHVu
dXNlZCkpIGludDMyX3QgZGVzdF94ID0gaW5mby0+ZGVzdF94OyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBpbnQzMl90IGRlc3RfeSA9IGluZm8tPmRlc3RfeTsgX19hdHRyaWJ1dGVfXygodW51c2Vk
KSkgaW50MzJfdCB3aWR0aCA9IGluZm8tPndpZHRoOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IGhlaWdodCA9IGluZm8tPmhlaWdodDsgdWludDMyX3QgKmRzdF9saW5lOyB1aW50OF90
ICptYXNrX2xpbmU7IHVpbnQzMl90ICpzcmNfZmlyc3RfbGluZTsgaW50IHkxLCB5MjsgcGl4bWFu
X2ZpeGVkX3QgbWF4X3Z4ID0gKDIxNDc0ODM2NDcpOyBwaXhtYW5fdmVjdG9yX3QgdjsgcGl4bWFu
X2ZpeGVkX3QgdngsIHZ5OyBwaXhtYW5fZml4ZWRfdCB1bml0X3gsIHVuaXRfeTsgaW50MzJfdCBs
ZWZ0X3BhZCwgbGVmdF90eiwgcmlnaHRfdHosIHJpZ2h0X3BhZDsgdWludDMyX3QgKmRzdDsgdWlu
dDhfdCBzb2xpZF9tYXNrOyBjb25zdCB1aW50OF90ICptYXNrID0gJnNvbGlkX21hc2s7IGludCBz
cmNfc3RyaWRlLCBtYXNrX3N0cmlkZSwgZHN0X3N0cmlkZTsgaW50IHNyY193aWR0aDsgcGl4bWFu
X2ZpeGVkX3Qgc3JjX3dpZHRoX2ZpeGVkOyBpbnQgbWF4X3g7IHBpeG1hbl9ib29sX3QgbmVlZF9z
cmNfZXh0ZW5zaW9uOyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9f
Yml0c19fID0gZGVzdF9pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gZGVzdF9pbWFnZS0+
Yml0cy5yb3dzdHJpZGU7IChkc3Rfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2Yg
KHVpbnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoZHN0X2xpbmUpID0gKCh1aW50
MzJfdCAqKSBfX2JpdHNfXykgKyAoZHN0X3N0cmlkZSkgKiAoZGVzdF95KSArICgxKSAqIChkZXN0
X3gpOyB9IHdoaWxlICgwKTsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMSkpIHsgc29saWRfbWFzayA9
IF9waXhtYW5faW1hZ2VfZ2V0X3NvbGlkIChpbXAsIG1hc2tfaW1hZ2UsIGRlc3RfaW1hZ2UtPmJp
dHMuZm9ybWF0KTsgbWFza19zdHJpZGUgPSAwOyB9IGVsc2UgaWYgKCgxIDw8IDIpICYgKDEgPDwg
MikpIHsgZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9
IG1hc2tfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IG1hc2tfaW1hZ2UtPmJpdHMucm93
c3RyaWRlOyAobWFza19zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMy
X3QpIC8gKGludCkgc2l6ZW9mICh1aW50OF90KTsgKG1hc2tfbGluZSkgPSAoKHVpbnQ4X3QgKikg
X19iaXRzX18pICsgKG1hc2tfc3RyaWRlKSAqIChtYXNrX3kpICsgKDEpICogKG1hc2tfeCk7IH0g
d2hpbGUgKDApOyB9IGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19i
aXRzX18gPSBzcmNfaW1hZ2UtPmJpdHMuYml0czsgX19zdHJpZGVfXyA9IHNyY19pbWFnZS0+Yml0
cy5yb3dzdHJpZGU7IChzcmNfc3RyaWRlKSA9IF9fc3RyaWRlX18gKiAoaW50KSBzaXplb2YgKHVp
bnQzMl90KSAvIChpbnQpIHNpemVvZiAodWludDMyX3QpOyAoc3JjX2ZpcnN0X2xpbmUpID0gKCh1
aW50MzJfdCAqKSBfX2JpdHNfXykgKyAoc3JjX3N0cmlkZSkgKiAoMCkgKyAoMSkgKiAoMCk7IH0g
d2hpbGUgKDApOyB2LnZlY3RvclswXSA9ICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX3gpIDw8IDE2
KSkgKyAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHYudmVjdG9yWzFdID0g
KChwaXhtYW5fZml4ZWRfdCkgKChzcmNfeSkgPDwgMTYpKSArICgoKHBpeG1hbl9maXhlZF90KSAo
KDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMl0gPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8
PCAxNikpKTsgaWYgKCFwaXhtYW5fdHJhbnNmb3JtX3BvaW50XzNkIChzcmNfaW1hZ2UtPmNvbW1v
bi50cmFuc2Zvcm0sICZ2KSkgcmV0dXJuOyB1bml0X3ggPSBzcmNfaW1hZ2UtPmNvbW1vbi50cmFu
c2Zvcm0tPm1hdHJpeFswXVswXTsgdW5pdF95ID0gc3JjX2ltYWdlLT5jb21tb24udHJhbnNmb3Jt
LT5tYXRyaXhbMV1bMV07IHYudmVjdG9yWzBdIC09ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8
IDE2KSkpIC8gMjsgdi52ZWN0b3JbMV0gLT0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYp
KSkgLyAyOyB2eSA9IHYudmVjdG9yWzFdOyBpZiAoLTEgPT0gUElYTUFOX1JFUEVBVF9QQUQgfHwg
LTEgPT0gUElYTUFOX1JFUEVBVF9OT05FKSB7IGJpbGluZWFyX3BhZF9yZXBlYXRfZ2V0X3NjYW5s
aW5lX2JvdW5kcyAoc3JjX2ltYWdlLT5iaXRzLndpZHRoLCB2LnZlY3RvclswXSwgdW5pdF94LCAm
bGVmdF9wYWQsICZsZWZ0X3R6LCAmd2lkdGgsICZyaWdodF90eiwgJnJpZ2h0X3BhZCk7IGlmICgt
MSA9PSBQSVhNQU5fUkVQRUFUX1BBRCkgeyBsZWZ0X3BhZCArPSBsZWZ0X3R6OyByaWdodF9wYWQg
Kz0gcmlnaHRfdHo7IGxlZnRfdHogPSByaWdodF90eiA9IDA7IH0gdi52ZWN0b3JbMF0gKz0gbGVm
dF9wYWQgKiB1bml0X3g7IH0gaWYgKC0xID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IHZ4ID0g
di52ZWN0b3JbMF07IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgKChwaXhtYW5f
Zml4ZWRfdCkgKChzcmNfaW1hZ2UtPmJpdHMud2lkdGgpIDw8IDE2KSkpOyBtYXhfeCA9ICgoaW50
KSAoKHZ4ICsgKHdpZHRoIC0gMSkgKiAoaW50NjRfdCl1bml0X3gpID4+IDE2KSkgKyAxOyBpZiAo
c3JjX2ltYWdlLT5iaXRzLndpZHRoIDwgNjQpIHsgc3JjX3dpZHRoID0gMDsgd2hpbGUgKHNyY193
aWR0aCA8IDY0ICYmIHNyY193aWR0aCA8PSBtYXhfeCkgc3JjX3dpZHRoICs9IHNyY19pbWFnZS0+
Yml0cy53aWR0aDsgbmVlZF9zcmNfZXh0ZW5zaW9uID0gMTsgfSBlbHNlIHsgc3JjX3dpZHRoID0g
c3JjX2ltYWdlLT5iaXRzLndpZHRoOyBuZWVkX3NyY19leHRlbnNpb24gPSAwOyB9IHNyY193aWR0
aF9maXhlZCA9ICgocGl4bWFuX2ZpeGVkX3QpICgoc3JjX3dpZHRoKSA8PCAxNikpOyB9IHdoaWxl
ICgtLWhlaWdodCA+PSAwKSB7IGludCB3ZWlnaHQxLCB3ZWlnaHQyOyBkc3QgPSBkc3RfbGluZTsg
ZHN0X2xpbmUgKz0gZHN0X3N0cmlkZTsgdnggPSB2LnZlY3RvclswXTsgaWYgKCgxIDw8IDIpICYg
KDEgPDwgMikpIHsgbWFzayA9IG1hc2tfbGluZTsgbWFza19saW5lICs9IG1hc2tfc3RyaWRlOyB9
IHkxID0gKChpbnQpICgodnkpID4+IDE2KSk7IHdlaWdodDIgPSBwaXhtYW5fZml4ZWRfdG9fYmls
aW5lYXJfd2VpZ2h0ICh2eSk7IGlmICh3ZWlnaHQyKSB7IHkyID0geTEgKyAxOyB3ZWlnaHQxID0g
KDEgPDwgNykgLSB3ZWlnaHQyOyB9IGVsc2UgeyB5MiA9IHkxOyB3ZWlnaHQxID0gd2VpZ2h0MiA9
ICgxIDw8IDcpIC8gMjsgfSB2eSArPSB1bml0X3k7IGlmICgtMSA9PSBQSVhNQU5fUkVQRUFUX1BB
RCkgeyB1aW50MzJfdCAqc3JjMSwgKnNyYzI7IHVpbnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90IGJ1
ZjJbMl07IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9QQUQsICZ5MSwgc3JjX2ltYWdlLT5iaXRzLmhl
aWdodCk7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9QQUQsICZ5Miwgc3JjX2ltYWdlLT5iaXRzLmhl
aWdodCk7IHNyYzEgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MTsgc3JjMiA9IHNy
Y19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobGVmdF9wYWQgPiAwKSB7IGJ1ZjFb
MF0gPSBidWYxWzFdID0gc3JjMVswXTsgYnVmMlswXSA9IGJ1ZjJbMV0gPSBzcmMyWzBdOyBzY2Fs
ZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVm
MSwgYnVmMiwgbGVmdF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDApOyBkc3QgKz0g
bGVmdF9wYWQ7IGlmICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfcGFkOyB9IGlm
ICh3aWR0aCA+IDApIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4XzhfODg4OF9P
VkVSIChkc3QsIG1hc2ssIHNyYzEsIHNyYzIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwg
dW5pdF94LCAwLCAwKTsgZHN0ICs9IHdpZHRoOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgbWFz
ayArPSB3aWR0aDsgfSBpZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVmMVsxXSA9IHNy
YzFbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1ZjJbMF0gPSBidWYyWzFdID0gc3JjMltz
cmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84
ODg4XzhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIHJpZ2h0X3BhZCwgd2VpZ2h0
MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMCk7IH0gfSBlbHNlIGlmICgtMSA9PSBQSVhNQU5fUkVQRUFU
X05PTkUpIHsgdWludDMyX3QgKnNyYzEsICpzcmMyOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJf
dCBidWYyWzJdOyBpZiAoeTEgPCAwKSB7IHdlaWdodDEgPSAwOyB5MSA9IDA7IH0gaWYgKHkxID49
IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpIHsgd2VpZ2h0MSA9IDA7IHkxID0gc3JjX2ltYWdlLT5i
aXRzLmhlaWdodCAtIDE7IH0gaWYgKHkyIDwgMCkgeyB3ZWlnaHQyID0gMDsgeTIgPSAwOyB9IGlm
ICh5MiA+PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KSB7IHdlaWdodDIgPSAwOyB5MiA9IHNyY19p
bWFnZS0+Yml0cy5oZWlnaHQgLSAxOyB9IHNyYzEgPSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJp
ZGUgKiB5MTsgc3JjMiA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobGVm
dF9wYWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAw
OyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFz
aywgYnVmMSwgYnVmMiwgbGVmdF9wYWQsIHdlaWdodDEsIHdlaWdodDIsIDAsIDAsIDAsIDEpOyBk
c3QgKz0gbGVmdF9wYWQ7IGlmICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfcGFk
OyB9IGlmIChsZWZ0X3R6ID4gMCkgeyBidWYxWzBdID0gMDsgYnVmMVsxXSA9IHNyYzFbMF07IGJ1
ZjJbMF0gPSAwOyBidWYyWzFdID0gc3JjMlswXTsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21t
eF84ODg4XzhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIGxlZnRfdHosIHdlaWdo
dDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC0g
KChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IGxlZnRfdHo7IGlm
ICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IGxlZnRfdHo7IHZ4ICs9IGxlZnRfdHogKiB1
bml0X3g7IH0gaWYgKHdpZHRoID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4
ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdl
aWdodDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMSA8PCAyKSAmICgx
IDw8IDIpKSBtYXNrICs9IHdpZHRoOyB2eCArPSB3aWR0aCAqIHVuaXRfeDsgfSBpZiAocmlnaHRf
dHogPiAwKSB7IGJ1ZjFbMF0gPSBzcmMxW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYx
WzFdID0gMDsgYnVmMlswXSA9IHNyYzJbc3JjX2ltYWdlLT5iaXRzLndpZHRoIC0gMV07IGJ1ZjJb
MV0gPSAwOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRz
dCwgbWFzaywgYnVmMSwgYnVmMiwgcmlnaHRfdHosIHdlaWdodDEsIHdlaWdodDIsICgodngpICYg
KCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkp
KSwgdW5pdF94LCAwLCAwKTsgZHN0ICs9IHJpZ2h0X3R6OyBpZiAoKDEgPDwgMikgJiAoMSA8PCAy
KSkgbWFzayArPSByaWdodF90ejsgfSBpZiAocmlnaHRfcGFkID4gMCkgeyBidWYxWzBdID0gYnVm
MVsxXSA9IDA7IGJ1ZjJbMF0gPSBidWYyWzFdID0gMDsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5l
X21teF84ODg4XzhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIHJpZ2h0X3BhZCwg
d2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMSk7IH0gfSBlbHNlIGlmICgtMSA9PSBQSVhNQU5f
UkVQRUFUX05PUk1BTCkgeyBpbnQzMl90IG51bV9waXhlbHM7IGludDMyX3Qgd2lkdGhfcmVtYWlu
OyB1aW50MzJfdCAqIHNyY19saW5lX3RvcDsgdWludDMyX3QgKiBzcmNfbGluZV9ib3R0b207IHVp
bnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90IGJ1ZjJbMl07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19s
aW5lMFs2NCoyXTsgdWludDMyX3QgZXh0ZW5kZWRfc3JjX2xpbmUxWzY0KjJdOyBpbnQgaSwgajsg
cmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1BTCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0
KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1BTCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVp
Z2h0KTsgc3JjX2xpbmVfdG9wID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNy
Y19saW5lX2JvdHRvbSA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobmVl
ZF9zcmNfZXh0ZW5zaW9uKSB7IGZvciAoaT0wOyBpPHNyY193aWR0aDspIHsgZm9yIChqPTA7IGo8
c3JjX2ltYWdlLT5iaXRzLndpZHRoOyBqKyssIGkrKykgeyBleHRlbmRlZF9zcmNfbGluZTBbaV0g
PSBzcmNfbGluZV90b3Bbal07IGV4dGVuZGVkX3NyY19saW5lMVtpXSA9IHNyY19saW5lX2JvdHRv
bVtqXTsgfSB9IHNyY19saW5lX3RvcCA9ICZleHRlbmRlZF9zcmNfbGluZTBbMF07IHNyY19saW5l
X2JvdHRvbSA9ICZleHRlbmRlZF9zcmNfbGluZTFbMF07IH0gYnVmMVswXSA9IHNyY19saW5lX3Rv
cFtzcmNfd2lkdGggLSAxXTsgYnVmMVsxXSA9IHNyY19saW5lX3RvcFswXTsgYnVmMlswXSA9IHNy
Y19saW5lX2JvdHRvbVtzcmNfd2lkdGggLSAxXTsgYnVmMlsxXSA9IHNyY19saW5lX2JvdHRvbVsw
XTsgd2lkdGhfcmVtYWluID0gd2lkdGg7IHdoaWxlICh3aWR0aF9yZW1haW4gPiAwKSB7IHJlcGVh
dCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2ZpeGVkKTsgaWYgKCgoaW50
KSAoKHZ4KSA+PiAxNikpID09IHNyY193aWR0aCAtIDEpIHsgbnVtX3BpeGVscyA9ICgoc3JjX3dp
ZHRoX2ZpeGVkIC0gdnggLSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1bml0X3gpICsgMTsgaWYg
KG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3aWR0aF9yZW1haW47IHNj
YWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBi
dWYxLCBidWYyLCBudW1fcGl4ZWxzLCB3ZWlnaHQxLCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXht
YW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtICgocGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRf
eCwgc3JjX3dpZHRoX2ZpeGVkLCAwKTsgd2lkdGhfcmVtYWluIC09IG51bV9waXhlbHM7IHZ4ICs9
IG51bV9waXhlbHMgKiB1bml0X3g7IGRzdCArPSBudW1fcGl4ZWxzOyBpZiAoKDEgPDwgMikgJiAo
MSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxzOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFM
LCAmdngsIHNyY193aWR0aF9maXhlZCk7IH0gaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikpICE9IHNy
Y193aWR0aCAtIDEgJiYgd2lkdGhfcmVtYWluID4gMCkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lk
dGhfZml4ZWQgLSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtIHZ4IC0gKChwaXht
YW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSArIDE7IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVt
YWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVtYWluOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVf
bW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjX2xpbmVfdG9wLCBzcmNfbGluZV9i
b3R0b20sIG51bV9waXhlbHMsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIHNyY193aWR0
aF9maXhlZCwgMCk7IHdpZHRoX3JlbWFpbiAtPSBudW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxz
ICogdW5pdF94OyBkc3QgKz0gbnVtX3BpeGVsczsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1h
c2sgKz0gbnVtX3BpeGVsczsgfSB9IH0gZWxzZSB7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9t
bXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJp
ZGUgKiB5MSwgc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTIsIHdpZHRoLCB3ZWlnaHQx
LCB3ZWlnaHQyLCB2eCwgdW5pdF94LCBtYXhfdngsIDApOyB9IH0gfQoKCgpzdGF0aWMgdm9pZCBm
YXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfOF84ODg4X3BhZF9PVkVSIChw
aXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1wLCBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5m
bykgeyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8t
PnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNr
X2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFu
X2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkp
IGludDMyX3QgbWFza194ID0gaW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBp
bnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50
MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMy
X3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90
IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVp
Z2h0ID0gaW5mby0+aGVpZ2h0OyB1aW50MzJfdCAqZHN0X2xpbmU7IHVpbnQ4X3QgKm1hc2tfbGlu
ZTsgdWludDMyX3QgKnNyY19maXJzdF9saW5lOyBpbnQgeTEsIHkyOyBwaXhtYW5fZml4ZWRfdCBt
YXhfdnggPSAoMjE0NzQ4MzY0Nyk7IHBpeG1hbl92ZWN0b3JfdCB2OyBwaXhtYW5fZml4ZWRfdCB2
eCwgdnk7IHBpeG1hbl9maXhlZF90IHVuaXRfeCwgdW5pdF95OyBpbnQzMl90IGxlZnRfcGFkLCBs
ZWZ0X3R6LCByaWdodF90eiwgcmlnaHRfcGFkOyB1aW50MzJfdCAqZHN0OyB1aW50OF90IHNvbGlk
X21hc2s7IGNvbnN0IHVpbnQ4X3QgKm1hc2sgPSAmc29saWRfbWFzazsgaW50IHNyY19zdHJpZGUs
IG1hc2tfc3RyaWRlLCBkc3Rfc3RyaWRlOyBpbnQgc3JjX3dpZHRoOyBwaXhtYW5fZml4ZWRfdCBz
cmNfd2lkdGhfZml4ZWQ7IGludCBtYXhfeDsgcGl4bWFuX2Jvb2xfdCBuZWVkX3NyY19leHRlbnNp
b247IGRvIHsgdWludDMyX3QgKl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBk
ZXN0X2ltYWdlLT5iaXRzLmJpdHM7IF9fc3RyaWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0
cmlkZTsgKGRzdF9zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3Qp
IC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChkc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9f
Yml0c19fKSArIChkc3Rfc3RyaWRlKSAqIChkZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hp
bGUgKDApOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAxKSkgeyBzb2xpZF9tYXNrID0gX3BpeG1hbl9p
bWFnZV9nZXRfc29saWQgKGltcCwgbWFza19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQp
OyBtYXNrX3N0cmlkZSA9IDA7IH0gZWxzZSBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgeyBkbyB7
IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFn
ZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7ICht
YXNrX3N0cmlkZSkgPSBfX3N0cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50
KSBzaXplb2YgKHVpbnQ4X3QpOyAobWFza19saW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykg
KyAobWFza19zdHJpZGUpICogKG1hc2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7
IH0gZG8geyB1aW50MzJfdCAqX19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IHNy
Y19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJvd3N0cmlk
ZTsgKHNyY19zdHJpZGUpID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8g
KGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChzcmNfZmlyc3RfbGluZSkgPSAoKHVpbnQzMl90ICop
IF9fYml0c19fKSArIChzcmNfc3RyaWRlKSAqICgwKSArICgxKSAqICgwKTsgfSB3aGlsZSAoMCk7
IHYudmVjdG9yWzBdID0gKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfeCkgPDwgMTYpKSArICgoKHBp
eG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMV0gPSAoKHBpeG1hbl9m
aXhlZF90KSAoKHNyY195KSA8PCAxNikpICsgKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYp
KSkgLyAyOyB2LnZlY3RvclsyXSA9ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpOyBp
ZiAoIXBpeG1hbl90cmFuc2Zvcm1fcG9pbnRfM2QgKHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9y
bSwgJnYpKSByZXR1cm47IHVuaXRfeCA9IHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybS0+bWF0
cml4WzBdWzBdOyB1bml0X3kgPSBzcmNfaW1hZ2UtPmNvbW1vbi50cmFuc2Zvcm0tPm1hdHJpeFsx
XVsxXTsgdi52ZWN0b3JbMF0gLT0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAy
OyB2LnZlY3RvclsxXSAtPSAoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHZ5
ID0gdi52ZWN0b3JbMV07IGlmIChQSVhNQU5fUkVQRUFUX1BBRCA9PSBQSVhNQU5fUkVQRUFUX1BB
RCB8fCBQSVhNQU5fUkVQRUFUX1BBRCA9PSBQSVhNQU5fUkVQRUFUX05PTkUpIHsgYmlsaW5lYXJf
cGFkX3JlcGVhdF9nZXRfc2NhbmxpbmVfYm91bmRzIChzcmNfaW1hZ2UtPmJpdHMud2lkdGgsIHYu
dmVjdG9yWzBdLCB1bml0X3gsICZsZWZ0X3BhZCwgJmxlZnRfdHosICZ3aWR0aCwgJnJpZ2h0X3R6
LCAmcmlnaHRfcGFkKTsgaWYgKFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1BTl9SRVBFQVRfUEFE
KSB7IGxlZnRfcGFkICs9IGxlZnRfdHo7IHJpZ2h0X3BhZCArPSByaWdodF90ejsgbGVmdF90eiA9
IHJpZ2h0X3R6ID0gMDsgfSB2LnZlY3RvclswXSArPSBsZWZ0X3BhZCAqIHVuaXRfeDsgfSBpZiAo
UElYTUFOX1JFUEVBVF9QQUQgPT0gUElYTUFOX1JFUEVBVF9OT1JNQUwpIHsgdnggPSB2LnZlY3Rv
clswXTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1BTCwgJnZ4LCAoKHBpeG1hbl9maXhlZF90
KSAoKHNyY19pbWFnZS0+Yml0cy53aWR0aCkgPDwgMTYpKSk7IG1heF94ID0gKChpbnQpICgodngg
KyAod2lkdGggLSAxKSAqIChpbnQ2NF90KXVuaXRfeCkgPj4gMTYpKSArIDE7IGlmIChzcmNfaW1h
Z2UtPmJpdHMud2lkdGggPCA2NCkgeyBzcmNfd2lkdGggPSAwOyB3aGlsZSAoc3JjX3dpZHRoIDwg
NjQgJiYgc3JjX3dpZHRoIDw9IG1heF94KSBzcmNfd2lkdGggKz0gc3JjX2ltYWdlLT5iaXRzLndp
ZHRoOyBuZWVkX3NyY19leHRlbnNpb24gPSAxOyB9IGVsc2UgeyBzcmNfd2lkdGggPSBzcmNfaW1h
Z2UtPmJpdHMud2lkdGg7IG5lZWRfc3JjX2V4dGVuc2lvbiA9IDA7IH0gc3JjX3dpZHRoX2ZpeGVk
ID0gKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfd2lkdGgpIDw8IDE2KSk7IH0gd2hpbGUgKC0taGVp
Z2h0ID49IDApIHsgaW50IHdlaWdodDEsIHdlaWdodDI7IGRzdCA9IGRzdF9saW5lOyBkc3RfbGlu
ZSArPSBkc3Rfc3RyaWRlOyB2eCA9IHYudmVjdG9yWzBdOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAy
KSkgeyBtYXNrID0gbWFza19saW5lOyBtYXNrX2xpbmUgKz0gbWFza19zdHJpZGU7IH0geTEgPSAo
KGludCkgKCh2eSkgPj4gMTYpKTsgd2VpZ2h0MiA9IHBpeG1hbl9maXhlZF90b19iaWxpbmVhcl93
ZWlnaHQgKHZ5KTsgaWYgKHdlaWdodDIpIHsgeTIgPSB5MSArIDE7IHdlaWdodDEgPSAoMSA8PCA3
KSAtIHdlaWdodDI7IH0gZWxzZSB7IHkyID0geTE7IHdlaWdodDEgPSB3ZWlnaHQyID0gKDEgPDwg
NykgLyAyOyB9IHZ5ICs9IHVuaXRfeTsgaWYgKFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1BTl9S
RVBFQVRfUEFEKSB7IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWludDMyX3QgYnVmMVsyXTsgdWlu
dDMyX3QgYnVmMlsyXTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkxLCBzcmNfaW1hZ2Ut
PmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkyLCBzcmNfaW1hZ2Ut
PmJpdHMuaGVpZ2h0KTsgc3JjMSA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBz
cmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDAp
IHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJb
MF07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBt
YXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMCk7
IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF9w
YWQ7IH0gaWYgKHdpZHRoID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhf
OF84ODg4X09WRVIgKGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdlaWdo
dDIsIHZ4LCB1bml0X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMSA8PCAyKSAmICgxIDw8
IDIpKSBtYXNrICs9IHdpZHRoOyB9IGlmIChyaWdodF9wYWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYx
WzFdID0gc3JjMVtzcmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVmMlswXSA9IGJ1ZjJbMV0g
PSBzcmMyW3NyY19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBzY2FsZWRfYmlsaW5lYXJfc2Nhbmxp
bmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgcmlnaHRfcGFk
LCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAwKTsgfSB9IGVsc2UgaWYgKFBJWE1BTl9SRVBF
QVRfUEFEID09IFBJWE1BTl9SRVBFQVRfTk9ORSkgeyB1aW50MzJfdCAqc3JjMSwgKnNyYzI7IHVp
bnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90IGJ1ZjJbMl07IGlmICh5MSA8IDApIHsgd2VpZ2h0MSA9
IDA7IHkxID0gMDsgfSBpZiAoeTEgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWlnaHQx
ID0gMDsgeTEgPSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBpZiAoeTIgPCAwKSB7IHdl
aWdodDIgPSAwOyB5MiA9IDA7IH0gaWYgKHkyID49IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpIHsg
d2VpZ2h0MiA9IDA7IHkyID0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCAtIDE7IH0gc3JjMSA9IHNy
Y19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBz
cmNfc3RyaWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSAw
OyBidWYyWzBdID0gYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4
OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwg
d2VpZ2h0MiwgMCwgMCwgMCwgMSk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgxIDw8IDIpICYgKDEg
PDwgMikpIG1hc2sgKz0gbGVmdF9wYWQ7IH0gaWYgKGxlZnRfdHogPiAwKSB7IGJ1ZjFbMF0gPSAw
OyBidWYxWzFdID0gc3JjMVswXTsgYnVmMlswXSA9IDA7IGJ1ZjJbMV0gPSBzcmMyWzBdOyBzY2Fs
ZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVm
MSwgYnVmMiwgbGVmdF90eiwgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2Zp
eGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAs
IDApOyBkc3QgKz0gbGVmdF90ejsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gbGVm
dF90ejsgdnggKz0gbGVmdF90eiAqIHVuaXRfeDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9i
aWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmMxLCBz
cmMyLCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgMCwgMCk7IGRzdCArPSB3
aWR0aDsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7IHZ4ICs9IHdpZHRo
ICogdW5pdF94OyB9IGlmIChyaWdodF90eiA+IDApIHsgYnVmMVswXSA9IHNyYzFbc3JjX2ltYWdl
LT5iaXRzLndpZHRoIC0gMV07IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gc3JjMltzcmNfaW1hZ2Ut
PmJpdHMud2lkdGggLSAxXTsgYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9t
bXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF90eiwgd2Vp
Z2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkg
LSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gcmlnaHRfdHo7
IGlmICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IHJpZ2h0X3R6OyB9IGlmIChyaWdodF9w
YWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAwOyBz
Y2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywg
YnVmMSwgYnVmMiwgcmlnaHRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAxKTsgfSB9
IGVsc2UgaWYgKFBJWE1BTl9SRVBFQVRfUEFEID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IGlu
dDMyX3QgbnVtX3BpeGVsczsgaW50MzJfdCB3aWR0aF9yZW1haW47IHVpbnQzMl90ICogc3JjX2xp
bmVfdG9wOyB1aW50MzJfdCAqIHNyY19saW5lX2JvdHRvbTsgdWludDMyX3QgYnVmMVsyXTsgdWlu
dDMyX3QgYnVmMlsyXTsgdWludDMyX3QgZXh0ZW5kZWRfc3JjX2xpbmUwWzY0KjJdOyB1aW50MzJf
dCBleHRlbmRlZF9zcmNfbGluZTFbNjQqMl07IGludCBpLCBqOyByZXBlYXQgKFBJWE1BTl9SRVBF
QVRfTk9STUFMLCAmeTEsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyByZXBlYXQgKFBJWE1BTl9S
RVBFQVRfTk9STUFMLCAmeTIsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyBzcmNfbGluZV90b3Ag
PSBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MTsgc3JjX2xpbmVfYm90dG9tID0gc3Jj
X2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChuZWVkX3NyY19leHRlbnNpb24pIHsg
Zm9yIChpPTA7IGk8c3JjX3dpZHRoOykgeyBmb3IgKGo9MDsgajxzcmNfaW1hZ2UtPmJpdHMud2lk
dGg7IGorKywgaSsrKSB7IGV4dGVuZGVkX3NyY19saW5lMFtpXSA9IHNyY19saW5lX3RvcFtqXTsg
ZXh0ZW5kZWRfc3JjX2xpbmUxW2ldID0gc3JjX2xpbmVfYm90dG9tW2pdOyB9IH0gc3JjX2xpbmVf
dG9wID0gJmV4dGVuZGVkX3NyY19saW5lMFswXTsgc3JjX2xpbmVfYm90dG9tID0gJmV4dGVuZGVk
X3NyY19saW5lMVswXTsgfSBidWYxWzBdID0gc3JjX2xpbmVfdG9wW3NyY193aWR0aCAtIDFdOyBi
dWYxWzFdID0gc3JjX2xpbmVfdG9wWzBdOyBidWYyWzBdID0gc3JjX2xpbmVfYm90dG9tW3NyY193
aWR0aCAtIDFdOyBidWYyWzFdID0gc3JjX2xpbmVfYm90dG9tWzBdOyB3aWR0aF9yZW1haW4gPSB3
aWR0aDsgd2hpbGUgKHdpZHRoX3JlbWFpbiA+IDApIHsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05P
Uk1BTCwgJnZ4LCBzcmNfd2lkdGhfZml4ZWQpOyBpZiAoKChpbnQpICgodngpID4+IDE2KSkgPT0g
c3JjX3dpZHRoIC0gMSkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSB2eCAtICgo
cGl4bWFuX2ZpeGVkX3QpIDEpKSAvIHVuaXRfeCkgKyAxOyBpZiAobnVtX3BpeGVscyA+IHdpZHRo
X3JlbWFpbikgbnVtX3BpeGVscyA9IHdpZHRoX3JlbWFpbjsgc2NhbGVkX2JpbGluZWFyX3NjYW5s
aW5lX21teF84ODg4XzhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIG51bV9waXhl
bHMsIHdlaWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8
IDE2KSkpIC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCBzcmNfd2lkdGhfZml4ZWQs
IDApOyB3aWR0aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3BpeGVscyAqIHVuaXRf
eDsgZHN0ICs9IG51bV9waXhlbHM7IGlmICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IG51
bV9waXhlbHM7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2Zp
eGVkKTsgfSBpZiAoKChpbnQpICgodngpID4+IDE2KSkgIT0gc3JjX3dpZHRoIC0gMSAmJiB3aWR0
aF9yZW1haW4gPiAwKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhlZCAtICgoKHBpeG1h
bl9maXhlZF90KSAoKDEpIDw8IDE2KSkpIC0gdnggLSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1
bml0X3gpICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3
aWR0aF9yZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZF
UiAoZHN0LCBtYXNrLCBzcmNfbGluZV90b3AsIHNyY19saW5lX2JvdHRvbSwgbnVtX3BpeGVscywg
d2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgc3JjX3dpZHRoX2ZpeGVkLCAwKTsgd2lkdGhf
cmVtYWluIC09IG51bV9waXhlbHM7IHZ4ICs9IG51bV9waXhlbHMgKiB1bml0X3g7IGRzdCArPSBu
dW1fcGl4ZWxzOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxzOyB9
IH0gfSBlbHNlIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4XzhfODg4OF9PVkVS
IChkc3QsIG1hc2ssIHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxLCBzcmNfZmlyc3Rf
bGluZSArIHNyY19zdHJpZGUgKiB5Miwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0
X3gsIG1heF92eCwgMCk7IH0gfSB9CgoKCnN0YXRpYyB2b2lkIGZhc3RfY29tcG9zaXRlX3NjYWxl
ZF9iaWxpbmVhcl9tbXhfODg4OF84Xzg4ODhfbm9uZV9PVkVSIChwaXhtYW5faW1wbGVtZW50YXRp
b25fdCAqaW1wLCBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykgeyBfX2F0dHJpYnV0ZV9f
KCh1bnVzZWQpKSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVz
ZWQpKSBwaXhtYW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRy
aWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFz
a19pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2lt
YWdlID0gaW5mby0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBz
cmNfeCA9IGluZm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195
ID0gaW5mby0+c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0g
aW5mby0+bWFza194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGlu
Zm8tPm1hc2tfeTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZv
LT5kZXN0X3g7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+
ZGVzdF95OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lk
dGg7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0
OyB1aW50MzJfdCAqZHN0X2xpbmU7IHVpbnQ4X3QgKm1hc2tfbGluZTsgdWludDMyX3QgKnNyY19m
aXJzdF9saW5lOyBpbnQgeTEsIHkyOyBwaXhtYW5fZml4ZWRfdCBtYXhfdnggPSAoMjE0NzQ4MzY0
Nyk7IHBpeG1hbl92ZWN0b3JfdCB2OyBwaXhtYW5fZml4ZWRfdCB2eCwgdnk7IHBpeG1hbl9maXhl
ZF90IHVuaXRfeCwgdW5pdF95OyBpbnQzMl90IGxlZnRfcGFkLCBsZWZ0X3R6LCByaWdodF90eiwg
cmlnaHRfcGFkOyB1aW50MzJfdCAqZHN0OyB1aW50OF90IHNvbGlkX21hc2s7IGNvbnN0IHVpbnQ4
X3QgKm1hc2sgPSAmc29saWRfbWFzazsgaW50IHNyY19zdHJpZGUsIG1hc2tfc3RyaWRlLCBkc3Rf
c3RyaWRlOyBpbnQgc3JjX3dpZHRoOyBwaXhtYW5fZml4ZWRfdCBzcmNfd2lkdGhfZml4ZWQ7IGlu
dCBtYXhfeDsgcGl4bWFuX2Jvb2xfdCBuZWVkX3NyY19leHRlbnNpb247IGRvIHsgdWludDMyX3Qg
Kl9fYml0c19fOyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdlLT5iaXRzLmJp
dHM7IF9fc3RyaWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRzdF9zdHJpZGUp
ID0gX19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1
aW50MzJfdCk7IChkc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChkc3Rfc3Ry
aWRlKSAqIChkZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOyBpZiAoKDEgPDwg
MikgJiAoMSA8PCAxKSkgeyBzb2xpZF9tYXNrID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGlt
cCwgbWFza19pbWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOyBtYXNrX3N0cmlkZSA9IDA7
IH0gZWxzZSBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgeyBkbyB7IHVpbnQzMl90ICpfX2JpdHNf
XzsgaW50IF9fc3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0
cmlkZV9fID0gbWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0
cmlkZV9fICogKGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQ4X3Qp
OyAobWFza19saW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICog
KG1hc2tfeSkgKyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7IH0gZG8geyB1aW50MzJfdCAq
X19iaXRzX187IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+Yml0cy5iaXRz
OyBfX3N0cmlkZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKHNyY19zdHJpZGUpID0g
X19zdHJpZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50
MzJfdCk7IChzcmNfZmlyc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChzcmNf
c3RyaWRlKSAqICgwKSArICgxKSAqICgwKTsgfSB3aGlsZSAoMCk7IHYudmVjdG9yWzBdID0gKChw
aXhtYW5fZml4ZWRfdCkgKChzcmNfeCkgPDwgMTYpKSArICgoKHBpeG1hbl9maXhlZF90KSAoKDEp
IDw8IDE2KSkpIC8gMjsgdi52ZWN0b3JbMV0gPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY195KSA8
PCAxNikpICsgKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3Rvclsy
XSA9ICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpOyBpZiAoIXBpeG1hbl90cmFuc2Zv
cm1fcG9pbnRfM2QgKHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybSwgJnYpKSByZXR1cm47IHVu
aXRfeCA9IHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzBdWzBdOyB1bml0X3kg
PSBzcmNfaW1hZ2UtPmNvbW1vbi50cmFuc2Zvcm0tPm1hdHJpeFsxXVsxXTsgdi52ZWN0b3JbMF0g
LT0gKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsxXSAtPSAo
KChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHZ5ID0gdi52ZWN0b3JbMV07IGlm
IChQSVhNQU5fUkVQRUFUX05PTkUgPT0gUElYTUFOX1JFUEVBVF9QQUQgfHwgUElYTUFOX1JFUEVB
VF9OT05FID09IFBJWE1BTl9SRVBFQVRfTk9ORSkgeyBiaWxpbmVhcl9wYWRfcmVwZWF0X2dldF9z
Y2FubGluZV9ib3VuZHMgKHNyY19pbWFnZS0+Yml0cy53aWR0aCwgdi52ZWN0b3JbMF0sIHVuaXRf
eCwgJmxlZnRfcGFkLCAmbGVmdF90eiwgJndpZHRoLCAmcmlnaHRfdHosICZyaWdodF9wYWQpOyBp
ZiAoUElYTUFOX1JFUEVBVF9OT05FID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IGxlZnRfcGFkICs9
IGxlZnRfdHo7IHJpZ2h0X3BhZCArPSByaWdodF90ejsgbGVmdF90eiA9IHJpZ2h0X3R6ID0gMDsg
fSB2LnZlY3RvclswXSArPSBsZWZ0X3BhZCAqIHVuaXRfeDsgfSBpZiAoUElYTUFOX1JFUEVBVF9O
T05FID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IHZ4ID0gdi52ZWN0b3JbMF07IHJlcGVhdCAo
UElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgKChwaXhtYW5fZml4ZWRfdCkgKChzcmNfaW1hZ2Ut
PmJpdHMud2lkdGgpIDw8IDE2KSkpOyBtYXhfeCA9ICgoaW50KSAoKHZ4ICsgKHdpZHRoIC0gMSkg
KiAoaW50NjRfdCl1bml0X3gpID4+IDE2KSkgKyAxOyBpZiAoc3JjX2ltYWdlLT5iaXRzLndpZHRo
IDwgNjQpIHsgc3JjX3dpZHRoID0gMDsgd2hpbGUgKHNyY193aWR0aCA8IDY0ICYmIHNyY193aWR0
aCA8PSBtYXhfeCkgc3JjX3dpZHRoICs9IHNyY19pbWFnZS0+Yml0cy53aWR0aDsgbmVlZF9zcmNf
ZXh0ZW5zaW9uID0gMTsgfSBlbHNlIHsgc3JjX3dpZHRoID0gc3JjX2ltYWdlLT5iaXRzLndpZHRo
OyBuZWVkX3NyY19leHRlbnNpb24gPSAwOyB9IHNyY193aWR0aF9maXhlZCA9ICgocGl4bWFuX2Zp
eGVkX3QpICgoc3JjX3dpZHRoKSA8PCAxNikpOyB9IHdoaWxlICgtLWhlaWdodCA+PSAwKSB7IGlu
dCB3ZWlnaHQxLCB3ZWlnaHQyOyBkc3QgPSBkc3RfbGluZTsgZHN0X2xpbmUgKz0gZHN0X3N0cmlk
ZTsgdnggPSB2LnZlY3RvclswXTsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIHsgbWFzayA9IG1h
c2tfbGluZTsgbWFza19saW5lICs9IG1hc2tfc3RyaWRlOyB9IHkxID0gKChpbnQpICgodnkpID4+
IDE2KSk7IHdlaWdodDIgPSBwaXhtYW5fZml4ZWRfdG9fYmlsaW5lYXJfd2VpZ2h0ICh2eSk7IGlm
ICh3ZWlnaHQyKSB7IHkyID0geTEgKyAxOyB3ZWlnaHQxID0gKDEgPDwgNykgLSB3ZWlnaHQyOyB9
IGVsc2UgeyB5MiA9IHkxOyB3ZWlnaHQxID0gd2VpZ2h0MiA9ICgxIDw8IDcpIC8gMjsgfSB2eSAr
PSB1bml0X3k7IGlmIChQSVhNQU5fUkVQRUFUX05PTkUgPT0gUElYTUFOX1JFUEVBVF9QQUQpIHsg
dWludDMyX3QgKnNyYzEsICpzcmMyOyB1aW50MzJfdCBidWYxWzJdOyB1aW50MzJfdCBidWYyWzJd
OyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfUEFELCAmeTEsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQp
OyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfUEFELCAmeTIsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQp
OyBzcmMxID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyYzIgPSBzcmNfZmly
c3RfbGluZSArIHNyY19zdHJpZGUgKiB5MjsgaWYgKGxlZnRfcGFkID4gMCkgeyBidWYxWzBdID0g
YnVmMVsxXSA9IHNyYzFbMF07IGJ1ZjJbMF0gPSBidWYyWzFdID0gc3JjMlswXTsgc2NhbGVkX2Jp
bGluZWFyX3NjYW5saW5lX21teF84ODg4XzhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1
ZjIsIGxlZnRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAwKTsgZHN0ICs9IGxlZnRf
cGFkOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgbWFzayArPSBsZWZ0X3BhZDsgfSBpZiAod2lk
dGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAo
ZHN0LCBtYXNrLCBzcmMxLCBzcmMyLCB3aWR0aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRf
eCwgMCwgMCk7IGRzdCArPSB3aWR0aDsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0g
d2lkdGg7IH0gaWYgKHJpZ2h0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSBzcmMxW3Ny
Y19pbWFnZS0+Yml0cy53aWR0aCAtIDFdOyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJbc3JjX2lt
YWdlLT5iaXRzLndpZHRoIC0gMV07IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84
Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF9wYWQsIHdlaWdodDEsIHdl
aWdodDIsIDAsIDAsIDAsIDApOyB9IH0gZWxzZSBpZiAoUElYTUFOX1JFUEVBVF9OT05FID09IFBJ
WE1BTl9SRVBFQVRfTk9ORSkgeyB1aW50MzJfdCAqc3JjMSwgKnNyYzI7IHVpbnQzMl90IGJ1ZjFb
Ml07IHVpbnQzMl90IGJ1ZjJbMl07IGlmICh5MSA8IDApIHsgd2VpZ2h0MSA9IDA7IHkxID0gMDsg
fSBpZiAoeTEgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWlnaHQxID0gMDsgeTEgPSBz
cmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBpZiAoeTIgPCAwKSB7IHdlaWdodDIgPSAwOyB5
MiA9IDA7IH0gaWYgKHkyID49IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpIHsgd2VpZ2h0MiA9IDA7
IHkyID0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCAtIDE7IH0gc3JjMSA9IHNyY19maXJzdF9saW5l
ICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRlICog
eTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0g
YnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZF
UiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwg
MCwgMCwgMSk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sg
Kz0gbGVmdF9wYWQ7IH0gaWYgKGxlZnRfdHogPiAwKSB7IGJ1ZjFbMF0gPSAwOyBidWYxWzFdID0g
c3JjMVswXTsgYnVmMlswXSA9IDA7IGJ1ZjJbMV0gPSBzcmMyWzBdOyBzY2FsZWRfYmlsaW5lYXJf
c2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgbGVm
dF90eiwgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkg
PDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0g
bGVmdF90ejsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF90ejsgdnggKz0g
bGVmdF90eiAqIHVuaXRfeDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9zY2Fu
bGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmMxLCBzcmMyLCB3aWR0aCwg
d2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgMCwgMCk7IGRzdCArPSB3aWR0aDsgaWYgKCgx
IDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7IHZ4ICs9IHdpZHRoICogdW5pdF94OyB9
IGlmIChyaWdodF90eiA+IDApIHsgYnVmMVswXSA9IHNyYzFbc3JjX2ltYWdlLT5iaXRzLndpZHRo
IC0gMV07IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMud2lkdGgg
LSAxXTsgYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4
ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF90eiwgd2VpZ2h0MSwgd2VpZ2h0
MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9m
aXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gcmlnaHRfdHo7IGlmICgoMSA8PCAy
KSAmICgxIDw8IDIpKSBtYXNrICs9IHJpZ2h0X3R6OyB9IGlmIChyaWdodF9wYWQgPiAwKSB7IGJ1
ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmlsaW5l
YXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwg
cmlnaHRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAxKTsgfSB9IGVsc2UgaWYgKFBJ
WE1BTl9SRVBFQVRfTk9ORSA9PSBQSVhNQU5fUkVQRUFUX05PUk1BTCkgeyBpbnQzMl90IG51bV9w
aXhlbHM7IGludDMyX3Qgd2lkdGhfcmVtYWluOyB1aW50MzJfdCAqIHNyY19saW5lX3RvcDsgdWlu
dDMyX3QgKiBzcmNfbGluZV9ib3R0b207IHVpbnQzMl90IGJ1ZjFbMl07IHVpbnQzMl90IGJ1ZjJb
Ml07IHVpbnQzMl90IGV4dGVuZGVkX3NyY19saW5lMFs2NCoyXTsgdWludDMyX3QgZXh0ZW5kZWRf
c3JjX2xpbmUxWzY0KjJdOyBpbnQgaSwgajsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1BTCwg
JnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1B
TCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0KTsgc3JjX2xpbmVfdG9wID0gc3JjX2ZpcnN0
X2xpbmUgKyBzcmNfc3RyaWRlICogeTE7IHNyY19saW5lX2JvdHRvbSA9IHNyY19maXJzdF9saW5l
ICsgc3JjX3N0cmlkZSAqIHkyOyBpZiAobmVlZF9zcmNfZXh0ZW5zaW9uKSB7IGZvciAoaT0wOyBp
PHNyY193aWR0aDspIHsgZm9yIChqPTA7IGo8c3JjX2ltYWdlLT5iaXRzLndpZHRoOyBqKyssIGkr
KykgeyBleHRlbmRlZF9zcmNfbGluZTBbaV0gPSBzcmNfbGluZV90b3Bbal07IGV4dGVuZGVkX3Ny
Y19saW5lMVtpXSA9IHNyY19saW5lX2JvdHRvbVtqXTsgfSB9IHNyY19saW5lX3RvcCA9ICZleHRl
bmRlZF9zcmNfbGluZTBbMF07IHNyY19saW5lX2JvdHRvbSA9ICZleHRlbmRlZF9zcmNfbGluZTFb
MF07IH0gYnVmMVswXSA9IHNyY19saW5lX3RvcFtzcmNfd2lkdGggLSAxXTsgYnVmMVsxXSA9IHNy
Y19saW5lX3RvcFswXTsgYnVmMlswXSA9IHNyY19saW5lX2JvdHRvbVtzcmNfd2lkdGggLSAxXTsg
YnVmMlsxXSA9IHNyY19saW5lX2JvdHRvbVswXTsgd2lkdGhfcmVtYWluID0gd2lkdGg7IHdoaWxl
ICh3aWR0aF9yZW1haW4gPiAwKSB7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwg
c3JjX3dpZHRoX2ZpeGVkKTsgaWYgKCgoaW50KSAoKHZ4KSA+PiAxNikpID09IHNyY193aWR0aCAt
IDEpIHsgbnVtX3BpeGVscyA9ICgoc3JjX3dpZHRoX2ZpeGVkIC0gdnggLSAoKHBpeG1hbl9maXhl
ZF90KSAxKSkgLyB1bml0X3gpICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51
bV9waXhlbHMgPSB3aWR0aF9yZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4
OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBudW1fcGl4ZWxzLCB3ZWlnaHQx
LCB3ZWlnaHQyLCAoKHZ4KSAmICgoKChwaXhtYW5fZml4ZWRfdCkgKCgxKSA8PCAxNikpKSAtICgo
cGl4bWFuX2ZpeGVkX3QpIDEpKSksIHVuaXRfeCwgc3JjX3dpZHRoX2ZpeGVkLCAwKTsgd2lkdGhf
cmVtYWluIC09IG51bV9waXhlbHM7IHZ4ICs9IG51bV9waXhlbHMgKiB1bml0X3g7IGRzdCArPSBu
dW1fcGl4ZWxzOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxzOyBy
ZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9STUFMLCAmdngsIHNyY193aWR0aF9maXhlZCk7IH0gaWYg
KCgoaW50KSAoKHZ4KSA+PiAxNikpICE9IHNyY193aWR0aCAtIDEgJiYgd2lkdGhfcmVtYWluID4g
MCkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSAoKChwaXhtYW5fZml4ZWRfdCkg
KCgxKSA8PCAxNikpKSAtIHZ4IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpIC8gdW5pdF94KSArIDE7
IGlmIChudW1fcGl4ZWxzID4gd2lkdGhfcmVtYWluKSBudW1fcGl4ZWxzID0gd2lkdGhfcmVtYWlu
OyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFz
aywgc3JjX2xpbmVfdG9wLCBzcmNfbGluZV9ib3R0b20sIG51bV9waXhlbHMsIHdlaWdodDEsIHdl
aWdodDIsIHZ4LCB1bml0X3gsIHNyY193aWR0aF9maXhlZCwgMCk7IHdpZHRoX3JlbWFpbiAtPSBu
dW1fcGl4ZWxzOyB2eCArPSBudW1fcGl4ZWxzICogdW5pdF94OyBkc3QgKz0gbnVtX3BpeGVsczsg
aWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gbnVtX3BpeGVsczsgfSB9IH0gZWxzZSB7
IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNr
LCBzcmNfZmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MSwgc3JjX2ZpcnN0X2xpbmUgKyBzcmNf
c3RyaWRlICogeTIsIHdpZHRoLCB3ZWlnaHQxLCB3ZWlnaHQyLCB2eCwgdW5pdF94LCBtYXhfdngs
IDApOyB9IH0gfQoKCgpzdGF0aWMgdm9pZCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJf
bW14Xzg4ODhfOF84ODg4X25vcm1hbF9PVkVSIChwaXhtYW5faW1wbGVtZW50YXRpb25fdCAqaW1w
LCBwaXhtYW5fY29tcG9zaXRlX2luZm9fdCAqaW5mbykgeyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp
KSBwaXhtYW5fb3BfdCBvcCA9IGluZm8tPm9wOyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBwaXht
YW5faW1hZ2VfdCAqIHNyY19pbWFnZSA9IGluZm8tPnNyY19pbWFnZTsgX19hdHRyaWJ1dGVfXygo
dW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBtYXNrX2ltYWdlID0gaW5mby0+bWFza19pbWFnZTsg
X19hdHRyaWJ1dGVfXygodW51c2VkKSkgcGl4bWFuX2ltYWdlX3QgKiBkZXN0X2ltYWdlID0gaW5m
by0+ZGVzdF9pbWFnZTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBzcmNfeCA9IGlu
Zm8tPnNyY194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHNyY195ID0gaW5mby0+
c3JjX3k7IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgbWFza194ID0gaW5mby0+bWFz
a194OyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IG1hc2tfeSA9IGluZm8tPm1hc2tf
eTsgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50MzJfdCBkZXN0X3ggPSBpbmZvLT5kZXN0X3g7
IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgZGVzdF95ID0gaW5mby0+ZGVzdF95OyBf
X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQzMl90IHdpZHRoID0gaW5mby0+d2lkdGg7IF9fYXR0
cmlidXRlX18oKHVudXNlZCkpIGludDMyX3QgaGVpZ2h0ID0gaW5mby0+aGVpZ2h0OyB1aW50MzJf
dCAqZHN0X2xpbmU7IHVpbnQ4X3QgKm1hc2tfbGluZTsgdWludDMyX3QgKnNyY19maXJzdF9saW5l
OyBpbnQgeTEsIHkyOyBwaXhtYW5fZml4ZWRfdCBtYXhfdnggPSAoMjE0NzQ4MzY0Nyk7IHBpeG1h
bl92ZWN0b3JfdCB2OyBwaXhtYW5fZml4ZWRfdCB2eCwgdnk7IHBpeG1hbl9maXhlZF90IHVuaXRf
eCwgdW5pdF95OyBpbnQzMl90IGxlZnRfcGFkLCBsZWZ0X3R6LCByaWdodF90eiwgcmlnaHRfcGFk
OyB1aW50MzJfdCAqZHN0OyB1aW50OF90IHNvbGlkX21hc2s7IGNvbnN0IHVpbnQ4X3QgKm1hc2sg
PSAmc29saWRfbWFzazsgaW50IHNyY19zdHJpZGUsIG1hc2tfc3RyaWRlLCBkc3Rfc3RyaWRlOyBp
bnQgc3JjX3dpZHRoOyBwaXhtYW5fZml4ZWRfdCBzcmNfd2lkdGhfZml4ZWQ7IGludCBtYXhfeDsg
cGl4bWFuX2Jvb2xfdCBuZWVkX3NyY19leHRlbnNpb247IGRvIHsgdWludDMyX3QgKl9fYml0c19f
OyBpbnQgX19zdHJpZGVfXzsgX19iaXRzX18gPSBkZXN0X2ltYWdlLT5iaXRzLmJpdHM7IF9fc3Ry
aWRlX18gPSBkZXN0X2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKGRzdF9zdHJpZGUpID0gX19zdHJp
ZGVfXyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7
IChkc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChkc3Rfc3RyaWRlKSAqIChk
ZXN0X3kpICsgKDEpICogKGRlc3RfeCk7IH0gd2hpbGUgKDApOyBpZiAoKDEgPDwgMikgJiAoMSA8
PCAxKSkgeyBzb2xpZF9tYXNrID0gX3BpeG1hbl9pbWFnZV9nZXRfc29saWQgKGltcCwgbWFza19p
bWFnZSwgZGVzdF9pbWFnZS0+Yml0cy5mb3JtYXQpOyBtYXNrX3N0cmlkZSA9IDA7IH0gZWxzZSBp
ZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgeyBkbyB7IHVpbnQzMl90ICpfX2JpdHNfXzsgaW50IF9f
c3RyaWRlX187IF9fYml0c19fID0gbWFza19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlkZV9fID0g
bWFza19pbWFnZS0+Yml0cy5yb3dzdHJpZGU7IChtYXNrX3N0cmlkZSkgPSBfX3N0cmlkZV9fICog
KGludCkgc2l6ZW9mICh1aW50MzJfdCkgLyAoaW50KSBzaXplb2YgKHVpbnQ4X3QpOyAobWFza19s
aW5lKSA9ICgodWludDhfdCAqKSBfX2JpdHNfXykgKyAobWFza19zdHJpZGUpICogKG1hc2tfeSkg
KyAoMSkgKiAobWFza194KTsgfSB3aGlsZSAoMCk7IH0gZG8geyB1aW50MzJfdCAqX19iaXRzX187
IGludCBfX3N0cmlkZV9fOyBfX2JpdHNfXyA9IHNyY19pbWFnZS0+Yml0cy5iaXRzOyBfX3N0cmlk
ZV9fID0gc3JjX2ltYWdlLT5iaXRzLnJvd3N0cmlkZTsgKHNyY19zdHJpZGUpID0gX19zdHJpZGVf
XyAqIChpbnQpIHNpemVvZiAodWludDMyX3QpIC8gKGludCkgc2l6ZW9mICh1aW50MzJfdCk7IChz
cmNfZmlyc3RfbGluZSkgPSAoKHVpbnQzMl90ICopIF9fYml0c19fKSArIChzcmNfc3RyaWRlKSAq
ICgwKSArICgxKSAqICgwKTsgfSB3aGlsZSAoMCk7IHYudmVjdG9yWzBdID0gKChwaXhtYW5fZml4
ZWRfdCkgKChzcmNfeCkgPDwgMTYpKSArICgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkp
IC8gMjsgdi52ZWN0b3JbMV0gPSAoKHBpeG1hbl9maXhlZF90KSAoKHNyY195KSA8PCAxNikpICsg
KCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsyXSA9ICgoKHBp
eG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkpOyBpZiAoIXBpeG1hbl90cmFuc2Zvcm1fcG9pbnRf
M2QgKHNyY19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybSwgJnYpKSByZXR1cm47IHVuaXRfeCA9IHNy
Y19pbWFnZS0+Y29tbW9uLnRyYW5zZm9ybS0+bWF0cml4WzBdWzBdOyB1bml0X3kgPSBzcmNfaW1h
Z2UtPmNvbW1vbi50cmFuc2Zvcm0tPm1hdHJpeFsxXVsxXTsgdi52ZWN0b3JbMF0gLT0gKCgocGl4
bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLyAyOyB2LnZlY3RvclsxXSAtPSAoKChwaXhtYW5f
Zml4ZWRfdCkgKCgxKSA8PCAxNikpKSAvIDI7IHZ5ID0gdi52ZWN0b3JbMV07IGlmIChQSVhNQU5f
UkVQRUFUX05PUk1BTCA9PSBQSVhNQU5fUkVQRUFUX1BBRCB8fCBQSVhNQU5fUkVQRUFUX05PUk1B
TCA9PSBQSVhNQU5fUkVQRUFUX05PTkUpIHsgYmlsaW5lYXJfcGFkX3JlcGVhdF9nZXRfc2Nhbmxp
bmVfYm91bmRzIChzcmNfaW1hZ2UtPmJpdHMud2lkdGgsIHYudmVjdG9yWzBdLCB1bml0X3gsICZs
ZWZ0X3BhZCwgJmxlZnRfdHosICZ3aWR0aCwgJnJpZ2h0X3R6LCAmcmlnaHRfcGFkKTsgaWYgKFBJ
WE1BTl9SRVBFQVRfTk9STUFMID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7IGxlZnRfcGFkICs9IGxl
ZnRfdHo7IHJpZ2h0X3BhZCArPSByaWdodF90ejsgbGVmdF90eiA9IHJpZ2h0X3R6ID0gMDsgfSB2
LnZlY3RvclswXSArPSBsZWZ0X3BhZCAqIHVuaXRfeDsgfSBpZiAoUElYTUFOX1JFUEVBVF9OT1JN
QUwgPT0gUElYTUFOX1JFUEVBVF9OT1JNQUwpIHsgdnggPSB2LnZlY3RvclswXTsgcmVwZWF0IChQ
SVhNQU5fUkVQRUFUX05PUk1BTCwgJnZ4LCAoKHBpeG1hbl9maXhlZF90KSAoKHNyY19pbWFnZS0+
Yml0cy53aWR0aCkgPDwgMTYpKSk7IG1heF94ID0gKChpbnQpICgodnggKyAod2lkdGggLSAxKSAq
IChpbnQ2NF90KXVuaXRfeCkgPj4gMTYpKSArIDE7IGlmIChzcmNfaW1hZ2UtPmJpdHMud2lkdGgg
PCA2NCkgeyBzcmNfd2lkdGggPSAwOyB3aGlsZSAoc3JjX3dpZHRoIDwgNjQgJiYgc3JjX3dpZHRo
IDw9IG1heF94KSBzcmNfd2lkdGggKz0gc3JjX2ltYWdlLT5iaXRzLndpZHRoOyBuZWVkX3NyY19l
eHRlbnNpb24gPSAxOyB9IGVsc2UgeyBzcmNfd2lkdGggPSBzcmNfaW1hZ2UtPmJpdHMud2lkdGg7
IG5lZWRfc3JjX2V4dGVuc2lvbiA9IDA7IH0gc3JjX3dpZHRoX2ZpeGVkID0gKChwaXhtYW5fZml4
ZWRfdCkgKChzcmNfd2lkdGgpIDw8IDE2KSk7IH0gd2hpbGUgKC0taGVpZ2h0ID49IDApIHsgaW50
IHdlaWdodDEsIHdlaWdodDI7IGRzdCA9IGRzdF9saW5lOyBkc3RfbGluZSArPSBkc3Rfc3RyaWRl
OyB2eCA9IHYudmVjdG9yWzBdOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgeyBtYXNrID0gbWFz
a19saW5lOyBtYXNrX2xpbmUgKz0gbWFza19zdHJpZGU7IH0geTEgPSAoKGludCkgKCh2eSkgPj4g
MTYpKTsgd2VpZ2h0MiA9IHBpeG1hbl9maXhlZF90b19iaWxpbmVhcl93ZWlnaHQgKHZ5KTsgaWYg
KHdlaWdodDIpIHsgeTIgPSB5MSArIDE7IHdlaWdodDEgPSAoMSA8PCA3KSAtIHdlaWdodDI7IH0g
ZWxzZSB7IHkyID0geTE7IHdlaWdodDEgPSB3ZWlnaHQyID0gKDEgPDwgNykgLyAyOyB9IHZ5ICs9
IHVuaXRfeTsgaWYgKFBJWE1BTl9SRVBFQVRfTk9STUFMID09IFBJWE1BTl9SRVBFQVRfUEFEKSB7
IHVpbnQzMl90ICpzcmMxLCAqc3JjMjsgdWludDMyX3QgYnVmMVsyXTsgdWludDMyX3QgYnVmMlsy
XTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkxLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0
KTsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX1BBRCwgJnkyLCBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0
KTsgc3JjMSA9IHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2Zp
cnN0X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9
IGJ1ZjFbMV0gPSBzcmMxWzBdOyBidWYyWzBdID0gYnVmMlsxXSA9IHNyYzJbMF07IHNjYWxlZF9i
aWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBi
dWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0MiwgMCwgMCwgMCwgMCk7IGRzdCArPSBsZWZ0
X3BhZDsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF9wYWQ7IH0gaWYgKHdp
ZHRoID4gMCkgeyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIg
KGRzdCwgbWFzaywgc3JjMSwgc3JjMiwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0
X3gsIDAsIDApOyBkc3QgKz0gd2lkdGg7IGlmICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9
IHdpZHRoOyB9IGlmIChyaWdodF9wYWQgPiAwKSB7IGJ1ZjFbMF0gPSBidWYxWzFdID0gc3JjMVtz
cmNfaW1hZ2UtPmJpdHMud2lkdGggLSAxXTsgYnVmMlswXSA9IGJ1ZjJbMV0gPSBzcmMyW3NyY19p
bWFnZS0+Yml0cy53aWR0aCAtIDFdOyBzY2FsZWRfYmlsaW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhf
OF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwgcmlnaHRfcGFkLCB3ZWlnaHQxLCB3
ZWlnaHQyLCAwLCAwLCAwLCAwKTsgfSB9IGVsc2UgaWYgKFBJWE1BTl9SRVBFQVRfTk9STUFMID09
IFBJWE1BTl9SRVBFQVRfTk9ORSkgeyB1aW50MzJfdCAqc3JjMSwgKnNyYzI7IHVpbnQzMl90IGJ1
ZjFbMl07IHVpbnQzMl90IGJ1ZjJbMl07IGlmICh5MSA8IDApIHsgd2VpZ2h0MSA9IDA7IHkxID0g
MDsgfSBpZiAoeTEgPj0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCkgeyB3ZWlnaHQxID0gMDsgeTEg
PSBzcmNfaW1hZ2UtPmJpdHMuaGVpZ2h0IC0gMTsgfSBpZiAoeTIgPCAwKSB7IHdlaWdodDIgPSAw
OyB5MiA9IDA7IH0gaWYgKHkyID49IHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpIHsgd2VpZ2h0MiA9
IDA7IHkyID0gc3JjX2ltYWdlLT5iaXRzLmhlaWdodCAtIDE7IH0gc3JjMSA9IHNyY19maXJzdF9s
aW5lICsgc3JjX3N0cmlkZSAqIHkxOyBzcmMyID0gc3JjX2ZpcnN0X2xpbmUgKyBzcmNfc3RyaWRl
ICogeTI7IGlmIChsZWZ0X3BhZCA+IDApIHsgYnVmMVswXSA9IGJ1ZjFbMV0gPSAwOyBidWYyWzBd
ID0gYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhf
T1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCBsZWZ0X3BhZCwgd2VpZ2h0MSwgd2VpZ2h0Miwg
MCwgMCwgMCwgMSk7IGRzdCArPSBsZWZ0X3BhZDsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1h
c2sgKz0gbGVmdF9wYWQ7IH0gaWYgKGxlZnRfdHogPiAwKSB7IGJ1ZjFbMF0gPSAwOyBidWYxWzFd
ID0gc3JjMVswXTsgYnVmMlswXSA9IDA7IGJ1ZjJbMV0gPSBzcmMyWzBdOyBzY2FsZWRfYmlsaW5l
YXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVmMiwg
bGVmdF90eiwgd2VpZ2h0MSwgd2VpZ2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgo
MSkgPDwgMTYpKSkgLSAoKHBpeG1hbl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3Qg
Kz0gbGVmdF90ejsgaWYgKCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gbGVmdF90ejsgdngg
Kz0gbGVmdF90eiAqIHVuaXRfeDsgfSBpZiAod2lkdGggPiAwKSB7IHNjYWxlZF9iaWxpbmVhcl9z
Y2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBzcmMxLCBzcmMyLCB3aWR0
aCwgd2VpZ2h0MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgMCwgMCk7IGRzdCArPSB3aWR0aDsgaWYg
KCgxIDw8IDIpICYgKDEgPDwgMikpIG1hc2sgKz0gd2lkdGg7IHZ4ICs9IHdpZHRoICogdW5pdF94
OyB9IGlmIChyaWdodF90eiA+IDApIHsgYnVmMVswXSA9IHNyYzFbc3JjX2ltYWdlLT5iaXRzLndp
ZHRoIC0gMV07IGJ1ZjFbMV0gPSAwOyBidWYyWzBdID0gc3JjMltzcmNfaW1hZ2UtPmJpdHMud2lk
dGggLSAxXTsgYnVmMlsxXSA9IDA7IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84
Xzg4ODhfT1ZFUiAoZHN0LCBtYXNrLCBidWYxLCBidWYyLCByaWdodF90eiwgd2VpZ2h0MSwgd2Vp
Z2h0MiwgKCh2eCkgJiAoKCgocGl4bWFuX2ZpeGVkX3QpICgoMSkgPDwgMTYpKSkgLSAoKHBpeG1h
bl9maXhlZF90KSAxKSkpLCB1bml0X3gsIDAsIDApOyBkc3QgKz0gcmlnaHRfdHo7IGlmICgoMSA8
PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IHJpZ2h0X3R6OyB9IGlmIChyaWdodF9wYWQgPiAwKSB7
IGJ1ZjFbMF0gPSBidWYxWzFdID0gMDsgYnVmMlswXSA9IGJ1ZjJbMV0gPSAwOyBzY2FsZWRfYmls
aW5lYXJfc2NhbmxpbmVfbW14Xzg4ODhfOF84ODg4X09WRVIgKGRzdCwgbWFzaywgYnVmMSwgYnVm
MiwgcmlnaHRfcGFkLCB3ZWlnaHQxLCB3ZWlnaHQyLCAwLCAwLCAwLCAxKTsgfSB9IGVsc2UgaWYg
KFBJWE1BTl9SRVBFQVRfTk9STUFMID09IFBJWE1BTl9SRVBFQVRfTk9STUFMKSB7IGludDMyX3Qg
bnVtX3BpeGVsczsgaW50MzJfdCB3aWR0aF9yZW1haW47IHVpbnQzMl90ICogc3JjX2xpbmVfdG9w
OyB1aW50MzJfdCAqIHNyY19saW5lX2JvdHRvbTsgdWludDMyX3QgYnVmMVsyXTsgdWludDMyX3Qg
YnVmMlsyXTsgdWludDMyX3QgZXh0ZW5kZWRfc3JjX2xpbmUwWzY0KjJdOyB1aW50MzJfdCBleHRl
bmRlZF9zcmNfbGluZTFbNjQqMl07IGludCBpLCBqOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRfTk9S
TUFMLCAmeTEsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyByZXBlYXQgKFBJWE1BTl9SRVBFQVRf
Tk9STUFMLCAmeTIsIHNyY19pbWFnZS0+Yml0cy5oZWlnaHQpOyBzcmNfbGluZV90b3AgPSBzcmNf
Zmlyc3RfbGluZSArIHNyY19zdHJpZGUgKiB5MTsgc3JjX2xpbmVfYm90dG9tID0gc3JjX2ZpcnN0
X2xpbmUgKyBzcmNfc3RyaWRlICogeTI7IGlmIChuZWVkX3NyY19leHRlbnNpb24pIHsgZm9yIChp
PTA7IGk8c3JjX3dpZHRoOykgeyBmb3IgKGo9MDsgajxzcmNfaW1hZ2UtPmJpdHMud2lkdGg7IGor
KywgaSsrKSB7IGV4dGVuZGVkX3NyY19saW5lMFtpXSA9IHNyY19saW5lX3RvcFtqXTsgZXh0ZW5k
ZWRfc3JjX2xpbmUxW2ldID0gc3JjX2xpbmVfYm90dG9tW2pdOyB9IH0gc3JjX2xpbmVfdG9wID0g
JmV4dGVuZGVkX3NyY19saW5lMFswXTsgc3JjX2xpbmVfYm90dG9tID0gJmV4dGVuZGVkX3NyY19s
aW5lMVswXTsgfSBidWYxWzBdID0gc3JjX2xpbmVfdG9wW3NyY193aWR0aCAtIDFdOyBidWYxWzFd
ID0gc3JjX2xpbmVfdG9wWzBdOyBidWYyWzBdID0gc3JjX2xpbmVfYm90dG9tW3NyY193aWR0aCAt
IDFdOyBidWYyWzFdID0gc3JjX2xpbmVfYm90dG9tWzBdOyB3aWR0aF9yZW1haW4gPSB3aWR0aDsg
d2hpbGUgKHdpZHRoX3JlbWFpbiA+IDApIHsgcmVwZWF0IChQSVhNQU5fUkVQRUFUX05PUk1BTCwg
JnZ4LCBzcmNfd2lkdGhfZml4ZWQpOyBpZiAoKChpbnQpICgodngpID4+IDE2KSkgPT0gc3JjX3dp
ZHRoIC0gMSkgeyBudW1fcGl4ZWxzID0gKChzcmNfd2lkdGhfZml4ZWQgLSB2eCAtICgocGl4bWFu
X2ZpeGVkX3QpIDEpKSAvIHVuaXRfeCkgKyAxOyBpZiAobnVtX3BpeGVscyA+IHdpZHRoX3JlbWFp
bikgbnVtX3BpeGVscyA9IHdpZHRoX3JlbWFpbjsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21t
eF84ODg4XzhfODg4OF9PVkVSIChkc3QsIG1hc2ssIGJ1ZjEsIGJ1ZjIsIG51bV9waXhlbHMsIHdl
aWdodDEsIHdlaWdodDIsICgodngpICYgKCgoKHBpeG1hbl9maXhlZF90KSAoKDEpIDw8IDE2KSkp
IC0gKChwaXhtYW5fZml4ZWRfdCkgMSkpKSwgdW5pdF94LCBzcmNfd2lkdGhfZml4ZWQsIDApOyB3
aWR0aF9yZW1haW4gLT0gbnVtX3BpeGVsczsgdnggKz0gbnVtX3BpeGVscyAqIHVuaXRfeDsgZHN0
ICs9IG51bV9waXhlbHM7IGlmICgoMSA8PCAyKSAmICgxIDw8IDIpKSBtYXNrICs9IG51bV9waXhl
bHM7IHJlcGVhdCAoUElYTUFOX1JFUEVBVF9OT1JNQUwsICZ2eCwgc3JjX3dpZHRoX2ZpeGVkKTsg
fSBpZiAoKChpbnQpICgodngpID4+IDE2KSkgIT0gc3JjX3dpZHRoIC0gMSAmJiB3aWR0aF9yZW1h
aW4gPiAwKSB7IG51bV9waXhlbHMgPSAoKHNyY193aWR0aF9maXhlZCAtICgoKHBpeG1hbl9maXhl
ZF90KSAoKDEpIDw8IDE2KSkpIC0gdnggLSAoKHBpeG1hbl9maXhlZF90KSAxKSkgLyB1bml0X3gp
ICsgMTsgaWYgKG51bV9waXhlbHMgPiB3aWR0aF9yZW1haW4pIG51bV9waXhlbHMgPSB3aWR0aF9y
ZW1haW47IHNjYWxlZF9iaWxpbmVhcl9zY2FubGluZV9tbXhfODg4OF84Xzg4ODhfT1ZFUiAoZHN0
LCBtYXNrLCBzcmNfbGluZV90b3AsIHNyY19saW5lX2JvdHRvbSwgbnVtX3BpeGVscywgd2VpZ2h0
MSwgd2VpZ2h0MiwgdngsIHVuaXRfeCwgc3JjX3dpZHRoX2ZpeGVkLCAwKTsgd2lkdGhfcmVtYWlu
IC09IG51bV9waXhlbHM7IHZ4ICs9IG51bV9waXhlbHMgKiB1bml0X3g7IGRzdCArPSBudW1fcGl4
ZWxzOyBpZiAoKDEgPDwgMikgJiAoMSA8PCAyKSkgbWFzayArPSBudW1fcGl4ZWxzOyB9IH0gfSBl
bHNlIHsgc2NhbGVkX2JpbGluZWFyX3NjYW5saW5lX21teF84ODg4XzhfODg4OF9PVkVSIChkc3Qs
IG1hc2ssIHNyY19maXJzdF9saW5lICsgc3JjX3N0cmlkZSAqIHkxLCBzcmNfZmlyc3RfbGluZSAr
IHNyY19zdHJpZGUgKiB5Miwgd2lkdGgsIHdlaWdodDEsIHdlaWdodDIsIHZ4LCB1bml0X3gsIG1h
eF92eCwgMCk7IH0gfSB9CgoKCgpzdGF0aWMgdWludDMyX3QgKgptbXhfZmV0Y2hfeDhyOGc4Yjgg
KHBpeG1hbl9pdGVyX3QgKml0ZXIsIGNvbnN0IHVpbnQzMl90ICptYXNrKQp7CiAgICBpbnQgdyA9
IGl0ZXItPndpZHRoOwogICAgdWludDMyX3QgKmRzdCA9IGl0ZXItPmJ1ZmZlcjsKICAgIHVpbnQz
Ml90ICpzcmMgPSAodWludDMyX3QgKilpdGVyLT5iaXRzOwoKICAgIGl0ZXItPmJpdHMgKz0gaXRl
ci0+c3RyaWRlOwoKICAgIHdoaWxlICh3ICYmICgodWludHB0cl90KWRzdCkgJiA3KQogICAgewog
KmRzdCsrID0gKCpzcmMrKykgfCAweGZmMDAwMDAwOwogdy0tOwogICAgfQoKICAgIHdoaWxlICh3
ID49IDgpCiAgICB7CiBfX202NCB2c3JjMSA9IGxkcV91ICgoX19tNjQgKikoc3JjICsgMCkpOwog
X19tNjQgdnNyYzIgPSBsZHFfdSAoKF9fbTY0ICopKHNyYyArIDIpKTsKIF9fbTY0IHZzcmMzID0g
bGRxX3UgKChfX202NCAqKShzcmMgKyA0KSk7CiBfX202NCB2c3JjNCA9IGxkcV91ICgoX19tNjQg
Kikoc3JjICsgNikpOwoKICooX19tNjQgKikoZHN0ICsgMCkgPSBfbW1fb3Jfc2k2NCAodnNyYzEs
ICgoX19tNjQpYy5tbXhfZmYwMDAwMDApKTsKICooX19tNjQgKikoZHN0ICsgMikgPSBfbW1fb3Jf
c2k2NCAodnNyYzIsICgoX19tNjQpYy5tbXhfZmYwMDAwMDApKTsKICooX19tNjQgKikoZHN0ICsg
NCkgPSBfbW1fb3Jfc2k2NCAodnNyYzMsICgoX19tNjQpYy5tbXhfZmYwMDAwMDApKTsKICooX19t
NjQgKikoZHN0ICsgNikgPSBfbW1fb3Jfc2k2NCAodnNyYzQsICgoX19tNjQpYy5tbXhfZmYwMDAw
MDApKTsKCiBkc3QgKz0gODsKIHNyYyArPSA4OwogdyAtPSA4OwogICAgfQoKICAgIHdoaWxlICh3
KQogICAgewogKmRzdCsrID0gKCpzcmMrKykgfCAweGZmMDAwMDAwOwogdy0tOwogICAgfQoKICAg
IF9tbV9lbXB0eSAoKTsKICAgIHJldHVybiBpdGVyLT5idWZmZXI7Cn0KCnN0YXRpYyB1aW50MzJf
dCAqCm1teF9mZXRjaF9yNWc2YjUgKHBpeG1hbl9pdGVyX3QgKml0ZXIsIGNvbnN0IHVpbnQzMl90
ICptYXNrKQp7CiAgICBpbnQgdyA9IGl0ZXItPndpZHRoOwogICAgdWludDMyX3QgKmRzdCA9IGl0
ZXItPmJ1ZmZlcjsKICAgIHVpbnQxNl90ICpzcmMgPSAodWludDE2X3QgKilpdGVyLT5iaXRzOwoK
ICAgIGl0ZXItPmJpdHMgKz0gaXRlci0+c3RyaWRlOwoKICAgIHdoaWxlICh3ICYmICgodWludHB0
cl90KWRzdCkgJiAweDBmKQogICAgewogdWludDE2X3QgcyA9ICpzcmMrKzsKCiAqZHN0KysgPSBj
b252ZXJ0XzA1NjVfdG9fODg4OCAocyk7CiB3LS07CiAgICB9CgogICAgd2hpbGUgKHcgPj0gNCkK
ICAgIHsKIF9fbTY0IHZzcmMgPSBsZHFfdSAoKF9fbTY0ICopc3JjKTsKIF9fbTY0IG1tMCwgbW0x
OwoKIGV4cGFuZF80eHBhY2tlZDU2NSAodnNyYywgJm1tMCwgJm1tMSwgMSk7CgogKihfX202NCAq
KShkc3QgKyAwKSA9IG1tMDsKICooX19tNjQgKikoZHN0ICsgMikgPSBtbTE7CgogZHN0ICs9IDQ7
CiBzcmMgKz0gNDsKIHcgLT0gNDsKICAgIH0KCiAgICB3aGlsZSAodykKICAgIHsKIHVpbnQxNl90
IHMgPSAqc3JjKys7CgogKmRzdCsrID0gY29udmVydF8wNTY1X3RvXzg4ODggKHMpOwogdy0tOwog
ICAgfQoKICAgIF9tbV9lbXB0eSAoKTsKICAgIHJldHVybiBpdGVyLT5idWZmZXI7Cn0KCnN0YXRp
YyB1aW50MzJfdCAqCm1teF9mZXRjaF9hOCAocGl4bWFuX2l0ZXJfdCAqaXRlciwgY29uc3QgdWlu
dDMyX3QgKm1hc2spCnsKICAgIGludCB3ID0gaXRlci0+d2lkdGg7CiAgICB1aW50MzJfdCAqZHN0
ID0gaXRlci0+YnVmZmVyOwogICAgdWludDhfdCAqc3JjID0gaXRlci0+Yml0czsKCiAgICBpdGVy
LT5iaXRzICs9IGl0ZXItPnN0cmlkZTsKCiAgICB3aGlsZSAodyAmJiAoKCh1aW50cHRyX3QpZHN0
KSAmIDE1KSkKICAgIHsKICAgICAgICAqZHN0KysgPSAqKHNyYysrKSA8PCAyNDsKICAgICAgICB3
LS07CiAgICB9CgogICAgd2hpbGUgKHcgPj0gOCkKICAgIHsKIF9fbTY0IG1tMCA9IGxkcV91ICgo
X19tNjQgKilzcmMpOwoKIF9fbTY0IG1tMSA9IF9tbV91bnBhY2tsb19waTggKF9tbV9zZXR6ZXJv
X3NpNjQoKSwgbW0wKTsKIF9fbTY0IG1tMiA9IF9tbV91bnBhY2toaV9waTggKF9tbV9zZXR6ZXJv
X3NpNjQoKSwgbW0wKTsKIF9fbTY0IG1tMyA9IF9tbV91bnBhY2tsb19waTE2IChfbW1fc2V0emVy
b19zaTY0KCksIG1tMSk7CiBfX202NCBtbTQgPSBfbW1fdW5wYWNraGlfcGkxNiAoX21tX3NldHpl
cm9fc2k2NCgpLCBtbTEpOwogX19tNjQgbW01ID0gX21tX3VucGFja2xvX3BpMTYgKF9tbV9zZXR6
ZXJvX3NpNjQoKSwgbW0yKTsKIF9fbTY0IG1tNiA9IF9tbV91bnBhY2toaV9waTE2IChfbW1fc2V0
emVyb19zaTY0KCksIG1tMik7CgogKihfX202NCAqKShkc3QgKyAwKSA9IG1tMzsKICooX19tNjQg
KikoZHN0ICsgMikgPSBtbTQ7CiAqKF9fbTY0ICopKGRzdCArIDQpID0gbW01OwogKihfX202NCAq
KShkc3QgKyA2KSA9IG1tNjsKCiBkc3QgKz0gODsKIHNyYyArPSA4OwogdyAtPSA4OwogICAgfQoK
ICAgIHdoaWxlICh3KQogICAgewogKmRzdCsrID0gKihzcmMrKykgPDwgMjQ7CiB3LS07CiAgICB9
CgogICAgX21tX2VtcHR5ICgpOwogICAgcmV0dXJuIGl0ZXItPmJ1ZmZlcjsKfQoKCgoKCnN0YXRp
YyBjb25zdCBwaXhtYW5faXRlcl9pbmZvX3QgbW14X2l0ZXJzW10gPQp7CiAgICB7IFBJWE1BTl94
OHI4ZzhiOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAo
MSA8PCAwKSB8ICgxIDw8IDI1KSB8ICgxIDw8IDIzKSksIElURVJfTkFSUk9XLAogICAgICBfcGl4
bWFuX2l0ZXJfaW5pdF9iaXRzX3N0cmlkZSwgbW14X2ZldGNoX3g4cjhnOGI4LCAoKHZvaWQgKikw
KQogICAgfSwKICAgIHsgUElYTUFOX3I1ZzZiNSwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEg
PDwgMSkgfCAoMSA8PCA2KSkgfCAoMSA8PCAwKSB8ICgxIDw8IDI1KSB8ICgxIDw8IDIzKSksIElU
RVJfTkFSUk9XLAogICAgICBfcGl4bWFuX2l0ZXJfaW5pdF9iaXRzX3N0cmlkZSwgbW14X2ZldGNo
X3I1ZzZiNSwgKCh2b2lkICopMCkKICAgIH0sCiAgICB7IFBJWE1BTl9hOCwgKCgoMSA8PCAyKSB8
ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoMSA8PCAwKSB8ICgxIDw8IDI1KSB8
ICgxIDw8IDIzKSksIElURVJfTkFSUk9XLAogICAgICBfcGl4bWFuX2l0ZXJfaW5pdF9iaXRzX3N0
cmlkZSwgbW14X2ZldGNoX2E4LCAoKHZvaWQgKikwKQogICAgfSwKICAgIHsgKCgoMCkgPDwgMjQp
IHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpIH0sCn07CgpzdGF0aWMgY29uc3QgcGl4bWFuX2Zhc3RfcGF0aF90IG1teF9mYXN0X3Bh
dGhzW10gPQp7CiAgICB7IFBJWE1BTl9PUF9PVkVSLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKDEg
PDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkg
fCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEp
IHwgKDEgPDwgMCkpKSksIFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwg
KCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkg
fCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAo
MSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9yNWc2YjUsICgoMSA8
PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfbl84XzA1NjUg
fSwKICAgIHsgUElYTUFOX09QX09WRVIsICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8
ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9
PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8
PCAwKSkpKSwgUElYTUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8g
MCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElY
TUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDEx
KSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2I1ZzZyNSwgKCgxIDw8IDUpIHwg
KDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfb3Zlcl9uXzhfMDU2NSB9LAogICAg
eyBQSVhNQU5fT1BfT1ZFUiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDAp
IDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkp
LCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgo
KDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTgg
PT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEg
PDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfbl84Xzg4ODggfSwKICAgIHsgUElY
TUFOX09QX09WRVIsICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwg
KDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAy
NCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgUElY
TUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8
IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4ID09ICgo
KDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgw
KSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDAp
KSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8
ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX25fOF84ODg4IH0sCiAgICB7IFBJWE1BTl9P
UF9PVkVSLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwg
KCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksIFBJWE1BTl9h
OCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8
ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8
PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8
ICgxIDw8IDkpKSksIFBJWE1BTl9hOGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSksIG1teF9jb21wb3NpdGVfb3Zlcl9uXzhfODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZF
UiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8
ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkg
PyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCBQSVhNQU5fYTgsICgo
UElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8
PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8
PCA5KSkpLCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikp
LCBtbXhfY29tcG9zaXRlX292ZXJfbl84Xzg4ODggfSwKICAgIHsgUElYTUFOX09QX09WRVIsICgo
KDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgw
KSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6
ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgUElYTUFOX2E4cjhnOGI4LCAo
KFBJWE1BTl9hOHI4ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIp
IHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4cjhnOGI4ID09
ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8
IDApKSkpIHwgKDEgPDwgOCkpKSwgUElYTUFOX2E4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAx
KSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OF84ODg4X2NhIH0sCiAgICB7
IFBJWE1BTl9PUF9PVkVSLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKDEgPDwgMikgfCAoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSks
IFBJWE1BTl9hOHI4ZzhiOCwgKChQSVhNQU5fYThyOGc4YjggPT0gKCgoMCkgPDwgMjQpIHwgKCgw
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
KSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAo
KFBJWE1BTl9hOHI4ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykg
fCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDgpKSksIFBJWE1BTl94OHI4ZzhiOCwg
KCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfb3Zlcl9uXzg4
ODhfODg4OF9jYSB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAo
KCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwg
MjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8
IDExKSB8ICgxIDw8IDApKSkpLCBQSVhNQU5fYThyOGc4YjgsICgoUElYTUFOX2E4cjhnOGI4ID09
ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYThyOGc4YjggPT0gKCgoMCkgPDwgMjQpIHwgKCgx
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
KSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA4KSkp
LCBQSVhNQU5fcjVnNmI1LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2Nv
bXBvc2l0ZV9vdmVyX25fODg4OF8wNTY1X2NhIH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCAoKCgw
KSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSksICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwg
NikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAo
KDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksIFBJWE1BTl9hOGI4ZzhyOCwgKChQ
SVhNQU5fYThiOGc4cjggPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8
ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOGI4ZzhyOCA9PSAo
KCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAw
KSkpKSB8ICgxIDw8IDgpKSksIFBJWE1BTl9hOGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfb3Zlcl9uXzg4ODhfODg4OF9jYSB9LAogICAgeyBQ
SVhNQU5fT1BfT1ZFUiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkg
fCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8
IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCBQ
SVhNQU5fYThiOGc4cjgsICgoUElYTUFOX2E4YjhnOHI4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkg
PyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQ
SVhNQU5fYThiOGc4cjggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwg
KDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA4KSkpLCBQSVhNQU5feDhiOGc4cjgsICgo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfbl84ODg4
Xzg4ODhfY2EgfSwKICAgIHsgUElYTUFOX09QX09WRVIsICgoKDApIDw8IDI0KSB8ICgoMSkgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgo
MSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0
KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8
ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgw
KSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAx
MSkgfCAoMSA8PCAwKSkpKSwgUElYTUFOX2E4YjhnOHI4LCAoKFBJWE1BTl9hOGI4ZzhyOCA9PSAo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAx
KSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4YjhnOHI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkg
PyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOCkpKSwg
UElYTUFOX2I1ZzZyNSwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21w
b3NpdGVfb3Zlcl9uXzg4ODhfMDU2NV9jYSB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgKCgoMCkg
PDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYp
KSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwg
OCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgx
IDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDIpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgo
KCgoMCkgPDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAo
KDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwg
MikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAo
KDIpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwg
OCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwg
KDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCA1KSB8ICgx
IDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfcGl4YnVmXzg4ODggfSwKICAg
IHsgUElYTUFOX09QX09WRVIsICgoKDApIDw8IDI0KSB8ICgoMikgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8ICgxIDw8
IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMikgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgw
KSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkp
KSwgKCgoMCkgPDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMikgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAy
NCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8
IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgyKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDog
KCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFO
X3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0
ZV9vdmVyX3BpeGJ1Zl84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCAoKCgwKSA8PCAyNCkg
fCAoKDIpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSksICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgo
KCgwKSA8PCAyNCkgfCAoKDIpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMp
IHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0KSB8ICgoMikgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8
PCAyNCkgfCAoKDIpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMikgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAo
KCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAw
KSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9yNWc2YjUsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwg
KDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfcGl4YnVmXzA1NjUgfSwKICAgIHsgUElYTUFO
X09QX09WRVIsICgoKDApIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEg
PDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkg
fCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkg
PDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDAp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkp
ID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgo
KCgoMCkgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAo
KDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIz
KSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4YjhnOHI4
LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX3Bp
eGJ1Zl84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCAoKCgwKSA8PCAyNCkgfCAoKDMpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgo
KDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAy
NCkgfCAoKDMpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwg
MTEpIHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAo
KDMpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwg
OCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwg
KDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMykgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAy
NCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgx
IDw8IDkpKSksIFBJWE1BTl94OGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2
KSksIG1teF9jb21wb3NpdGVfb3Zlcl9waXhidWZfODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZF
UiwgKCgoMCkgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8
ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkg
PyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkg
fCAoKDMpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgzKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDog
KCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8
PCAyNCkgfCAoKDMpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEg
PDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYjVnNnI1LCAoKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX3BpeGJ1Zl8wNTY1
IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5feDhyOGc4YjgsICgoKDEgPDwgMikgfCAo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5feDhyOGc4YjggPT0gKCgo
MCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkp
KSksICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgo
MCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwg
MjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6
ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1B
Tl9hOHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3Np
dGVfb3Zlcl94ODg4X25fODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX3g4cjhn
OGI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElY
TUFOX3g4cjhnOGI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgx
IDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkg
fCAoMSA8PCA5KSkpLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEg
PDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfeDg4OF9uXzg4ODggfSwKICAgIHsgUElYTUFOX09Q
X09WRVIsIFBJWE1BTl94OGI4ZzhyOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSkgfCAoKFBJWE1BTl94OGI4ZzhyOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8g
MCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwg
KCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgo
KCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwg
MjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8
IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4YjhnOHI4LCAoKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfbl84ODg4
IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5feDhiOGc4cjgsICgoKDEgPDwgMikgfCAo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5feDhiOGc4cjggPT0gKCgo
MCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkp
KSksICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgo
MCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwg
MjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6
ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1B
Tl94OGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3Np
dGVfb3Zlcl94ODg4X25fODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhn
OGI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElY
TUFOX2E4cjhnOGI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgx
IDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkg
fCAoMSA8PCA5KSkpLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEg
PDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfODg4OF9uXzg4ODggfSwKICAgIHsgUElYTUFOX09Q
X09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOHI4ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8g
MCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwg
KCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgo
KCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwg
MjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8
IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyXzg4ODhfbl84ODg4
IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMikgfCAo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYThiOGc4cjggPT0gKCgo
MCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkp
KSksICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgo
MCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwg
MjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6
ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1B
Tl9hOGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3Np
dGVfb3Zlcl84ODg4X25fODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4Yjhn
OHI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElY
TUFOX2E4YjhnOHI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgx
IDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkg
fCAoMSA8PCA5KSkpLCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEg
PDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfODg4OF9uXzg4ODggfSwKICAgIHsgUElYTUFOX09Q
X09WRVIsIFBJWE1BTl94OHI4ZzhiOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSkgfCAoKFBJWE1BTl94OHI4ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8g
MCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgUElYTUFOX2E4LCAoKFBJ
WE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgw
KSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwg
OSkpKSwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwg
bW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhfOF84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCBQ
SVhNQU5feDhyOGc4YjgsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwg
NikpIHwgKChQSVhNQU5feDhyOGc4YjggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEg
PDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksIFBJWE1BTl9hOCwgKChQSVhNQU5fYTgg
PT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEg
PDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8g
MCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJ
WE1BTl9hOHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21w
b3NpdGVfb3Zlcl94ODg4XzhfODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX3g4
YjhnOHI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgo
UElYTUFOX3g4YjhnOHI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8
ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09ICgoKDAp
IDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwg
KDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEg
PDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5feDhi
OGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292
ZXJfeDg4OF84Xzg4ODggfSwKICAgIHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl94OGI4ZzhyOCwg
KCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl94
OGI4ZzhyOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgw
KSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAx
MSkgfCAoMSA8PCAwKSkpKSwgUElYTUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkg
fCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYp
KSB8ICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8
ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4YjhnOHI4LCAo
KDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX3g4ODhf
OF84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKDEg
PDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkg
fCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEp
IHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDAp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkg
PT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEg
PDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkg
fCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAo
KDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8
IDkpKSksIFBJWE1BTl9hOHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSks
IG1teF9jb21wb3NpdGVfb3Zlcl9uXzg4ODggfSwKICAgIHsgUElYTUFOX09QX09WRVIsICgoKDAp
IDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2
KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgo
MSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAo
KCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8
IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwg
KCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8
ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAo
MSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyX25fODg4OCB9LAogICAgeyBQ
SVhNQU5fT1BfT1ZFUiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkg
fCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8
IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8
ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikp
IHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4
KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEg
PDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fcjVn
NmI1LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVy
X25fMDU2NSB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAx
NikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgx
IDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDEx
KSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgw
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgx
IDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8
PCA5KSkpLCBQSVhNQU5fYjVnNnI1LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwg
bW14X2NvbXBvc2l0ZV9vdmVyX25fMDU2NSB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFO
X3g4cjhnOGI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8
ICgoUElYTUFOX3g4cjhnOGI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIz
KSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkg
PDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0g
KCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAo
KDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwg
MCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEp
IHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSB9LAogICAgeyBQSVhNQU5fT1Bf
T1ZFUiwgUElYTUFOX3g4YjhnOHI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8
ICgxIDw8IDYpKSB8ICgoUElYTUFOX3g4YjhnOHI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAw
IDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAo
KDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwg
OCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgo
KDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAy
NCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwg
MTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSB9LAoKICAg
IHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUp
IHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOHI4ZzhiOCA9PSAoKCgwKSA8PCAy
NCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgo
MCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAo
KDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8
ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8
IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4cjhn
OGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVy
Xzg4ODhfODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhnOGI4LCAoKCgx
IDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4cjhn
OGI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8
ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09
ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwg
KCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5
KSkpLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBt
bXhfY29tcG9zaXRlX292ZXJfODg4OF84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCBQSVhN
QU5fYThyOGc4YjgsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikp
IHwgKChQSVhNQU5fYThyOGc4YjggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwg
MjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgw
KSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8
ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMCkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9
PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8
PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9yNWc2YjUsICgoMSA8PCA1KSB8ICgxIDw8IDEp
IHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfODg4OF8wNTY1IH0sCiAgICB7IFBJWE1B
Tl9PUF9PVkVSLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYThiOGc4cjggPT0gKCgoMCkgPDwgMjQpIHwgKCgx
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
KSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0
KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8
ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgw
KSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAx
NikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAg
OiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDAp
IDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAo
MSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9hOGI4ZzhyOCwgKCgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfb3Zlcl84ODg4Xzg4
ODggfSwKICAgIHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9hOGI4ZzhyOCwgKCgoMSA8PCAyKSB8
ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOGI4ZzhyOCA9PSAo
KCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAw
KSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwg
OCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8
PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgx
IDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAw
IDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElY
TUFOX3g4YjhnOHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBv
c2l0ZV9vdmVyXzg4ODhfODg4OCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4Yjhn
OHI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElY
TUFOX2E4YjhnOHI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgx
IDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQp
IHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkg
fCAoMSA8PCA5KSkpLCBQSVhNQU5fYjVnNnI1LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8
IDYpKSwgbW14X2NvbXBvc2l0ZV9vdmVyXzg4ODhfMDU2NSB9LAoKICAgIHsgUElYTUFOX09QX09W
RVJfUkVWRVJTRSwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAo
MSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0
KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8
ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgw
KSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgo
MCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkp
KSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwg
KCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwg
MjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThyOGc4
YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJf
cmV2ZXJzZV9uXzg4ODggfSwKICAgIHsgUElYTUFOX09QX09WRVJfUkVWRVJTRSwgKCgoMCkgPDwg
MjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8
ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8
IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgo
MCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikg
fCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDAp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkg
PT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEg
PDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX292ZXJfcmV2ZXJzZV9uXzg4ODggfSwKCiAg
ICB7IFBJWE1BTl9PUF9BREQsIFBJWE1BTl9yNWc2YjUsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8
ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fcjVnNmI1ID09ICgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8
PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkg
PyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMp
IHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fcjVnNmI1LCAo
KDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9hZGRfMDU2NV8w
NTY1IH0sCiAgICB7IFBJWE1BTl9PUF9BREQsIFBJWE1BTl9iNWc2cjUsICgoKDEgPDwgMikgfCAo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYjVnNnI1ID09ICgoKDAp
IDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkp
LCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0
KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8
ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwg
NikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAo
KDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5f
YjVnNnI1LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9h
ZGRfMDU2NV8wNTY1IH0sCiAgICB7IFBJWE1BTl9PUF9BREQsIFBJWE1BTl9hOHI4ZzhiOCwgKCgo
MSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOHI4
ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkg
fCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMCkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9
PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8
PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwg
OSkpKSwgUElYTUFOX2E4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwg
bW14X2NvbXBvc2l0ZV9hZGRfODg4OF84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9BREQsIFBJWE1B
Tl9hOGI4ZzhyOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkg
fCAoKFBJWE1BTl9hOGI4ZzhyOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAy
MykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDAp
IDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwg
KDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09
ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8
IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4YjhnOHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAx
KSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9hZGRfODg4OF84ODg4IH0sCiAgICB7IFBJWE1B
Tl9PUF9BREQsIFBJWE1BTl9hOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAo
MSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgo
MCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8
PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAx
NikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgo
KDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgw
KSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIp
IHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgw
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgx
IDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8
ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9hZGRfOF84IH0sCiAgICB7IFBJWE1BTl9PUF9BREQs
ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAo
MSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8g
MCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgUElYTUFOX2E4LCAoKFBJ
WE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgw
KSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwg
OSkpKSwgUElYTUFOX2E4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2Nv
bXBvc2l0ZV9hZGRfbl84XzggfSwKCiAgICB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9hOHI4Zzhi
OCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1B
Tl9hOHI4ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8
PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8
ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkg
fCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8
IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwg
KDEgPDwgOSkpKSwgUElYTUFOX3I1ZzZiNSwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2
KSksIG1teF9jb21wb3NpdGVfc3JjX3g4ODhfMDU2NSB9LAogICAgeyBQSVhNQU5fT1BfU1JDLCBQ
SVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwg
NikpIHwgKChQSVhNQU5fYThiOGc4cjggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEg
PDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAy
KSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgo
MCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkp
KSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4
KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAo
MSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9iNWc2cjUsICgoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX3NyY194ODg4XzA1NjUgfSwKICAgIHsgUElY
TUFOX09QX1NSQywgUElYTUFOX3g4cjhnOGI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8
PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX3g4cjhnOGI4ID09ICgoKDApIDw8IDI0KSB8ICgo
MSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkp
KSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAy
NCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAw
IDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgw
KSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwg
KDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fcjVnNmI1LCAoKDEg
PDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9zcmNfeDg4OF8wNTY1
IH0sCiAgICB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl94OGI4ZzhyOCwgKCgoMSA8PCAyKSB8ICgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl94OGI4ZzhyOCA9PSAoKCgw
KSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkp
KSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAy
NCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkg
fCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8
IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDog
KCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFO
X2I1ZzZyNSwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVf
c3JjX3g4ODhfMDU2NSB9LAogICAgeyBQSVhNQU5fT1BfU1JDLCAoKCgwKSA8PCAyNCkgfCAoKDEp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSks
ICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8
PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEg
PDwgMTEpIHwgKDEgPDwgMCkpKSksIFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwg
MjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAy
MykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9hOHI4Zzhi
OCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfc3JjX25f
OF84ODg4IH0sCiAgICB7IFBJWE1BTl9PUF9TUkMsICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoMSA8
PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkg
fCAoMSA8PCAwKSkpKSwgUElYTUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAo
KDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8
ICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgx
IDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX3g4cjhnOGI4LCAoKDEg
PDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9zcmNfbl84Xzg4ODgg
fSwKICAgIHsgUElYTUFOX09QX1NSQywgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwg
KDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09
ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8
IDApKSkpLCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwg
MTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAw
IDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhN
QU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEp
IHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThiOGc4cjgsICgoMSA8PCA1KSB8
ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX3NyY19uXzhfODg4OCB9LAogICAg
eyBQSVhNQU5fT1BfU1JDLCAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKDEgPDwgMikgfCAoMSA8PCA1
KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSks
IFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgo
MSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9
PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8
PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl94OGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwg
MSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfc3JjX25fOF84ODg4IH0sCiAgICB7IFBJWE1B
Tl9PUF9TUkMsIFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwg
MSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOHI4ZzhiOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkp
ID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQp
IHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6
ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkg
PDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgx
IDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4cjhnOGI4LCAoKDEg
PDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9jb3B5X2FyZWEgfSwK
ICAgIHsgUElYTUFOX09QX1NSQywgUElYTUFOX2E4YjhnOHI4LCAoKCgxIDw8IDIpIHwgKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4YjhnOHI4ID09ICgoKDApIDw8
IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8
ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikp
IHwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4
KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEg
PDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThi
OGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX2Nv
cHlfYXJlYSB9LAogICAgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5fYThyOGc4YjgsICgoKDEgPDwg
MikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYThyOGc4Yjgg
PT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEg
PDwgMCkpKSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgo
MCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikg
fCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkp
ID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSks
IFBJWE1BTl94OHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9j
b21wb3NpdGVfY29weV9hcmVhIH0sCiAgICB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9hOGI4Zzhy
OCwgKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1B
Tl9hOGI4ZzhyOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8
PCAxMSkgfCAoMSA8PCAwKSkpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgoKDApIDw8IDI0KSB8
ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkg
fCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8
IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwg
KDEgPDwgOSkpKSwgUElYTUFOX3g4YjhnOHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8
IDYpKSwgbW14X2NvbXBvc2l0ZV9jb3B5X2FyZWEgfSwKICAgIHsgUElYTUFOX09QX1NSQywgUElY
TUFOX3g4cjhnOGI4LCAoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYp
KSB8ICgoUElYTUFOX3g4cjhnOGI4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8
IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksICgoKCgo
MCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikg
fCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgoKCgwKSA8PCAyNCkgfCAoKDAp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkg
PT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEg
PDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX2NvcHlfYXJlYSB9LAogICAgeyBQSVhNQU5f
T1BfU1JDLCBQSVhNQU5feDhiOGc4cjgsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEp
IHwgKDEgPDwgNikpIHwgKChQSVhNQU5feDhiOGc4cjggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/
IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgoKDApIDw8IDI0KSB8
ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8
PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAo
KCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKCgoKDApIDw8
IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8
PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl94OGI4ZzhyOCwgKCgxIDw8
IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfY29weV9hcmVhIH0sCiAg
ICB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9yNWc2YjUsICgoKDEgPDwgMikgfCAoMSA8PCA1KSB8
ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fcjVnNmI1ID09ICgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpLCAoKCgwKSA8
PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwg
NCkgfCAoKDApKSksICgoKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDApIDw8IDI0KSB8ICgoMCkg
PDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkg
PyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKCgo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMp
IHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fcjVnNmI1LCAo
KDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgbW14X2NvbXBvc2l0ZV9jb3B5X2FyZWEg
fSwKICAgIHsgUElYTUFOX09QX1NSQywgUElYTUFOX2I1ZzZyNSwgKCgoMSA8PCAyKSB8ICgxIDw8
IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9iNWc2cjUgPT0gKCgoMCkgPDwg
MjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgo
KDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgw
KSA8PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwg
KCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkg
fCAoKCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgo
MCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8
PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9iNWc2
cjUsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX2NvcHlf
YXJlYSB9LAoKICAgIHsgUElYTUFOX09QX0lOLCBQSVhNQU5fYTgsICgoKDEgPDwgMikgfCAoMSA8
PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQp
IHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwg
KCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSksICgoKDAp
IDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSwgKCgoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkgPT0gKCgoMCkgPDwgMjQpIHwgKCgw
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
KSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAo
KCgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAy
MykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9hOCwgKCgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIG1teF9jb21wb3NpdGVfaW5fOF84IH0sCiAg
ICB7IFBJWE1BTl9PUF9JTiwgKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEy
KSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAoKCgxIDw8IDIpIHwgKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpID09ICgoKDAp
IDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8
PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkp
LCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgo
KDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTgg
PT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEg
PDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYTgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwg
KDEgPDwgNikpLCBtbXhfY29tcG9zaXRlX2luX25fOF84IH0sCgogICAgeyBQSVhNQU5fT1BfU1JD
LCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgx
IDw8IDUpIHwgKDEgPDwgNikpIHwgKDEgPDwgMjQpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJ
WE1BTl9hOHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29t
cG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4X2NvdmVyX1NSQywgfSwgeyBQSVhN
QU5fT1BfU1JDLCBQSVhNQU5fYThyOGc4YjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8
PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNCkgfCAoMSA8PCAzKSB8ICgx
IDw8IDQpKSB8ICgxIDw8IDE2KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX2E4cjhn
OGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2Nh
bGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfbm9uZV9TUkMsIH0sIHsgUElYTUFOX09QX1NSQywg
UElYTUFOX2E4cjhnOGI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEg
PDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwg
KDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8
PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5l
YXJfbW14Xzg4ODhfODg4OF9wYWRfU1JDLCB9LCB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9hOHI4
ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEg
PDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwg
KCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAo
KDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhf
ODg4OF9ub3JtYWxfU1JDLCB9LAogICAgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5fYThyOGc4Yjgs
ICgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikp
IHwgKDEgPDwgMjQpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl94OHI4ZzhiOCwgKCgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxp
bmVhcl9tbXhfODg4OF84ODg4X2NvdmVyX1NSQywgfSwgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5f
YThyOGc4YjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8
ICgxIDw8IDYpKSB8ICgoMSA8PCAxNCkgfCAoMSA8PCAzKSB8ICgxIDw8IDQpKSB8ICgxIDw8IDE2
KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAo
MSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84
ODg4Xzg4ODhfbm9uZV9TUkMsIH0sIHsgUElYTUFOX09QX1NSQywgUElYTUFOX2E4cjhnOGI4LCAo
KCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkg
fCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkg
PDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwg
KDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9w
YWRfU1JDLCB9LCB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAxMCkg
fCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE1
KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgw
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
LCAwLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBm
YXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9ub3JtYWxfU1JDLCB9
LAogICAgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCAxMCkgfCAoMSA8
PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKDEgPDwgMjQpLCAoKCgw
KSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkg
PDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl94OHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4
X2NvdmVyX1NSQywgfSwgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5feDhyOGc4YjgsICgoKDEgPDwg
MTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8
PCAxNCkgfCAoMSA8PCAzKSB8ICgxIDw8IDQpKSB8ICgxIDw8IDE2KSksICgoKDApIDw8IDI0KSB8
ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSwgMCwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYp
KSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfbm9uZV9TUkMs
IH0sIHsgUElYTUFOX09QX1NSQywgUElYTUFOX3g4cjhnOGI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8
IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEg
PDwgMTQpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAx
NikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQ
SVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2Nv
bXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9wYWRfU1JDLCB9LCB7IFBJWE1B
Tl9PUF9TUkMsIFBJWE1BTl94OHI4ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8
IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDMpIHwgKDEg
PDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5feDhyOGc4
YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2Fs
ZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9ub3JtYWxfU1JDLCB9LAogICAgeyBQSVhNQU5fT1Bf
U1JDLCBQSVhNQU5fYThiOGc4cjgsICgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8
ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKDEgPDwgMjQpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8
IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAs
IFBJWE1BTl9hOGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3Rf
Y29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4X2NvdmVyX1NSQywgfSwgeyBQ
SVhNQU5fT1BfU1JDLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAo
MSA8PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNCkgfCAoMSA8PCAzKSB8
ICgxIDw8IDQpKSB8ICgxIDw8IDE2KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgw
KSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX2E4
YjhnOHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVf
c2NhbGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfbm9uZV9TUkMsIH0sIHsgUElYTUFOX09QX1NS
QywgUElYTUFOX2E4YjhnOHI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwg
KDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkp
IHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8
ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThiOGc4cjgsICgo
MSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmls
aW5lYXJfbW14Xzg4ODhfODg4OF9wYWRfU1JDLCB9LCB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9h
OGI4ZzhyOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwg
KDEgPDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYp
KSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThiOGc4cjgsICgoMSA8PCA1KSB8ICgx
IDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4
ODhfODg4OF9ub3JtYWxfU1JDLCB9LAogICAgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5fYThiOGc4
cjgsICgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwg
NikpIHwgKDEgPDwgMjQpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl94OGI4ZzhyOCwg
KCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9i
aWxpbmVhcl9tbXhfODg4OF84ODg4X2NvdmVyX1NSQywgfSwgeyBQSVhNQU5fT1BfU1JDLCBQSVhN
QU5fYThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1
KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNCkgfCAoMSA8PCAzKSB8ICgxIDw8IDQpKSB8ICgxIDw8
IDE2KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX3g4YjhnOHI4LCAoKDEgPDwgNSkg
fCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21t
eF84ODg4Xzg4ODhfbm9uZV9TUkMsIH0sIHsgUElYTUFOX09QX1NSQywgUElYTUFOX2E4YjhnOHI4
LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2
KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgo
MCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEp
IHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4
OF9wYWRfU1JDLCB9LCB7IFBJWE1BTl9PUF9TUkMsIFBJWE1BTl9hOGI4ZzhyOCwgKCgoMSA8PCAx
MCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8
IDE1KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwg
KCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgw
KSkpLCAwLCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikp
LCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9ub3JtYWxfU1JD
LCB9LAogICAgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCAxMCkgfCAo
MSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKDEgPDwgMjQpLCAo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl94OGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwg
MSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84
ODg4X2NvdmVyX1NSQywgfSwgeyBQSVhNQU5fT1BfU1JDLCBQSVhNQU5feDhiOGc4cjgsICgoKDEg
PDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgo
MSA8PCAxNCkgfCAoMSA8PCAzKSB8ICgxIDw8IDQpKSB8ICgxIDw8IDE2KSksICgoKDApIDw8IDI0
KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8
ICgoMCkpKSwgMCwgUElYTUFOX3g4YjhnOHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8
IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfbm9uZV9T
UkMsIH0sIHsgUElYTUFOX09QX1NSQywgUElYTUFOX3g4YjhnOHI4LCAoKCgxIDw8IDEwKSB8ICgx
IDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwg
KDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8
PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAw
LCBQSVhNQU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0
X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9wYWRfU1JDLCB9LCB7IFBJ
WE1BTl9PUF9TUkMsIFBJWE1BTl94OGI4ZzhyOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgx
IDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDMpIHwg
KDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5feDhi
OGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9z
Y2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9ub3JtYWxfU1JDLCB9LAoKICAgIHsgUElYTUFO
X09QX09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwgKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwg
MTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoMSA8PCAyNCksICgoKDApIDw8IDI0KSB8ICgo
MCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkp
KSwgMCwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwg
ZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfY292ZXJfT1ZFUiwg
fSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhnOGI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8
IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTQpIHwgKDEg
PDwgMykgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2
KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJ
WE1BTl94OHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29t
cG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4X25vbmVfT1ZFUiwgfSwgeyBQSVhN
QU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhnOGI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEg
PDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwg
KDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDAp
IDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5feDhy
OGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9z
Y2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9wYWRfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZF
UiwgUElYTUFOX2E4cjhnOGI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwg
KDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMykgfCAoMSA8PCA0KSkg
fCAoMSA8PCAxNikpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl94OHI4ZzhiOCwgKCgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxp
bmVhcl9tbXhfODg4OF84ODg4X25vcm1hbF9PVkVSLCB9LAogICAgeyBQSVhNQU5fT1BfT1ZFUiwg
UElYTUFOX2E4YjhnOHI4LCAoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8
PCA1KSB8ICgxIDw8IDYpKSB8ICgxIDw8IDI0KSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikg
fCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhN
QU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBv
c2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9jb3Zlcl9PVkVSLCB9LCB7IFBJWE1B
Tl9PUF9PVkVSLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8
PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNCkgfCAoMSA8PCAzKSB8ICgx
IDw8IDQpKSB8ICgxIDw8IDE2KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8
PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX3g4Yjhn
OHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2Nh
bGVkX2JpbGluZWFyX21teF84ODg4Xzg4ODhfbm9uZV9PVkVSLCB9LCB7IFBJWE1BTl9PUF9PVkVS
LCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAo
MSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNSkgfCAoMSA8PCAxNCkgfCAoMSA8PCA0KSkg
fCAoMSA8PCAxNikpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwg
KCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl94OGI4ZzhyOCwgKCgx
IDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxp
bmVhcl9tbXhfODg4OF84ODg4X3BhZF9PVkVSLCB9LCB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5f
YThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8
ICgxIDw8IDYpKSB8ICgoMSA8PCAxNSkgfCAoMSA8PCAzKSB8ICgxIDw8IDQpKSB8ICgxIDw8IDE2
KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX3g4YjhnOHI4LCAoKDEgPDwgNSkgfCAo
MSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84
ODg4Xzg4ODhfbm9ybWFsX09WRVIsIH0sCiAgICB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5fYThy
OGc4YjgsICgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEg
PDwgNikpIHwgKDEgPDwgMjQpLCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwg
MTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl9hOHI4Zzhi
OCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxl
ZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4X2NvdmVyX09WRVIsIH0sIHsgUElYTUFOX09QX09WRVIs
IFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgx
IDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE0KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwg
KDEgPDwgMTYpKSwgKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgo
MCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8
PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5l
YXJfbW14Xzg4ODhfODg4OF9ub25lX09WRVIsIH0sIHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9h
OHI4ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwg
KDEgPDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDE0KSB8ICgxIDw8IDQpKSB8ICgxIDw8IDE2
KSksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgp
IHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX2E4cjhnOGI4LCAoKDEgPDwgNSkgfCAo
MSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84
ODg4Xzg4ODhfcGFkX09WRVIsIH0sIHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwg
KCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikp
IHwgKCgxIDw8IDE1KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkg
PDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwg
KDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9u
b3JtYWxfT1ZFUiwgfSwKICAgIHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9hOGI4ZzhyOCwgKCgx
IDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAo
MSA8PCAyNCksICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDAp
IDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSwgMCwgUElYTUFOX2E4YjhnOHI4LCAoKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFy
X21teF84ODg4Xzg4ODhfY292ZXJfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4
YjhnOHI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAo
MSA8PCA2KSkgfCAoKDEgPDwgMTQpIHwgKDEgPDwgMykgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikp
LCAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSksIDAsIFBJWE1BTl9hOGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEg
PDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4
OF84ODg4X25vbmVfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4YjhnOHI4LCAo
KCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkg
fCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgKCgoMCkg
PDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpLCAwLCBQSVhNQU5fYThiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwg
KDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfODg4OF9w
YWRfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4YjhnOHI4LCAoKCgxIDw8IDEw
KSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwg
MTUpIHwgKDEgPDwgMykgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikpLCAoKCgwKSA8PCAyNCkgfCAo
KDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSksIDAsIFBJWE1BTl9hOGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSks
IGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84ODg4X25vcm1hbF9PVkVS
LCB9LAoKICAgIHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwgKCgxIDw8IDEwKSB8
ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoMSA8PCAyNCks
IFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAo
KDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgo
MSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9
PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8
ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8
PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl94OHI4ZzhiOCwgKCgxIDw8IDUpIHwgKDEgPDwg
MSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84
Xzg4ODhfY292ZXJfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhnOGI4LCAo
KCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkg
fCAoKDEgPDwgMTQpIHwgKDEgPDwgMykgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikpLCBQSVhNQU5f
YTgsICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAx
MikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikg
fCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkg
PDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8
IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkg
fCAoMSA8PCA5KSkpLCBQSVhNQU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEg
PDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfOF84ODg4X25v
bmVfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhnOGI4LCAoKCgxIDw8IDEw
KSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwg
MTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgUElYTUFOX2E4LCAoKFBJ
WE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgw
KSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8
ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgo
MCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwg
OSkpKSwgUElYTUFOX3g4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwg
ZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4XzhfODg4OF9wYWRfT1ZFUiwg
fSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4cjhnOGI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8
IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEg
PDwgMykgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikpLCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09
ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAx
NikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAg
OiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhN
QU5feDhyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBv
c2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfOF84ODg4X25vcm1hbF9PVkVSLCB9LAogICAg
eyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4YjhnOHI4LCAoKDEgPDwgMTApIHwgKDEgPDwgMSkg
fCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgxIDw8IDI0KSwgUElYTUFOX2E4
LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIp
IHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwg
KDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4ID09ICgoKDApIDw8
IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0
KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwg
KDEgPDwgOSkpKSwgUElYTUFOX3g4YjhnOHI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8
IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4XzhfODg4OF9jb3Zl
cl9PVkVSLCB9LCB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMTAp
IHwgKDEgPDwgMSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAx
NCkgfCAoMSA8PCAzKSB8ICgxIDw8IDQpKSB8ICgxIDw8IDE2KSksIFBJWE1BTl9hOCwgKChQSVhN
QU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkg
PDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUp
IHwgKDEgPDwgMSkgfCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAo
KDEpIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDAp
KSkpID8gMCA6ICgoMSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkp
KSksIFBJWE1BTl94OGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZh
c3RfY29tcG9zaXRlX3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84Xzg4ODhfbm9uZV9PVkVSLCB9
LCB7IFBJWE1BTl9PUF9PVkVSLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwg
MSkgfCAoMSA8PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNSkgfCAoMSA8
PCAxNCkgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikpLCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09
ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwg
KCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAx
NikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAg
OiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhN
QU5feDhiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBv
c2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfOF84ODg4X3BhZF9PVkVSLCB9LCB7IFBJWE1B
Tl9PUF9PVkVSLCBQSVhNQU5fYThiOGc4cjgsICgoKDEgPDwgMTApIHwgKDEgPDwgMSkgfCAoMSA8
PCAxOSkgfCAoMSA8PCA1KSB8ICgxIDw8IDYpKSB8ICgoMSA8PCAxNSkgfCAoMSA8PCAzKSB8ICgx
IDw8IDQpKSB8ICgxIDw8IDE2KSksIFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwg
MjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAy
MykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl94OGI4Zzhy
OCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxl
ZF9iaWxpbmVhcl9tbXhfODg4OF84Xzg4ODhfbm9ybWFsX09WRVIsIH0sCiAgICB7IFBJWE1BTl9P
UF9PVkVSLCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5
KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKDEgPDwgMjQpLCBQSVhNQU5fYTgsICgoUElYTUFO
X2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8
IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8
ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgx
KSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkp
KSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkp
LCBQSVhNQU5fYThyOGc4YjgsICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0
X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhfOF84ODg4X2NvdmVyX09WRVIsIH0s
IHsgUElYTUFOX09QX09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAx
KSB8ICgxIDw8IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE0KSB8ICgxIDw8
IDMpIHwgKDEgPDwgNCkpIHwgKDEgPDwgMTYpKSwgUElYTUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAo
KCgwKSA8PCAyNCkgfCAoKDApIDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgo
MCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAx
KSB8ICgxIDw8IDYpKSB8ICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYp
IHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDog
KCgxIDw8IDIzKSB8ICgxIDw8IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFO
X2E4cjhnOGI4LCAoKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3Np
dGVfc2NhbGVkX2JpbGluZWFyX21teF84ODg4XzhfODg4OF9ub25lX09WRVIsIH0sIHsgUElYTUFO
X09QX09WRVIsIFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8
IDE5KSB8ICgxIDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDE0KSB8ICgx
IDw8IDQpKSB8ICgxIDw8IDE2KSksIFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwg
MjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQp
IHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8
PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8ICgoMCkg
PDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgoMSA8PCAy
MykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9hOHI4Zzhi
OCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRlX3NjYWxl
ZF9iaWxpbmVhcl9tbXhfODg4OF84Xzg4ODhfcGFkX09WRVIsIH0sIHsgUElYTUFOX09QX09WRVIs
IFBJWE1BTl9hOHI4ZzhiOCwgKCgoMSA8PCAxMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDE5KSB8ICgx
IDw8IDUpIHwgKDEgPDwgNikpIHwgKCgxIDw8IDE1KSB8ICgxIDw8IDMpIHwgKDEgPDwgNCkpIHwg
KDEgPDwgMTYpKSwgUElYTUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDAp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkp
ID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgo
UElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8
IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4cjhnOGI4LCAoKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFy
X21teF84ODg4XzhfODg4OF9ub3JtYWxfT1ZFUiwgfSwKICAgIHsgUElYTUFOX09QX09WRVIsIFBJ
WE1BTl9hOGI4ZzhyOCwgKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwg
NSkgfCAoMSA8PCA2KSkgfCAoMSA8PCAyNCksIFBJWE1BTl9hOCwgKChQSVhNQU5fYTggPT0gKCgo
MCkgPDwgMjQpIHwgKCgwKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDAp
IDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKCgoMSA8PCAyKSB8ICgxIDw8IDUpIHwgKDEgPDwgMSkg
fCAoMSA8PCA2KSkgfCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDEpIDw8IDE2KSB8
ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkpID8gMCA6ICgo
MSA8PCAyMykgfCAoMSA8PCAxMSkgfCAoMSA8PCAwKSkpKSB8ICgxIDw8IDkpKSksIFBJWE1BTl9h
OGI4ZzhyOCwgKCgxIDw8IDUpIHwgKDEgPDwgMSkgfCAoMSA8PCA2KSksIGZhc3RfY29tcG9zaXRl
X3NjYWxlZF9iaWxpbmVhcl9tbXhfODg4OF84Xzg4ODhfY292ZXJfT1ZFUiwgfSwgeyBQSVhNQU5f
T1BfT1ZFUiwgUElYTUFOX2E4YjhnOHI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwg
MTkpIHwgKDEgPDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTQpIHwgKDEgPDwgMykgfCAoMSA8
PCA0KSkgfCAoMSA8PCAxNikpLCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0
KSB8ICgoMCkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8
ICgoMCkpKSkgPyAwIDogKCgoKDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwg
NikpIHwgKChQSVhNQU5fYTggPT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8
IDEyKSB8ICgoMCkgPDwgOCkgfCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMp
IHwgKDEgPDwgMTEpIHwgKDEgPDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThiOGc4cjgs
ICgoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRf
YmlsaW5lYXJfbW14Xzg4ODhfOF84ODg4X25vbmVfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwg
UElYTUFOX2E4YjhnOHI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEg
PDwgNSkgfCAoMSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMTQpIHwgKDEgPDwgNCkpIHwg
KDEgPDwgMTYpKSwgUElYTUFOX2E4LCAoKFBJWE1BTl9hOCA9PSAoKCgwKSA8PCAyNCkgfCAoKDAp
IDw8IDE2KSB8ICgoMCkgPDwgMTIpIHwgKCgwKSA8PCA4KSB8ICgoMCkgPDwgNCkgfCAoKDApKSkp
ID8gMCA6ICgoKCgxIDw8IDIpIHwgKDEgPDwgNSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSB8ICgo
UElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMSkgPDwgMTYpIHwgKCgwKSA8PCAxMikgfCAo
KDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgxIDw8IDIzKSB8ICgxIDw8
IDExKSB8ICgxIDw8IDApKSkpIHwgKDEgPDwgOSkpKSwgUElYTUFOX2E4YjhnOHI4LCAoKDEgPDwg
NSkgfCAoMSA8PCAxKSB8ICgxIDw8IDYpKSwgZmFzdF9jb21wb3NpdGVfc2NhbGVkX2JpbGluZWFy
X21teF84ODg4XzhfODg4OF9wYWRfT1ZFUiwgfSwgeyBQSVhNQU5fT1BfT1ZFUiwgUElYTUFOX2E4
YjhnOHI4LCAoKCgxIDw8IDEwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMTkpIHwgKDEgPDwgNSkgfCAo
MSA8PCA2KSkgfCAoKDEgPDwgMTUpIHwgKDEgPDwgMykgfCAoMSA8PCA0KSkgfCAoMSA8PCAxNikp
LCBQSVhNQU5fYTgsICgoUElYTUFOX2E4ID09ICgoKDApIDw8IDI0KSB8ICgoMCkgPDwgMTYpIHwg
KCgwKSA8PCAxMikgfCAoKDApIDw8IDgpIHwgKCgwKSA8PCA0KSB8ICgoMCkpKSkgPyAwIDogKCgo
KDEgPDwgMikgfCAoMSA8PCA1KSB8ICgxIDw8IDEpIHwgKDEgPDwgNikpIHwgKChQSVhNQU5fYTgg
PT0gKCgoMCkgPDwgMjQpIHwgKCgxKSA8PCAxNikgfCAoKDApIDw8IDEyKSB8ICgoMCkgPDwgOCkg
fCAoKDApIDw8IDQpIHwgKCgwKSkpKSA/IDAgOiAoKDEgPDwgMjMpIHwgKDEgPDwgMTEpIHwgKDEg
PDwgMCkpKSkgfCAoMSA8PCA5KSkpLCBQSVhNQU5fYThiOGc4cjgsICgoMSA8PCA1KSB8ICgxIDw8
IDEpIHwgKDEgPDwgNikpLCBmYXN0X2NvbXBvc2l0ZV9zY2FsZWRfYmlsaW5lYXJfbW14Xzg4ODhf
OF84ODg4X25vcm1hbF9PVkVSLCB9LAoKICAgIHsgUElYTUFOX09QX05PTkUgfSwKfTsKCnBpeG1h
bl9pbXBsZW1lbnRhdGlvbl90ICoKX3BpeG1hbl9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfbW14IChw
aXhtYW5faW1wbGVtZW50YXRpb25fdCAqZmFsbGJhY2spCnsKICAgIHBpeG1hbl9pbXBsZW1lbnRh
dGlvbl90ICppbXAgPSBfcGl4bWFuX2ltcGxlbWVudGF0aW9uX2NyZWF0ZSAoZmFsbGJhY2ssIG1t
eF9mYXN0X3BhdGhzKTsKCiAgICBpbXAtPmNvbWJpbmVfMzJbUElYTUFOX09QX09WRVJdID0gbW14
X2NvbWJpbmVfb3Zlcl91OwogICAgaW1wLT5jb21iaW5lXzMyW1BJWE1BTl9PUF9PVkVSX1JFVkVS
U0VdID0gbW14X2NvbWJpbmVfb3Zlcl9yZXZlcnNlX3U7CiAgICBpbXAtPmNvbWJpbmVfMzJbUElY
TUFOX09QX0lOXSA9IG1teF9jb21iaW5lX2luX3U7CiAgICBpbXAtPmNvbWJpbmVfMzJbUElYTUFO
X09QX0lOX1JFVkVSU0VdID0gbW14X2NvbWJpbmVfaW5fcmV2ZXJzZV91OwogICAgaW1wLT5jb21i
aW5lXzMyW1BJWE1BTl9PUF9PVVRdID0gbW14X2NvbWJpbmVfb3V0X3U7CiAgICBpbXAtPmNvbWJp
bmVfMzJbUElYTUFOX09QX09VVF9SRVZFUlNFXSA9IG1teF9jb21iaW5lX291dF9yZXZlcnNlX3U7
CiAgICBpbXAtPmNvbWJpbmVfMzJbUElYTUFOX09QX0FUT1BdID0gbW14X2NvbWJpbmVfYXRvcF91
OwogICAgaW1wLT5jb21iaW5lXzMyW1BJWE1BTl9PUF9BVE9QX1JFVkVSU0VdID0gbW14X2NvbWJp
bmVfYXRvcF9yZXZlcnNlX3U7CiAgICBpbXAtPmNvbWJpbmVfMzJbUElYTUFOX09QX1hPUl0gPSBt
bXhfY29tYmluZV94b3JfdTsKICAgIGltcC0+Y29tYmluZV8zMltQSVhNQU5fT1BfQUREXSA9IG1t
eF9jb21iaW5lX2FkZF91OwogICAgaW1wLT5jb21iaW5lXzMyW1BJWE1BTl9PUF9TQVRVUkFURV0g
PSBtbXhfY29tYmluZV9zYXR1cmF0ZV91OwoKICAgIGltcC0+Y29tYmluZV8zMl9jYVtQSVhNQU5f
T1BfU1JDXSA9IG1teF9jb21iaW5lX3NyY19jYTsKICAgIGltcC0+Y29tYmluZV8zMl9jYVtQSVhN
QU5fT1BfT1ZFUl0gPSBtbXhfY29tYmluZV9vdmVyX2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2Nh
W1BJWE1BTl9PUF9PVkVSX1JFVkVSU0VdID0gbW14X2NvbWJpbmVfb3Zlcl9yZXZlcnNlX2NhOwog
ICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9JTl0gPSBtbXhfY29tYmluZV9pbl9jYTsK
ICAgIGltcC0+Y29tYmluZV8zMl9jYVtQSVhNQU5fT1BfSU5fUkVWRVJTRV0gPSBtbXhfY29tYmlu
ZV9pbl9yZXZlcnNlX2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9PVVRdID0g
bW14X2NvbWJpbmVfb3V0X2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9PVVRf
UkVWRVJTRV0gPSBtbXhfY29tYmluZV9vdXRfcmV2ZXJzZV9jYTsKICAgIGltcC0+Y29tYmluZV8z
Ml9jYVtQSVhNQU5fT1BfQVRPUF0gPSBtbXhfY29tYmluZV9hdG9wX2NhOwogICAgaW1wLT5jb21i
aW5lXzMyX2NhW1BJWE1BTl9PUF9BVE9QX1JFVkVSU0VdID0gbW14X2NvbWJpbmVfYXRvcF9yZXZl
cnNlX2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9YT1JdID0gbW14X2NvbWJp
bmVfeG9yX2NhOwogICAgaW1wLT5jb21iaW5lXzMyX2NhW1BJWE1BTl9PUF9BRERdID0gbW14X2Nv
bWJpbmVfYWRkX2NhOwoKICAgIGltcC0+Ymx0ID0gbW14X2JsdDsKICAgIGltcC0+ZmlsbCA9IG1t
eF9maWxsOwoKICAgIGltcC0+aXRlcl9pbmZvID0gbW14X2l0ZXJzOwoKICAgIHJldHVybiBpbXA7
Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300111</attachid>
            <date>2017-01-30 08:18:59 -0800</date>
            <delta_ts>2017-01-30 09:10:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167411-20170130171649.patch</filename>
            <type>text/plain</type>
            <size>1971</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWNhN2EyZjZhYTBjYjdkYzlmZGQ5NjAxZDhiMzBhMGVh
MDFhZWRiZC4uMmE4MGViMWMyYTkyOGU3YmMxYTdhZDljMWM3Yjk5ZmUyZmFhMWI3YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE3LTAxLTMwICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIHBpeG1hbiBmYWlscyB0byBjb21waWxlIG9uIFJhc3Bi
ZXJyeSBQaSAoR0NDIGNyYXNoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3NDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRGlzYWJsZSB0aGUgQVJNIGl3TU1YdCBmYXN0IHBhdGggZm9yIHBpeG1hbiwg
YmVjYXVzZSBpdCB0cmlnZ2VycworICAgICAgICBhIEdDQyBidWcgb24gdGhlIFJQaSB3aXRoIFJh
c3BiaWFuL1BJWEVMIGNhdXNpbmcgYSBidWlsZCBmYWlsdXJlLgorCisgICAgICAgICogZ3RrL2po
YnVpbGQubW9kdWxlczoKKwogMjAxNy0wMS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIEFQSSB0byBoYW5kbGUgdGhlIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nIHBvbGljeQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2poYnVp
bGQubW9kdWxlcyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggZTA0ODAwZWJhOTY4
OGEyOTRkODVmNDEyYjMyZGU0MzUxMzRmYTg4Yi4uNGFhNDBjMDk1ZjBiN2Q4NmIzNDQ1ZDlmM2Y0
N2UwNzVjMTJjMzQ3NCAxMDA2NDQKLS0tIGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcworKysg
Yi9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCkBAIC0xMDEsOCArMTAxLDEyIEBACiAgIDwhLS0g
RklYTUU6IFBpeG1hbiAwLjMyLjYgaXNuJ3QgYnVpbGRhYmxlIHdpdGggQ2xhbmcsIGJ1dCBkaXNh
YmxlLW1teCBvcHRpb24gZml4ZXMKICAgICAgICAgICAgICAgdGhlIGJ1aWxkLiBUaGlzIHdvcmth
cm91bmQgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgb3JpZ2luYWwgYnVnIGlzIGZpeGVkLgogICAg
ICAgICAgICAgICBEZXRhaWxzIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNDQxIC0tPgorICA8IS0tIEZJWE1FOiBQaXhtYW4gMC4z
Mi42IEFSTSBpd01NWHQgZmFzdCBwYXRoIGlzbid0IGJ1aWxkYWJsZSB3aXRoIEdDQyA0LjkgYW5k
CisgICAgICAgICAgICAgIEFSTSB0cmFkaXRpb25hbCBpbnN0cnVjdGlvbiBzZXQuIEl0IGNhdXNl
cyBhIGJ1aWxkIGZhaWx1cmUgb24gUmFzcGJpYW4uCisgICAgICAgICAgICAgIFRoaXMgd29ya2Fy
b3VuZCBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIHJhaXNlIHRoZSBtaW5pbXVtIEdDQyB2ZXJzaW9u
CisgICAgICAgICAgICAgIGZvciBXZWJLaXRHVEsrIGFib3ZlIDQuOSAtLT4KICAgPGF1dG90b29s
cyBpZD0icGl4bWFuIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCi0gICAgICAgICAgICAgYXV0b2dl
bmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyAtLWRpc2FibGUtbW14Ij4KKyAgICAgICAgICAgICBhdXRv
Z2VuYXJncz0iLS1lbmFibGUtZ3RrPW5vIC0tZGlzYWJsZS1tbXggLS1kaXNhYmxlLWFybS1pd21t
eHQiPgogICAgIDxicmFuY2ggbW9kdWxlPSJyZWxlYXNlcy9waXhtYW4tMC4zMi42LnRhci5neiIg
dmVyc2lvbj0iMC4zMi42IgogICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCiAg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6M2RmZWQxM2I4MDYwZWFkYWJmMGE0OTQ1YzcwNDViNzc5
M2NjN2UzZTkxMGU3NDhhOGJiMGYwZGMzZTc5NDkwNCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>