<?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>183883</bug_id>
          
          <creation_ts>2018-03-21 18:27:01 -0700</creation_ts>
          <short_desc>Crash with WebKitConsoleMessageLevel</short_desc>
          <delta_ts>2018-04-13 08:55:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=183998</see_also>
    
    <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1560266</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Gratton">mike</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1408255</commentid>
    <comment_count>0</comment_count>
      <attachid>336253</attachid>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-21 18:27:01 -0700</bug_when>
    <thetext>Created attachment 336253
Backtrace from WebProcess core

I just upgraded to Ubuntu bionic which currently has WebKitGTK 2.20.0, and WebProcess is now crashing when Geary&apos;s WebExtension is attempting to print a console message. Geary is using the standard vala to_string enum magic to get a string version of the WebKitConsoleMessageLevel returned by webkit_console_message_get_level(): https://git.gnome.org/browse/geary/tree/src/client/web-process/web-process-extension.vala#n57

This translates into the following C code:

&gt; g_enum_get_value (g_type_class_ref (webkit_console_message_level_get_type ()), webkit_console_message_get_level (message));

The call to g_type_class_ref() is the one causing the segfault. Despite that it looks like WebKitGTK bug since Geary does this in a lot of different places and it isn&apos;t crashing anywhere else. Maybe webkit_console_message_level_get_type() is returning a bogus value?

Back trace from a resulting core is attached, couldn&apos;t get a full trace since gdb is crashing doing a &quot;bt full&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408256</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-21 18:28:29 -0700</bug_when>
    <thetext>NB this is a moderately severe issue, since it stops any email that causes a console message to be printed to not be displays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408284</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-21 19:55:34 -0700</bug_when>
    <thetext>Turns out this also happens with the WebKitConsoleMessageSource enum as well as the level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408407</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-22 10:49:11 -0700</bug_when>
    <thetext>I suspect https://trac.webkit.org/changeset/226366/webkit in combination with a Vala bug. Note my changelog entry:

&quot;Since one of the signal arguments is an enum, we now have to run glib-mkenums for the web process API. And that has resulted in this patch also adding GType goo for WebKitConsoleMessageLevel and WebKitConsoleMessageSource that was previously missing. Any applications that for some unlikely reason want to use these enums in properties or signals will be happy.&quot;

So webkit_console_message_level_get_type() is brand new in 2.20. Did not exist at all in 2.18.

So:

(In reply to Michael Gratton from comment #0)
&gt; g_enum_get_value (g_type_class_ref (webkit_console_message_level_get_type ()), webkit_console_message_get_level (message));

Vala cannot possibly have generated this code in 2.18, because it would not have compiled. And if it did generate this code, then it has its own conflicting definition for webkit_console_message_level_get_type() with its own generated GType goo, infringing on WebKit&apos;s namespace, which would be a Vala bug.

The first thing I would do to check is build Geary twice with the same version of Vala, once with 2.18 and once with 2.20, and diff the generated C code to see what it&apos;s doing with respect to webkit_console_message_level_get_type().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409043</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-23 22:52:42 -0700</bug_when>
    <thetext>Okay, so I just found out the WebProcess crashes here when I run the locally built binary in the source tree, but does not crash when I build a debian package from the same source tree, with the same valac and libraries, install that and run it.

When using the same meson build options for both, the only thing that is different in the generated C source is that the deb build&apos;s source doesn&apos;t contain vala line number annotations. The generated C line is identical to that below.

The only difference with the binaries seems to be that is that the installed deb&apos;s binary has debug symbol stripped.

So I&apos;m not sure where to go with this. It&apos;s definitely only happening with enums from WebkitGTK+ though.

Will try to track down some source generated against 2.18 and see what it looks like, need to reboot to try to get libvirt working for that though. o_O</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409054</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-23 23:28:24 -0700</bug_when>
    <thetext>Okay, so the difference in the source code when compiling against 2.18 vs against 2.20 is that for the former, valac will generate a helper function which uses a C-switch on the value returned from the message obejct, rather than trying to use g_enum_get_value and getting the name from that.

E.g. for the level:

&gt; static const char*
&gt; _webkit_console_message_level_to_string (WebKitConsoleMessageLevel value)
&gt; {
&gt;         switch (value) {
&gt;                 case WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO:
&gt;                 return &quot;WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO&quot;;
&gt;                 ...
&gt;         }
&gt;         return NULL;
&gt; }

The g_enum_get_value() method does get used in quite a lot of other places however, it&apos;s only these newly blessed enums that are causing a crash with my local build.

I&apos;m sort of out of ideas about what could be causing the issue with the plain local build vs the deb local build though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409135</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-24 13:50:18 -0700</bug_when>
    <thetext>OK that&apos;s more complicated than what I was expecting, I&apos;ll take a look...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409220</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-25 18:12:05 -0700</bug_when>
    <thetext>&gt; g_enum_get_value (g_type_class_ref (webkit_console_message_level_get_type ()), webkit_console_message_get_level (message));

I added this debug code to ephy-web-extension-main.c:

  GType type;
  GEnumClass *class;
  GEnumValue *value;

  type = webkit_console_message_level_get_type ();
  class = g_type_class_ref (type);
  g_warning (&quot;class=%p&quot;, class);
  value = g_enum_get_value (class, WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG);
  g_warning (&quot;value=%d name=%s nick=%s&quot;, value-&gt;value, value-&gt;value_name, value-&gt;value_nick);
  g_type_class_unref (class);

It works properly:

** (WebKitWebProcess:18): WARNING **: 00:57:43.265: class=0x5635884a8820

** (WebKitWebProcess:18): WARNING **: 00:57:43.265: value=4 name=WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG nick=debug

But I had to manually add this to the top:

#define WEBKIT2_COMPILATION 1
#include &lt;webkit2/WebKitWebProcessEnumTypes.h&gt;

due to bug #183998.

I guess there&apos;s some (very slim) possibility that the missing #include is somehow confusing Vala... could you grep through the generated code and make sure Vala isn&apos;t trying to define its own webkit_console_message_level_get_type() anywhere?

Could you post a copy of the generated web-process-extension.c?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409295</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-26 08:19:17 -0700</bug_when>
    <thetext>BTW I tried adding Geary to world in gnome-build-meta so that I can build it against the latest WebKit, but I noticed it depends on libcanberra and I didn&apos;t really want to add that as well, so I gave up. :) Would be interesting to see what the generated source is doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409439</commentid>
    <comment_count>9</comment_count>
      <attachid>336549</attachid>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-26 16:20:59 -0700</bug_when>
    <thetext>Created attachment 336549
Generated web extension code 2.20

This is the code valac is generating against WebKitGTK 2.20.

Strangely it declares webkit_console_message_level_to_string(), but neither uses nor defines the function body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409441</commentid>
    <comment_count>10</comment_count>
      <attachid>336550</attachid>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-26 16:24:27 -0700</bug_when>
    <thetext>Created attachment 336550
Generated web extension code 2.18

This is the code valac is generating against WebKitGTK 2.18.

This also webkit_console_message_level_to_string(), and again neither uses nor defines the function body, but also declares, defines and uses 
_webkit_console_message_level_to_string(). They differ by return type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409442</commentid>
    <comment_count>11</comment_count>
      <attachid>336551</attachid>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-26 16:28:45 -0700</bug_when>
    <thetext>Created attachment 336551
Generated web extension header 2.20

And for completeness, the header generated against 2.20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409443</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-03-26 16:36:23 -0700</bug_when>
    <thetext>Oh, it&apos;s a runtime issue.

Running the installed deb build from /usr doesn&apos;t exhibit the problem, but running the same binary from ~/.../geary/debian (i.e the deb build directory) does.

Is the WebProcess making assumptions about where extension libs are loaded/installed/executed from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409446</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-26 16:51:04 -0700</bug_when>
    <thetext>(In reply to Michael Gratton from comment #12)
&gt; Oh, it&apos;s a runtime issue.
&gt; 
&gt; Running the installed deb build from /usr doesn&apos;t exhibit the problem, but
&gt; running the same binary from ~/.../geary/debian (i.e the deb build
&gt; directory) does.
&gt; 
&gt; Is the WebProcess making assumptions about where extension libs are
&gt; loaded/installed/executed from?

It loads web extensions from the directory the application sets with webkit_web_context_set_web_extensions_directory().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409448</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-26 16:57:50 -0700</bug_when>
    <thetext>I don&apos;t see anything obviously wrong with the generated code....

(In reply to Michael Gratton from comment #12)
&gt; Oh, it&apos;s a runtime issue.
&gt; 
&gt; Running the installed deb build from /usr doesn&apos;t exhibit the problem, but
&gt; running the same binary from ~/.../geary/debian (i.e the deb build
&gt; directory) does.
&gt; 
&gt; Is the WebProcess making assumptions about where extension libs are
&gt; loaded/installed/executed from?

Are you sure that it&apos;s really linked against 2.20 when you&apos;re running it from the build directory? Check with ldd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410255</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-29 07:52:45 -0700</bug_when>
    <thetext>(In reply to Michael Gratton from comment #12)
&gt; Oh, it&apos;s a runtime issue.
&gt; 
&gt; Running the installed deb build from /usr doesn&apos;t exhibit the problem, but
&gt; running the same binary from ~/.../geary/debian (i.e the deb build
&gt; directory) does.

NB: https://bugzilla.redhat.com/show_bug.cgi?id=1560266</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414307</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Gratton">mike</who>
    <bug_when>2018-04-12 22:40:52 -0700</bug_when>
    <thetext>&gt; Are you sure that it&apos;s really linked against 2.20 when you&apos;re running it from
&gt; the build directory? Check with ldd.

Yeah, looks like it:

&gt; mjg@payens:~/Projects/GNOME/geary$ ldd build/src/libgeary-web-process.so | grep webkit
&gt;	libwebkit2gtk-4.0.so.37 =&gt; /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37 (0x00007f1cbed5c000)
&gt; mjg@payens:~/Projects/GNOME/geary$ dpkg -S /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
&gt; libwebkit2gtk-4.0-37:amd64: /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
&gt; mjg@payens:~/Projects/GNOME/geary$ dpkg -l | grep libwebkit2gtk-4.0-37
&gt; ii  libwebkit2gtk-4.0-37:amd64            2.20.1-1                             amd64        Web content engine library for GTK+

Although it also looks like upgrading to 2.20.1 has fixed the issue, so maybe the missing header was somehow causing it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414409</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-13 08:55:46 -0700</bug_when>
    <thetext>Surprising, but OK, it was surely caused by the missing header, then. Somehow. I guess to figure out how, you could look at how the code generated by Vala changed between 2.20.0 and 2.20.1.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>336253</attachid>
            <date>2018-03-21 18:27:01 -0700</date>
            <delta_ts>2018-03-21 18:27:01 -0700</delta_ts>
            <desc>Backtrace from WebProcess core</desc>
            <filename>backtrace.txt</filename>
            <type>text/plain</type>
            <size>25318</size>
            <attacher name="Michael Gratton">mike</attacher>
            
              <data encoding="base64">Cndhcm5pbmc6IGNvcmUgZmlsZSBtYXkgbm90IG1hdGNoIHNwZWNpZmllZCBleGVjdXRhYmxlIGZp
bGUuCltOZXcgTFdQIDE4NTQzXQpbTmV3IExXUCAxODU0Nl0KW05ldyBMV1AgMTg1NTVdCltOZXcg
TFdQIDE4NTQ3XQpbTmV3IExXUCAxODU1Nl0KW05ldyBMV1AgMTg1NDldCltOZXcgTFdQIDE4NTQ4
XQpbTmV3IExXUCAxODU1MF0KW05ldyBMV1AgMTg1NTJdCltOZXcgTFdQIDE4NTU3XQpbTmV3IExX
UCAxODU1MV0KW05ldyBMV1AgMTg1NTNdCltUaHJlYWQgZGVidWdnaW5nIHVzaW5nIGxpYnRocmVh
ZF9kYiBlbmFibGVkXQpVc2luZyBob3N0IGxpYnRocmVhZF9kYiBsaWJyYXJ5ICIvbGliL3g4Nl82
NC1saW51eC1nbnUvbGlidGhyZWFkX2RiLnNvLjEiLgpDb3JlIHdhcyBnZW5lcmF0ZWQgYnkgYC91
c3IvbGliL3g4Nl82NC1saW51eC1nbnUvd2Via2l0Mmd0ay00LjAvV2ViS2l0V2ViUHJvY2VzcyA0
IDMxJy4KUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlv
biBmYXVsdC4KIzAgIDB4MDAwMDdmMDI1MDI4MGNkMSBpbiBnX3R5cGVfY2xhc3NfcmVmICh0eXBl
PTExODc2NjcwODgpIGF0IC4uLy4uLy4uLy4uL2dvYmplY3QvZ3R5cGUuYzoyOTE0CjI5MTQJLi4v
Li4vLi4vLi4vZ29iamVjdC9ndHlwZS5jOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgpbQ3Vy
cmVudCB0aHJlYWQgaXMgMSAoVGhyZWFkIDB4N2YwMjU1NjkzYWMwIChMV1AgMTg1NDMpKV0KClRo
cmVhZCAxMiAoVGhyZWFkIDB4N2YwMWVmZmZkNzAwIChMV1AgMTg1NTMpKToKIzAgIDB4MDAwMDdm
MDI1MjVhY2JmOSBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2YwMWQ4MDA0MzYwLCBuZmRzPTIsIHRp
bWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgw
MDAwN2YwMjRmZjg2NDM5IGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWlz
ZWQgb3V0Piwgbl9mZHM9MiwgZmRzPTB4N2YwMWQ4MDA0MzYwLCB0aW1lb3V0PTxvcHRpbWlzZWQg
b3V0PiwgY29udGV4dD0weDdmMDFkODAwMGIyMCkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5j
OjQyMDQKIzIgIDB4MDAwMDdmMDI0ZmY4NjQzOSBpbiBnX21haW5fY29udGV4dF9pdGVyYXRlIChj
b250ZXh0PTB4N2YwMWQ4MDAwYjIwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNw
YXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4vLi4vZ2xpYi9n
bWFpbi5jOjM4OTgKIzMgIDB4MDAwMDdmMDI0ZmY4NjdkMiBpbiBnX21haW5fbG9vcF9ydW4gKGxv
b3A9MHg3ZjAxZDgwMDMxZTApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21haW4uYzo0MDk5CiM0ICAw
eDAwMDA3ZjAyNGYxYmRhNDAgaW4gV1RGOjpSdW5Mb29wOjpydW4oKSAoKSBhdCAuL1NvdXJjZS9X
VEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjk2CiM1ICAweDAwMDA3ZjAyNGYxOTUyY2IgaW4g
V1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTxzeW50aGV0
aWMgcG9pbnRlcj4pIGF0IC4vU291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1NgojNiAgMHgwMDAw
N2YwMjRmMTk1MmNiIGluIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdU
aHJlYWRDb250ZXh0KikgKG5ld1RocmVhZENvbnRleHQ9MHg3ZjAyM2UwZjcxNDApIGF0IC4vU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcDoxMjkKIzcgIDB4MDAwMDdmMDI0ZjFiYmMzOSBpbiBX
VEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCopIChjb250ZXh0PTxvcHRpbWlzZWQgb3V0Pikg
YXQgLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6MjIzCiM4ICAweDAwMDA3
ZjAyNGRjMzM2ZGIgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3ZjAxZWZmZmQ3MDApIGF0IHB0aHJl
YWRfY3JlYXRlLmM6NDYzCiM5ICAweDAwMDA3ZjAyNTI1Yjk4OGYgaW4gY2xvbmUgKCkgYXQgLi4v
c3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAxMSAoVGhy
ZWFkIDB4N2YwMjNkN2ZlNzAwIChMV1AgMTg1NTEpKToKIzAgIDB4MDAwMDdmMDI1MjVhY2JmOSBp
biBfX0dJX19fcG9sbCAoZmRzPTB4N2YwMWUwMDAxM2UwLCBuZmRzPTEsIHRpbWVvdXQ9LTEpIGF0
IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgwMDAwN2YwMjRmZjg2
NDM5IGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWlzZWQgb3V0Piwgbl9m
ZHM9MSwgZmRzPTB4N2YwMWUwMDAxM2UwLCB0aW1lb3V0PTxvcHRpbWlzZWQgb3V0PiwgY29udGV4
dD0weDdmMDFlMDAwMGIyMCkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5jOjQyMDQKIzIgIDB4
MDAwMDdmMDI0ZmY4NjQzOSBpbiBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4N2Yw
MWUwMDAwYjIwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0x
LCBzZWxmPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5jOjM4OTgK
IzMgIDB4MDAwMDdmMDI0ZmY4NjdkMiBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZjAxZTAw
MDNlNDApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21haW4uYzo0MDk5CiM0ICAweDAwMDA3ZjAyNGYx
YmRhNDAgaW4gV1RGOjpSdW5Mb29wOjpydW4oKSAoKSBhdCAuL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcEdMaWIuY3BwOjk2CiM1ICAweDAwMDA3ZjAyNGYxOTUyY2IgaW4gV1RGOjpGdW5jdGlv
bjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTxzeW50aGV0aWMgcG9pbnRlcj4p
IGF0IC4vU291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1NgojNiAgMHgwMDAwN2YwMjRmMTk1MmNi
IGluIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdUaHJlYWRDb250ZXh0
KikgKG5ld1RocmVhZENvbnRleHQ9MHg3ZjAyM2UwZjcwNTApIGF0IC4vU291cmNlL1dURi93dGYv
VGhyZWFkaW5nLmNwcDoxMjkKIzcgIDB4MDAwMDdmMDI0ZjFiYmMzOSBpbiBXVEY6Ond0ZlRocmVh
ZEVudHJ5UG9pbnQodm9pZCopIChjb250ZXh0PTxvcHRpbWlzZWQgb3V0PikgYXQgLi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6MjIzCiM4ICAweDAwMDA3ZjAyNGRjMzM2ZGIg
aW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3ZjAyM2Q3ZmU3MDApIGF0IHB0aHJlYWRfY3JlYXRlLmM6
NDYzCiM5ICAweDAwMDA3ZjAyNTI1Yjk4OGYgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4
L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAxMCAoVGhyZWFkIDB4N2YwMWRj
ZmZmNzAwIChMV1AgMTg1NTcpKToKIzAgIDB4MDAwMDdmMDI0ZGMzOWY4NSBpbiBmdXRleF9hYnN0
aW1lZF93YWl0X2NhbmNlbGFibGUgKHByaXZhdGU9PG9wdGltaXNlZCBvdXQ+LCBhYnN0aW1lPTB4
N2YwMWRjZmZlOTQwLCBleHBlY3RlZD0wLCBmdXRleF93b3JkPTB4N2YwMjNlMDA5MmUwKSBhdCAu
Li9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9mdXRleC1pbnRlcm5hbC5oOjIwNQojMSAgMHgwMDAw
N2YwMjRkYzM5Zjg1IGluIF9fcHRocmVhZF9jb25kX3dhaXRfY29tbW9uIChhYnN0aW1lPTB4N2Yw
MWRjZmZlOTQwLCBtdXRleD0weDdmMDIzZTAwOTI5MCwgY29uZD0weDdmMDIzZTAwOTJiOCkgYXQg
cHRocmVhZF9jb25kX3dhaXQuYzo1MzkKIzIgIDB4MDAwMDdmMDI0ZGMzOWY4NSBpbiBfX3B0aHJl
YWRfY29uZF90aW1lZHdhaXQgKGNvbmQ9MHg3ZjAyM2UwMDkyYjgsIG11dGV4PTB4N2YwMjNlMDA5
MjkwLCBhYnN0aW1lPTB4N2YwMWRjZmZlOTQwKSBhdCBwdGhyZWFkX2NvbmRfd2FpdC5jOjY2Nwoj
MyAgMHgwMDAwN2YwMjRmMWJjNzVhIGluIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQo
V1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICh0aGlzPXRoaXNAZW50cnk9MHg3ZjAyM2UwMDky
YjgsIG11dGV4PS4uLiwgYWJzb2x1dGVUaW1lPS4uLikgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmdQdGhyZWFkcy5jcHA6NTcxCiM0ICAweDAwMDA3ZjAyNGYxOTE2ZTMgaW4gV1RGOjpQYXJr
aW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseUltcGwodm9pZCBjb25zdCosIFdURjo6U2NvcGVkTGFt
YmRhPGJvb2wgKCk+IGNvbnN0JiwgV1RGOjpTY29wZWRMYW1iZGE8dm9pZCAoKT4gY29uc3QmLCBX
VEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpIChhZGRyZXNzPWFkZHJlc3NAZW50
cnk9MHg3ZjAyM2UwNmE3ZDMsIHZhbGlkYXRpb249Li4uLCBiZWZvcmVTbGVlcD0uLi4sIHRpbWVv
dXQ9Li4uKSBhdCAuL1NvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwOjU5NwojNSAgMHgwMDAw
N2YwMjRmMTdhOGUxIGluIFdURjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBX
VEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6e2xhbWJkYSgpIzF9LCBib29sIFdURjo6Q29u
ZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSBjb25zdCYpOjp7bGFtYmRhKCkjMn0+KHZvaWQgY29uc3QqLCBib29sIFdU
Rjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpOjp7bGFtYmRhKCkjMX0gY29uc3QmLCBib29sIFdU
Rjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpOjp7bGFtYmRhKCkjMn0gY29uc3QmLCBXVEY6OlRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICh0aW1lb3V0PS4uLiwgYmVmb3JlU2xlZXA9
Li4uLCB2YWxpZGF0aW9uPS4uLiwgYWRkcmVzcz0weDdmMDIzZTA2YTdkMykgYXQgLi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJraW5nTG90Lmg6ODUKIzYgIDB4MDAwMDdmMDI0ZjE3YThlMSBpbiBXVEY6OkNv
bmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUgY29uc3QmKSAodGltZW91dD0uLi4sIGxvY2s9Li4uLCB0aGlzPTB4N2Yw
MjNlMDZhN2QzKSBhdCAuL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oOjc2CiM3ICAweDAwMDA3
ZjAyNGYxN2E4ZTEgaW4gV1RGOjpDb25kaXRpb246OndhaXRGb3I8V1RGOjpMb2NrPihXVEY6Okxv
Y2smLCBXVEY6OlNlY29uZHMpIChyZWxhdGl2ZVRpbWVvdXQ9Li4uLCBsb2NrPS4uLiwgdGhpcz0w
eDdmMDIzZTA2YTdkMykgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaDoxMTYKIzggIDB4
MDAwMDdmMDI0ZjE3YThlMSBpbiBXVEY6OkF1dG9tYXRpY1RocmVhZDo6PGxhbWJkYSgpPjo6b3Bl
cmF0b3IoKSAoX19jbG9zdXJlPTxvcHRpbWlzZWQgb3V0PikgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9B
dXRvbWF0aWNUaHJlYWQuY3BwOjIwNwojOSAgMHgwMDAwN2YwMjRmMTdhOGUxIGluIFdURjo6RnVu
Y3Rpb248dm9pZCgpPjo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFy
dChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJik6OjxsYW1iZGEoKT4gPjo6Y2FsbCh2b2lkKSAo
dGhpcz0weDdmMDIzZTA0ZWFjOCkgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvbi5oOjEwMQoj
MTAgMHgwMDAwN2YwMjRmMTk1MmNiIGluIFdURjo6RnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9y
KCkoKSBjb25zdCAodGhpcz08c3ludGhldGljIHBvaW50ZXI+KSBhdCAuL1NvdXJjZS9XVEYvd3Rm
L0Z1bmN0aW9uLmg6NTYKIzExIDB4MDAwMDdmMDI0ZjE5NTJjYiBpbiBXVEY6OlRocmVhZDo6ZW50
cnlQb2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopIChuZXdUaHJlYWRDb250ZXh0
PTB4N2YwMjNlMDRhNTAwKSBhdCAuL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6MTI5CiMx
MiAweDAwMDA3ZjAyNGYxYmJjMzkgaW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSAo
Y29udGV4dD08b3B0aW1pc2VkIG91dD4pIGF0IC4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRo
cmVhZHMuY3BwOjIyMwojMTMgMHgwMDAwN2YwMjRkYzMzNmRiIGluIHN0YXJ0X3RocmVhZCAoYXJn
PTB4N2YwMWRjZmZmNzAwKSBhdCBwdGhyZWFkX2NyZWF0ZS5jOjQ2MwojMTQgMHgwMDAwN2YwMjUy
NWI5ODhmIGluIGNsb25lICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9j
bG9uZS5TOjk1CgpUaHJlYWQgOSAoVGhyZWFkIDB4N2YwMjNjZmZkNzAwIChMV1AgMTg1NTIpKToK
IzAgIDB4MDAwMDdmMDI1MjVhY2JmOSBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2YwMWU0MDAxM2Uw
LCBuZmRzPTEsIHRpbWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwu
YzoyOQojMSAgMHgwMDAwN2YwMjRmZjg2NDM5IGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9y
aXR5PTxvcHRpbWlzZWQgb3V0Piwgbl9mZHM9MSwgZmRzPTB4N2YwMWU0MDAxM2UwLCB0aW1lb3V0
PTxvcHRpbWlzZWQgb3V0PiwgY29udGV4dD0weDdmMDFlNDAwMGIyMCkgYXQgLi4vLi4vLi4vLi4v
Z2xpYi9nbWFpbi5jOjQyMDQKIzIgIDB4MDAwMDdmMDI0ZmY4NjQzOSBpbiBnX21haW5fY29udGV4
dF9pdGVyYXRlIChjb250ZXh0PTB4N2YwMWU0MDAwYjIwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBk
aXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4v
Li4vLi4vZ2xpYi9nbWFpbi5jOjM4OTgKIzMgIDB4MDAwMDdmMDI0ZmY4NjdkMiBpbiBnX21haW5f
bG9vcF9ydW4gKGxvb3A9MHg3ZjAxZTQwMDNlNDApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21haW4u
Yzo0MDk5CiM0ICAweDAwMDA3ZjAyNGYxYmRhNDAgaW4gV1RGOjpSdW5Mb29wOjpydW4oKSAoKSBh
dCAuL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjk2CiM1ICAweDAwMDA3ZjAy
NGYxOTUyY2IgaW4gV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0
aGlzPTxzeW50aGV0aWMgcG9pbnRlcj4pIGF0IC4vU291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1
NgojNiAgMHgwMDAwN2YwMjRmMTk1MmNiIGluIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6
VGhyZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKG5ld1RocmVhZENvbnRleHQ9MHg3ZjAyM2UwZjcw
ZjApIGF0IC4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcDoxMjkKIzcgIDB4MDAwMDdmMDI0
ZjFiYmMzOSBpbiBXVEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCopIChjb250ZXh0PTxvcHRp
bWlzZWQgb3V0PikgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6MjIz
CiM4ICAweDAwMDA3ZjAyNGRjMzM2ZGIgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3ZjAyM2NmZmQ3
MDApIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDYzCiM5ICAweDAwMDA3ZjAyNTI1Yjk4OGYgaW4gY2xv
bmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRo
cmVhZCA4IChUaHJlYWQgMHg3ZjAyM2RmZmY3MDAgKExXUCAxODU1MCkpOgojMCAgMHgwMDAwN2Yw
MjUyNWFjYmY5IGluIF9fR0lfX19wb2xsIChmZHM9MHg3ZjAxZTgwMDMyYTAsIG5mZHM9MSwgdGlt
ZW91dD0tMSkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG9sbC5jOjI5CiMxICAweDAw
MDA3ZjAyNGZmODY0MzkgaW4gZ19tYWluX2NvbnRleHRfcG9sbCAocHJpb3JpdHk9PG9wdGltaXNl
ZCBvdXQ+LCBuX2Zkcz0xLCBmZHM9MHg3ZjAxZTgwMDMyYTAsIHRpbWVvdXQ9PG9wdGltaXNlZCBv
dXQ+LCBjb250ZXh0PTB4N2YwMWU4MDAwYjIwKSBhdCAuLi8uLi8uLi8uLi9nbGliL2dtYWluLmM6
NDIwNAojMiAgMHgwMDAwN2YwMjRmZjg2NDM5IGluIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNv
bnRleHQ9MHg3ZjAxZTgwMDBiMjAsIGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3Bh
dGNoQGVudHJ5PTEsIHNlbGY9PG9wdGltaXNlZCBvdXQ+KSBhdCAuLi8uLi8uLi8uLi9nbGliL2dt
YWluLmM6Mzg5OAojMyAgMHgwMDAwN2YwMjRmZjg2N2QyIGluIGdfbWFpbl9sb29wX3J1biAobG9v
cD0weDdmMDFlODAwMzFlMCkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5jOjQwOTkKIzQgIDB4
MDAwMDdmMDI0ZjFiZGE0MCBpbiBXVEY6OlJ1bkxvb3A6OnJ1bigpICgpIGF0IC4vU291cmNlL1dU
Ri93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6OTYKIzUgIDB4MDAwMDdmMDI0ZjE5NTJjYiBpbiBX
VEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKHRoaXM9PHN5bnRoZXRp
YyBwb2ludGVyPikgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvbi5oOjU2CiM2ICAweDAwMDA3
ZjAyNGYxOTUyY2IgaW4gV1RGOjpUaHJlYWQ6OmVudHJ5UG9pbnQoV1RGOjpUaHJlYWQ6Ok5ld1Ro
cmVhZENvbnRleHQqKSAobmV3VGhyZWFkQ29udGV4dD0weDdmMDIzZTBmNzAwMCkgYXQgLi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjEyOQojNyAgMHgwMDAwN2YwMjRmMWJiYzM5IGluIFdU
Rjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikgKGNvbnRleHQ9PG9wdGltaXNlZCBvdXQ+KSBh
dCAuL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoyMjMKIzggIDB4MDAwMDdm
MDI0ZGMzMzZkYiBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdmMDIzZGZmZjcwMCkgYXQgcHRocmVh
ZF9jcmVhdGUuYzo0NjMKIzkgIDB4MDAwMDdmMDI1MjViOTg4ZiBpbiBjbG9uZSAoKSBhdCAuLi9z
eXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDcgKFRocmVh
ZCAweDdmMDIzZjE4NTcwMCAoTFdQIDE4NTQ4KSk6CiMwICAweDAwMDA3ZjAyNTI1YWNiZjkgaW4g
X19HSV9fX3BvbGwgKGZkcz0weDdmMDIzODAwN2QxMCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAu
Li9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb2xsLmM6MjkKIzEgIDB4MDAwMDdmMDI0ZmY4NjQz
OSBpbiBnX21haW5fY29udGV4dF9wb2xsIChwcmlvcml0eT08b3B0aW1pc2VkIG91dD4sIG5fZmRz
PTEsIGZkcz0weDdmMDIzODAwN2QxMCwgdGltZW91dD08b3B0aW1pc2VkIG91dD4sIGNvbnRleHQ9
MHg3ZjAyMzgwMDY5YzApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21haW4uYzo0MjA0CiMyICAweDAw
MDA3ZjAyNGZmODY0MzkgaW4gZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD1jb250ZXh0
QGVudHJ5PTB4N2YwMjM4MDA2OWMwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNw
YXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4vLi4vZ2xpYi9n
bWFpbi5jOjM4OTgKIzMgIDB4MDAwMDdmMDI0ZmY4NjU0YyBpbiBnX21haW5fY29udGV4dF9pdGVy
YXRpb24gKGNvbnRleHQ9MHg3ZjAyMzgwMDY5YzAsIG1heV9ibG9jaz1tYXlfYmxvY2tAZW50cnk9
MSkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5jOjM5NjQKIzQgIDB4MDAwMDdmMDI0ZmY4NjU5
MSBpbiBnbGliX3dvcmtlcl9tYWluIChkYXRhPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4v
Li4vZ2xpYi9nbWFpbi5jOjU3NzMKIzUgIDB4MDAwMDdmMDI0ZmZhZGUwNSBpbiBnX3RocmVhZF9w
cm94eSAoZGF0YT0weDU1OTg0NjViNDY4MCkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9ndGhyZWFkLmM6
Nzg0CiM2ICAweDAwMDA3ZjAyNGRjMzM2ZGIgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3ZjAyM2Yx
ODU3MDApIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDYzCiM3ICAweDAwMDA3ZjAyNTI1Yjk4OGYgaW4g
Y2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUK
ClRocmVhZCA2IChUaHJlYWQgMHg3ZjAyM2U5ODQ3MDAgKExXUCAxODU0OSkpOgojMCAgMHgwMDAw
N2YwMjUyNWFjYmY5IGluIF9fR0lfX19wb2xsIChmZHM9MHg3ZjAyMzQwMDYzZTAsIG5mZHM9Mywg
dGltZW91dD0tMSkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG9sbC5jOjI5CiMxICAw
eDAwMDA3ZjAyNGZmODY0MzkgaW4gZ19tYWluX2NvbnRleHRfcG9sbCAocHJpb3JpdHk9PG9wdGlt
aXNlZCBvdXQ+LCBuX2Zkcz0zLCBmZHM9MHg3ZjAyMzQwMDYzZTAsIHRpbWVvdXQ9PG9wdGltaXNl
ZCBvdXQ+LCBjb250ZXh0PTB4N2YwMjM4MDFiYTkwKSBhdCAuLi8uLi8uLi8uLi9nbGliL2dtYWlu
LmM6NDIwNAojMiAgMHgwMDAwN2YwMjRmZjg2NDM5IGluIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUg
KGNvbnRleHQ9MHg3ZjAyMzgwMWJhOTAsIGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRp
c3BhdGNoQGVudHJ5PTEsIHNlbGY9PG9wdGltaXNlZCBvdXQ+KSBhdCAuLi8uLi8uLi8uLi9nbGli
L2dtYWluLmM6Mzg5OAojMyAgMHgwMDAwN2YwMjRmZjg2N2QyIGluIGdfbWFpbl9sb29wX3J1biAo
bG9vcD0weDdmMDIzODAxYzQwMCkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5jOjQwOTkKIzQg
IDB4MDAwMDdmMDI1MDU3MmUxNiBpbiBnZGJ1c19zaGFyZWRfdGhyZWFkX2Z1bmMgKHVzZXJfZGF0
YT0weDdmMDIzODAxYmE2MCkgYXQgLi4vLi4vLi4vLi4vZ2lvL2dkYnVzcHJpdmF0ZS5jOjI3NQoj
NSAgMHgwMDAwN2YwMjRmZmFkZTA1IGluIGdfdGhyZWFkX3Byb3h5IChkYXRhPTB4NTU5ODQ2NWI0
NzIwKSBhdCAuLi8uLi8uLi8uLi9nbGliL2d0aHJlYWQuYzo3ODQKIzYgIDB4MDAwMDdmMDI0ZGMz
MzZkYiBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdmMDIzZTk4NDcwMCkgYXQgcHRocmVhZF9jcmVh
dGUuYzo0NjMKIzcgIDB4MDAwMDdmMDI1MjViOTg4ZiBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBz
L3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDUgKFRocmVhZCAweDdm
MDFkZTFmZjcwMCAoTFdQIDE4NTU2KSk6CiMwICAweDAwMDA3ZjAyNTI1YjM4MzkgaW4gc3lzY2Fs
bCAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvc3lzY2FsbC5TOjM4CiMx
ICAweDAwMDA3ZjAyNGZmY2JmMmEgaW4gZ19jb25kX3dhaXRfdW50aWwgKGNvbmQ9Y29uZEBlbnRy
eT0weDdmMDIzODAwMjQwOCwgbXV0ZXg9bXV0ZXhAZW50cnk9MHg3ZjAyMzgwMDI0MDAsIGVuZF90
aW1lPWVuZF90aW1lQGVudHJ5PTE2ODM2MDEzMjEwNSkgYXQgLi4vLi4vLi4vLi4vZ2xpYi9ndGhy
ZWFkLXBvc2l4LmM6MTQ0OQojMiAgMHgwMDAwN2YwMjRmZjU5NGYxIGluIGdfYXN5bmNfcXVldWVf
cG9wX2ludGVybl91bmxvY2tlZCAocXVldWU9MHg3ZjAyMzgwMDI0MDAsIHdhaXQ9d2FpdEBlbnRy
eT0xLCBlbmRfdGltZT0xNjgzNjAxMzIxMDUpIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ2FzeW5jcXVl
dWUuYzo0MjIKIzMgIDB4MDAwMDdmMDI0ZmY1OWFlOCBpbiBnX2FzeW5jX3F1ZXVlX3RpbWVvdXRf
cG9wX3VubG9ja2VkIChxdWV1ZT08b3B0aW1pc2VkIG91dD4sIHRpbWVvdXQ9dGltZW91dEBlbnRy
eT01MDAwMDApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ2FzeW5jcXVldWUuYzo1NzAKIzQgIDB4MDAw
MDdmMDI0ZmZhZTdhNCBpbiBnX3RocmVhZF9wb29sX3dhaXRfZm9yX25ld190YXNrIChwb29sPTxv
cHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4vLi4vZ2xpYi9ndGhyZWFkcG9vbC5jOjI2MgojNSAg
MHgwMDAwN2YwMjRmZmFlN2E0IGluIGdfdGhyZWFkX3Bvb2xfdGhyZWFkX3Byb3h5IChkYXRhPTxv
cHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4vLi4vZ2xpYi9ndGhyZWFkcG9vbC5jOjI5NgojNiAg
MHgwMDAwN2YwMjRmZmFkZTA1IGluIGdfdGhyZWFkX3Byb3h5IChkYXRhPTB4NTU5ODQ2NjUzZWQw
KSBhdCAuLi8uLi8uLi8uLi9nbGliL2d0aHJlYWQuYzo3ODQKIzcgIDB4MDAwMDdmMDI0ZGMzMzZk
YiBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdmMDFkZTFmZjcwMCkgYXQgcHRocmVhZF9jcmVhdGUu
Yzo0NjMKIzggIDB4MDAwMDdmMDI1MjViOTg4ZiBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3Vu
aXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDQgKFRocmVhZCAweDdmMDIz
Zjk4NjcwMCAoTFdQIDE4NTQ3KSk6CiMwICAweDAwMDA3ZjAyNTI1YWNiZjkgaW4gX19HSV9fX3Bv
bGwgKGZkcz0weDU1OTg0NjViYjkzMCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBz
L3VuaXgvc3lzdi9saW51eC9wb2xsLmM6MjkKIzEgIDB4MDAwMDdmMDI0ZmY4NjQzOSBpbiBnX21h
aW5fY29udGV4dF9wb2xsIChwcmlvcml0eT08b3B0aW1pc2VkIG91dD4sIG5fZmRzPTEsIGZkcz0w
eDU1OTg0NjViYjkzMCwgdGltZW91dD08b3B0aW1pc2VkIG91dD4sIGNvbnRleHQ9MHg1NTk4NDY1
YmI5YzApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21haW4uYzo0MjA0CiMyICAweDAwMDA3ZjAyNGZm
ODY0MzkgaW4gZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD1jb250ZXh0QGVudHJ5PTB4
NTU5ODQ2NWJiOWMwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRy
eT0xLCBzZWxmPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4vLi4vLi4vZ2xpYi9nbWFpbi5jOjM4
OTgKIzMgIDB4MDAwMDdmMDI0ZmY4NjU0YyBpbiBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKGNv
bnRleHQ9MHg1NTk4NDY1YmI5YzAsIG1heV9ibG9jaz0xKSBhdCAuLi8uLi8uLi8uLi9nbGliL2dt
YWluLmM6Mzk2NAojNCAgMHgwMDAwN2YwMjNmOThlNDZkIGluICAoKSBhdCAvdXNyL2xpYi94ODZf
NjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28KIzUgIDB4MDAwMDdm
MDI0ZmZhZGUwNSBpbiBnX3RocmVhZF9wcm94eSAoZGF0YT0weDU1OTg0NjViNDBmMCkgYXQgLi4v
Li4vLi4vLi4vZ2xpYi9ndGhyZWFkLmM6Nzg0CiM2ICAweDAwMDA3ZjAyNGRjMzM2ZGIgaW4gc3Rh
cnRfdGhyZWFkIChhcmc9MHg3ZjAyM2Y5ODY3MDApIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDYzCiM3
ICAweDAwMDA3ZjAyNTI1Yjk4OGYgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3Yv
bGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAzIChUaHJlYWQgMHg3ZjAxZGVkZTc3MDAg
KExXUCAxODU1NSkpOgojMCAgMHgwMDAwN2YwMjUyNWFjYmY5IGluIF9fR0lfX19wb2xsIChmZHM9
MHg3ZjAxZDQwMDI4YjAsIG5mZHM9MiwgdGltZW91dD0tMSkgYXQgLi4vc3lzZGVwcy91bml4L3N5
c3YvbGludXgvcG9sbC5jOjI5CiMxICAweDAwMDA3ZjAyNGZmODY0MzkgaW4gZ19tYWluX2NvbnRl
eHRfcG9sbCAocHJpb3JpdHk9PG9wdGltaXNlZCBvdXQ+LCBuX2Zkcz0yLCBmZHM9MHg3ZjAxZDQw
MDI4YjAsIHRpbWVvdXQ9PG9wdGltaXNlZCBvdXQ+LCBjb250ZXh0PTB4N2YwMWQ0MDAwYjIwKSBh
dCAuLi8uLi8uLi8uLi9nbGliL2dtYWluLmM6NDIwNAojMiAgMHgwMDAwN2YwMjRmZjg2NDM5IGlu
IGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHg3ZjAxZDQwMDBiMjAsIGJsb2NrPWJs
b2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNlbGY9PG9wdGltaXNlZCBv
dXQ+KSBhdCAuLi8uLi8uLi8uLi9nbGliL2dtYWluLmM6Mzg5OAojMyAgMHgwMDAwN2YwMjRmZjg2
N2QyIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDdmMDFkNDAwMWFmMCkgYXQgLi4vLi4vLi4v
Li4vZ2xpYi9nbWFpbi5jOjQwOTkKIzQgIDB4MDAwMDdmMDI0ZjFiZGE0MCBpbiBXVEY6OlJ1bkxv
b3A6OnJ1bigpICgpIGF0IC4vU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6OTYK
IzUgIDB4MDAwMDdmMDI0ZjE5NTJjYiBpbiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRv
cigpKCkgY29uc3QgKHRoaXM9PHN5bnRoZXRpYyBwb2ludGVyPikgYXQgLi9Tb3VyY2UvV1RGL3d0
Zi9GdW5jdGlvbi5oOjU2CiM2ICAweDAwMDA3ZjAyNGYxOTUyY2IgaW4gV1RGOjpUaHJlYWQ6OmVu
dHJ5UG9pbnQoV1RGOjpUaHJlYWQ6Ok5ld1RocmVhZENvbnRleHQqKSAobmV3VGhyZWFkQ29udGV4
dD0weDdmMDIzZTBmNzFlMCkgYXQgLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjEyOQoj
NyAgMHgwMDAwN2YwMjRmMWJiYzM5IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikg
KGNvbnRleHQ9PG9wdGltaXNlZCBvdXQ+KSBhdCAuL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0
aHJlYWRzLmNwcDoyMjMKIzggIDB4MDAwMDdmMDI0ZGMzMzZkYiBpbiBzdGFydF90aHJlYWQgKGFy
Zz0weDdmMDFkZWRlNzcwMCkgYXQgcHRocmVhZF9jcmVhdGUuYzo0NjMKIzkgIDB4MDAwMDdmMDI1
MjViOTg4ZiBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQv
Y2xvbmUuUzo5NQoKVGhyZWFkIDIgKFRocmVhZCAweDdmMDI0MDhmMDcwMCAoTFdQIDE4NTQ2KSk6
CiMwICAweDAwMDA3ZjAyNGRjMzlmODUgaW4gZnV0ZXhfYWJzdGltZWRfd2FpdF9jYW5jZWxhYmxl
IChwcml2YXRlPTxvcHRpbWlzZWQgb3V0PiwgYWJzdGltZT0weDdmMDI0MDhlZmIwMCwgZXhwZWN0
ZWQ9MCwgZnV0ZXhfd29yZD0weDdmMDI0ZjQyYTFlNCA8Ym1hbGxvYzo6U2FmZVBlclByb2Nlc3NT
dG9yYWdlVHJhaXRzPGJtYWxsb2M6OlNjYXZlbmdlcj46OlN0b3JhZ2U6OnNfbWVtb3J5KzY4Pikg
YXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvZnV0ZXgtaW50ZXJuYWwuaDoyMDUKIzEgIDB4
MDAwMDdmMDI0ZGMzOWY4NSBpbiBfX3B0aHJlYWRfY29uZF93YWl0X2NvbW1vbiAoYWJzdGltZT0w
eDdmMDI0MDhlZmIwMCwgbXV0ZXg9MHg1NTk4NDY1OWI3ZDAsIGNvbmQ9MHg3ZjAyNGY0MmExYjgg
PGJtYWxsb2M6OlNhZmVQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5nZXI+
OjpTdG9yYWdlOjpzX21lbW9yeSsyND4pIGF0IHB0aHJlYWRfY29uZF93YWl0LmM6NTM5CiMyICAw
eDAwMDA3ZjAyNGRjMzlmODUgaW4gX19wdGhyZWFkX2NvbmRfdGltZWR3YWl0IChjb25kPTB4N2Yw
MjRmNDJhMWI4IDxibWFsbG9jOjpTYWZlUGVyUHJvY2Vzc1N0b3JhZ2VUcmFpdHM8Ym1hbGxvYzo6
U2NhdmVuZ2VyPjo6U3RvcmFnZTo6c19tZW1vcnkrMjQ+LCBtdXRleD0weDU1OTg0NjU5YjdkMCwg
YWJzdGltZT0weDdmMDI0MDhlZmIwMCkgYXQgcHRocmVhZF9jb25kX3dhaXQuYzo2NjcKIzMgIDB4
MDAwMDdmMDI0ZjFjOWQwOSBpbiBfX2d0aHJlYWRfY29uZF90aW1lZHdhaXQgKF9fYWJzX3RpbWVv
dXQ9MHg3ZjAyNDA4ZWZiMDAsIF9fbXV0ZXg9PG9wdGltaXNlZCBvdXQ+LCBfX2NvbmQ9MHg3ZjAy
NGY0MmExYjggPGJtYWxsb2M6OlNhZmVQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpT
Y2F2ZW5nZXI+OjpTdG9yYWdlOjpzX21lbW9yeSsyND4pIGF0IC91c3IvaW5jbHVkZS94ODZfNjQt
bGludXgtZ251L2MrKy83L2JpdHMvZ3Roci1kZWZhdWx0Lmg6ODcxCiM0ICAweDAwMDA3ZjAyNGYx
YzlkMDkgaW4gc3RkOjpjb25kaXRpb25fdmFyaWFibGU6Ol9fd2FpdF91bnRpbF9pbXBsPHN0ZDo6
Y2hyb25vOjpkdXJhdGlvbjxsb25nLCBzdGQ6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+KHN0
ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4mLCBzdGQ6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6
OmNocm9ubzo6X1YyOjpzeXN0ZW1fY2xvY2ssIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxsb25nLCBz
dGQ6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+IGNvbnN0JikgKF9fYXRpbWU9Li4uLCBfX2xv
Y2s9PHN5bnRoZXRpYyBwb2ludGVyPi4uLiwgdGhpcz0weDdmMDI0ZjQyYTFiOCA8Ym1hbGxvYzo6
U2FmZVBlclByb2Nlc3NTdG9yYWdlVHJhaXRzPGJtYWxsb2M6OlNjYXZlbmdlcj46OlN0b3JhZ2U6
OnNfbWVtb3J5KzI0PikgYXQgL3Vzci9pbmNsdWRlL2MrKy83L2NvbmRpdGlvbl92YXJpYWJsZTox
NjYKIzUgIDB4MDAwMDdmMDI0ZjFjOWQwOSBpbiBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZTo6d2Fp
dF91bnRpbDxzdGQ6OmNocm9ubzo6ZHVyYXRpb248bG9uZywgc3RkOjpyYXRpbzwxbCwgMTAwMDAw
MDAwMGw+ID4gPihzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+Jiwgc3RkOjpjaHJvbm86OnRp
bWVfcG9pbnQ8c3RkOjpjaHJvbm86Ol9WMjo6c3lzdGVtX2Nsb2NrLCBzdGQ6OmNocm9ubzo6ZHVy
YXRpb248bG9uZywgc3RkOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPiBjb25zdCYpIChfX2F0
aW1lPS4uLiwgX19sb2NrPTxzeW50aGV0aWMgcG9pbnRlcj4uLi4sIHRoaXM9MHg3ZjAyNGY0MmEx
YjggPGJtYWxsb2M6OlNhZmVQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5n
ZXI+OjpTdG9yYWdlOjpzX21lbW9yeSsyND4pIGF0IC91c3IvaW5jbHVkZS9jKysvNy9jb25kaXRp
b25fdmFyaWFibGU6MTA2CiM2ICAweDAwMDA3ZjAyNGYxYzlkMDkgaW4gc3RkOjpfVjI6OmNvbmRp
dGlvbl92YXJpYWJsZV9hbnk6OndhaXRfdW50aWw8c3RkOjp1bmlxdWVfbG9jazxibWFsbG9jOjpN
dXRleD4sIHN0ZDo6Y2hyb25vOjpfVjI6OnN5c3RlbV9jbG9jaywgc3RkOjpjaHJvbm86OmR1cmF0
aW9uPGxvbmcsIHN0ZDo6cmF0aW88MWwsIDEwMDAwMDAwMDBsPiA+ID4oc3RkOjp1bmlxdWVfbG9j
azxibWFsbG9jOjpNdXRleD4mLCBzdGQ6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6OmNocm9ubzo6
X1YyOjpzeXN0ZW1fY2xvY2ssIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxsb25nLCBzdGQ6OnJhdGlv
PDFsLCAxMDAwMDAwMDAwbD4gPiA+IGNvbnN0JikgKF9fYXRpbWU9Li4uLCBfX2xvY2s9PHN5bnRo
ZXRpYyBwb2ludGVyPi4uLiwgdGhpcz0weDdmMDI0ZjQyYTFiOCA8Ym1hbGxvYzo6U2FmZVBlclBy
b2Nlc3NTdG9yYWdlVHJhaXRzPGJtYWxsb2M6OlNjYXZlbmdlcj46OlN0b3JhZ2U6OnNfbWVtb3J5
KzI0PikgYXQgL3Vzci9pbmNsdWRlL2MrKy83L2NvbmRpdGlvbl92YXJpYWJsZToyNzQKIzcgIDB4
MDAwMDdmMDI0ZjFjOWQwOSBpbiBzdGQ6Ol9WMjo6Y29uZGl0aW9uX3ZhcmlhYmxlX2FueTo6d2Fp
dF91bnRpbDxzdGQ6OnVuaXF1ZV9sb2NrPGJtYWxsb2M6Ok11dGV4Piwgc3RkOjpjaHJvbm86Ol9W
Mjo6c3lzdGVtX2Nsb2NrLCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248bG9uZyBpbnQsIHN0ZDo6cmF0
aW88MSwgMTAwMDAwMDAwMD4gPiwgYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRSdW5Mb29wKCk6
OjxsYW1iZGEoKT4gPiAoX19wPS4uLiwgX19hdGltZT0uLi4sIF9fbG9jaz08c3ludGhldGljIHBv
aW50ZXI+Li4uLCB0aGlzPTB4N2YwMjRmNDJhMWI4IDxibWFsbG9jOjpTYWZlUGVyUHJvY2Vzc1N0
b3JhZ2VUcmFpdHM8Ym1hbGxvYzo6U2NhdmVuZ2VyPjo6U3RvcmFnZTo6c19tZW1vcnkrMjQ+KSBh
dCAvdXNyL2luY2x1ZGUvYysrLzcvY29uZGl0aW9uX3ZhcmlhYmxlOjI4NQojOCAgMHgwMDAwN2Yw
MjRmMWM5ZDA5IGluIHN0ZDo6X1YyOjpjb25kaXRpb25fdmFyaWFibGVfYW55Ojp3YWl0X2Zvcjxz
dGQ6OnVuaXF1ZV9sb2NrPGJtYWxsb2M6Ok11dGV4PiwgbG9uZyBpbnQsIHN0ZDo6cmF0aW88MSwg
MTAwMD4sIGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCgpOjo8bGFtYmRhKCk+ID4g
KF9fcnRpbWU9PHN5bnRoZXRpYyBwb2ludGVyPi4uLiwgX19wPS4uLiwgX19sb2NrPTxzeW50aGV0
aWMgcG9pbnRlcj4uLi4sIHRoaXM9MHg3ZjAyNGY0MmExYjggPGJtYWxsb2M6OlNhZmVQZXJQcm9j
ZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5nZXI+OjpTdG9yYWdlOjpzX21lbW9yeSsy
ND4pIGF0IC91c3IvaW5jbHVkZS9jKysvNy9jb25kaXRpb25fdmFyaWFibGU6MzAwCiM5ICAweDAw
MDA3ZjAyNGYxYzlkMDkgaW4gYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRSdW5Mb29wKCkgKHRo
aXM9MHg3ZjAyNGY0MmExYTAgPGJtYWxsb2M6OlNhZmVQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxi
bWFsbG9jOjpTY2F2ZW5nZXI+OjpTdG9yYWdlOjpzX21lbW9yeT4pIGF0IC4vU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9TY2F2ZW5nZXIuY3BwOjE2NgojMTAgMHgwMDAwN2YwMjQ5MWU5MzczIGluICAo
KSBhdCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42CiMxMSAweDAwMDA3
ZjAyNGRjMzM2ZGIgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3ZjAyNDA4ZjA3MDApIGF0IHB0aHJl
YWRfY3JlYXRlLmM6NDYzCiMxMiAweDAwMDA3ZjAyNTI1Yjk4OGYgaW4gY2xvbmUgKCkgYXQgLi4v
c3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAxIChUaHJl
YWQgMHg3ZjAyNTU2OTNhYzAgKExXUCAxODU0MykpOgojMCAgMHgwMDAwN2YwMjUwMjgwY2QxIGlu
IGdfdHlwZV9jbGFzc19yZWYgKHR5cGU9MTE4NzY2NzA4OCkgYXQgLi4vLi4vLi4vLi4vZ29iamVj
dC9ndHlwZS5jOjI5MTQKIzEgIDB4MDAwMDdmMDFkZWRlYzZiZCBpbiBnZWFyeV93ZWJfZXh0ZW5z
aW9uX29uX2NvbnNvbGVfbWVzc2FnZSAoc2VsZj0weDdmMDIzNDAxMDEwMCBbR2VhcnlXZWJFeHRl
bnNpb25dLCBwYWdlPTB4NTU5ODQ2YTM5OWEwIFtXZWJLaXRXZWJQYWdlXSwgbWVzc2FnZT0weDdm
ZmZiZTFlNTE3MCkgYXQgL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGE6NTcKIzIgIDB4MDAwMDdmMDFk
ZWRlYzAxOSBpbiBfZ2Vhcnlfd2ViX2V4dGVuc2lvbl9vbl9jb25zb2xlX21lc3NhZ2Vfd2Via2l0
X3dlYl9wYWdlX2NvbnNvbGVfbWVzc2FnZV9zZW50IChfc2VuZGVyPTB4NTU5ODQ2YTM5OWEwIFtX
ZWJLaXRXZWJQYWdlXSwgY29uc29sZV9tZXNzYWdlPTB4N2ZmZmJlMWU1MTcwLCBzZWxmPTB4N2Yw
MjM0MDEwMTAwKSBhdCAvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93
ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYTo0MAojNiAgMHgwMDAwN2YwMjUw
MjdiZTBmIGluIDxlbWl0IHNpZ25hbCA/Pz8gb24gaW5zdGFuY2UgMHg1NTk4NDZhMzk5YTAgW1dl
YktpdFdlYlBhZ2VdPiAoaW5zdGFuY2U9aW5zdGFuY2VAZW50cnk9MHg1NTk4NDZhMzk5YTAsIHNp
Z25hbF9pZD08b3B0aW1pc2VkIG91dD4sIGRldGFpbD1kZXRhaWxAZW50cnk9MCkgYXQgLi4vLi4v
Li4vLi4vZ29iamVjdC9nc2lnbmFsLmM6MzQ0NwogICAgIzMgIDB4MDAwMDdmMDI1MDI1ZmY2ZCBp
biBnX2Nsb3N1cmVfaW52b2tlIChjbG9zdXJlPTB4NTU5ODQ2YTc0ZDQwLCByZXR1cm5fdmFsdWU9
MHgwLCBuX3BhcmFtX3ZhbHVlcz0yLCBwYXJhbV92YWx1ZXM9MHg3ZmZmYmUxZTRlYzAsIGludm9j
YXRpb25faGludD0weDdmZmZiZTFlNGU0MCkgYXQgLi4vLi4vLi4vLi4vZ29iamVjdC9nY2xvc3Vy
ZS5jOjgwNAogICAgIzQgIDB4MDAwMDdmMDI1MDI3MmQzZSBpbiBzaWduYWxfZW1pdF91bmxvY2tl
ZF9SIChub2RlPW5vZGVAZW50cnk9MHg1NTk4NDY2M2YxMjAsIGRldGFpbD1kZXRhaWxAZW50cnk9
MCwgaW5zdGFuY2U9aW5zdGFuY2VAZW50cnk9MHg1NTk4NDZhMzk5YTAsIGVtaXNzaW9uX3JldHVy
bj1lbWlzc2lvbl9yZXR1cm5AZW50cnk9MHgwLCBpbnN0YW5jZV9hbmRfcGFyYW1zPWluc3RhbmNl
X2FuZF9wYXJhbXNAZW50cnk9MHg3ZmZmYmUxZTRlYzApIGF0IC4uLy4uLy4uLy4uL2dvYmplY3Qv
Z3NpZ25hbC5jOjM2MzUKICAgICM1ICAweDAwMDA3ZjAyNTAyN2IzZjUgaW4gZ19zaWduYWxfZW1p
dF92YWxpc3QgKGluc3RhbmNlPTxvcHRpbWlzZWQgb3V0Piwgc2lnbmFsX2lkPTxvcHRpbWlzZWQg
b3V0PiwgZGV0YWlsPTxvcHRpbWlzZWQgb3V0PiwgdmFyX2FyZ3M9dmFyX2FyZ3NAZW50cnk9MHg3
ZmZmYmUxZTUwOTApIGF0IC4uLy4uLy4uLy4uL2dvYmplY3QvZ3NpZ25hbC5jOjMzOTEKIzcgIDB4
MDAwMDdmMDI1MzUyYTFlYyBpbiB3ZWJraXRXZWJQYWdlRGlkU2VuZENvbnNvbGVNZXNzYWdlKFdl
YktpdFdlYlBhZ2UqLCBKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBXVEY6
OlN0cmluZyBjb25zdCYsIHVuc2lnbmVkIGludCwgV1RGOjpTdHJpbmcgY29uc3QmKSAod2ViUGFn
ZT0weDU1OTg0NmEzOTlhMCBbV2ViS2l0V2ViUGFnZV0sIHNvdXJjZT1zb3VyY2VAZW50cnk9SlND
OjpNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBsZXZlbD1sZXZlbEBlbnRyeT1KU0M6Ok1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIG1lc3NhZ2U9Li4uLCBsaW5lTnVtYmVyPWxpbmVOdW1iZXJAZW50cnk9MCwg
c291cmNlSUQ9Li4uKSBhdCAuL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcDoxNjAKIzggIDB4MDAwMDdmMDI1MzUyY2ExYiBp
biBQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdlYktpdDo6
V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCB1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGNvbnN0JikgKHRoaXM9MHg1NTk4NDZhNzRjNzAsIHBhZ2U9Li4uLCBpZGVudGlm
aWVyPTxvcHRpbWlzZWQgb3V0PiwgZXJyb3I9Li4uKSBhdCAuL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcDozMjEKIzkgIDB4
MDAwMDdmMDI1MzM4MzAwNSBpbiBXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjb25zdCYpICh0aGlzPTB4NTU5ODQ2NzE4MGIwLCBpZGVu
dGlmaWVyPTMsIGVycm9yPS4uLikgYXQgLi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOjI3OQojMTAgMHgwMDAwN2YwMjU0MTBi
ZmE4IGluIFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGYWlsVG9Mb2FkKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjb25zdCYpICh0aGlz
PTB4NTU5ODQ2NWVhNWYwLCBsb2FkZXI9bG9hZGVyQGVudHJ5PTB4N2YwMjNlMDFjMDAwLCBlcnJv
cj0uLi4pIGF0IC4vU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNw
cDoxMDYKIzExIDB4MDAwMDdmMDI1NDEwZGZhZCBpbiBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2xlYW51cEZvckVycm9yKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY29uc3QmKSAodGhpcz10aGlz
QGVudHJ5PTB4N2YwMjNlMDFjMDAwLCBlcnJvcj0uLi4pIGF0IC4vU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcDo1NjcKIzEyIDB4MDAwMDdmMDI1NDEyNGNlNyBpbiBXZWJD
b3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNv
bnN0JikgKHRoaXM9MHg3ZjAyM2UwMWMwMDAsIGVycm9yPS4uLikgYXQgLi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOjYzOQojMTMgMHgwMDAwN2YwMjUzNDRjZjAz
IGluIElQQzo6Y2FsbE1lbWJlckZ1bmN0aW9uSW1wbDxXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVy
LCB2b2lkIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjoqKShXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGNvbnN0JiksIHN0ZDo6dHVwbGU8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4sIDB1bD4oV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRlciosIHZvaWQgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6
OiopKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY29uc3QmKSwgc3RkOjp0dXBsZTxXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPiYmLCBzdGQ6OmludGVnZXJfc2VxdWVuY2U8dW5zaWduZWQgbG9uZywgMHVs
PikgKGFyZ3M9Li4uLCBmdW5jdGlvbj08b3B0aW1pc2VkIG91dD4sIG9iamVjdD0weDdmMDIzZTAz
YzgxOCkgYXQgLi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6NDAK
IzE0IDB4MDAwMDdmMDI1MzQ0Y2YwMyBpbiBJUEM6OmNhbGxNZW1iZXJGdW5jdGlvbjxXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyLCB2b2lkIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjoqKShX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNvbnN0JiksIHN0ZDo6dHVwbGU8V2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvcj4sIHN0ZDo6aW50ZWdlcl9zZXF1ZW5jZTx1bnNpZ25lZCBsb25nLCAwdWw+ID4oc3Rk
Ojp0dXBsZTxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmLCBXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZGVyKiwgdm9pZCAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6KikoV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBjb25zdCYpKSAoZnVuY3Rpb249PG9wdGltaXNlZCBvdXQ+LCBvYmplY3Q9MHg3ZjAy
M2UwM2M4MTgsIGFyZ3M9Li4uKSBhdCAuL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRs
ZU1lc3NhZ2UuaDo0NgojMTUgMHgwMDAwN2YwMjUzNDRjZjAzIGluIElQQzo6aGFuZGxlTWVzc2Fn
ZTxNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZEZhaWxSZXNvdXJjZUxvYWQsIFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXIsIHZvaWQgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6Oiop
KFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY29uc3QmKT4oSVBDOjpEZWNvZGVyJiwgV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlciosIHZvaWQgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OiopKFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgY29uc3QmKSkgKGRlY29kZXI9Li4uLCBvYmplY3Q9b2JqZWN0
QGVudHJ5PTB4N2YwMjNlMDNjODE4LCBmdW5jdGlvbj0odm9pZCAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRlcjo6KikoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlciAqIGNvbnN0LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yICYpKSAweDdmMDI1MzMzYWEyMCA8V2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNvbnN0
Jik+KSBhdCAuL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaDoxMjYK
IzE2IDB4MDAwMDdmMDI1MzQ0Y2MzNCBpbiBXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpICh0aGlzPTB4N2YwMjNlMDNjODE4LCBjb25uZWN0aW9uPS4uLiwgZGVjb2Rlcj0uLi4p
IGF0IC4vb2JqLXg4Nl82NC1saW51eC1nbnUvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYlJlc291
cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcDo3MwojMTcgMHgwMDAwN2YwMjUzMTg3ZDNiIGlu
IElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkRl
Y29kZXIsIHN0ZDo6ZGVmYXVsdF9kZWxldGU8SVBDOjpEZWNvZGVyPiA+KSAodGhpcz0weDdmMDIz
ZTBlNjFiOCwgbWVzc2FnZT1zdGQ6OnVuaXF1ZV9wdHI8SVBDOjpEZWNvZGVyPiA9IHsuLi59KSBh
dCAuL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOjkzNAojMTggMHgw
MDAwN2YwMjUzMTg4NjI1IGluIElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlKCkg
KHRoaXM9MHg3ZjAyM2UwZTYxYjgpIGF0IC4vU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHA6OTY1CiMxOSAweDAwMDA3ZjAyNGYxOTQxMDMgaW4gV1RGOjpGdW5jdGlvbjx2
b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTxzeW50aGV0aWMgcG9pbnRlcj4pIGF0
IC4vU291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1NgojMjAgMHgwMDAwN2YwMjRmMTk0MTAzIGlu
IFdURjo6UnVuTG9vcDo6cGVyZm9ybVdvcmsoKSAodGhpcz0weDdmMDIzZTBmOTAwMCkgYXQgLi9T
b3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcDoxMjMKIzIxIDB4MDAwMDdmMDI0ZjFiZDA5OSBpbiBX
VEY6OlJ1bkxvb3A6OjxsYW1iZGEoZ3BvaW50ZXIpPjo6b3BlcmF0b3IoKSAoX19jbG9zdXJlPTB4
MCwgdXNlckRhdGE9PG9wdGltaXNlZCBvdXQ+KSBhdCAuL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVu
TG9vcEdMaWIuY3BwOjY4CiMyMiAweDAwMDA3ZjAyNGYxYmQwOTkgaW4gV1RGOjpSdW5Mb29wOjo8
bGFtYmRhKGdwb2ludGVyKT46Ol9GVU4oZ3BvaW50ZXIpICgpIGF0IC4vU291cmNlL1dURi93dGYv
Z2xpYi9SdW5Mb29wR0xpYi5jcHA6NzAKIzIzIDB4MDAwMDdmMDI0ZmY4NjBmNSBpbiBnX21haW5f
ZGlzcGF0Y2ggKGNvbnRleHQ9MHg1NTk4NDY1YjY5YTApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21h
aW4uYzozMTc3CiMyNCAweDAwMDA3ZjAyNGZmODYwZjUgaW4gZ19tYWluX2NvbnRleHRfZGlzcGF0
Y2ggKGNvbnRleHQ9Y29udGV4dEBlbnRyeT0weDU1OTg0NjViNjlhMCkgYXQgLi4vLi4vLi4vLi4v
Z2xpYi9nbWFpbi5jOjM4MzAKIzI1IDB4MDAwMDdmMDI0ZmY4NjRjMCBpbiBnX21haW5fY29udGV4
dF9pdGVyYXRlIChjb250ZXh0PTB4NTU5ODQ2NWI2OWEwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBk
aXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRpbWlzZWQgb3V0PikgYXQgLi4vLi4v
Li4vLi4vZ2xpYi9nbWFpbi5jOjM5MDMKIzI2IDB4MDAwMDdmMDI0ZmY4NjdkMiBpbiBnX21haW5f
bG9vcF9ydW4gKGxvb3A9MHg1NTk4NDY2MmZmZDApIGF0IC4uLy4uLy4uLy4uL2dsaWIvZ21haW4u
Yzo0MDk5CiMyNyAweDAwMDA3ZjAyNGYxYmRhNDAgaW4gV1RGOjpSdW5Mb29wOjpydW4oKSAoKSBh
dCAuL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjk2CiMyOCAweDAwMDA3ZjAy
NTM1ZWFkNDggaW4gV2ViS2l0OjpDaGlsZFByb2Nlc3NNYWluPFdlYktpdDo6V2ViUHJvY2Vzcywg
V2ViS2l0OjpXZWJQcm9jZXNzTWFpbj4oaW50LCBjaGFyKiopIChhcmdjPTxvcHRpbWlzZWQgb3V0
PiwgYXJndj0weDdmZmZiZTFlNTc4OCkgYXQgLi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0No
aWxkUHJvY2Vzc01haW4uaDo2MQojMjkgMHgwMDAwN2YwMjUyNGI5Yjk3IGluIF9fbGliY19zdGFy
dF9tYWluIChtYWluPTB4NTU5ODQ1M2RlOGQwIDxtYWluKGludCwgY2hhcioqKT4sIGFyZ2M9Mywg
YXJndj0weDdmZmZiZTFlNTc4OCwgaW5pdD08b3B0aW1pc2VkIG91dD4sIGZpbmk9PG9wdGltaXNl
ZCBvdXQ+LCBydGxkX2Zpbmk9PG9wdGltaXNlZCBvdXQ+LCBzdGFja19lbmQ9MHg3ZmZmYmUxZTU3
NzgpIGF0IC4uL2NzdS9saWJjLXN0YXJ0LmM6MzEwCiMzMCAweDAwMDA1NTk4NDUzZGU5NWEgaW4g
X3N0YXJ0ICgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>336549</attachid>
            <date>2018-03-26 16:20:59 -0700</date>
            <delta_ts>2018-03-26 16:21:46 -0700</delta_ts>
            <desc>Generated web extension code 2.20</desc>
            <filename>web-process-extension.c</filename>
            <type>text/x-csrc</type>
            <size>49440</size>
            <attacher name="Michael Gratton">mike</attacher>
            
              <data encoding="base64">Lyogd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMgZ2VuZXJhdGVkIGJ5IHZhbGFjIDAuNDAuMCwgdGhl
IFZhbGEgY29tcGlsZXIKICogZ2VuZXJhdGVkIGZyb20gd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEsIGRvIG5vdCBtb2RpZnkgKi8KCi8qCiAqIENvcHlyaWdodCAyMDE2IE1pY2hhZWwgR3JhdHRv
biA8bWlrZUB2ZWUubmV0PgogKgogKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogKHZlcnNpb24gMi4xIG9yIGxh
dGVyKS4gU2VlIHRoZSBDT1BZSU5HIGZpbGUgaW4gdGhpcyBkaXN0cmlidXRpb24uCiAqLwoKCiNp
bmNsdWRlIDxnbGliLmg+CiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVkZSAid2Via2l0
Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oIgojaW5jbHVkZSAiZ2VhcnktZW5naW5lLmgiCiNpbmNs
dWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2lu
Y2x1ZGUgPGxpYnNvdXAvc291cC5oPgojaW5jbHVkZSA8Z2RrL2dkay5oPgojaW5jbHVkZSAiSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oIgoKCiNkZWZpbmUgVFlQRV9HRUFSWV9XRUJfRVhURU5T
SU9OIChnZWFyeV93ZWJfZXh0ZW5zaW9uX2dldF90eXBlICgpKQojZGVmaW5lIEdFQVJZX1dFQl9F
WFRFTlNJT04ob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBUWVBFX0dF
QVJZX1dFQl9FWFRFTlNJT04sIEdlYXJ5V2ViRXh0ZW5zaW9uKSkKI2RlZmluZSBHRUFSWV9XRUJf
RVhURU5TSU9OX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyks
IFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTiwgR2VhcnlXZWJFeHRlbnNpb25DbGFzcykpCiNkZWZp
bmUgSVNfR0VBUllfV0VCX0VYVEVOU0lPTihvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSAoKG9iaiksIFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTikpCiNkZWZpbmUgSVNfR0VBUllfV0VC
X0VYVEVOU0lPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3Mp
LCBUWVBFX0dFQVJZX1dFQl9FWFRFTlNJT04pKQojZGVmaW5lIEdFQVJZX1dFQl9FWFRFTlNJT05f
R0VUX0NMQVNTKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvYmopLCBUWVBFX0dF
QVJZX1dFQl9FWFRFTlNJT04sIEdlYXJ5V2ViRXh0ZW5zaW9uQ2xhc3MpKQoKdHlwZWRlZiBzdHJ1
Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uIEdlYXJ5V2ViRXh0ZW5zaW9uOwp0eXBlZGVmIHN0cnVjdCBf
R2VhcnlXZWJFeHRlbnNpb25DbGFzcyBHZWFyeVdlYkV4dGVuc2lvbkNsYXNzOwojZGVmaW5lIF9n
X29iamVjdF91bnJlZjAodmFyKSAoKHZhciA9PSBOVUxMKSA/IE5VTEwgOiAodmFyID0gKGdfb2Jq
ZWN0X3VucmVmICh2YXIpLCBOVUxMKSkpCnR5cGVkZWYgc3RydWN0IF9HZWFyeVdlYkV4dGVuc2lv
blByaXZhdGUgR2VhcnlXZWJFeHRlbnNpb25Qcml2YXRlOwplbnVtICB7CglHRUFSWV9XRUJfRVhU
RU5TSU9OXzBfUFJPUEVSVFksCglHRUFSWV9XRUJfRVhURU5TSU9OX05VTV9QUk9QRVJUSUVTCn07
CnN0YXRpYyBHUGFyYW1TcGVjKiBnZWFyeV93ZWJfZXh0ZW5zaW9uX3Byb3BlcnRpZXNbR0VBUllf
V0VCX0VYVEVOU0lPTl9OVU1fUFJPUEVSVElFU107CnR5cGVkZWYgc3RydWN0IF9CbG9jazFEYXRh
IEJsb2NrMURhdGE7CiNkZWZpbmUgX2dfZnJlZTAodmFyKSAodmFyID0gKGdfZnJlZSAodmFyKSwg
TlVMTCkpCiNkZWZpbmUgX192YWxhX1NvdXBVUklfZnJlZTAodmFyKSAoKHZhciA9PSBOVUxMKSA/
IE5VTEwgOiAodmFyID0gKF92YWxhX1NvdXBVUklfZnJlZSAodmFyKSwgTlVMTCkpKQojZGVmaW5l
IF9nX2Vycm9yX2ZyZWUwKHZhcikgKCh2YXIgPT0gTlVMTCkgPyBOVUxMIDogKHZhciA9IChnX2Vy
cm9yX2ZyZWUgKHZhciksIE5VTEwpKSkKCnN0cnVjdCBfR2VhcnlXZWJFeHRlbnNpb24gewoJR09i
amVjdCBwYXJlbnRfaW5zdGFuY2U7CglHZWFyeVdlYkV4dGVuc2lvblByaXZhdGUgKiBwcml2Owp9
OwoKc3RydWN0IF9HZWFyeVdlYkV4dGVuc2lvbkNsYXNzIHsKCUdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7Cn07CgpzdHJ1Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uUHJpdmF0ZSB7CglXZWJLaXRXZWJF
eHRlbnNpb24qIGV4dGVuc2lvbjsKfTsKCnN0cnVjdCBfQmxvY2sxRGF0YSB7CglpbnQgX3JlZl9j
b3VudF87CglHZWFyeVdlYkV4dGVuc2lvbiogc2VsZjsKCVdlYktpdFdlYlBhZ2UqIHdlYl9wYWdl
Owp9OwoKCnN0YXRpYyBncG9pbnRlciBnZWFyeV93ZWJfZXh0ZW5zaW9uX3BhcmVudF9jbGFzcyA9
IE5VTEw7Cgp2b2lkIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemVfd2l0aF91c2VyX2Rh
dGEgKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50KiBkYXRhKTsKR1R5cGUgZ2Vh
cnlfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZSAodm9pZCkgR19HTlVDX0NPTlNUOwpHZWFyeVdlYkV4
dGVuc2lvbiogZ2Vhcnlfd2ViX2V4dGVuc2lvbl9uZXcgKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uKTsKR2VhcnlXZWJFeHRlbnNpb24qIGdlYXJ5X3dlYl9leHRlbnNpb25fY29uc3RydWN0
IChHVHlwZSBvYmplY3RfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbik7CiNkZWZpbmUgR0VB
UllfV0VCX0VYVEVOU0lPTl9HRVRfUFJJVkFURShvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFICgobyksIFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTiwgR2VhcnlXZWJFeHRlbnNpb25Qcml2
YXRlKSkKc3RhdGljIHZvaWQgX19sYW1iZGE0XyAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAg
ICAgICAgICAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sCiAgICAgICAgICAg
ICAgICAgV2ViS2l0V2ViUGFnZSogd2ViX3BhZ2UpOwpzdGF0aWMgQmxvY2sxRGF0YSogYmxvY2sx
X2RhdGFfcmVmIChCbG9jazFEYXRhKiBfZGF0YTFfKTsKc3RhdGljIHZvaWQgYmxvY2sxX2RhdGFf
dW5yZWYgKHZvaWQgKiBfdXNlcmRhdGFfKTsKc3RhdGljIHZvaWQgZ2Vhcnlfd2ViX2V4dGVuc2lv
bl9vbl9jb25zb2xlX21lc3NhZ2UgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb25zb2xl
TWVzc2FnZSogbWVzc2FnZSk7CnN0YXRpYyB2b2lkIF9nZWFyeV93ZWJfZXh0ZW5zaW9uX29uX2Nv
bnNvbGVfbWVzc2FnZV93ZWJraXRfd2ViX3BhZ2VfY29uc29sZV9tZXNzYWdlX3NlbnQgKFdlYktp
dFdlYlBhZ2UqIF9zZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q29uc29s
ZU1lc3NhZ2UqIGNvbnNvbGVfbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p
bnRlciBzZWxmKTsKc3RhdGljIGdib29sZWFuIGdlYXJ5X3dlYl9leHRlbnNpb25fb25fc2VuZF9y
ZXF1ZXN0IChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJ
UmVzcG9uc2UqIHJlc3BvbnNlKTsKc3RhdGljIGdib29sZWFuIF9nZWFyeV93ZWJfZXh0ZW5zaW9u
X29uX3NlbmRfcmVxdWVzdF93ZWJraXRfd2ViX3BhZ2Vfc2VuZF9yZXF1ZXN0IChXZWJLaXRXZWJQ
YWdlKiBfc2VuZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVz
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdGVkX3Jlc3Bv
bnNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgc2VsZik7CnN0YXRpYyB2b2lkIF9fbGFt
YmRhNV8gKEJsb2NrMURhdGEqIF9kYXRhMV8pOwpzdGF0aWMgdm9pZCBnZWFyeV93ZWJfZXh0ZW5z
aW9uX3NlbGVjdGlvbl9jaGFuZ2VkIChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlKTsK
c3RhdGljIHZvaWQgX19fbGFtYmRhNV9fd2Via2l0X3dlYl9lZGl0b3Jfc2VsZWN0aW9uX2NoYW5n
ZWQgKFdlYktpdFdlYkVkaXRvciogX3NlbmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgc2VsZik7CnN0YXRpYyB2b2lkIF9f
X2xhbWJkYTRfX3dlYmtpdF93ZWJfZXh0ZW5zaW9uX3BhZ2VfY3JlYXRlZCAoV2ViS2l0V2ViRXh0
ZW5zaW9uKiBfc2VuZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSogd2ViX3BhZ2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBzZWxmKTsKY29uc3QgZ2No
YXIqIHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfbGV2ZWxfdG9fc3RyaW5nIChXZWJLaXRDb25zb2xl
TWVzc2FnZUxldmVsIHNlbGYpOwpjb25zdCBnY2hhciogd2Via2l0X2NvbnNvbGVfbWVzc2FnZV9z
b3VyY2VfdG9fc3RyaW5nIChXZWJLaXRDb25zb2xlTWVzc2FnZVNvdXJjZSBzZWxmKTsKc3RhdGlj
IGdib29sZWFuIF92YWxhX3N0cmluZ19hcnJheV9jb250YWlucyAoY29uc3QgZ2NoYXIqICogc3Rh
Y2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YWNrX2xlbmd0
aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogbmVl
ZGxlKTsKc3RhdGljIGdib29sZWFuIGdlYXJ5X3dlYl9leHRlbnNpb25fc2hvdWxkX2xvYWRfcmVt
b3RlX2ltYWdlcyAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSk7
CnN0YXRpYyB2b2lkIGdlYXJ5X3dlYl9leHRlbnNpb25fcmVtb3RlX2ltYWdlX2xvYWRfYmxvY2tl
ZCAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlKTsKc3RhdGljIHZvaWQg
X3ZhbGFfU291cFVSSV9mcmVlIChTb3VwVVJJKiBzZWxmKTsKc3RhdGljIEpTVmFsdWVSZWYqIGdl
YXJ5X3dlYl9leHRlbnNpb25fZXhlY3V0ZV9zY3JpcHQgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxm
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU0NvbnRl
eHRSZWYgY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIqIHNjcmlwdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2ludCBsaW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHRXJyb3IqKiBlcnJvcik7CnN0YXRpYyBKU1ZhbHVlUmVmKiBf
SlNfdmFsdWVfZHVwIChKU1ZhbHVlUmVmKiBzZWxmKTsKc3RhdGljIHZvaWQgZ2Vhcnlfd2ViX2V4
dGVuc2lvbl9maW5hbGl6ZSAoR09iamVjdCAqIG9iaik7CgpzdGF0aWMgY29uc3QgZ2NoYXIqIEdF
QVJZX1dFQl9FWFRFTlNJT05fQUxMT1dFRF9TQ0hFTUVTWzNdID0geyJjaWQiLCAiZ2VhcnkiLCAi
ZGF0YSJ9OwoKLyoqCiAqIEluaXRpYWxpc2VzIEdlYXJ5V2ViRXh0ZW5zaW9uIGZvciBXZWJLaXQg
d2ViIHByb2Nlc3Nlcy4KICovCnZvaWQKd2Via2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZV93
aXRoX3VzZXJfZGF0YSAoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50KiBkYXRhKQp7Cgln
Ym9vbGVhbiBsb2dnaW5nX2VuYWJsZWQgPSBGQUxTRTsKCWdib29sZWFuIF90bXAwXzsKCUdlYXJ5
V2ViRXh0ZW5zaW9uKiBpbnN0YW5jZSA9IE5VTEw7CglHZWFyeVdlYkV4dGVuc2lvbiogX3RtcDJf
OwojbGluZSAxMSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2Vi
LXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl9pZl9mYWlsIChl
eHRlbnNpb24gIT0gTlVMTCk7CiNsaW5lIDExICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vh
cnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdf
cmV0dXJuX2lmX2ZhaWwgKGRhdGEgIT0gTlVMTCk7CiNsaW5lIDEzICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCWxvZ2dpbmdfZW5hYmxlZCA9IGdfdmFyaWFudF9nZXRfYm9vbGVhbiAoZGF0YSk7
CiNsaW5lIDE1ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdlYXJ5X2xvZ2dpbmdfaW5pdCAo
KTsKI2xpbmUgMTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gbG9nZ2luZ19l
bmFibGVkOwojbGluZSAxNiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpZiAoX3RtcDBfKSB7
CiNsaW5lIDE0NSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgkJRklMRSogX3RtcDFfOwojbGlu
ZSAxNyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDFfID0gc3Rkb3V0OwojbGluZSAx
NyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZ2VhcnlfbG9nZ2luZ19sb2dfdG8gKF90bXAx
Xyk7CiNsaW5lIDE1MSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9CiNsaW5lIDE5ICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCWdfZGVidWcgKCJ3ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YToxOTogSW5pdGlhbGlzaW5nLi4uIik7CiNsaW5lIDIyICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCV90bXAyXyA9IGdlYXJ5X3dlYl9leHRlbnNpb25fbmV3IChleHRlbnNpb24pOwojbGluZSAy
MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpbnN0YW5jZSA9IF90bXAyXzsKI2xpbmUgMjMg
Ii9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dl
Yi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19vYmplY3RfcmVmICgoR09iamVjdCopIGluc3Rh
bmNlKTsKI2xpbmUgMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX2dfb2JqZWN0X3VucmVm
MCAoaW5zdGFuY2UpOwojbGluZSAxNjMgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3Rh
dGljIGdwb2ludGVyCl9nX29iamVjdF9yZWYwIChncG9pbnRlciBzZWxmKQp7CiNsaW5lIDM4ICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVybiBzZWxmID8gZ19vYmplY3RfcmVmIChzZWxm
KSA6IE5VTEw7CiNsaW5lIDE3MiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMg
QmxvY2sxRGF0YSoKYmxvY2sxX2RhdGFfcmVmIChCbG9jazFEYXRhKiBfZGF0YTFfKQp7CiNsaW5l
IDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfYXRvbWljX2ludF9pbmMgKCZfZGF0YTFf
LT5fcmVmX2NvdW50Xyk7CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVy
biBfZGF0YTFfOwojbGluZSAxODMgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGlj
IHZvaWQKYmxvY2sxX2RhdGFfdW5yZWYgKHZvaWQgKiBfdXNlcmRhdGFfKQp7CglCbG9jazFEYXRh
KiBfZGF0YTFfOwoJX2RhdGExXyA9IChCbG9jazFEYXRhKikgX3VzZXJkYXRhXzsKI2xpbmUgMzkg
Ii9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dl
Yi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJaWYgKGdfYXRvbWljX2ludF9kZWNfYW5kX3Rlc3Qg
KCZfZGF0YTFfLT5fcmVmX2NvdW50XykpIHsKI2xpbmUgMTk0ICJ3ZWItcHJvY2Vzcy1leHRlbnNp
b24uYyIKCQlHZWFyeVdlYkV4dGVuc2lvbiogc2VsZjsKI2xpbmUgMzkgIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJCXNlbGYgPSBfZGF0YTFfLT5zZWxmOwojbGluZSAzOSAiL2hvbWUvbWpnL1By
b2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLnZhbGEiCgkJX2dfb2JqZWN0X3VucmVmMCAoX2RhdGExXy0+d2ViX3BhZ2UpOwojbGlu
ZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfb2JqZWN0X3VucmVmMCAoc2VsZik7
CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlnX3NsaWNlX2ZyZWUgKEJsb2Nr
MURhdGEsIF9kYXRhMV8pOwojbGluZSAyMDQgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQp9
CgoKc3RhdGljIHZvaWQKX2dlYXJ5X3dlYl9leHRlbnNpb25fb25fY29uc29sZV9tZXNzYWdlX3dl
YmtpdF93ZWJfcGFnZV9jb25zb2xlX21lc3NhZ2Vfc2VudCAoV2ViS2l0V2ViUGFnZSogX3NlbmRl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q29uc29sZU1lc3NhZ2UqIGNvbnNvbGVfbWVz
c2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgc2VsZikKewojbGluZSA0MCAiL2hv
bWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnZWFyeV93ZWJfZXh0ZW5zaW9uX29uX2NvbnNvbGVfbWVz
c2FnZSAoKEdlYXJ5V2ViRXh0ZW5zaW9uKikgc2VsZiwgX3NlbmRlciwgY29uc29sZV9tZXNzYWdl
KTsKI2xpbmUgMjE2ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyBnYm9vbGVh
bgpfZ2Vhcnlfd2ViX2V4dGVuc2lvbl9vbl9zZW5kX3JlcXVlc3Rfd2Via2l0X3dlYl9wYWdlX3Nl
bmRfcmVxdWVzdCAoV2ViS2l0V2ViUGFnZSogX3NlbmRlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVSSVJl
cXVlc3QqIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVUklSZXNwb25zZSogcmVkaXJlY3RlZF9y
ZXNwb25zZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHNlbGYpCnsKCWdib29sZWFuIHJlc3VsdDsKCXJl
c3VsdCA9IGdlYXJ5X3dlYl9leHRlbnNpb25fb25fc2VuZF9yZXF1ZXN0ICgoR2VhcnlXZWJFeHRl
bnNpb24qKSBzZWxmLCBfc2VuZGVyLCByZXF1ZXN0LCByZWRpcmVjdGVkX3Jlc3BvbnNlKTsKI2xp
bmUgNDEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9j
ZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJcmV0dXJuIHJlc3VsdDsKI2xpbmUgMjMw
ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyB2b2lkCl9fbGFtYmRhNV8gKEJs
b2NrMURhdGEqIF9kYXRhMV8pCnsKCUdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmOwojbGluZSA0NiAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglzZWxmID0gX2RhdGExXy0+c2VsZjsKI2xpbmUgNDcg
Ii9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dl
Yi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ2Vhcnlfd2ViX2V4dGVuc2lvbl9zZWxlY3Rpb25f
Y2hhbmdlZCAoc2VsZiwgX2RhdGExXy0+d2ViX3BhZ2UpOwojbGluZSAyNDIgIndlYi1wcm9jZXNz
LWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIHZvaWQKX19fbGFtYmRhNV9fd2Via2l0X3dlYl9lZGl0
b3Jfc2VsZWN0aW9uX2NoYW5nZWQgKFdlYktpdFdlYkVkaXRvciogX3NlbmRlciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHNlbGYpCnsK
I2xpbmUgNDYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX19sYW1iZGE1XyAoc2VsZik7CiNs
aW5lIDI1MiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMgdm9pZApfX2xhbWJk
YTRfIChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgV2ViS2l0V2ViRXh0ZW5z
aW9uKiBleHRlbnNpb24sCiAgICAgICAgICAgIFdlYktpdFdlYlBhZ2UqIHdlYl9wYWdlKQp7CglC
bG9jazFEYXRhKiBfZGF0YTFfOwoJV2ViS2l0V2ViUGFnZSogX3RtcDBfOwoJV2ViS2l0V2ViRWRp
dG9yKiBfdG1wMV87CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3Jj
L2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJu
X2lmX2ZhaWwgKGV4dGVuc2lvbiAhPSBOVUxMKTsKI2xpbmUgMzkgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJZ19yZXR1cm5faWZfZmFpbCAod2ViX3BhZ2UgIT0gTlVMTCk7CiNsaW5lIDM5ICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9kYXRhMV8gPSBnX3NsaWNlX25ldzAgKEJsb2NrMURh
dGEpOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZGF0YTFfLT5fcmVmX2Nv
dW50XyA9IDE7CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9kYXRhMV8tPnNl
bGYgPSBnX29iamVjdF9yZWYgKHNlbGYpOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dO
T01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEiCglfdG1wMF8gPSBfZ19vYmplY3RfcmVmMCAod2ViX3BhZ2UpOwojbGluZSAzOSAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19vYmplY3RfdW5yZWYwIChfZGF0YTFfLT53ZWJfcGFnZSk7
CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9kYXRhMV8tPndlYl9wYWdlID0g
X3RtcDBfOwojbGluZSA0MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3NpZ25hbF9jb25u
ZWN0X29iamVjdCAoX2RhdGExXy0+d2ViX3BhZ2UsICJjb25zb2xlLW1lc3NhZ2Utc2VudCIsIChH
Q2FsbGJhY2spIF9nZWFyeV93ZWJfZXh0ZW5zaW9uX29uX2NvbnNvbGVfbWVzc2FnZV93ZWJraXRf
d2ViX3BhZ2VfY29uc29sZV9tZXNzYWdlX3NlbnQsIHNlbGYsIDApOwojbGluZSA0MSAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglnX3NpZ25hbF9jb25uZWN0X29iamVjdCAoX2RhdGExXy0+d2Vi
X3BhZ2UsICJzZW5kLXJlcXVlc3QiLCAoR0NhbGxiYWNrKSBfZ2Vhcnlfd2ViX2V4dGVuc2lvbl9v
bl9zZW5kX3JlcXVlc3Rfd2Via2l0X3dlYl9wYWdlX3NlbmRfcmVxdWVzdCwgc2VsZiwgMCk7CiNs
aW5lIDQ2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJv
Y2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAxXyA9IHdlYmtpdF93ZWJfcGFn
ZV9nZXRfZWRpdG9yIChfZGF0YTFfLT53ZWJfcGFnZSk7CiNsaW5lIDQ2ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCWdfc2lnbmFsX2Nvbm5lY3RfZGF0YSAoX3RtcDFfLCAic2VsZWN0aW9uLWNo
YW5nZWQiLCAoR0NhbGxiYWNrKSBfX19sYW1iZGE1X193ZWJraXRfd2ViX2VkaXRvcl9zZWxlY3Rp
b25fY2hhbmdlZCwgYmxvY2sxX2RhdGFfcmVmIChfZGF0YTFfKSwgKEdDbG9zdXJlTm90aWZ5KSBi
bG9jazFfZGF0YV91bnJlZiwgMCk7CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CWJsb2NrMV9kYXRhX3VucmVmIChfZGF0YTFfKTsKI2xpbmUgMzkgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJX2RhdGExXyA9IE5VTEw7CiNsaW5lIDI5MiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LmMiCn0KCgpzdGF0aWMgdm9pZApfX19sYW1iZGE0X193ZWJraXRfd2ViX2V4dGVuc2lvbl9wYWdl
X2NyZWF0ZWQgKFdlYktpdFdlYkV4dGVuc2lvbiogX3NlbmRlciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiB3ZWJfcGFnZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBzZWxm
KQp7CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93
ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9fbGFtYmRhNF8gKChHZWFy
eVdlYkV4dGVuc2lvbiopIHNlbGYsIF9zZW5kZXIsIHdlYl9wYWdlKTsKI2xpbmUgMzAzICJ3ZWIt
cHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCkdlYXJ5V2ViRXh0ZW5zaW9uKgpnZWFyeV93ZWJfZXh0
ZW5zaW9uX2NvbnN0cnVjdCAoR1R5cGUgb2JqZWN0X3R5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKewoJR2VhcnlXZWJFeHRl
bnNpb24gKiBzZWxmID0gTlVMTDsKCVdlYktpdFdlYkV4dGVuc2lvbiogX3RtcDBfOwojbGluZSAz
NyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl92YWxfaWZfZmFpbCAoZXh0ZW5z
aW9uICE9IE5VTEwsIE5VTEwpOwojbGluZSAzNyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglz
ZWxmID0gKEdlYXJ5V2ViRXh0ZW5zaW9uKikgZ19vYmplY3RfbmV3IChvYmplY3RfdHlwZSwgTlVM
TCk7CiNsaW5lIDM4ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93
ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAwXyA9IF9nX29iamVj
dF9yZWYwIChleHRlbnNpb24pOwojbGluZSAzOCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglf
Z19vYmplY3RfdW5yZWYwIChzZWxmLT5wcml2LT5leHRlbnNpb24pOwojbGluZSAzOCAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglzZWxmLT5wcml2LT5leHRlbnNpb24gPSBfdG1wMF87CiNsaW5l
IDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChl
eHRlbnNpb24sICJwYWdlLWNyZWF0ZWQiLCAoR0NhbGxiYWNrKSBfX19sYW1iZGE0X193ZWJraXRf
d2ViX2V4dGVuc2lvbl9wYWdlX2NyZWF0ZWQsIHNlbGYsIDApOwojbGluZSAzNyAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCglyZXR1cm4gc2VsZjsKI2xpbmUgMzI3ICJ3ZWItcHJvY2Vzcy1leHRl
bnNpb24uYyIKfQoKCkdlYXJ5V2ViRXh0ZW5zaW9uKgpnZWFyeV93ZWJfZXh0ZW5zaW9uX25ldyAo
V2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCnsKI2xpbmUgMzcgIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJcmV0dXJuIGdlYXJ5X3dlYl9leHRlbnNpb25fY29uc3RydWN0IChUWVBFX0dF
QVJZX1dFQl9FWFRFTlNJT04sIGV4dGVuc2lvbik7CiNsaW5lIDMzNiAid2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLmMiCn0KCgpzdGF0aWMgZ2xvbmcKc3RyaW5nX3N0cm5sZW4gKGdjaGFyKiBzdHIsCiAg
ICAgICAgICAgICAgICBnbG9uZyBtYXhsZW4pCnsKCWdsb25nIHJlc3VsdCA9IDBMOwoJZ2NoYXIq
IGVuZCA9IE5VTEw7CglnY2hhciogX3RtcDBfOwoJZ2NoYXIqIF90bXAxXzsKI2xpbmUgMTMzNiAi
L3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJX3RtcDBfID0gbWVtY2hy
IChzdHIsIDAsIChnc2l6ZSkgbWF4bGVuKTsKI2xpbmUgMTMzNiAiL3Vzci9zaGFyZS92YWxhLTAu
NDAvdmFwaS9nbGliLTIuMC52YXBpIgoJZW5kID0gX3RtcDBfOwojbGluZSAxMzM3ICIvdXNyL3No
YXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCglfdG1wMV8gPSBlbmQ7CiNsaW5lIDEz
MzcgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCWlmIChfdG1wMV8g
PT0gTlVMTCkgewojbGluZSAxMzM4ICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4w
LnZhcGkiCgkJcmVzdWx0ID0gbWF4bGVuOwojbGluZSAxMzM4ICIvdXNyL3NoYXJlL3ZhbGEtMC40
MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJcmV0dXJuIHJlc3VsdDsKI2xpbmUgMzYwICJ3ZWItcHJv
Y2Vzcy1leHRlbnNpb24uYyIKCX0gZWxzZSB7CgkJZ2NoYXIqIF90bXAyXzsKI2xpbmUgMTM0MCAi
L3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCV90bXAyXyA9IGVuZDsK
I2xpbmUgMTM0MCAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCXJl
c3VsdCA9IChnbG9uZykgKF90bXAyXyAtIHN0cik7CiNsaW5lIDEzNDAgIi91c3Ivc2hhcmUvdmFs
YS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlyZXR1cm4gcmVzdWx0OwojbGluZSAzNjkgIndl
Yi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQp9CgoKc3RhdGljIGdjaGFyKgpzdHJpbmdfc3Vic3Ry
aW5nIChjb25zdCBnY2hhciogc2VsZiwKICAgICAgICAgICAgICAgICAgZ2xvbmcgb2Zmc2V0LAog
ICAgICAgICAgICAgICAgICBnbG9uZyBsZW4pCnsKCWdjaGFyKiByZXN1bHQgPSBOVUxMOwoJZ2xv
bmcgc3RyaW5nX2xlbmd0aCA9IDBMOwoJZ2Jvb2xlYW4gX3RtcDBfID0gRkFMU0U7CglnbG9uZyBf
dG1wNl87CglnY2hhciogX3RtcDdfOwojbGluZSAxMzQ3ICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92
YXBpL2dsaWItMi4wLnZhcGkiCglnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiAhPSBOVUxMLCBO
VUxMKTsKI2xpbmUgMTM0OSAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBp
IgoJaWYgKG9mZnNldCA+PSAoKGdsb25nKSAwKSkgewojbGluZSAxMzQ5ICIvdXNyL3NoYXJlL3Zh
bGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJX3RtcDBfID0gbGVuID49ICgoZ2xvbmcpIDAp
OwojbGluZSAzOTAgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfSBlbHNlIHsKI2xpbmUgMTM0
OSAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCV90bXAwXyA9IEZB
TFNFOwojbGluZSAzOTQgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQojbGluZSAxMzQ5ICIv
dXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCglpZiAoX3RtcDBfKSB7CiNs
aW5lIDEzNTEgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlzdHJp
bmdfbGVuZ3RoID0gc3RyaW5nX3N0cm5sZW4gKChnY2hhciopIHNlbGYsIG9mZnNldCArIGxlbik7
CiNsaW5lIDQwMCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9IGVsc2UgewoJCWdpbnQgX3Rt
cDFfOwoJCWdpbnQgX3RtcDJfOwojbGluZSAxMzUzICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBp
L2dsaWItMi4wLnZhcGkiCgkJX3RtcDFfID0gc3RybGVuIChzZWxmKTsKI2xpbmUgMTM1MyAiL3Vz
ci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCV90bXAyXyA9IF90bXAxXzsK
I2xpbmUgMTM1MyAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCXN0
cmluZ19sZW5ndGggPSAoZ2xvbmcpIF90bXAyXzsKI2xpbmUgNDEwICJ3ZWItcHJvY2Vzcy1leHRl
bnNpb24uYyIKCX0KI2xpbmUgMTM1NiAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIu
MC52YXBpIgoJaWYgKG9mZnNldCA8ICgoZ2xvbmcpIDApKSB7CiNsaW5lIDQxNCAid2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLmMiCgkJZ2xvbmcgX3RtcDNfOwojbGluZSAxMzU3ICIvdXNyL3NoYXJlL3Zh
bGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJX3RtcDNfID0gc3RyaW5nX2xlbmd0aDsKI2xp
bmUgMTM1NyAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCW9mZnNl
dCA9IF90bXAzXyArIG9mZnNldDsKI2xpbmUgMTM1OCAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFw
aS9nbGliLTIuMC52YXBpIgoJCWdfcmV0dXJuX3ZhbF9pZl9mYWlsIChvZmZzZXQgPj0gKChnbG9u
ZykgMCksIE5VTEwpOwojbGluZSA0MjIgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfSBlbHNl
IHsKCQlnbG9uZyBfdG1wNF87CiNsaW5lIDEzNjAgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkv
Z2xpYi0yLjAudmFwaSIKCQlfdG1wNF8gPSBzdHJpbmdfbGVuZ3RoOwojbGluZSAxMzYwICIvdXNy
L3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJZ19yZXR1cm5fdmFsX2lmX2Zh
aWwgKG9mZnNldCA8PSBfdG1wNF8sIE5VTEwpOwojbGluZSA0MjkgIndlYi1wcm9jZXNzLWV4dGVu
c2lvbi5jIgoJfQojbGluZSAxMzYyICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4w
LnZhcGkiCglpZiAobGVuIDwgKChnbG9uZykgMCkpIHsKI2xpbmUgNDMzICJ3ZWItcHJvY2Vzcy1l
eHRlbnNpb24uYyIKCQlnbG9uZyBfdG1wNV87CiNsaW5lIDEzNjMgIi91c3Ivc2hhcmUvdmFsYS0w
LjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlfdG1wNV8gPSBzdHJpbmdfbGVuZ3RoOwojbGluZSAx
MzYzICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJbGVuID0gX3Rt
cDVfIC0gb2Zmc2V0OwojbGluZSA0MzkgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQojbGlu
ZSAxMzY1ICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCglfdG1wNl8g
PSBzdHJpbmdfbGVuZ3RoOwojbGluZSAxMzY1ICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2ds
aWItMi4wLnZhcGkiCglnX3JldHVybl92YWxfaWZfZmFpbCAoKG9mZnNldCArIGxlbikgPD0gX3Rt
cDZfLCBOVUxMKTsKI2xpbmUgMTM2NiAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIu
MC52YXBpIgoJX3RtcDdfID0gZ19zdHJuZHVwICgoKGdjaGFyKikgc2VsZikgKyBvZmZzZXQsIChn
c2l6ZSkgbGVuKTsKI2xpbmUgMTM2NiAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIu
MC52YXBpIgoJcmVzdWx0ID0gX3RtcDdfOwojbGluZSAxMzY2ICIvdXNyL3NoYXJlL3ZhbGEtMC40
MC92YXBpL2dsaWItMi4wLnZhcGkiCglyZXR1cm4gcmVzdWx0OwojbGluZSA0NTEgIndlYi1wcm9j
ZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIHZvaWQKZ2Vhcnlfd2ViX2V4dGVuc2lvbl9vbl9j
b25zb2xlX21lc3NhZ2UgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdENvbnNvbGVNZXNzYWdlKiBtZXNzYWdl
KQp7CglnY2hhciogc291cmNlID0gTlVMTDsKCWNvbnN0IGdjaGFyKiBfdG1wMF87CglnY2hhciog
X3RtcDFfOwoJY29uc3QgZ2NoYXIqIF90bXAyXyA9IE5VTEw7Cgljb25zdCBnY2hhciogX3RtcDNf
OwoJR0VudW1WYWx1ZSogX3RtcDVfOwoJZ2ludCBfdG1wNl87CglnaW50IF90bXA3XzsKCWdjaGFy
KiBfdG1wOF87CglnY2hhciogX3RtcDlfOwoJR0VudW1WYWx1ZSogX3RtcDEwXzsKCWdpbnQgX3Rt
cDExXzsKCWdpbnQgX3RtcDEyXzsKCWdjaGFyKiBfdG1wMTNfOwoJZ2NoYXIqIF90bXAxNF87Cglj
b25zdCBnY2hhciogX3RtcDE1XzsKI2xpbmUgNTMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
Z19yZXR1cm5faWZfZmFpbCAoc2VsZiAhPSBOVUxMKTsKI2xpbmUgNTMgIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJZ19yZXR1cm5faWZfZmFpbCAocGFnZSAhPSBOVUxMKTsKI2xpbmUgNTMgIi9o
b21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1w
cm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19yZXR1cm5faWZfZmFpbCAobWVzc2FnZSAhPSBOVUxM
KTsKI2xpbmUgNTUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gd2Via2l0X2Nv
bnNvbGVfbWVzc2FnZV9nZXRfc291cmNlX2lkIChtZXNzYWdlKTsKI2xpbmUgNTUgIi9ob21lL21q
Zy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNz
LWV4dGVuc2lvbi52YWxhIgoJX3RtcDFfID0gZ19zdHJkdXAgKF90bXAwXyk7CiNsaW5lIDU1ICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXNvdXJjZSA9IF90bXAxXzsKI2xpbmUgNTkgIi9ob21l
L21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9j
ZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDNfID0gc291cmNlOwojbGluZSA1OSAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCglpZiAoZ2Vhcnlfc3RyaW5nX2lzX2VtcHR5IChfdG1wM18pKSB7CiNs
aW5lIDU5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJv
Y2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wMl8gPSAidW5rbm93biI7CiNs
aW5lIDQ5NCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9IGVsc2UgewoJCWNvbnN0IGdjaGFy
KiBfdG1wNF87CiNsaW5lIDU5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNF8gPSBz
b3VyY2U7CiNsaW5lIDU5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wMl8gPSBfdG1w
NF87CiNsaW5lIDUwMSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9CiNsaW5lIDU3ICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXA1XyA9IGdfZW51bV9nZXRfdmFsdWUgKGdfdHlwZV9j
bGFzc19yZWYgKHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfbGV2ZWxfZ2V0X3R5cGUgKCkpLCB3ZWJr
aXRfY29uc29sZV9tZXNzYWdlX2dldF9sZXZlbCAobWVzc2FnZSkpOwojbGluZSA1NiAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wNl8gPSBzdHJsZW4gKCJXRUJLSVRfQ09OU09MRV9NRVNT
QUdFX0xFVkVMXyIpOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wN18g
PSBfdG1wNl87CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXA4XyA9IHN0
cmluZ19zdWJzdHJpbmcgKChfdG1wNV8gIT0gTlVMTCkgPyBfdG1wNV8tPnZhbHVlX25hbWUgOiBO
VUxMLCAoZ2xvbmcpIF90bXA3XywgKGdsb25nKSAtMSk7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCV90bXA5XyA9IF90bXA4XzsKI2xpbmUgNTggIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJX3RtcDEwXyA9IGdfZW51bV9nZXRfdmFsdWUgKGdfdHlwZV9jbGFzc19yZWYgKHdl
YmtpdF9jb25zb2xlX21lc3NhZ2Vfc291cmNlX2dldF90eXBlICgpKSwgd2Via2l0X2NvbnNvbGVf
bWVzc2FnZV9nZXRfc291cmNlIChtZXNzYWdlKSk7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCV90bXAxMV8gPSBzdHJsZW4gKCJXRUJLSVRfQ09OU09MRV9NRVNTQUdFX1NPVVJD
RV8iKTsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDEyXyA9IF90bXAx
MV87CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93
ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAxM18gPSBzdHJpbmdf
c3Vic3RyaW5nICgoX3RtcDEwXyAhPSBOVUxMKSA/IF90bXAxMF8tPnZhbHVlX25hbWUgOiBOVUxM
LCAoZ2xvbmcpIF90bXAxMl8sIChnbG9uZykgLTEpOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCglfdG1wMTRfID0gX3RtcDEzXzsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJX3RtcDE1XyA9IHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfZ2V0X3RleHQgKG1lc3Nh
Z2UpOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX2RlYnVnICgid2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLnZhbGE6NTY6IENvbnNvbGU6IFslc10gJXMgJXM6JXU6ICVzIiwgX3Rt
cDlfLCBfdG1wMTRfLCBfdG1wMl8sIHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfZ2V0X2xpbmUgKG1l
c3NhZ2UpLCBfdG1wMTVfKTsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFy
eS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX2df
ZnJlZTAgKF90bXAxNF8pOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19m
cmVlMCAoX3RtcDlfKTsKI2xpbmUgNTMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX2dfZnJl
ZTAgKHNvdXJjZSk7CiNsaW5lIDUzMyAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0
aWMgZ2Jvb2xlYW4KX3ZhbGFfc3RyaW5nX2FycmF5X2NvbnRhaW5zIChjb25zdCBnY2hhciogKiBz
dGFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhY2tfbGVuZ3RoLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBuZWVkbGUpCnsKCWludCBpOwoj
bGluZSA3MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglmb3IgKGkgPSAwOyBpIDwgc3RhY2tf
bGVuZ3RoOyBpKyspIHsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWlmIChn
X3N0cmNtcDAgKHN0YWNrW2ldLCBuZWVkbGUpID09IDApIHsKI2xpbmUgNzAgIi9ob21lL21qZy9Q
cm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4
dGVuc2lvbi52YWxhIgoJCQlyZXR1cm4gVFJVRTsKI2xpbmUgNTQ5ICJ3ZWItcHJvY2Vzcy1leHRl
bnNpb24uYyIKCQl9Cgl9CiNsaW5lIDcwICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVy
biBGQUxTRTsKI2xpbmUgNTU0ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyB2
b2lkCl92YWxhX1NvdXBVUklfZnJlZSAoU291cFVSSSogc2VsZikKewojbGluZSA4MyAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglnX2JveGVkX2ZyZWUgKHNvdXBfdXJpX2dldF90eXBlICgpLCBz
ZWxmKTsKI2xpbmUgNTYzICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyBnYm9v
bGVhbgpnZWFyeV93ZWJfZXh0ZW5zaW9uX29uX3NlbmRfcmVxdWVzdCAoR2VhcnlXZWJFeHRlbnNp
b24qIHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQ
YWdlKiBwYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJ
UmVxdWVzdCogcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFVSSVJlc3BvbnNlKiByZXNwb25zZSkKewoJZ2Jvb2xlYW4gcmVzdWx0ID0gRkFMU0U7Cgln
Ym9vbGVhbiBzaG91bGRfbG9hZCA9IEZBTFNFOwoJU291cFVSSSogdXJpID0gTlVMTDsKCWNvbnN0
IGdjaGFyKiBfdG1wMF87CglTb3VwVVJJKiBfdG1wMV87CglnYm9vbGVhbiBfdG1wMl8gPSBGQUxT
RTsKCVNvdXBVUkkqIF90bXAzXzsKCWdib29sZWFuIF90bXA2XyA9IEZBTFNFOwoJZ2Jvb2xlYW4g
X3RtcDdfOwojbGluZSA2NSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl92YWxf
aWZfZmFpbCAoc2VsZiAhPSBOVUxMLCBGQUxTRSk7CiNsaW5lIDY1ICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCWdfcmV0dXJuX3ZhbF9pZl9mYWlsIChwYWdlICE9IE5VTEwsIEZBTFNFKTsKI2xp
bmUgNjUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9j
ZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJl
cXVlc3QgIT0gTlVMTCwgRkFMU0UpOwojbGluZSA2OCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglzaG91bGRfbG9hZCA9IEZBTFNFOwojbGluZSA2OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglfdG1wMF8gPSB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaSAocmVxdWVzdCk7CiNsaW5lIDY5
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAxXyA9IHNvdXBfdXJpX25ldyAoX3RtcDBf
KTsKI2xpbmUgNjkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJdXJpID0gX3RtcDFfOwojbGlu
ZSA3MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wM18gPSB1cmk7CiNsaW5lIDcwICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWlmIChfdG1wM18gIT0gTlVMTCkgewojbGluZSA2MDAg
IndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJCVNvdXBVUkkqIF90bXA0XzsKCQljb25zdCBnY2hh
ciogX3RtcDVfOwojbGluZSA3MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDRfID0g
dXJpOwojbGluZSA3MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDVfID0gc291cF91
cmlfZ2V0X3NjaGVtZSAoX3RtcDRfKTsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9N
RS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxh
IgoJCV90bXAyXyA9IF92YWxhX3N0cmluZ19hcnJheV9jb250YWlucyAoR0VBUllfV0VCX0VYVEVO
U0lPTl9BTExPV0VEX1NDSEVNRVMsIEdfTl9FTEVNRU5UUyAoR0VBUllfV0VCX0VYVEVOU0lPTl9B
TExPV0VEX1NDSEVNRVMpLCBfdG1wNV8pOwojbGluZSA2MDkgIndlYi1wcm9jZXNzLWV4dGVuc2lv
bi5jIgoJfSBlbHNlIHsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXAy
XyA9IEZBTFNFOwojbGluZSA2MTMgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQojbGluZSA3
MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpZiAoX3RtcDJfKSB7CiNsaW5lIDcyICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCQlzaG91bGRfbG9hZCA9IFRSVUU7CiNsaW5lIDYxOSAid2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9IGVsc2UgewojbGluZSA3NiAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCgkJaWYgKGdlYXJ5X3dlYl9leHRlbnNpb25fc2hvdWxkX2xvYWRfcmVtb3RlX2lt
YWdlcyAoc2VsZiwgcGFnZSkpIHsKI2xpbmUgNzcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
CQlzaG91bGRfbG9hZCA9IFRSVUU7CiNsaW5lIDYyNSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMi
CgkJfSBlbHNlIHsKI2xpbmUgNzkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCQlnZWFyeV93
ZWJfZXh0ZW5zaW9uX3JlbW90ZV9pbWFnZV9sb2FkX2Jsb2NrZWQgKHNlbGYsIHBhZ2UpOwojbGlu
ZSA2MjkgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJCX0KCX0KI2xpbmUgODMgIi9ob21lL21q
Zy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNz
LWV4dGVuc2lvbi52YWxhIgoJX3RtcDdfID0gc2hvdWxkX2xvYWQ7CiNsaW5lIDgzICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCWlmIChfdG1wN18pIHsKI2xpbmUgODMgIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJCV90bXA2XyA9IEdES19FVkVOVF9QUk9QQUdBVEU7CiNsaW5lIDYzOCAid2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9IGVsc2UgewojbGluZSA4MyAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCgkJX3RtcDZfID0gR0RLX0VWRU5UX1NUT1A7CiNsaW5lIDY0MiAid2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLmMiCgl9CiNsaW5lIDgzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vh
cnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJl
c3VsdCA9IF90bXA2XzsKI2xpbmUgODMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX192YWxh
X1NvdXBVUklfZnJlZTAgKHVyaSk7CiNsaW5lIDgzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CXJldHVybiByZXN1bHQ7CiNsaW5lIDY1MCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpz
dGF0aWMgZ2Jvb2xlYW4KZ2Vhcnlfd2ViX2V4dGVuc2lvbl9zaG91bGRfbG9hZF9yZW1vdGVfaW1h
Z2VzIChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlKQp7CglnYm9vbGVhbiByZXN1
bHQgPSBGQUxTRTsKCWdib29sZWFuIHNob3VsZF9sb2FkID0gRkFMU0U7CglXZWJLaXRGcmFtZSog
ZnJhbWUgPSBOVUxMOwoJV2ViS2l0RnJhbWUqIF90bXAwXzsKCVdlYktpdEZyYW1lKiBfdG1wMV87
CglKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9IHswfTsKCUdFcnJvciAqIF9pbm5lcl9lcnJv
cl8gPSBOVUxMOwojbGluZSA4NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl92
YWxfaWZfZmFpbCAoc2VsZiAhPSBOVUxMLCBGQUxTRSk7CiNsaW5lIDg2ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCWdfcmV0dXJuX3ZhbF9pZl9mYWlsIChwYWdlICE9IE5VTEwsIEZBTFNFKTsK
I2xpbmUgODcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJc2hvdWxkX2xvYWQgPSBGQUxTRTsK
I2xpbmUgODggIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gd2Via2l0X3dlYl9w
YWdlX2dldF9tYWluX2ZyYW1lIChwYWdlKTsKI2xpbmUgODggIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJX3RtcDFfID0gX2dfb2JqZWN0X3JlZjAgKF90bXAwXyk7CiNsaW5lIDg4ICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCWZyYW1lID0gX3RtcDFfOwojbGluZSA5MCAiL2hvbWUvbWpnL1By
b2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLnZhbGEiCgljb250ZXh0ID0gKEpTR2xvYmFsQ29udGV4dFJlZikgd2Via2l0X2ZyYW1l
X2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0IChmcmFtZSk7CiNsaW5lIDY3OSAid2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLmMiCgl7CgkJSlNWYWx1ZVJlZiByZXQgPSB7MH07CgkJSlNWYWx1ZVJl
ZiogX3RtcDJfOwoJCUpTVmFsdWVSZWYqIF90bXAzXzsKCQlKU1ZhbHVlUmVmIF90bXA0XzsKI2xp
bmUgOTMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9j
ZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXAyXyA9IGdlYXJ5X3dlYl9leHRl
bnNpb25fZXhlY3V0ZV9zY3JpcHQgKHNlbGYsIChKU0NvbnRleHRSZWYpIGNvbnRleHQsICJnZWFy
eS5hbGxvd1JlbW90ZUltYWdlcyIsIGF0b2kgKCJfX0xJTkVfXyIpLCAmX2lubmVyX2Vycm9yXyk7
CiNsaW5lIDkzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wM18gPSBfdG1wMl87CiNs
aW5lIDkzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJv
Y2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNF8gPSAqX3RtcDNfOwojbGlu
ZSA5MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfZnJlZTAgKF90bXAzXyk7CiNsaW5l
IDkzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlyZXQgPSBfdG1wNF87CiNsaW5lIDkzICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlpZiAoR19VTkxJS0VMWSAoX2lubmVyX2Vycm9yXyAh
PSBOVUxMKSkgewojbGluZSA2OTcgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJCQlnb3RvIF9f
Y2F0Y2gwX2dfZXJyb3I7CgkJfQojbGluZSA5NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJ
c2hvdWxkX2xvYWQgPSBKU1ZhbHVlVG9Cb29sZWFuICgoSlNDb250ZXh0UmVmKSBjb250ZXh0LCBy
ZXQpOwojbGluZSA3MDIgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQoJZ290byBfX2ZpbmFs
bHkwOwoJX19jYXRjaDBfZ19lcnJvcjoKCXsKCQlHRXJyb3IqIGVyciA9IE5VTEw7CgkJR0Vycm9y
KiBfdG1wNV87CgkJY29uc3QgZ2NoYXIqIF90bXA2XzsKI2xpbmUgOTIgIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJCWVyciA9IF9pbm5lcl9lcnJvcl87CiNsaW5lIDkyICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCQlfaW5uZXJfZXJyb3JfID0gTlVMTDsKI2xpbmUgOTggIi9ob21lL21qZy9Q
cm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4
dGVuc2lvbi52YWxhIgoJCV90bXA1XyA9IGVycjsKI2xpbmUgOTggIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJCV90bXA2XyA9IF90bXA1Xy0+bWVzc2FnZTsKI2xpbmUgOTggIi9ob21lL21qZy9Q
cm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4
dGVuc2lvbi52YWxhIgoJCWdfZGVidWcgKCJ3ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYTo5ODog
RXJyb3IgY2hlY2tpbmcgUGFnZVN0YXRlOjphbGxvd1JlbW90ZUltIiBcCiJhZ2VzOiAlcyIsIF90
bXA2Xyk7CiNsaW5lIDkyICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfZ19lcnJvcl9mcmVl
MCAoZXJyKTsKI2xpbmUgNzIyICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KCV9fZmluYWxs
eTA6CiNsaW5lIDkyICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93
ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWlmIChHX1VOTElLRUxZIChf
aW5uZXJfZXJyb3JfICE9IE5VTEwpKSB7CiNsaW5lIDcyNyAid2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LmMiCgkJZ2Jvb2xlYW4gX3RtcDdfID0gRkFMU0U7CiNsaW5lIDkyICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCQlfZ19vYmplY3RfdW5yZWYwIChmcmFtZSk7CiNsaW5lIDkyICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCQlnX2NyaXRpY2FsICgiZmlsZSAlczogbGluZSAlZDogdW5jYXVnaHQg
ZXJyb3I6ICVzICglcywgJWQpIiwgX19GSUxFX18sIF9fTElORV9fLCBfaW5uZXJfZXJyb3JfLT5t
ZXNzYWdlLCBnX3F1YXJrX3RvX3N0cmluZyAoX2lubmVyX2Vycm9yXy0+ZG9tYWluKSwgX2lubmVy
X2Vycm9yXy0+Y29kZSk7CiNsaW5lIDkyICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlnX2Ns
ZWFyX2Vycm9yICgmX2lubmVyX2Vycm9yXyk7CiNsaW5lIDkyICIvaG9tZS9tamcvUHJvamVjdHMv
R05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24u
dmFsYSIKCQlyZXR1cm4gX3RtcDdfOwojbGluZSA3MzcgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5j
IgoJfQojbGluZSAxMDMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJcmVzdWx0ID0gc2hvdWxk
X2xvYWQ7CiNsaW5lIDEwMyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19vYmplY3RfdW5y
ZWYwIChmcmFtZSk7CiNsaW5lIDEwMyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglyZXR1cm4g
cmVzdWx0OwojbGluZSA3NDUgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIHZv
aWQKZ2Vhcnlfd2ViX2V4dGVuc2lvbl9yZW1vdGVfaW1hZ2VfbG9hZF9ibG9ja2VkIChHZWFyeVdl
YkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlKQp7CglXZWJLaXRGcmFtZSogZnJhbWUgPSBOVUxM
OwoJV2ViS2l0RnJhbWUqIF90bXAwXzsKCVdlYktpdEZyYW1lKiBfdG1wMV87CglKU0dsb2JhbENv
bnRleHRSZWYgY29udGV4dCA9IHswfTsKCUdFcnJvciAqIF9pbm5lcl9lcnJvcl8gPSBOVUxMOwoj
bGluZSAxMDYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19yZXR1cm5faWZfZmFpbCAoc2Vs
ZiAhPSBOVUxMKTsKI2xpbmUgMTA2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3Jj
L2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJu
X2lmX2ZhaWwgKHBhZ2UgIT0gTlVMTCk7CiNsaW5lIDEwNyAiL2hvbWUvbWpnL1Byb2plY3RzL0dO
T01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEiCglfdG1wMF8gPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUgKHBhZ2UpOwojbGlu
ZSAxMDcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9j
ZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDFfID0gX2dfb2JqZWN0X3JlZjAg
KF90bXAwXyk7CiNsaW5lIDEwNyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglmcmFtZSA9IF90
bXAxXzsKI2xpbmUgMTA5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWNvbnRleHQgPSAoSlNH
bG9iYWxDb250ZXh0UmVmKSB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRl
eHQgKGZyYW1lKTsKI2xpbmUgNzcwICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCXsKCQlKU1Zh
bHVlUmVmKiBfdG1wMl87CgkJSlNWYWx1ZVJlZiogX3RtcDNfOwojbGluZSAxMTIgIi9ob21lL21q
Zy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNz
LWV4dGVuc2lvbi52YWxhIgoJCV90bXAyXyA9IGdlYXJ5X3dlYl9leHRlbnNpb25fZXhlY3V0ZV9z
Y3JpcHQgKHNlbGYsIChKU0NvbnRleHRSZWYpIGNvbnRleHQsICJnZWFyeS5yZW1vdGVJbWFnZUxv
YWRCbG9ja2VkKCk7IiwgYXRvaSAoIl9fTElORV9fIiksICZfaW5uZXJfZXJyb3JfKTsKI2xpbmUg
MTEyICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wM18gPSBfdG1wMl87CiNsaW5lIDEx
MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfZnJlZTAgKF90bXAzXyk7CiNsaW5lIDEx
MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJaWYgKEdfVU5MSUtFTFkgKF9pbm5lcl9lcnJv
cl8gIT0gTlVMTCkpIHsKI2xpbmUgNzgyICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCQkJZ290
byBfX2NhdGNoMV9nX2Vycm9yOwoJCX0KCX0KCWdvdG8gX19maW5hbGx5MTsKCV9fY2F0Y2gxX2df
ZXJyb3I6Cgl7CgkJR0Vycm9yKiBlcnIgPSBOVUxMOwoJCUdFcnJvciogX3RtcDRfOwoJCWNvbnN0
IGdjaGFyKiBfdG1wNV87CiNsaW5lIDExMSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZXJy
ID0gX2lubmVyX2Vycm9yXzsKI2xpbmUgMTExICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vh
cnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlf
aW5uZXJfZXJyb3JfID0gTlVMTDsKI2xpbmUgMTE2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CQlfdG1wNF8gPSBlcnI7CiNsaW5lIDExNiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3Rt
cDVfID0gX3RtcDRfLT5tZXNzYWdlOwojbGluZSAxMTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9N
RS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxh
IgoJCWdfZGVidWcgKCJ3ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYToxMTY6IEVycm9yIGNhbGxp
bmcgUGFnZVN0YXRlOjpyZW1vdGVJbWFnZUxvIiBcCiJhZEJsb2NrZWQ6ICVzIiwgX3RtcDVfKTsK
I2xpbmUgMTExICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfZ19lcnJvcl9mcmVlMCAoZXJy
KTsKI2xpbmUgODA0ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KCV9fZmluYWxseTE6CiNs
aW5lIDExMSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpZiAoR19VTkxJS0VMWSAoX2lubmVy
X2Vycm9yXyAhPSBOVUxMKSkgewojbGluZSAxMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
CV9nX29iamVjdF91bnJlZjAgKGZyYW1lKTsKI2xpbmUgMTExICIvaG9tZS9tamcvUHJvamVjdHMv
R05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24u
dmFsYSIKCQlnX2NyaXRpY2FsICgiZmlsZSAlczogbGluZSAlZDogdW5jYXVnaHQgZXJyb3I6ICVz
ICglcywgJWQpIiwgX19GSUxFX18sIF9fTElORV9fLCBfaW5uZXJfZXJyb3JfLT5tZXNzYWdlLCBn
X3F1YXJrX3RvX3N0cmluZyAoX2lubmVyX2Vycm9yXy0+ZG9tYWluKSwgX2lubmVyX2Vycm9yXy0+
Y29kZSk7CiNsaW5lIDExMSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZ19jbGVhcl9lcnJv
ciAoJl9pbm5lcl9lcnJvcl8pOwojbGluZSAxMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
CXJldHVybjsKI2xpbmUgODE3ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KI2xpbmUgMTA2
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9nX29iamVjdF91bnJlZjAgKGZyYW1lKTsKI2xp
bmUgODIxICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyB2b2lkCmdlYXJ5X3dl
Yl9leHRlbnNpb25fc2VsZWN0aW9uX2NoYW5nZWQgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdl
KQp7CglXZWJLaXRGcmFtZSogZnJhbWUgPSBOVUxMOwoJV2ViS2l0RnJhbWUqIF90bXAwXzsKCVdl
YktpdEZyYW1lKiBfdG1wMV87CglKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9IHswfTsKCUdF
cnJvciAqIF9pbm5lcl9lcnJvcl8gPSBOVUxMOwojbGluZSAxMjMgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJZ19yZXR1cm5faWZfZmFpbCAoc2VsZiAhPSBOVUxMKTsKI2xpbmUgMTIzICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJuX2lmX2ZhaWwgKHBhZ2UgIT0gTlVMTCk7CiNs
aW5lIDEyNCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wMF8gPSB3ZWJraXRfd2ViX3Bh
Z2VfZ2V0X21haW5fZnJhbWUgKHBhZ2UpOwojbGluZSAxMjQgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJX3RtcDFfID0gX2dfb2JqZWN0X3JlZjAgKF90bXAwXyk7CiNsaW5lIDEyNCAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglmcmFtZSA9IF90bXAxXzsKI2xpbmUgMTI2ICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCWNvbnRleHQgPSAoSlNHbG9iYWxDb250ZXh0UmVmKSB3ZWJraXRfZnJh
bWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQgKGZyYW1lKTsKI2xpbmUgODQ2ICJ3ZWIt
cHJvY2Vzcy1leHRlbnNpb24uYyIKCXsKCQlKU1ZhbHVlUmVmKiBfdG1wMl87CgkJSlNWYWx1ZVJl
ZiogX3RtcDNfOwojbGluZSAxMjkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXAyXyA9
IGdlYXJ5X3dlYl9leHRlbnNpb25fZXhlY3V0ZV9zY3JpcHQgKHNlbGYsIChKU0NvbnRleHRSZWYp
IGNvbnRleHQsICJnZWFyeS5zZWxlY3Rpb25DaGFuZ2VkKCk7IiwgYXRvaSAoIl9fTElORV9fIiks
ICZfaW5uZXJfZXJyb3JfKTsKI2xpbmUgMTI5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vh
cnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlf
dG1wM18gPSBfdG1wMl87CiNsaW5lIDEyOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2df
ZnJlZTAgKF90bXAzXyk7CiNsaW5lIDEyOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJaWYg
KEdfVU5MSUtFTFkgKF9pbm5lcl9lcnJvcl8gIT0gTlVMTCkpIHsKI2xpbmUgODU4ICJ3ZWItcHJv
Y2Vzcy1leHRlbnNpb24uYyIKCQkJZ290byBfX2NhdGNoMl9nX2Vycm9yOwoJCX0KCX0KCWdvdG8g
X19maW5hbGx5MjsKCV9fY2F0Y2gyX2dfZXJyb3I6Cgl7CgkJR0Vycm9yKiBlcnIgPSBOVUxMOwoJ
CUdFcnJvciogX3RtcDRfOwoJCWNvbnN0IGdjaGFyKiBfdG1wNV87CiNsaW5lIDEyOCAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCgkJZXJyID0gX2lubmVyX2Vycm9yXzsKI2xpbmUgMTI4ICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCQlfaW5uZXJfZXJyb3JfID0gTlVMTDsKI2xpbmUgMTMzICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNF8gPSBlcnI7CiNsaW5lIDEzMyAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDVfID0gX3RtcDRfLT5tZXNzYWdlOwojbGluZSAxMzMg
Ii9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dl
Yi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdfZGVidWcgKCJ3ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYToxMzM6IEVycm9yIGNhbGxpbmcgUGFnZVN0YXRlczo6c2VsZWN0aW9uQ2hhIiBcCiJu
Z2VkOiAlcyIsIF90bXA1Xyk7CiNsaW5lIDEyOCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJ
X2dfZXJyb3JfZnJlZTAgKGVycik7CiNsaW5lIDg4MCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMi
Cgl9CglfX2ZpbmFsbHkyOgojbGluZSAxMjggIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFy
eS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJaWYg
KEdfVU5MSUtFTFkgKF9pbm5lcl9lcnJvcl8gIT0gTlVMTCkpIHsKI2xpbmUgMTI4ICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCQlfZ19vYmplY3RfdW5yZWYwIChmcmFtZSk7CiNsaW5lIDEyOCAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZ19jcml0aWNhbCAoImZpbGUgJXM6IGxpbmUgJWQ6
IHVuY2F1Z2h0IGVycm9yOiAlcyAoJXMsICVkKSIsIF9fRklMRV9fLCBfX0xJTkVfXywgX2lubmVy
X2Vycm9yXy0+bWVzc2FnZSwgZ19xdWFya190b19zdHJpbmcgKF9pbm5lcl9lcnJvcl8tPmRvbWFp
biksIF9pbm5lcl9lcnJvcl8tPmNvZGUpOwojbGluZSAxMjggIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJCWdfY2xlYXJfZXJyb3IgKCZfaW5uZXJfZXJyb3JfKTsKI2xpbmUgMTI4ICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCQlyZXR1cm47CiNsaW5lIDg5MyAid2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLmMiCgl9CiNsaW5lIDEyMyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19vYmplY3Rf
dW5yZWYwIChmcmFtZSk7CiNsaW5lIDg5NyAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpz
dGF0aWMgSlNWYWx1ZVJlZioKX0pTX3ZhbHVlX2R1cCAoSlNWYWx1ZVJlZiogc2VsZikKewoJSlNW
YWx1ZVJlZiogZHVwOwojbGluZSAxNDkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZHVwID0g
Z19uZXcwIChKU1ZhbHVlUmVmLCAxKTsKI2xpbmUgMTQ5ICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCW1lbWNweSAoZHVwLCBzZWxmLCBzaXplb2YgKEpTVmFsdWVSZWYpKTsKI2xpbmUgMTQ5ICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVybiBkdXA7CiNsaW5lIDkxMSAid2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMgZ3BvaW50ZXIKX19KU192YWx1ZV9kdXAwIChncG9p
bnRlciBzZWxmKQp7CiNsaW5lIDE0OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglyZXR1cm4g
c2VsZiA/IF9KU192YWx1ZV9kdXAgKHNlbGYpIDogTlVMTDsKI2xpbmUgOTIwICJ3ZWItcHJvY2Vz
cy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyBKU1ZhbHVlUmVmKgpnZWFyeV93ZWJfZXh0ZW5zaW9u
X2V4ZWN1dGVfc2NyaXB0IChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBzY3JpcHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdpbnQgbGluZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0Vycm9yKiogZXJyb3IpCnsKCUpTVmFsdWVSZWYqIHJlc3VsdCA9IE5VTEw7
CglKU1N0cmluZ1JlZiBqc19zY3JpcHQgPSB7MH07CglKU1N0cmluZ1JlZiBfdG1wMF87CglKU1N0
cmluZ1JlZiBqc19zb3VyY2UgPSB7MH07CglKU1N0cmluZ1JlZiBfdG1wMV87CglKU1ZhbHVlUmVm
KiBlcnIgPSBOVUxMOwoJR0Vycm9yICogX2lubmVyX2Vycm9yXyA9IE5VTEw7CiNsaW5lIDEzOSAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiAhPSBO
VUxMLCBOVUxMKTsKI2xpbmUgMTM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3Jj
L2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChzY3JpcHQgIT0gTlVMTCwgTlVMTCk7CiNsaW5lIDE0MSAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCglfdG1wMF8gPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyAo
c2NyaXB0KTsKI2xpbmUgMTQxICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWpzX3NjcmlwdCA9
IF90bXAwXzsKI2xpbmUgMTQyICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAxXyA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nICgiX19GSUxFX18iKTsKI2xpbmUgMTQyICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCWpzX3NvdXJjZSA9IF90bXAxXzsKI2xpbmUgMTQzICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCWVyciA9IE5VTEw7CiNsaW5lIDk1MiAid2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLmMiCgl7CgkJSlNWYWx1ZVJlZiByZXQgPSB7MH07CgkJSlNTdHJpbmdSZWYgX3Rt
cDJfOwoJCUpTU3RyaW5nUmVmIF90bXAzXzsKCQlKU1ZhbHVlUmVmKiBfdG1wNF8gPSBOVUxMOwoJ
CUpTVmFsdWVSZWYgX3RtcDVfOwoJCUpTVmFsdWVSZWYqIF90bXA2XzsKCQlKU1ZhbHVlUmVmKiBf
dG1wN187CiNsaW5lIDE0NSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDJfID0ganNf
c2NyaXB0OwojbGluZSAxNDUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXAzXyA9IGpz
X3NvdXJjZTsKI2xpbmUgMTQ1ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNV8gPSBK
U0V2YWx1YXRlU2NyaXB0IChjb250ZXh0LCBfdG1wMl8sIE5VTEwsICZfdG1wM18sIGxpbmUsICZf
dG1wNF8pOwojbGluZSAxNDUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX2ZyZWUwIChl
cnIpOwojbGluZSAxNDUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWVyciA9IF90bXA0XzsK
I2xpbmUgMTQ1ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlyZXQgPSBfdG1wNV87CiNsaW5l
IDE0OCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDZfID0gZXJyOwojbGluZSAxNDgg
Ii9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dl
Yi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdlYXJ5X2pzX2NoZWNrX2V4Y2VwdGlvbiAoY29u
dGV4dCwgX3RtcDZfLCAmX2lubmVyX2Vycm9yXyk7CiNsaW5lIDE0OCAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCgkJaWYgKEdfVU5MSUtFTFkgKF9pbm5lcl9lcnJvcl8gIT0gTlVMTCkpIHsKI2xp
bmUgOTc5ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCQkJZ290byBfX2ZpbmFsbHkzOwoJCX0K
I2xpbmUgMTQ5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wN18gPSBfX0pTX3ZhbHVl
X2R1cDAgKCZyZXQpOwojbGluZSAxNDkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCXJlc3Vs
dCA9IF90bXA3XzsKI2xpbmUgOTg2ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCQl7CiNsaW5l
IDE1MSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJCUpTU3RyaW5nUmVsZWFzZSAoanNfc2Ny
aXB0KTsKI2xpbmUgMTUyICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQkJSlNTdHJpbmdSZWxl
YXNlIChqc19zb3VyY2UpOwojbGluZSA5OTIgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJCX0K
I2xpbmUgMTQ5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfZ19mcmVlMCAoZXJyKTsKI2xp
bmUgMTQ5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJv
Y2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlyZXR1cm4gcmVzdWx0OwojbGluZSA5
OTggIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQoJX19maW5hbGx5MzoKCXsKI2xpbmUgMTUx
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlKU1N0cmluZ1JlbGVhc2UgKGpzX3NjcmlwdCk7
CiNsaW5lIDE1MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2Vi
LXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJSlNTdHJpbmdSZWxlYXNlIChq
c19zb3VyY2UpOwojbGluZSAxMDA2ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KI2xpbmUg
MTQ0ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWlmIChfaW5uZXJfZXJyb3JfLT5kb21haW4g
PT0gR0VBUllfSlNfRVJST1IpIHsKI2xpbmUgMTQ0ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CQlnX3Byb3BhZ2F0ZV9lcnJvciAoZXJyb3IsIF9pbm5lcl9lcnJvcl8pOwojbGluZSAxNDQgIi9o
b21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1w
cm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX2ZyZWUwIChlcnIpOwojbGluZSAxNDQgIi9ob21l
L21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9j
ZXNzLWV4dGVuc2lvbi52YWxhIgoJCXJldHVybiBOVUxMOwojbGluZSAxMDE2ICJ3ZWItcHJvY2Vz
cy1leHRlbnNpb24uYyIKCX0gZWxzZSB7CiNsaW5lIDE0NCAiL2hvbWUvbWpnL1Byb2plY3RzL0dO
T01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEiCgkJX2dfZnJlZTAgKGVycik7CiNsaW5lIDE0NCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CgkJZ19jcml0aWNhbCAoImZpbGUgJXM6IGxpbmUgJWQ6IHVuY2F1Z2h0IGVycm9yOiAlcyAoJXMs
ICVkKSIsIF9fRklMRV9fLCBfX0xJTkVfXywgX2lubmVyX2Vycm9yXy0+bWVzc2FnZSwgZ19xdWFy
a190b19zdHJpbmcgKF9pbm5lcl9lcnJvcl8tPmRvbWFpbiksIF9pbm5lcl9lcnJvcl8tPmNvZGUp
OwojbGluZSAxNDQgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdfY2xlYXJfZXJyb3IgKCZf
aW5uZXJfZXJyb3JfKTsKI2xpbmUgMTQ0ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlyZXR1
cm4gTlVMTDsKI2xpbmUgMTAyNiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9CiNsaW5lIDEz
OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19mcmVlMCAoZXJyKTsKI2xpbmUgMTAzMCAi
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMgdm9pZApnZWFyeV93ZWJfZXh0ZW5z
aW9uX2NsYXNzX2luaXQgKEdlYXJ5V2ViRXh0ZW5zaW9uQ2xhc3MgKiBrbGFzcykKewojbGluZSAy
OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnZWFyeV93ZWJfZXh0ZW5zaW9uX3BhcmVudF9j
bGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoa2xhc3MpOwojbGluZSAyOSAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGtsYXNzLCBzaXpl
b2YgKEdlYXJ5V2ViRXh0ZW5zaW9uUHJpdmF0ZSkpOwojbGluZSAyOSAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCglHX09CSkVDVF9DTEFTUyAoa2xhc3MpLT5maW5hbGl6ZSA9IGdlYXJ5X3dlYl9l
eHRlbnNpb25fZmluYWxpemU7CiNsaW5lIDEwNDMgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9
CgoKc3RhdGljIHZvaWQKZ2Vhcnlfd2ViX2V4dGVuc2lvbl9pbnN0YW5jZV9pbml0IChHZWFyeVdl
YkV4dGVuc2lvbiAqIHNlbGYpCnsKI2xpbmUgMjkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
c2VsZi0+cHJpdiA9IEdFQVJZX1dFQl9FWFRFTlNJT05fR0VUX1BSSVZBVEUgKHNlbGYpOwojbGlu
ZSAxMDUyICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyB2b2lkCmdlYXJ5X3dl
Yl9leHRlbnNpb25fZmluYWxpemUgKEdPYmplY3QgKiBvYmopCnsKCUdlYXJ5V2ViRXh0ZW5zaW9u
ICogc2VsZjsKI2xpbmUgMjkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJc2VsZiA9IEdfVFlQ
RV9DSEVDS19JTlNUQU5DRV9DQVNUIChvYmosIFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTiwgR2Vh
cnlXZWJFeHRlbnNpb24pOwojbGluZSAzNCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19v
YmplY3RfdW5yZWYwIChzZWxmLT5wcml2LT5leHRlbnNpb24pOwojbGluZSAyOSAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCglHX09CSkVDVF9DTEFTUyAoZ2Vhcnlfd2ViX2V4dGVuc2lvbl9wYXJl
bnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqKTsKI2xpbmUgMTA2NiAid2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLmMiCn0KCgovKioKICogQSBXZWJFeHRlbnNpb24gdGhhdCBtYW5hZ2VzIEdlYXJ5LXNwZWNp
ZmljIGJlaGF2aW91cnMgaW4gd2ViIHByb2Nlc3Nlcy4KICovCkdUeXBlCmdlYXJ5X3dlYl9leHRl
bnNpb25fZ2V0X3R5cGUgKHZvaWQpCnsKCXN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBnZWFyeV93ZWJf
ZXh0ZW5zaW9uX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsKCWlmIChnX29uY2VfaW5pdF9lbnRlciAo
JmdlYXJ5X3dlYl9leHRlbnNpb25fdHlwZV9pZF9fdm9sYXRpbGUpKSB7CgkJc3RhdGljIGNvbnN0
IEdUeXBlSW5mbyBnX2RlZmluZV90eXBlX2luZm8gPSB7IHNpemVvZiAoR2VhcnlXZWJFeHRlbnNp
b25DbGFzcyksIChHQmFzZUluaXRGdW5jKSBOVUxMLCAoR0Jhc2VGaW5hbGl6ZUZ1bmMpIE5VTEws
IChHQ2xhc3NJbml0RnVuYykgZ2Vhcnlfd2ViX2V4dGVuc2lvbl9jbGFzc19pbml0LCAoR0NsYXNz
RmluYWxpemVGdW5jKSBOVUxMLCBOVUxMLCBzaXplb2YgKEdlYXJ5V2ViRXh0ZW5zaW9uKSwgMCwg
KEdJbnN0YW5jZUluaXRGdW5jKSBnZWFyeV93ZWJfZXh0ZW5zaW9uX2luc3RhbmNlX2luaXQsIE5V
TEwgfTsKCQlHVHlwZSBnZWFyeV93ZWJfZXh0ZW5zaW9uX3R5cGVfaWQ7CgkJZ2Vhcnlfd2ViX2V4
dGVuc2lvbl90eXBlX2lkID0gZ190eXBlX3JlZ2lzdGVyX3N0YXRpYyAoR19UWVBFX09CSkVDVCwg
IkdlYXJ5V2ViRXh0ZW5zaW9uIiwgJmdfZGVmaW5lX3R5cGVfaW5mbywgMCk7CgkJZ19vbmNlX2lu
aXRfbGVhdmUgKCZnZWFyeV93ZWJfZXh0ZW5zaW9uX3R5cGVfaWRfX3ZvbGF0aWxlLCBnZWFyeV93
ZWJfZXh0ZW5zaW9uX3R5cGVfaWQpOwoJfQoJcmV0dXJuIGdlYXJ5X3dlYl9leHRlbnNpb25fdHlw
ZV9pZF9fdm9sYXRpbGU7Cn0KCgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>336550</attachid>
            <date>2018-03-26 16:24:27 -0700</date>
            <delta_ts>2018-03-26 16:24:27 -0700</delta_ts>
            <desc>Generated web extension code 2.18</desc>
            <filename>web-process-extension.c-2.18</filename>
            <type>text/x-csrc</type>
            <size>53046</size>
            <attacher name="Michael Gratton">mike</attacher>
            
              <data encoding="base64">Lyogd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMgZ2VuZXJhdGVkIGJ5IHZhbGFjIDAuNDAuMCwgdGhl
IFZhbGEgY29tcGlsZXIKICogZ2VuZXJhdGVkIGZyb20gd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEsIGRvIG5vdCBtb2RpZnkgKi8KCi8qCiAqIENvcHlyaWdodCAyMDE2IE1pY2hhZWwgR3JhdHRv
biA8bWlrZUB2ZWUubmV0PgogKgogKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogKHZlcnNpb24gMi4xIG9yIGxh
dGVyKS4gU2VlIHRoZSBDT1BZSU5HIGZpbGUgaW4gdGhpcyBkaXN0cmlidXRpb24uCiAqLwoKCiNp
bmNsdWRlIDxnbGliLmg+CiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVkZSAid2Via2l0
Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oIgojaW5jbHVkZSAiZ2VhcnktZW5naW5lLmgiCiNpbmNs
dWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2lu
Y2x1ZGUgPGxpYnNvdXAvc291cC5oPgojaW5jbHVkZSA8Z2RrL2dkay5oPgojaW5jbHVkZSAiSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oIgoKCiNkZWZpbmUgVFlQRV9HRUFSWV9XRUJfRVhURU5T
SU9OIChnZWFyeV93ZWJfZXh0ZW5zaW9uX2dldF90eXBlICgpKQojZGVmaW5lIEdFQVJZX1dFQl9F
WFRFTlNJT04ob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBUWVBFX0dF
QVJZX1dFQl9FWFRFTlNJT04sIEdlYXJ5V2ViRXh0ZW5zaW9uKSkKI2RlZmluZSBHRUFSWV9XRUJf
RVhURU5TSU9OX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyks
IFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTiwgR2VhcnlXZWJFeHRlbnNpb25DbGFzcykpCiNkZWZp
bmUgSVNfR0VBUllfV0VCX0VYVEVOU0lPTihvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSAoKG9iaiksIFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTikpCiNkZWZpbmUgSVNfR0VBUllfV0VC
X0VYVEVOU0lPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3Mp
LCBUWVBFX0dFQVJZX1dFQl9FWFRFTlNJT04pKQojZGVmaW5lIEdFQVJZX1dFQl9FWFRFTlNJT05f
R0VUX0NMQVNTKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvYmopLCBUWVBFX0dF
QVJZX1dFQl9FWFRFTlNJT04sIEdlYXJ5V2ViRXh0ZW5zaW9uQ2xhc3MpKQoKdHlwZWRlZiBzdHJ1
Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uIEdlYXJ5V2ViRXh0ZW5zaW9uOwp0eXBlZGVmIHN0cnVjdCBf
R2VhcnlXZWJFeHRlbnNpb25DbGFzcyBHZWFyeVdlYkV4dGVuc2lvbkNsYXNzOwojZGVmaW5lIF9n
X29iamVjdF91bnJlZjAodmFyKSAoKHZhciA9PSBOVUxMKSA/IE5VTEwgOiAodmFyID0gKGdfb2Jq
ZWN0X3VucmVmICh2YXIpLCBOVUxMKSkpCnR5cGVkZWYgc3RydWN0IF9HZWFyeVdlYkV4dGVuc2lv
blByaXZhdGUgR2VhcnlXZWJFeHRlbnNpb25Qcml2YXRlOwplbnVtICB7CglHRUFSWV9XRUJfRVhU
RU5TSU9OXzBfUFJPUEVSVFksCglHRUFSWV9XRUJfRVhURU5TSU9OX05VTV9QUk9QRVJUSUVTCn07
CnN0YXRpYyBHUGFyYW1TcGVjKiBnZWFyeV93ZWJfZXh0ZW5zaW9uX3Byb3BlcnRpZXNbR0VBUllf
V0VCX0VYVEVOU0lPTl9OVU1fUFJPUEVSVElFU107CnR5cGVkZWYgc3RydWN0IF9CbG9jazFEYXRh
IEJsb2NrMURhdGE7CiNkZWZpbmUgX2dfZnJlZTAodmFyKSAodmFyID0gKGdfZnJlZSAodmFyKSwg
TlVMTCkpCiNkZWZpbmUgX192YWxhX1NvdXBVUklfZnJlZTAodmFyKSAoKHZhciA9PSBOVUxMKSA/
IE5VTEwgOiAodmFyID0gKF92YWxhX1NvdXBVUklfZnJlZSAodmFyKSwgTlVMTCkpKQojZGVmaW5l
IF9nX2Vycm9yX2ZyZWUwKHZhcikgKCh2YXIgPT0gTlVMTCkgPyBOVUxMIDogKHZhciA9IChnX2Vy
cm9yX2ZyZWUgKHZhciksIE5VTEwpKSkKCnN0cnVjdCBfR2VhcnlXZWJFeHRlbnNpb24gewoJR09i
amVjdCBwYXJlbnRfaW5zdGFuY2U7CglHZWFyeVdlYkV4dGVuc2lvblByaXZhdGUgKiBwcml2Owp9
OwoKc3RydWN0IF9HZWFyeVdlYkV4dGVuc2lvbkNsYXNzIHsKCUdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7Cn07CgpzdHJ1Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uUHJpdmF0ZSB7CglXZWJLaXRXZWJF
eHRlbnNpb24qIGV4dGVuc2lvbjsKfTsKCnN0cnVjdCBfQmxvY2sxRGF0YSB7CglpbnQgX3JlZl9j
b3VudF87CglHZWFyeVdlYkV4dGVuc2lvbiogc2VsZjsKCVdlYktpdFdlYlBhZ2UqIHdlYl9wYWdl
Owp9OwoKCnN0YXRpYyBncG9pbnRlciBnZWFyeV93ZWJfZXh0ZW5zaW9uX3BhcmVudF9jbGFzcyA9
IE5VTEw7Cgp2b2lkIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemVfd2l0aF91c2VyX2Rh
dGEgKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50KiBkYXRhKTsKR1R5cGUgZ2Vh
cnlfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZSAodm9pZCkgR19HTlVDX0NPTlNUOwpHZWFyeVdlYkV4
dGVuc2lvbiogZ2Vhcnlfd2ViX2V4dGVuc2lvbl9uZXcgKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uKTsKR2VhcnlXZWJFeHRlbnNpb24qIGdlYXJ5X3dlYl9leHRlbnNpb25fY29uc3RydWN0
IChHVHlwZSBvYmplY3RfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbik7CiNkZWZpbmUgR0VB
UllfV0VCX0VYVEVOU0lPTl9HRVRfUFJJVkFURShvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFICgobyksIFRZUEVfR0VBUllfV0VCX0VYVEVOU0lPTiwgR2VhcnlXZWJFeHRlbnNpb25Qcml2
YXRlKSkKc3RhdGljIHZvaWQgX19sYW1iZGE0XyAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAg
ICAgICAgICAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sCiAgICAgICAgICAg
ICAgICAgV2ViS2l0V2ViUGFnZSogd2ViX3BhZ2UpOwpzdGF0aWMgQmxvY2sxRGF0YSogYmxvY2sx
X2RhdGFfcmVmIChCbG9jazFEYXRhKiBfZGF0YTFfKTsKc3RhdGljIHZvaWQgYmxvY2sxX2RhdGFf
dW5yZWYgKHZvaWQgKiBfdXNlcmRhdGFfKTsKc3RhdGljIHZvaWQgZ2Vhcnlfd2ViX2V4dGVuc2lv
bl9vbl9jb25zb2xlX21lc3NhZ2UgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDb25zb2xl
TWVzc2FnZSogbWVzc2FnZSk7CnN0YXRpYyB2b2lkIF9nZWFyeV93ZWJfZXh0ZW5zaW9uX29uX2Nv
bnNvbGVfbWVzc2FnZV93ZWJraXRfd2ViX3BhZ2VfY29uc29sZV9tZXNzYWdlX3NlbnQgKFdlYktp
dFdlYlBhZ2UqIF9zZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q29uc29s
ZU1lc3NhZ2UqIGNvbnNvbGVfbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p
bnRlciBzZWxmKTsKc3RhdGljIGdib29sZWFuIGdlYXJ5X3dlYl9leHRlbnNpb25fb25fc2VuZF9y
ZXF1ZXN0IChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJ
UmVzcG9uc2UqIHJlc3BvbnNlKTsKc3RhdGljIGdib29sZWFuIF9nZWFyeV93ZWJfZXh0ZW5zaW9u
X29uX3NlbmRfcmVxdWVzdF93ZWJraXRfd2ViX3BhZ2Vfc2VuZF9yZXF1ZXN0IChXZWJLaXRXZWJQ
YWdlKiBfc2VuZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVz
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdGVkX3Jlc3Bv
bnNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgc2VsZik7CnN0YXRpYyB2b2lkIF9fbGFt
YmRhNV8gKEJsb2NrMURhdGEqIF9kYXRhMV8pOwpzdGF0aWMgdm9pZCBnZWFyeV93ZWJfZXh0ZW5z
aW9uX3NlbGVjdGlvbl9jaGFuZ2VkIChHZWFyeVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlKTsK
c3RhdGljIHZvaWQgX19fbGFtYmRhNV9fd2Via2l0X3dlYl9lZGl0b3Jfc2VsZWN0aW9uX2NoYW5n
ZWQgKFdlYktpdFdlYkVkaXRvciogX3NlbmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgc2VsZik7CnN0YXRpYyB2b2lkIF9f
X2xhbWJkYTRfX3dlYmtpdF93ZWJfZXh0ZW5zaW9uX3BhZ2VfY3JlYXRlZCAoV2ViS2l0V2ViRXh0
ZW5zaW9uKiBfc2VuZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSogd2ViX3BhZ2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBzZWxmKTsKY29uc3QgZ2No
YXIqIHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfbGV2ZWxfdG9fc3RyaW5nIChXZWJLaXRDb25zb2xl
TWVzc2FnZUxldmVsIHNlbGYpOwpzdGF0aWMgY29uc3QgY2hhciogX3dlYmtpdF9jb25zb2xlX21l
c3NhZ2VfbGV2ZWxfdG9fc3RyaW5nIChXZWJLaXRDb25zb2xlTWVzc2FnZUxldmVsIHZhbHVlKTsK
Y29uc3QgZ2NoYXIqIHdlYmtpdF9jb25zb2xlX21lc3NhZ2Vfc291cmNlX3RvX3N0cmluZyAoV2Vi
S2l0Q29uc29sZU1lc3NhZ2VTb3VyY2Ugc2VsZik7CnN0YXRpYyBjb25zdCBjaGFyKiBfd2Via2l0
X2NvbnNvbGVfbWVzc2FnZV9zb3VyY2VfdG9fc3RyaW5nIChXZWJLaXRDb25zb2xlTWVzc2FnZVNv
dXJjZSB2YWx1ZSk7CnN0YXRpYyBnYm9vbGVhbiBfdmFsYV9zdHJpbmdfYXJyYXlfY29udGFpbnMg
KGNvbnN0IGdjaGFyKiAqIHN0YWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBzdGFja19sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIqIG5lZWRsZSk7CnN0YXRpYyBnYm9vbGVhbiBnZWFyeV93ZWJfZXh0ZW5z
aW9uX3Nob3VsZF9sb2FkX3JlbW90ZV9pbWFnZXMgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFdlYlBhZ2UqIHBhZ2UpOwpzdGF0aWMgdm9pZCBnZWFyeV93ZWJfZXh0ZW5zaW9uX3JlbW90
ZV9pbWFnZV9sb2FkX2Jsb2NrZWQgKEdlYXJ5V2ViRXh0ZW5zaW9uKiBzZWxmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSog
cGFnZSk7CnN0YXRpYyB2b2lkIF92YWxhX1NvdXBVUklfZnJlZSAoU291cFVSSSogc2VsZik7CnN0
YXRpYyBKU1ZhbHVlUmVmKiBnZWFyeV93ZWJfZXh0ZW5zaW9uX2V4ZWN1dGVfc2NyaXB0IChHZWFy
eVdlYkV4dGVuc2lvbiogc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBzY3JpcHQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgbGluZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yKiogZXJyb3IpOwpz
dGF0aWMgSlNWYWx1ZVJlZiogX0pTX3ZhbHVlX2R1cCAoSlNWYWx1ZVJlZiogc2VsZik7CnN0YXRp
YyB2b2lkIGdlYXJ5X3dlYl9leHRlbnNpb25fZmluYWxpemUgKEdPYmplY3QgKiBvYmopOwoKc3Rh
dGljIGNvbnN0IGdjaGFyKiBHRUFSWV9XRUJfRVhURU5TSU9OX0FMTE9XRURfU0NIRU1FU1szXSA9
IHsiY2lkIiwgImdlYXJ5IiwgImRhdGEifTsKCi8qKgogKiBJbml0aWFsaXNlcyBHZWFyeVdlYkV4
dGVuc2lvbiBmb3IgV2ViS2l0IHdlYiBwcm9jZXNzZXMuCiAqLwp2b2lkCndlYmtpdF93ZWJfZXh0
ZW5zaW9uX2luaXRpYWxpemVfd2l0aF91c2VyX2RhdGEgKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VmFyaWFudCogZGF0YSkKewoJZ2Jvb2xlYW4gbG9nZ2luZ19lbmFibGVkID0gRkFMU0U7CglnYm9v
bGVhbiBfdG1wMF87CglHZWFyeVdlYkV4dGVuc2lvbiogaW5zdGFuY2UgPSBOVUxMOwoJR2VhcnlX
ZWJFeHRlbnNpb24qIF90bXAyXzsKI2xpbmUgMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
Z19yZXR1cm5faWZfZmFpbCAoZXh0ZW5zaW9uICE9IE5VTEwpOwojbGluZSAxMSAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl9pZl9mYWlsIChkYXRhICE9IE5VTEwpOwojbGluZSAx
MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglsb2dnaW5nX2VuYWJsZWQgPSBnX3ZhcmlhbnRf
Z2V0X2Jvb2xlYW4gKGRhdGEpOwojbGluZSAxNSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgln
ZWFyeV9sb2dnaW5nX2luaXQgKCk7CiNsaW5lIDE2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CV90bXAwXyA9IGxvZ2dpbmdfZW5hYmxlZDsKI2xpbmUgMTYgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJaWYgKF90bXAwXykgewojbGluZSAxNDcgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJ
CUZJTEUqIF90bXAxXzsKI2xpbmUgMTcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXAx
XyA9IHN0ZG91dDsKI2xpbmUgMTcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdlYXJ5X2xv
Z2dpbmdfbG9nX3RvIChfdG1wMV8pOwojbGluZSAxNTMgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5j
IgoJfQojbGluZSAxOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX2RlYnVnICgid2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLnZhbGE6MTk6IEluaXRpYWxpc2luZy4uLiIpOwojbGluZSAyMiAiL2hv
bWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wMl8gPSBnZWFyeV93ZWJfZXh0ZW5zaW9uX25ldyAo
ZXh0ZW5zaW9uKTsKI2xpbmUgMjIgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJaW5zdGFuY2Ug
PSBfdG1wMl87CiNsaW5lIDIzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfb2JqZWN0X3Jl
ZiAoKEdPYmplY3QqKSBpbnN0YW5jZSk7CiNsaW5lIDExICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCV9nX29iamVjdF91bnJlZjAgKGluc3RhbmNlKTsKI2xpbmUgMTY1ICJ3ZWItcHJvY2Vzcy1l
eHRlbnNpb24uYyIKfQoKCnN0YXRpYyBncG9pbnRlcgpfZ19vYmplY3RfcmVmMCAoZ3BvaW50ZXIg
c2VsZikKewojbGluZSAzOCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglyZXR1cm4gc2VsZiA/
IGdfb2JqZWN0X3JlZiAoc2VsZikgOiBOVUxMOwojbGluZSAxNzQgIndlYi1wcm9jZXNzLWV4dGVu
c2lvbi5jIgp9CgoKc3RhdGljIEJsb2NrMURhdGEqCmJsb2NrMV9kYXRhX3JlZiAoQmxvY2sxRGF0
YSogX2RhdGExXykKewojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX2F0b21p
Y19pbnRfaW5jICgmX2RhdGExXy0+X3JlZl9jb3VudF8pOwojbGluZSAzOSAiL2hvbWUvbWpnL1By
b2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLnZhbGEiCglyZXR1cm4gX2RhdGExXzsKI2xpbmUgMTg1ICJ3ZWItcHJvY2Vzcy1leHRl
bnNpb24uYyIKfQoKCnN0YXRpYyB2b2lkCmJsb2NrMV9kYXRhX3VucmVmICh2b2lkICogX3VzZXJk
YXRhXykKewoJQmxvY2sxRGF0YSogX2RhdGExXzsKCV9kYXRhMV8gPSAoQmxvY2sxRGF0YSopIF91
c2VyZGF0YV87CiNsaW5lIDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWlmIChnX2F0b21p
Y19pbnRfZGVjX2FuZF90ZXN0ICgmX2RhdGExXy0+X3JlZl9jb3VudF8pKSB7CiNsaW5lIDE5NiAi
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgkJR2VhcnlXZWJFeHRlbnNpb24qIHNlbGY7CiNsaW5l
IDM5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlzZWxmID0gX2RhdGExXy0+c2VsZjsKI2xp
bmUgMzkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9j
ZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX29iamVjdF91bnJlZjAgKF9kYXRh
MV8tPndlYl9wYWdlKTsKI2xpbmUgMzkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX29i
amVjdF91bnJlZjAgKHNlbGYpOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJ
Z19zbGljZV9mcmVlIChCbG9jazFEYXRhLCBfZGF0YTFfKTsKI2xpbmUgMjA2ICJ3ZWItcHJvY2Vz
cy1leHRlbnNpb24uYyIKCX0KfQoKCnN0YXRpYyB2b2lkCl9nZWFyeV93ZWJfZXh0ZW5zaW9uX29u
X2NvbnNvbGVfbWVzc2FnZV93ZWJraXRfd2ViX3BhZ2VfY29uc29sZV9tZXNzYWdlX3NlbnQgKFdl
YktpdFdlYlBhZ2UqIF9zZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdENvbnNvbGVN
ZXNzYWdlKiBjb25zb2xlX21lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHNl
bGYpCnsKI2xpbmUgNDAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ2Vhcnlfd2ViX2V4dGVu
c2lvbl9vbl9jb25zb2xlX21lc3NhZ2UgKChHZWFyeVdlYkV4dGVuc2lvbiopIHNlbGYsIF9zZW5k
ZXIsIGNvbnNvbGVfbWVzc2FnZSk7CiNsaW5lIDIxOCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMi
Cn0KCgpzdGF0aWMgZ2Jvb2xlYW4KX2dlYXJ5X3dlYl9leHRlbnNpb25fb25fc2VuZF9yZXF1ZXN0
X3dlYmtpdF93ZWJfcGFnZV9zZW5kX3JlcXVlc3QgKFdlYktpdFdlYlBhZ2UqIF9zZW5kZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJUmVz
cG9uc2UqIHJlZGlyZWN0ZWRfcmVzcG9uc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBzZWxmKQp7Cgln
Ym9vbGVhbiByZXN1bHQ7CglyZXN1bHQgPSBnZWFyeV93ZWJfZXh0ZW5zaW9uX29uX3NlbmRfcmVx
dWVzdCAoKEdlYXJ5V2ViRXh0ZW5zaW9uKikgc2VsZiwgX3NlbmRlciwgcmVxdWVzdCwgcmVkaXJl
Y3RlZF9yZXNwb25zZSk7CiNsaW5lIDQxICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVy
biByZXN1bHQ7CiNsaW5lIDIzMiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMg
dm9pZApfX2xhbWJkYTVfIChCbG9jazFEYXRhKiBfZGF0YTFfKQp7CglHZWFyeVdlYkV4dGVuc2lv
biogc2VsZjsKI2xpbmUgNDYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJc2VsZiA9IF9kYXRh
MV8tPnNlbGY7CiNsaW5lIDQ3ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdlYXJ5X3dlYl9l
eHRlbnNpb25fc2VsZWN0aW9uX2NoYW5nZWQgKHNlbGYsIF9kYXRhMV8tPndlYl9wYWdlKTsKI2xp
bmUgMjQ0ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyB2b2lkCl9fX2xhbWJk
YTVfX3dlYmtpdF93ZWJfZWRpdG9yX3NlbGVjdGlvbl9jaGFuZ2VkIChXZWJLaXRXZWJFZGl0b3Iq
IF9zZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncG9pbnRlciBzZWxmKQp7CiNsaW5lIDQ2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vh
cnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9f
bGFtYmRhNV8gKHNlbGYpOwojbGluZSAyNTQgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoK
c3RhdGljIHZvaWQKX19sYW1iZGE0XyAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAgICAg
ICAgIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLAogICAgICAgICAgICBXZWJLaXRXZWJQ
YWdlKiB3ZWJfcGFnZSkKewoJQmxvY2sxRGF0YSogX2RhdGExXzsKCVdlYktpdFdlYlBhZ2UqIF90
bXAwXzsKCVdlYktpdFdlYkVkaXRvciogX3RtcDFfOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCglnX3JldHVybl9pZl9mYWlsIChleHRlbnNpb24gIT0gTlVMTCk7CiNsaW5lIDM5
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJuX2lmX2ZhaWwgKHdlYl9wYWdlICE9
IE5VTEwpOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZGF0YTFfID0gZ19z
bGljZV9uZXcwIChCbG9jazFEYXRhKTsKI2xpbmUgMzkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9N
RS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxh
IgoJX2RhdGExXy0+X3JlZl9jb3VudF8gPSAxOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3Rz
L0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LnZhbGEiCglfZGF0YTFfLT5zZWxmID0gZ19vYmplY3RfcmVmIChzZWxmKTsKI2xpbmUgMzkgIi9o
b21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1w
cm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gX2dfb2JqZWN0X3JlZjAgKHdlYl9wYWdl
KTsKI2xpbmUgMzkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX2dfb2JqZWN0X3VucmVmMCAo
X2RhdGExXy0+d2ViX3BhZ2UpOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglf
ZGF0YTFfLT53ZWJfcGFnZSA9IF90bXAwXzsKI2xpbmUgNDAgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJZ19zaWduYWxfY29ubmVjdF9vYmplY3QgKF9kYXRhMV8tPndlYl9wYWdlLCAiY29uc29s
ZS1tZXNzYWdlLXNlbnQiLCAoR0NhbGxiYWNrKSBfZ2Vhcnlfd2ViX2V4dGVuc2lvbl9vbl9jb25z
b2xlX21lc3NhZ2Vfd2Via2l0X3dlYl9wYWdlX2NvbnNvbGVfbWVzc2FnZV9zZW50LCBzZWxmLCAw
KTsKI2xpbmUgNDEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19zaWduYWxfY29ubmVjdF9v
YmplY3QgKF9kYXRhMV8tPndlYl9wYWdlLCAic2VuZC1yZXF1ZXN0IiwgKEdDYWxsYmFjaykgX2dl
YXJ5X3dlYl9leHRlbnNpb25fb25fc2VuZF9yZXF1ZXN0X3dlYmtpdF93ZWJfcGFnZV9zZW5kX3Jl
cXVlc3QsIHNlbGYsIDApOwojbGluZSA0NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1w
MV8gPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvciAoX2RhdGExXy0+d2ViX3BhZ2UpOwojbGlu
ZSA0NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3NpZ25hbF9jb25uZWN0X2RhdGEgKF90
bXAxXywgInNlbGVjdGlvbi1jaGFuZ2VkIiwgKEdDYWxsYmFjaykgX19fbGFtYmRhNV9fd2Via2l0
X3dlYl9lZGl0b3Jfc2VsZWN0aW9uX2NoYW5nZWQsIGJsb2NrMV9kYXRhX3JlZiAoX2RhdGExXyks
IChHQ2xvc3VyZU5vdGlmeSkgYmxvY2sxX2RhdGFfdW5yZWYsIDApOwojbGluZSAzOSAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglibG9jazFfZGF0YV91bnJlZiAoX2RhdGExXyk7CiNsaW5lIDM5
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV9kYXRhMV8gPSBOVUxMOwojbGluZSAyOTQgIndl
Yi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIHZvaWQKX19fbGFtYmRhNF9fd2Via2l0
X3dlYl9leHRlbnNpb25fcGFnZV9jcmVhdGVkIChXZWJLaXRXZWJFeHRlbnNpb24qIF9zZW5kZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2Vi
UGFnZSogd2ViX3BhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3BvaW50ZXIgc2VsZikKewojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglfX2xhbWJkYTRfICgoR2VhcnlXZWJFeHRlbnNpb24qKSBzZWxmLCBfc2VuZGVyLCB3ZWJfcGFn
ZSk7CiNsaW5lIDMwNSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpHZWFyeVdlYkV4dGVu
c2lvbioKZ2Vhcnlfd2ViX2V4dGVuc2lvbl9jb25zdHJ1Y3QgKEdUeXBlIG9iamVjdF90eXBlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNp
b24pCnsKCUdlYXJ5V2ViRXh0ZW5zaW9uICogc2VsZiA9IE5VTEw7CglXZWJLaXRXZWJFeHRlbnNp
b24qIF90bXAwXzsKI2xpbmUgMzcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKGV4dGVuc2lvbiAhPSBOVUxMLCBOVUxMKTsKI2xpbmUgMzcgIi9ob21lL21q
Zy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNz
LWV4dGVuc2lvbi52YWxhIgoJc2VsZiA9IChHZWFyeVdlYkV4dGVuc2lvbiopIGdfb2JqZWN0X25l
dyAob2JqZWN0X3R5cGUsIE5VTEwpOwojbGluZSAzOCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglfdG1wMF8gPSBfZ19vYmplY3RfcmVmMCAoZXh0ZW5zaW9uKTsKI2xpbmUgMzggIi9ob21lL21q
Zy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNz
LWV4dGVuc2lvbi52YWxhIgoJX2dfb2JqZWN0X3VucmVmMCAoc2VsZi0+cHJpdi0+ZXh0ZW5zaW9u
KTsKI2xpbmUgMzggIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJc2VsZi0+cHJpdi0+ZXh0ZW5z
aW9uID0gX3RtcDBfOwojbGluZSAzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3NpZ25h
bF9jb25uZWN0X29iamVjdCAoZXh0ZW5zaW9uLCAicGFnZS1jcmVhdGVkIiwgKEdDYWxsYmFjaykg
X19fbGFtYmRhNF9fd2Via2l0X3dlYl9leHRlbnNpb25fcGFnZV9jcmVhdGVkLCBzZWxmLCAwKTsK
I2xpbmUgMzcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJcmV0dXJuIHNlbGY7CiNsaW5lIDMy
OSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpHZWFyeVdlYkV4dGVuc2lvbioKZ2Vhcnlf
d2ViX2V4dGVuc2lvbl9uZXcgKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQp7CiNsaW5l
IDM3ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVybiBnZWFyeV93ZWJfZXh0ZW5zaW9u
X2NvbnN0cnVjdCAoVFlQRV9HRUFSWV9XRUJfRVhURU5TSU9OLCBleHRlbnNpb24pOwojbGluZSAz
MzggIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIGNvbnN0IGNoYXIqCl93ZWJr
aXRfY29uc29sZV9tZXNzYWdlX2xldmVsX3RvX3N0cmluZyAoV2ViS2l0Q29uc29sZU1lc3NhZ2VM
ZXZlbCB2YWx1ZSkKewojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglzd2l0Y2gg
KHZhbHVlKSB7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQljYXNlIFdFQktJ
VF9DT05TT0xFX01FU1NBR0VfTEVWRUxfSU5GTzoKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJCXJldHVybiAiV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZFTF9JTkZPIjsKI2xp
bmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9j
ZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWNhc2UgV0VCS0lUX0NPTlNPTEVfTUVT
U0FHRV9MRVZFTF9MT0c6CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlyZXR1
cm4gIldFQktJVF9DT05TT0xFX01FU1NBR0VfTEVWRUxfTE9HIjsKI2xpbmUgNTYgIi9ob21lL21q
Zy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNz
LWV4dGVuc2lvbi52YWxhIgoJCWNhc2UgV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZFTF9XQVJO
SU5HOgojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJcmV0dXJuICJXRUJLSVRf
Q09OU09MRV9NRVNTQUdFX0xFVkVMX1dBUk5JTkciOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCgkJY2FzZSBXRUJLSVRfQ09OU09MRV9NRVNTQUdFX0xFVkVMX0VSUk9SOgojbGlu
ZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJcmV0dXJuICJXRUJLSVRfQ09OU09MRV9N
RVNTQUdFX0xFVkVMX0VSUk9SIjsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
CWNhc2UgV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZFTF9ERUJVRzoKI2xpbmUgNTYgIi9ob21l
L21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9j
ZXNzLWV4dGVuc2lvbi52YWxhIgoJCXJldHVybiAiV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9MRVZF
TF9ERUJVRyI7CiNsaW5lIDM2NyAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9CiNsaW5lIDU2
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJldHVybiBOVUxMOwojbGluZSAzNzEgIndlYi1w
cm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIGdsb25nCnN0cmluZ19zdHJubGVuIChnY2hh
ciogc3RyLAogICAgICAgICAgICAgICAgZ2xvbmcgbWF4bGVuKQp7CglnbG9uZyByZXN1bHQgPSAw
TDsKCWdjaGFyKiBlbmQgPSBOVUxMOwoJZ2NoYXIqIF90bXAwXzsKCWdjaGFyKiBfdG1wMV87CiNs
aW5lIDEzMzYgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCV90bXAw
XyA9IG1lbWNociAoc3RyLCAwLCAoZ3NpemUpIG1heGxlbik7CiNsaW5lIDEzMzYgIi91c3Ivc2hh
cmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCWVuZCA9IF90bXAwXzsKI2xpbmUgMTMz
NyAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJX3RtcDFfID0gZW5k
OwojbGluZSAxMzM3ICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCglp
ZiAoX3RtcDFfID09IE5VTEwpIHsKI2xpbmUgMTMzOCAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFw
aS9nbGliLTIuMC52YXBpIgoJCXJlc3VsdCA9IG1heGxlbjsKI2xpbmUgMTMzOCAiL3Vzci9zaGFy
ZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCXJldHVybiByZXN1bHQ7CiNsaW5lIDM5
NSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9IGVsc2UgewoJCWdjaGFyKiBfdG1wMl87CiNs
aW5lIDEzNDAgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlfdG1w
Ml8gPSBlbmQ7CiNsaW5lIDEzNDAgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAu
dmFwaSIKCQlyZXN1bHQgPSAoZ2xvbmcpIChfdG1wMl8gLSBzdHIpOwojbGluZSAxMzQwICIvdXNy
L3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJcmV0dXJuIHJlc3VsdDsKI2xp
bmUgNDA0ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KfQoKCnN0YXRpYyBnY2hhcioKc3Ry
aW5nX3N1YnN0cmluZyAoY29uc3QgZ2NoYXIqIHNlbGYsCiAgICAgICAgICAgICAgICAgIGdsb25n
IG9mZnNldCwKICAgICAgICAgICAgICAgICAgZ2xvbmcgbGVuKQp7CglnY2hhciogcmVzdWx0ID0g
TlVMTDsKCWdsb25nIHN0cmluZ19sZW5ndGggPSAwTDsKCWdib29sZWFuIF90bXAwXyA9IEZBTFNF
OwoJZ2xvbmcgX3RtcDZfOwoJZ2NoYXIqIF90bXA3XzsKI2xpbmUgMTM0NyAiL3Vzci9zaGFyZS92
YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYg
IT0gTlVMTCwgTlVMTCk7CiNsaW5lIDEzNDkgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xp
Yi0yLjAudmFwaSIKCWlmIChvZmZzZXQgPj0gKChnbG9uZykgMCkpIHsKI2xpbmUgMTM0OSAiL3Vz
ci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCV90bXAwXyA9IGxlbiA+PSAo
KGdsb25nKSAwKTsKI2xpbmUgNDI1ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0gZWxzZSB7
CiNsaW5lIDEzNDkgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlf
dG1wMF8gPSBGQUxTRTsKI2xpbmUgNDI5ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KI2xp
bmUgMTM0OSAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJaWYgKF90
bXAwXykgewojbGluZSAxMzUxICIvdXNyL3NoYXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZh
cGkiCgkJc3RyaW5nX2xlbmd0aCA9IHN0cmluZ19zdHJubGVuICgoZ2NoYXIqKSBzZWxmLCBvZmZz
ZXQgKyBsZW4pOwojbGluZSA0MzUgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfSBlbHNlIHsK
CQlnaW50IF90bXAxXzsKCQlnaW50IF90bXAyXzsKI2xpbmUgMTM1MyAiL3Vzci9zaGFyZS92YWxh
LTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCV90bXAxXyA9IHN0cmxlbiAoc2VsZik7CiNsaW5l
IDEzNTMgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlfdG1wMl8g
PSBfdG1wMV87CiNsaW5lIDEzNTMgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAu
dmFwaSIKCQlzdHJpbmdfbGVuZ3RoID0gKGdsb25nKSBfdG1wMl87CiNsaW5lIDQ0NSAid2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLmMiCgl9CiNsaW5lIDEzNTYgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3Zh
cGkvZ2xpYi0yLjAudmFwaSIKCWlmIChvZmZzZXQgPCAoKGdsb25nKSAwKSkgewojbGluZSA0NDkg
IndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJCWdsb25nIF90bXAzXzsKI2xpbmUgMTM1NyAiL3Vz
ci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCV90bXAzXyA9IHN0cmluZ19s
ZW5ndGg7CiNsaW5lIDEzNTcgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFw
aSIKCQlvZmZzZXQgPSBfdG1wM18gKyBvZmZzZXQ7CiNsaW5lIDEzNTggIi91c3Ivc2hhcmUvdmFs
YS0wLjQwL3ZhcGkvZ2xpYi0yLjAudmFwaSIKCQlnX3JldHVybl92YWxfaWZfZmFpbCAob2Zmc2V0
ID49ICgoZ2xvbmcpIDApLCBOVUxMKTsKI2xpbmUgNDU3ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24u
YyIKCX0gZWxzZSB7CgkJZ2xvbmcgX3RtcDRfOwojbGluZSAxMzYwICIvdXNyL3NoYXJlL3ZhbGEt
MC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJX3RtcDRfID0gc3RyaW5nX2xlbmd0aDsKI2xpbmUg
MTM2MCAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJCWdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChvZmZzZXQgPD0gX3RtcDRfLCBOVUxMKTsKI2xpbmUgNDY0ICJ3ZWItcHJv
Y2Vzcy1leHRlbnNpb24uYyIKCX0KI2xpbmUgMTM2MiAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFw
aS9nbGliLTIuMC52YXBpIgoJaWYgKGxlbiA8ICgoZ2xvbmcpIDApKSB7CiNsaW5lIDQ2OCAid2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgkJZ2xvbmcgX3RtcDVfOwojbGluZSAxMzYzICIvdXNyL3No
YXJlL3ZhbGEtMC40MC92YXBpL2dsaWItMi4wLnZhcGkiCgkJX3RtcDVfID0gc3RyaW5nX2xlbmd0
aDsKI2xpbmUgMTM2MyAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJ
CWxlbiA9IF90bXA1XyAtIG9mZnNldDsKI2xpbmUgNDc0ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24u
YyIKCX0KI2xpbmUgMTM2NSAiL3Vzci9zaGFyZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBp
IgoJX3RtcDZfID0gc3RyaW5nX2xlbmd0aDsKI2xpbmUgMTM2NSAiL3Vzci9zaGFyZS92YWxhLTAu
NDAvdmFwaS9nbGliLTIuMC52YXBpIgoJZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKChvZmZzZXQgKyBs
ZW4pIDw9IF90bXA2XywgTlVMTCk7CiNsaW5lIDEzNjYgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3Zh
cGkvZ2xpYi0yLjAudmFwaSIKCV90bXA3XyA9IGdfc3RybmR1cCAoKChnY2hhciopIHNlbGYpICsg
b2Zmc2V0LCAoZ3NpemUpIGxlbik7CiNsaW5lIDEzNjYgIi91c3Ivc2hhcmUvdmFsYS0wLjQwL3Zh
cGkvZ2xpYi0yLjAudmFwaSIKCXJlc3VsdCA9IF90bXA3XzsKI2xpbmUgMTM2NiAiL3Vzci9zaGFy
ZS92YWxhLTAuNDAvdmFwaS9nbGliLTIuMC52YXBpIgoJcmV0dXJuIHJlc3VsdDsKI2xpbmUgNDg2
ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRpYyBjb25zdCBjaGFyKgpfd2Via2l0
X2NvbnNvbGVfbWVzc2FnZV9zb3VyY2VfdG9fc3RyaW5nIChXZWJLaXRDb25zb2xlTWVzc2FnZVNv
dXJjZSB2YWx1ZSkKewojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglzd2l0Y2gg
KHZhbHVlKSB7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQljYXNlIFdFQktJ
VF9DT05TT0xFX01FU1NBR0VfU09VUkNFX0pBVkFTQ1JJUFQ6CiNsaW5lIDU2ICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCQlyZXR1cm4gIldFQktJVF9DT05TT0xFX01FU1NBR0VfU09VUkNFX0pB
VkFTQ1JJUFQiOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJY2FzZSBXRUJL
SVRfQ09OU09MRV9NRVNTQUdFX1NPVVJDRV9ORVRXT1JLOgojbGluZSA1NiAiL2hvbWUvbWpnL1By
b2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLnZhbGEiCgkJcmV0dXJuICJXRUJLSVRfQ09OU09MRV9NRVNTQUdFX1NPVVJDRV9ORVRX
T1JLIjsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWNhc2UgV0VCS0lUX0NP
TlNPTEVfTUVTU0FHRV9TT1VSQ0VfQ09OU09MRV9BUEk6CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCQlyZXR1cm4gIldFQktJVF9DT05TT0xFX01FU1NBR0VfU09VUkNFX0NPTlNP
TEVfQVBJIjsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWNhc2UgV0VCS0lU
X0NPTlNPTEVfTUVTU0FHRV9TT1VSQ0VfU0VDVVJJVFk6CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCQlyZXR1cm4gIldFQktJVF9DT05TT0xFX01FU1NBR0VfU09VUkNFX1NFQ1VS
SVRZIjsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWNhc2UgV0VCS0lUX0NP
TlNPTEVfTUVTU0FHRV9TT1VSQ0VfT1RIRVI6CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMv
R05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24u
dmFsYSIKCQlyZXR1cm4gIldFQktJVF9DT05TT0xFX01FU1NBR0VfU09VUkNFX09USEVSIjsKI2xp
bmUgNTE1ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KI2xpbmUgNTYgIi9ob21lL21qZy9Q
cm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4
dGVuc2lvbi52YWxhIgoJcmV0dXJuIE5VTEw7CiNsaW5lIDUxOSAid2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLmMiCn0KCgpzdGF0aWMgdm9pZApnZWFyeV93ZWJfZXh0ZW5zaW9uX29uX2NvbnNvbGVfbWVz
c2FnZSAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0Q29uc29sZU1lc3NhZ2UqIG1lc3NhZ2UpCnsKCWdjaGFy
KiBzb3VyY2UgPSBOVUxMOwoJY29uc3QgZ2NoYXIqIF90bXAwXzsKCWdjaGFyKiBfdG1wMV87Cglj
b25zdCBnY2hhciogX3RtcDJfID0gTlVMTDsKCWNvbnN0IGdjaGFyKiBfdG1wM187Cgljb25zdCBn
Y2hhciogX3RtcDVfOwoJZ2ludCBfdG1wNl87CglnaW50IF90bXA3XzsKCWdjaGFyKiBfdG1wOF87
CglnY2hhciogX3RtcDlfOwoJY29uc3QgZ2NoYXIqIF90bXAxMF87CglnaW50IF90bXAxMV87Cgln
aW50IF90bXAxMl87CglnY2hhciogX3RtcDEzXzsKCWdjaGFyKiBfdG1wMTRfOwoJY29uc3QgZ2No
YXIqIF90bXAxNV87CiNsaW5lIDUzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3Jj
L2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJu
X2lmX2ZhaWwgKHNlbGYgIT0gTlVMTCk7CiNsaW5lIDUzICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCWdfcmV0dXJuX2lmX2ZhaWwgKHBhZ2UgIT0gTlVMTCk7CiNsaW5lIDUzICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCWdfcmV0dXJuX2lmX2ZhaWwgKG1lc3NhZ2UgIT0gTlVMTCk7CiNsaW5l
IDU1ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAwXyA9IHdlYmtpdF9jb25zb2xlX21l
c3NhZ2VfZ2V0X3NvdXJjZV9pZCAobWVzc2FnZSk7CiNsaW5lIDU1ICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCV90bXAxXyA9IGdfc3RyZHVwIChfdG1wMF8pOwojbGluZSA1NSAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCglzb3VyY2UgPSBfdG1wMV87CiNsaW5lIDU5ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCV90bXAzXyA9IHNvdXJjZTsKI2xpbmUgNTkgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJaWYgKGdlYXJ5X3N0cmluZ19pc19lbXB0eSAoX3RtcDNfKSkgewojbGluZSA1OSAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDJfID0gInVua25vd24iOwojbGluZSA1NjIg
IndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfSBlbHNlIHsKCQljb25zdCBnY2hhciogX3RtcDRf
OwojbGluZSA1OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2Vi
LXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDRfID0gc291cmNlOwoj
bGluZSA1OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDJfID0gX3RtcDRfOwojbGlu
ZSA1NjkgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQojbGluZSA1NiAiL2hvbWUvbWpnL1By
b2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLnZhbGEiCglfdG1wNV8gPSBfd2Via2l0X2NvbnNvbGVfbWVzc2FnZV9sZXZlbF90b19z
dHJpbmcgKHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfZ2V0X2xldmVsIChtZXNzYWdlKSk7CiNsaW5l
IDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vz
cy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXA2XyA9IHN0cmxlbiAoIldFQktJVF9D
T05TT0xFX01FU1NBR0VfTEVWRUxfIik7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCV90bXA3XyA9IF90bXA2XzsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
X3RtcDhfID0gc3RyaW5nX3N1YnN0cmluZyAoX3RtcDVfLCAoZ2xvbmcpIF90bXA3XywgKGdsb25n
KSAtMSk7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXA5XyA9IF90bXA4
XzsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDEwXyA9IF93ZWJraXRf
Y29uc29sZV9tZXNzYWdlX3NvdXJjZV90b19zdHJpbmcgKHdlYmtpdF9jb25zb2xlX21lc3NhZ2Vf
Z2V0X3NvdXJjZSAobWVzc2FnZSkpOwojbGluZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglfdG1wMTFfID0gc3RybGVuICgiV0VCS0lUX0NPTlNPTEVfTUVTU0FHRV9TT1VSQ0VfIik7CiNs
aW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJv
Y2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAxMl8gPSBfdG1wMTFfOwojbGlu
ZSA1NiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wMTNfID0gc3RyaW5nX3N1YnN0cmlu
ZyAoX3RtcDEwXywgKGdsb25nKSBfdG1wMTJfLCAoZ2xvbmcpIC0xKTsKI2xpbmUgNTYgIi9ob21l
L21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9j
ZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDE0XyA9IF90bXAxM187CiNsaW5lIDU2ICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCV90bXAxNV8gPSB3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dldF90
ZXh0IChtZXNzYWdlKTsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19kZWJ1
ZyAoIndlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhOjU2OiBDb25zb2xlOiBbJXNdICVzICVzOiV1
OiAlcyIsIF90bXA5XywgX3RtcDE0XywgX3RtcDJfLCB3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dl
dF9saW5lIChtZXNzYWdlKSwgX3RtcDE1Xyk7CiNsaW5lIDU2ICIvaG9tZS9tamcvUHJvamVjdHMv
R05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24u
dmFsYSIKCV9nX2ZyZWUwIChfdG1wMTRfKTsKI2xpbmUgNTYgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJX2dfZnJlZTAgKF90bXA5Xyk7CiNsaW5lIDUzICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCV9nX2ZyZWUwIChzb3VyY2UpOwojbGluZSA2MDEgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5j
Igp9CgoKc3RhdGljIGdib29sZWFuCl92YWxhX3N0cmluZ19hcnJheV9jb250YWlucyAoY29uc3Qg
Z2NoYXIqICogc3RhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YWNrX2xl
bmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogbmVlZGxlKQp7
CglpbnQgaTsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZm9yIChpID0gMDsg
aSA8IHN0YWNrX2xlbmd0aDsgaSsrKSB7CiNsaW5lIDcwICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCQlpZiAoZ19zdHJjbXAwIChzdGFja1tpXSwgbmVlZGxlKSA9PSAwKSB7CiNsaW5lIDcwICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQkJcmV0dXJuIFRSVUU7CiNsaW5lIDYxNyAid2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLmMiCgkJfQoJfQojbGluZSA3MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dO
T01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEiCglyZXR1cm4gRkFMU0U7CiNsaW5lIDYyMiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0K
CgpzdGF0aWMgdm9pZApfdmFsYV9Tb3VwVVJJX2ZyZWUgKFNvdXBVUkkqIHNlbGYpCnsKI2xpbmUg
ODMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNz
L3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19ib3hlZF9mcmVlIChzb3VwX3VyaV9nZXRf
dHlwZSAoKSwgc2VsZik7CiNsaW5lIDYzMSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpz
dGF0aWMgZ2Jvb2xlYW4KZ2Vhcnlfd2ViX2V4dGVuc2lvbl9vbl9zZW5kX3JlcXVlc3QgKEdlYXJ5
V2ViRXh0ZW5zaW9uKiBzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0V2ViUGFnZSogcGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRVUklSZXNwb25zZSogcmVzcG9uc2UpCnsKCWdib29sZWFuIHJlc3VsdCA9
IEZBTFNFOwoJZ2Jvb2xlYW4gc2hvdWxkX2xvYWQgPSBGQUxTRTsKCVNvdXBVUkkqIHVyaSA9IE5V
TEw7Cgljb25zdCBnY2hhciogX3RtcDBfOwoJU291cFVSSSogX3RtcDFfOwoJZ2Jvb2xlYW4gX3Rt
cDJfID0gRkFMU0U7CglTb3VwVVJJKiBfdG1wM187CglnYm9vbGVhbiBfdG1wNl8gPSBGQUxTRTsK
CWdib29sZWFuIF90bXA3XzsKI2xpbmUgNjUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFy
eS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYgIT0gTlVMTCwgRkFMU0UpOwojbGluZSA2NSAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl92YWxfaWZfZmFpbCAocGFnZSAhPSBOVUxMLCBG
QUxTRSk7CiNsaW5lIDY1ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChyZXF1ZXN0ICE9IE5VTEwsIEZBTFNFKTsKI2xpbmUgNjggIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJc2hvdWxkX2xvYWQgPSBGQUxTRTsKI2xpbmUgNjkgIi9ob21lL21qZy9Qcm9q
ZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVu
c2lvbi52YWxhIgoJX3RtcDBfID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkgKHJlcXVlc3Qp
OwojbGluZSA2OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2Vi
LXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfdG1wMV8gPSBzb3VwX3VyaV9u
ZXcgKF90bXAwXyk7CiNsaW5lIDY5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3Jj
L2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXVyaSA9IF90
bXAxXzsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDNfID0gdXJpOwoj
bGluZSA3MCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpZiAoX3RtcDNfICE9IE5VTEwpIHsK
I2xpbmUgNjY4ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCQlTb3VwVVJJKiBfdG1wNF87CgkJ
Y29uc3QgZ2NoYXIqIF90bXA1XzsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
CV90bXA0XyA9IHVyaTsKI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXA1
XyA9IHNvdXBfdXJpX2dldF9zY2hlbWUgKF90bXA0Xyk7CiNsaW5lIDcwICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCQlfdG1wMl8gPSBfdmFsYV9zdHJpbmdfYXJyYXlfY29udGFpbnMgKEdFQVJZ
X1dFQl9FWFRFTlNJT05fQUxMT1dFRF9TQ0hFTUVTLCBHX05fRUxFTUVOVFMgKEdFQVJZX1dFQl9F
WFRFTlNJT05fQUxMT1dFRF9TQ0hFTUVTKSwgX3RtcDVfKTsKI2xpbmUgNjc3ICJ3ZWItcHJvY2Vz
cy1leHRlbnNpb24uYyIKCX0gZWxzZSB7CiNsaW5lIDcwICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCQlfdG1wMl8gPSBGQUxTRTsKI2xpbmUgNjgxICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIK
CX0KI2xpbmUgNzAgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJaWYgKF90bXAyXykgewojbGlu
ZSA3MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJc2hvdWxkX2xvYWQgPSBUUlVFOwojbGlu
ZSA2ODcgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfSBlbHNlIHsKI2xpbmUgNzYgIi9ob21l
L21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9j
ZXNzLWV4dGVuc2lvbi52YWxhIgoJCWlmIChnZWFyeV93ZWJfZXh0ZW5zaW9uX3Nob3VsZF9sb2Fk
X3JlbW90ZV9pbWFnZXMgKHNlbGYsIHBhZ2UpKSB7CiNsaW5lIDc3ICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCQkJc2hvdWxkX2xvYWQgPSBUUlVFOwojbGluZSA2OTMgIndlYi1wcm9jZXNzLWV4
dGVuc2lvbi5jIgoJCX0gZWxzZSB7CiNsaW5lIDc5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CQkJZ2Vhcnlfd2ViX2V4dGVuc2lvbl9yZW1vdGVfaW1hZ2VfbG9hZF9ibG9ja2VkIChzZWxmLCBw
YWdlKTsKI2xpbmUgNjk3ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCQl9Cgl9CiNsaW5lIDgz
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXA3XyA9IHNob3VsZF9sb2FkOwojbGluZSA4
MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpZiAoX3RtcDdfKSB7CiNsaW5lIDgzICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNl8gPSBHREtfRVZFTlRfUFJPUEFHQVRFOwojbGlu
ZSA3MDYgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfSBlbHNlIHsKI2xpbmUgODMgIi9ob21l
L21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9j
ZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXA2XyA9IEdES19FVkVOVF9TVE9QOwojbGluZSA3MTAg
IndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQojbGluZSA4MyAiL2hvbWUvbWpnL1Byb2plY3Rz
L0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LnZhbGEiCglyZXN1bHQgPSBfdG1wNl87CiNsaW5lIDgzICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCV9fdmFsYV9Tb3VwVVJJX2ZyZWUwICh1cmkpOwojbGluZSA4MyAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCglyZXR1cm4gcmVzdWx0OwojbGluZSA3MTggIndlYi1wcm9jZXNzLWV4dGVuc2lv
bi5jIgp9CgoKc3RhdGljIGdib29sZWFuCmdlYXJ5X3dlYl9leHRlbnNpb25fc2hvdWxkX2xvYWRf
cmVtb3RlX2ltYWdlcyAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSkKewoJZ2Jv
b2xlYW4gcmVzdWx0ID0gRkFMU0U7CglnYm9vbGVhbiBzaG91bGRfbG9hZCA9IEZBTFNFOwoJV2Vi
S2l0RnJhbWUqIGZyYW1lID0gTlVMTDsKCVdlYktpdEZyYW1lKiBfdG1wMF87CglXZWJLaXRGcmFt
ZSogX3RtcDFfOwoJSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSB7MH07CglHRXJyb3IgKiBf
aW5uZXJfZXJyb3JfID0gTlVMTDsKI2xpbmUgODYgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
Z19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYgIT0gTlVMTCwgRkFMU0UpOwojbGluZSA4NiAiL2hv
bWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl92YWxfaWZfZmFpbCAocGFnZSAhPSBOVUxM
LCBGQUxTRSk7CiNsaW5lIDg3ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXNob3VsZF9sb2Fk
ID0gRkFMU0U7CiNsaW5lIDg4ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAwXyA9IHdl
YmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSAocGFnZSk7CiNsaW5lIDg4ICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCV90bXAxXyA9IF9nX29iamVjdF9yZWYwIChfdG1wMF8pOwojbGluZSA4
OCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglmcmFtZSA9IF90bXAxXzsKI2xpbmUgOTAgIi9o
b21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1w
cm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJY29udGV4dCA9IChKU0dsb2JhbENvbnRleHRSZWYpIHdl
YmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dCAoZnJhbWUpOwojbGluZSA3
NDcgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJewoJCUpTVmFsdWVSZWYgcmV0ID0gezB9OwoJ
CUpTVmFsdWVSZWYqIF90bXAyXzsKCQlKU1ZhbHVlUmVmKiBfdG1wM187CgkJSlNWYWx1ZVJlZiBf
dG1wNF87CiNsaW5lIDkzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wMl8gPSBnZWFy
eV93ZWJfZXh0ZW5zaW9uX2V4ZWN1dGVfc2NyaXB0IChzZWxmLCAoSlNDb250ZXh0UmVmKSBjb250
ZXh0LCAiZ2VhcnkuYWxsb3dSZW1vdGVJbWFnZXMiLCBhdG9pICgiX19MSU5FX18iKSwgJl9pbm5l
cl9lcnJvcl8pOwojbGluZSA5MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDNfID0g
X3RtcDJfOwojbGluZSA5MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDRfID0gKl90
bXAzXzsKI2xpbmUgOTMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50
L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX2ZyZWUwIChfdG1w
M18pOwojbGluZSA5MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJcmV0ID0gX3RtcDRfOwoj
bGluZSA5MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJaWYgKEdfVU5MSUtFTFkgKF9pbm5l
cl9lcnJvcl8gIT0gTlVMTCkpIHsKI2xpbmUgNzY1ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIK
CQkJZ290byBfX2NhdGNoMF9nX2Vycm9yOwoJCX0KI2xpbmUgOTYgIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJCXNob3VsZF9sb2FkID0gSlNWYWx1ZVRvQm9vbGVhbiAoKEpTQ29udGV4dFJlZikg
Y29udGV4dCwgcmV0KTsKI2xpbmUgNzcwICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0KCWdv
dG8gX19maW5hbGx5MDsKCV9fY2F0Y2gwX2dfZXJyb3I6Cgl7CgkJR0Vycm9yKiBlcnIgPSBOVUxM
OwoJCUdFcnJvciogX3RtcDVfOwoJCWNvbnN0IGdjaGFyKiBfdG1wNl87CiNsaW5lIDkyICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCQllcnIgPSBfaW5uZXJfZXJyb3JfOwojbGluZSA5MiAiL2hv
bWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXBy
b2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2lubmVyX2Vycm9yXyA9IE5VTEw7CiNsaW5lIDk4ICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNV8gPSBlcnI7CiNsaW5lIDk4ICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCQlfdG1wNl8gPSBfdG1wNV8tPm1lc3NhZ2U7CiNsaW5lIDk4ICIv
aG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWIt
cHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlnX2RlYnVnICgid2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LnZhbGE6OTg6IEVycm9yIGNoZWNraW5nIFBhZ2VTdGF0ZTo6YWxsb3dSZW1vdGVJbSIgXAoiYWdl
czogJXMiLCBfdG1wNl8pOwojbGluZSA5MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2df
ZXJyb3JfZnJlZTAgKGVycik7CiNsaW5lIDc5MCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9
CglfX2ZpbmFsbHkwOgojbGluZSA5MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3Ny
Yy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglpZiAoR19V
TkxJS0VMWSAoX2lubmVyX2Vycm9yXyAhPSBOVUxMKSkgewojbGluZSA3OTUgIndlYi1wcm9jZXNz
LWV4dGVuc2lvbi5jIgoJCWdib29sZWFuIF90bXA3XyA9IEZBTFNFOwojbGluZSA5MiAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfb2JqZWN0X3VucmVmMCAoZnJhbWUpOwojbGluZSA5MiAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZ19jcml0aWNhbCAoImZpbGUgJXM6IGxpbmUgJWQ6
IHVuY2F1Z2h0IGVycm9yOiAlcyAoJXMsICVkKSIsIF9fRklMRV9fLCBfX0xJTkVfXywgX2lubmVy
X2Vycm9yXy0+bWVzc2FnZSwgZ19xdWFya190b19zdHJpbmcgKF9pbm5lcl9lcnJvcl8tPmRvbWFp
biksIF9pbm5lcl9lcnJvcl8tPmNvZGUpOwojbGluZSA5MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dO
T01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZh
bGEiCgkJZ19jbGVhcl9lcnJvciAoJl9pbm5lcl9lcnJvcl8pOwojbGluZSA5MiAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCgkJcmV0dXJuIF90bXA3XzsKI2xpbmUgODA1ICJ3ZWItcHJvY2Vzcy1l
eHRlbnNpb24uYyIKCX0KI2xpbmUgMTAzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkv
c3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCXJlc3Vs
dCA9IHNob3VsZF9sb2FkOwojbGluZSAxMDMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFy
eS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX2df
b2JqZWN0X3VucmVmMCAoZnJhbWUpOwojbGluZSAxMDMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9N
RS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxh
IgoJcmV0dXJuIHJlc3VsdDsKI2xpbmUgODEzICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoK
CnN0YXRpYyB2b2lkCmdlYXJ5X3dlYl9leHRlbnNpb25fcmVtb3RlX2ltYWdlX2xvYWRfYmxvY2tl
ZCAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSkKewoJV2ViS2l0RnJhbWUqIGZy
YW1lID0gTlVMTDsKCVdlYktpdEZyYW1lKiBfdG1wMF87CglXZWJLaXRGcmFtZSogX3RtcDFfOwoJ
SlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSB7MH07CglHRXJyb3IgKiBfaW5uZXJfZXJyb3Jf
ID0gTlVMTDsKI2xpbmUgMTA2ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJuX2lm
X2ZhaWwgKHNlbGYgIT0gTlVMTCk7CiNsaW5lIDEwNiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglnX3JldHVybl9pZl9mYWlsIChwYWdlICE9IE5VTEwpOwojbGluZSAxMDcgIi9ob21lL21qZy9Q
cm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4
dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lIChw
YWdlKTsKI2xpbmUgMTA3ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCV90bXAxXyA9IF9nX29i
amVjdF9yZWYwIChfdG1wMF8pOwojbGluZSAxMDcgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
ZnJhbWUgPSBfdG1wMV87CiNsaW5lIDEwOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgljb250
ZXh0ID0gKEpTR2xvYmFsQ29udGV4dFJlZikgd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2ds
b2JhbF9jb250ZXh0IChmcmFtZSk7CiNsaW5lIDgzOCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMi
Cgl7CgkJSlNWYWx1ZVJlZiogX3RtcDJfOwoJCUpTVmFsdWVSZWYqIF90bXAzXzsKI2xpbmUgMTEy
ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93
ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wMl8gPSBnZWFyeV93ZWJfZXh0ZW5zaW9u
X2V4ZWN1dGVfc2NyaXB0IChzZWxmLCAoSlNDb250ZXh0UmVmKSBjb250ZXh0LCAiZ2VhcnkucmVt
b3RlSW1hZ2VMb2FkQmxvY2tlZCgpOyIsIGF0b2kgKCJfX0xJTkVfXyIpLCAmX2lubmVyX2Vycm9y
Xyk7CiNsaW5lIDExMiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQv
d2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDNfID0gX3RtcDJf
OwojbGluZSAxMTIgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX2ZyZWUwIChfdG1wM18p
OwojbGluZSAxMTIgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWlmIChHX1VOTElLRUxZIChf
aW5uZXJfZXJyb3JfICE9IE5VTEwpKSB7CiNsaW5lIDg1MCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LmMiCgkJCWdvdG8gX19jYXRjaDFfZ19lcnJvcjsKCQl9Cgl9Cglnb3RvIF9fZmluYWxseTE7Cglf
X2NhdGNoMV9nX2Vycm9yOgoJewoJCUdFcnJvciogZXJyID0gTlVMTDsKCQlHRXJyb3IqIF90bXA0
XzsKCQljb25zdCBnY2hhciogX3RtcDVfOwojbGluZSAxMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJCWVyciA9IF9pbm5lcl9lcnJvcl87CiNsaW5lIDExMSAiL2hvbWUvbWpnL1Byb2plY3Rz
L0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LnZhbGEiCgkJX2lubmVyX2Vycm9yXyA9IE5VTEw7CiNsaW5lIDExNiAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCgkJX3RtcDRfID0gZXJyOwojbGluZSAxMTYgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJCV90bXA1XyA9IF90bXA0Xy0+bWVzc2FnZTsKI2xpbmUgMTE2ICIvaG9tZS9tamcvUHJv
amVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRl
bnNpb24udmFsYSIKCQlnX2RlYnVnICgid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGE6MTE2OiBF
cnJvciBjYWxsaW5nIFBhZ2VTdGF0ZTo6cmVtb3RlSW1hZ2VMbyIgXAoiYWRCbG9ja2VkOiAlcyIs
IF90bXA1Xyk7CiNsaW5lIDExMSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9j
bGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfZXJyb3Jf
ZnJlZTAgKGVycik7CiNsaW5lIDg3MiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9CglfX2Zp
bmFsbHkxOgojbGluZSAxMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJaWYgKEdfVU5MSUtF
TFkgKF9pbm5lcl9lcnJvcl8gIT0gTlVMTCkpIHsKI2xpbmUgMTExICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCQlfZ19vYmplY3RfdW5yZWYwIChmcmFtZSk7CiNsaW5lIDExMSAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCgkJZ19jcml0aWNhbCAoImZpbGUgJXM6IGxpbmUgJWQ6IHVuY2F1Z2h0
IGVycm9yOiAlcyAoJXMsICVkKSIsIF9fRklMRV9fLCBfX0xJTkVfXywgX2lubmVyX2Vycm9yXy0+
bWVzc2FnZSwgZ19xdWFya190b19zdHJpbmcgKF9pbm5lcl9lcnJvcl8tPmRvbWFpbiksIF9pbm5l
cl9lcnJvcl8tPmNvZGUpOwojbGluZSAxMTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFy
eS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdf
Y2xlYXJfZXJyb3IgKCZfaW5uZXJfZXJyb3JfKTsKI2xpbmUgMTExICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCQlyZXR1cm47CiNsaW5lIDg4NSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl9
CiNsaW5lIDEwNiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2Vi
LXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19vYmplY3RfdW5yZWYwIChm
cmFtZSk7CiNsaW5lIDg4OSAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMgdm9p
ZApnZWFyeV93ZWJfZXh0ZW5zaW9uX3NlbGVjdGlvbl9jaGFuZ2VkIChHZWFyeVdlYkV4dGVuc2lv
biogc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2Vi
UGFnZSogcGFnZSkKewoJV2ViS2l0RnJhbWUqIGZyYW1lID0gTlVMTDsKCVdlYktpdEZyYW1lKiBf
dG1wMF87CglXZWJLaXRGcmFtZSogX3RtcDFfOwoJSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQg
PSB7MH07CglHRXJyb3IgKiBfaW5uZXJfZXJyb3JfID0gTlVMTDsKI2xpbmUgMTIzICIvaG9tZS9t
amcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vz
cy1leHRlbnNpb24udmFsYSIKCWdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYgIT0gTlVMTCk7CiNsaW5l
IDEyMyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3JldHVybl9pZl9mYWlsIChwYWdlICE9
IE5VTEwpOwojbGluZSAxMjQgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gd2Vi
a2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lIChwYWdlKTsKI2xpbmUgMTI0ICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCV90bXAxXyA9IF9nX29iamVjdF9yZWYwIChfdG1wMF8pOwojbGluZSAx
MjQgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNz
L3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZnJhbWUgPSBfdG1wMV87CiNsaW5lIDEyNiAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgljb250ZXh0ID0gKEpTR2xvYmFsQ29udGV4dFJlZikg
d2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0IChmcmFtZSk7CiNsaW5l
IDkxNCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgl7CgkJSlNWYWx1ZVJlZiogX3RtcDJfOwoJ
CUpTVmFsdWVSZWYqIF90bXAzXzsKI2xpbmUgMTI5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUv
Z2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIK
CQlfdG1wMl8gPSBnZWFyeV93ZWJfZXh0ZW5zaW9uX2V4ZWN1dGVfc2NyaXB0IChzZWxmLCAoSlND
b250ZXh0UmVmKSBjb250ZXh0LCAiZ2Vhcnkuc2VsZWN0aW9uQ2hhbmdlZCgpOyIsIGF0b2kgKCJf
X0xJTkVfXyIpLCAmX2lubmVyX2Vycm9yXyk7CiNsaW5lIDEyOSAiL2hvbWUvbWpnL1Byb2plY3Rz
L0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LnZhbGEiCgkJX3RtcDNfID0gX3RtcDJfOwojbGluZSAxMjkgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJCV9nX2ZyZWUwIChfdG1wM18pOwojbGluZSAxMjkgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJCWlmIChHX1VOTElLRUxZIChfaW5uZXJfZXJyb3JfICE9IE5VTEwpKSB7CiNsaW5lIDky
NiAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCgkJCWdvdG8gX19jYXRjaDJfZ19lcnJvcjsKCQl9
Cgl9Cglnb3RvIF9fZmluYWxseTI7CglfX2NhdGNoMl9nX2Vycm9yOgoJewoJCUdFcnJvciogZXJy
ID0gTlVMTDsKCQlHRXJyb3IqIF90bXA0XzsKCQljb25zdCBnY2hhciogX3RtcDVfOwojbGluZSAx
MjggIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNz
L3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWVyciA9IF9pbm5lcl9lcnJvcl87CiNsaW5l
IDEyOCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2lubmVyX2Vycm9yXyA9IE5VTEw7CiNs
aW5lIDEzMyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX3RtcDRfID0gZXJyOwojbGluZSAx
MzMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNz
L3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV90bXA1XyA9IF90bXA0Xy0+bWVzc2FnZTsK
I2xpbmUgMTMzICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWIt
cHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlnX2RlYnVnICgid2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGE6MTMzOiBFcnJvciBjYWxsaW5nIFBhZ2VTdGF0ZXM6OnNlbGVjdGlv
bkNoYSIgXAoibmdlZDogJXMiLCBfdG1wNV8pOwojbGluZSAxMjggIi9ob21lL21qZy9Qcm9qZWN0
cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lv
bi52YWxhIgoJCV9nX2Vycm9yX2ZyZWUwIChlcnIpOwojbGluZSA5NDggIndlYi1wcm9jZXNzLWV4
dGVuc2lvbi5jIgoJfQoJX19maW5hbGx5MjoKI2xpbmUgMTI4ICIvaG9tZS9tamcvUHJvamVjdHMv
R05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24u
dmFsYSIKCWlmIChHX1VOTElLRUxZIChfaW5uZXJfZXJyb3JfICE9IE5VTEwpKSB7CiNsaW5lIDEy
OCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfb2JqZWN0X3VucmVmMCAoZnJhbWUpOwoj
bGluZSAxMjggIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdfY3JpdGljYWwgKCJmaWxlICVz
OiBsaW5lICVkOiB1bmNhdWdodCBlcnJvcjogJXMgKCVzLCAlZCkiLCBfX0ZJTEVfXywgX19MSU5F
X18sIF9pbm5lcl9lcnJvcl8tPm1lc3NhZ2UsIGdfcXVhcmtfdG9fc3RyaW5nIChfaW5uZXJfZXJy
b3JfLT5kb21haW4pLCBfaW5uZXJfZXJyb3JfLT5jb2RlKTsKI2xpbmUgMTI4ICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCQlnX2NsZWFyX2Vycm9yICgmX2lubmVyX2Vycm9yXyk7CiNsaW5lIDEy
OCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mv
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJcmV0dXJuOwojbGluZSA5NjEgIndlYi1wcm9j
ZXNzLWV4dGVuc2lvbi5jIgoJfQojbGluZSAxMjMgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
X2dfb2JqZWN0X3VucmVmMCAoZnJhbWUpOwojbGluZSA5NjUgIndlYi1wcm9jZXNzLWV4dGVuc2lv
bi5jIgp9CgoKc3RhdGljIEpTVmFsdWVSZWYqCl9KU192YWx1ZV9kdXAgKEpTVmFsdWVSZWYqIHNl
bGYpCnsKCUpTVmFsdWVSZWYqIGR1cDsKI2xpbmUgMTQ5ICIvaG9tZS9tamcvUHJvamVjdHMvR05P
TUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFs
YSIKCWR1cCA9IGdfbmV3MCAoSlNWYWx1ZVJlZiwgMSk7CiNsaW5lIDE0OSAiL2hvbWUvbWpnL1By
b2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLnZhbGEiCgltZW1jcHkgKGR1cCwgc2VsZiwgc2l6ZW9mIChKU1ZhbHVlUmVmKSk7CiNs
aW5lIDE0OSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglyZXR1cm4gZHVwOwojbGluZSA5Nzkg
IndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIGdwb2ludGVyCl9fSlNfdmFsdWVf
ZHVwMCAoZ3BvaW50ZXIgc2VsZikKewojbGluZSAxNDkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9N
RS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxh
IgoJcmV0dXJuIHNlbGYgPyBfSlNfdmFsdWVfZHVwIChzZWxmKSA6IE5VTEw7CiNsaW5lIDk4OCAi
d2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMgSlNWYWx1ZVJlZioKZ2Vhcnlfd2Vi
X2V4dGVuc2lvbl9leGVjdXRlX3NjcmlwdCAoR2VhcnlXZWJFeHRlbnNpb24qIHNlbGYsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTQ29udGV4dFJlZiBjb250ZXh0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogc2NyaXB0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IGxpbmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdFcnJvcioqIGVycm9yKQp7CglKU1ZhbHVlUmVmKiByZXN1
bHQgPSBOVUxMOwoJSlNTdHJpbmdSZWYganNfc2NyaXB0ID0gezB9OwoJSlNTdHJpbmdSZWYgX3Rt
cDBfOwoJSlNTdHJpbmdSZWYganNfc291cmNlID0gezB9OwoJSlNTdHJpbmdSZWYgX3RtcDFfOwoJ
SlNWYWx1ZVJlZiogZXJyID0gTlVMTDsKCUdFcnJvciAqIF9pbm5lcl9lcnJvcl8gPSBOVUxMOwoj
bGluZSAxMzkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KHNlbGYgIT0gTlVMTCwgTlVMTCk7CiNsaW5lIDEzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01F
L2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEi
CglnX3JldHVybl92YWxfaWZfZmFpbCAoc2NyaXB0ICE9IE5VTEwsIE5VTEwpOwojbGluZSAxNDEg
Ii9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dl
Yi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJX3RtcDBfID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcgKHNjcmlwdCk7CiNsaW5lIDE0MSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglq
c19zY3JpcHQgPSBfdG1wMF87CiNsaW5lIDE0MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglf
dG1wMV8gPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyAoIl9fRklMRV9fIik7CiNsaW5l
IDE0MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglqc19zb3VyY2UgPSBfdG1wMV87CiNsaW5l
IDE0MyAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgllcnIgPSBOVUxMOwojbGluZSAxMDIwICJ3
ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCXsKCQlKU1ZhbHVlUmVmIHJldCA9IHswfTsKCQlKU1N0
cmluZ1JlZiBfdG1wMl87CgkJSlNTdHJpbmdSZWYgX3RtcDNfOwoJCUpTVmFsdWVSZWYqIF90bXA0
XyA9IE5VTEw7CgkJSlNWYWx1ZVJlZiBfdG1wNV87CgkJSlNWYWx1ZVJlZiogX3RtcDZfOwoJCUpT
VmFsdWVSZWYqIF90bXA3XzsKI2xpbmUgMTQ1ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vh
cnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlf
dG1wMl8gPSBqc19zY3JpcHQ7CiNsaW5lIDE0NSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJ
X3RtcDNfID0ganNfc291cmNlOwojbGluZSAxNDUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9n
ZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJ
CV90bXA1XyA9IEpTRXZhbHVhdGVTY3JpcHQgKGNvbnRleHQsIF90bXAyXywgTlVMTCwgJl90bXAz
XywgbGluZSwgJl90bXA0Xyk7CiNsaW5lIDE0NSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJ
X2dfZnJlZTAgKGVycik7CiNsaW5lIDE0NSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZXJy
ID0gX3RtcDRfOwojbGluZSAxNDUgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCXJldCA9IF90
bXA1XzsKI2xpbmUgMTQ4ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wNl8gPSBlcnI7
CiNsaW5lIDE0OCAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2Vi
LXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJZ2VhcnlfanNfY2hlY2tfZXhj
ZXB0aW9uIChjb250ZXh0LCBfdG1wNl8sICZfaW5uZXJfZXJyb3JfKTsKI2xpbmUgMTQ4ICIvaG9t
ZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJv
Y2Vzcy1leHRlbnNpb24udmFsYSIKCQlpZiAoR19VTkxJS0VMWSAoX2lubmVyX2Vycm9yXyAhPSBO
VUxMKSkgewojbGluZSAxMDQ3ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCQkJZ290byBfX2Zp
bmFsbHkzOwoJCX0KI2xpbmUgMTQ5ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3Jj
L2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlfdG1wN18g
PSBfX0pTX3ZhbHVlX2R1cDAgKCZyZXQpOwojbGluZSAxNDkgIi9ob21lL21qZy9Qcm9qZWN0cy9H
Tk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52
YWxhIgoJCXJlc3VsdCA9IF90bXA3XzsKI2xpbmUgMTA1NCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LmMiCgkJewojbGluZSAxNTEgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xp
ZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCQlKU1N0cmluZ1Jl
bGVhc2UgKGpzX3NjcmlwdCk7CiNsaW5lIDE1MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dl
YXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJ
CUpTU3RyaW5nUmVsZWFzZSAoanNfc291cmNlKTsKI2xpbmUgMTA2MCAid2ViLXByb2Nlc3MtZXh0
ZW5zaW9uLmMiCgkJfQojbGluZSAxNDkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9z
cmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX2Zy
ZWUwIChlcnIpOwojbGluZSAxNDkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMv
Y2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCXJldHVybiBy
ZXN1bHQ7CiNsaW5lIDEwNjYgIndlYi1wcm9jZXNzLWV4dGVuc2lvbi5jIgoJfQoJX19maW5hbGx5
MzoKCXsKI2xpbmUgMTUxICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVu
dC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCQlKU1N0cmluZ1JlbGVh
c2UgKGpzX3NjcmlwdCk7CiNsaW5lIDE1MiAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5
L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCgkJSlNT
dHJpbmdSZWxlYXNlIChqc19zb3VyY2UpOwojbGluZSAxMDc0ICJ3ZWItcHJvY2Vzcy1leHRlbnNp
b24uYyIKCX0KI2xpbmUgMTQ0ICIvaG9tZS9tamcvUHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2Ns
aWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNpb24udmFsYSIKCWlmIChfaW5uZXJf
ZXJyb3JfLT5kb21haW4gPT0gR0VBUllfSlNfRVJST1IpIHsKI2xpbmUgMTQ0ICIvaG9tZS9tamcv
UHJvamVjdHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1l
eHRlbnNpb24udmFsYSIKCQlnX3Byb3BhZ2F0ZV9lcnJvciAoZXJyb3IsIF9pbm5lcl9lcnJvcl8p
OwojbGluZSAxNDQgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dl
Yi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCV9nX2ZyZWUwIChlcnIpOwoj
bGluZSAxNDQgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1w
cm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCXJldHVybiBOVUxMOwojbGluZSAx
MDg0ICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKCX0gZWxzZSB7CiNsaW5lIDE0NCAiL2hvbWUv
bWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nl
c3MtZXh0ZW5zaW9uLnZhbGEiCgkJX2dfZnJlZTAgKGVycik7CiNsaW5lIDE0NCAiL2hvbWUvbWpn
L1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3Mt
ZXh0ZW5zaW9uLnZhbGEiCgkJZ19jcml0aWNhbCAoImZpbGUgJXM6IGxpbmUgJWQ6IHVuY2F1Z2h0
IGVycm9yOiAlcyAoJXMsICVkKSIsIF9fRklMRV9fLCBfX0xJTkVfXywgX2lubmVyX2Vycm9yXy0+
bWVzc2FnZSwgZ19xdWFya190b19zdHJpbmcgKF9pbm5lcl9lcnJvcl8tPmRvbWFpbiksIF9pbm5l
cl9lcnJvcl8tPmNvZGUpOwojbGluZSAxNDQgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9NRS9nZWFy
eS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxhIgoJCWdf
Y2xlYXJfZXJyb3IgKCZfaW5uZXJfZXJyb3JfKTsKI2xpbmUgMTQ0ICIvaG9tZS9tamcvUHJvamVj
dHMvR05PTUUvZ2Vhcnkvc3JjL2NsaWVudC93ZWItcHJvY2Vzcy93ZWItcHJvY2Vzcy1leHRlbnNp
b24udmFsYSIKCQlyZXR1cm4gTlVMTDsKI2xpbmUgMTA5NCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9u
LmMiCgl9CiNsaW5lIDEzOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglfZ19mcmVlMCAoZXJy
KTsKI2xpbmUgMTA5OCAid2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgpzdGF0aWMgdm9pZApn
ZWFyeV93ZWJfZXh0ZW5zaW9uX2NsYXNzX2luaXQgKEdlYXJ5V2ViRXh0ZW5zaW9uQ2xhc3MgKiBr
bGFzcykKewojbGluZSAyOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGll
bnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnZWFyeV93ZWJfZXh0
ZW5zaW9uX3BhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoa2xhc3MpOwoj
bGluZSAyOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXBy
b2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglnX3R5cGVfY2xhc3NfYWRkX3ByaXZh
dGUgKGtsYXNzLCBzaXplb2YgKEdlYXJ5V2ViRXh0ZW5zaW9uUHJpdmF0ZSkpOwojbGluZSAyOSAi
L2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglHX09CSkVDVF9DTEFTUyAoa2xhc3MpLT5maW5hbGl6
ZSA9IGdlYXJ5X3dlYl9leHRlbnNpb25fZmluYWxpemU7CiNsaW5lIDExMTEgIndlYi1wcm9jZXNz
LWV4dGVuc2lvbi5jIgp9CgoKc3RhdGljIHZvaWQKZ2Vhcnlfd2ViX2V4dGVuc2lvbl9pbnN0YW5j
ZV9pbml0IChHZWFyeVdlYkV4dGVuc2lvbiAqIHNlbGYpCnsKI2xpbmUgMjkgIi9ob21lL21qZy9Q
cm9qZWN0cy9HTk9NRS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4
dGVuc2lvbi52YWxhIgoJc2VsZi0+cHJpdiA9IEdFQVJZX1dFQl9FWFRFTlNJT05fR0VUX1BSSVZB
VEUgKHNlbGYpOwojbGluZSAxMTIwICJ3ZWItcHJvY2Vzcy1leHRlbnNpb24uYyIKfQoKCnN0YXRp
YyB2b2lkCmdlYXJ5X3dlYl9leHRlbnNpb25fZmluYWxpemUgKEdPYmplY3QgKiBvYmopCnsKCUdl
YXJ5V2ViRXh0ZW5zaW9uICogc2VsZjsKI2xpbmUgMjkgIi9ob21lL21qZy9Qcm9qZWN0cy9HTk9N
RS9nZWFyeS9zcmMvY2xpZW50L3dlYi1wcm9jZXNzL3dlYi1wcm9jZXNzLWV4dGVuc2lvbi52YWxh
IgoJc2VsZiA9IEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUIChvYmosIFRZUEVfR0VBUllfV0VC
X0VYVEVOU0lPTiwgR2VhcnlXZWJFeHRlbnNpb24pOwojbGluZSAzNCAiL2hvbWUvbWpnL1Byb2pl
Y3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nlc3Mvd2ViLXByb2Nlc3MtZXh0ZW5z
aW9uLnZhbGEiCglfZ19vYmplY3RfdW5yZWYwIChzZWxmLT5wcml2LT5leHRlbnNpb24pOwojbGlu
ZSAyOSAiL2hvbWUvbWpnL1Byb2plY3RzL0dOT01FL2dlYXJ5L3NyYy9jbGllbnQvd2ViLXByb2Nl
c3Mvd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLnZhbGEiCglHX09CSkVDVF9DTEFTUyAoZ2Vhcnlfd2Vi
X2V4dGVuc2lvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqKTsKI2xpbmUgMTEzNCAid2Vi
LXByb2Nlc3MtZXh0ZW5zaW9uLmMiCn0KCgovKioKICogQSBXZWJFeHRlbnNpb24gdGhhdCBtYW5h
Z2VzIEdlYXJ5LXNwZWNpZmljIGJlaGF2aW91cnMgaW4gd2ViIHByb2Nlc3Nlcy4KICovCkdUeXBl
CmdlYXJ5X3dlYl9leHRlbnNpb25fZ2V0X3R5cGUgKHZvaWQpCnsKCXN0YXRpYyB2b2xhdGlsZSBn
c2l6ZSBnZWFyeV93ZWJfZXh0ZW5zaW9uX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsKCWlmIChnX29u
Y2VfaW5pdF9lbnRlciAoJmdlYXJ5X3dlYl9leHRlbnNpb25fdHlwZV9pZF9fdm9sYXRpbGUpKSB7
CgkJc3RhdGljIGNvbnN0IEdUeXBlSW5mbyBnX2RlZmluZV90eXBlX2luZm8gPSB7IHNpemVvZiAo
R2VhcnlXZWJFeHRlbnNpb25DbGFzcyksIChHQmFzZUluaXRGdW5jKSBOVUxMLCAoR0Jhc2VGaW5h
bGl6ZUZ1bmMpIE5VTEwsIChHQ2xhc3NJbml0RnVuYykgZ2Vhcnlfd2ViX2V4dGVuc2lvbl9jbGFz
c19pbml0LCAoR0NsYXNzRmluYWxpemVGdW5jKSBOVUxMLCBOVUxMLCBzaXplb2YgKEdlYXJ5V2Vi
RXh0ZW5zaW9uKSwgMCwgKEdJbnN0YW5jZUluaXRGdW5jKSBnZWFyeV93ZWJfZXh0ZW5zaW9uX2lu
c3RhbmNlX2luaXQsIE5VTEwgfTsKCQlHVHlwZSBnZWFyeV93ZWJfZXh0ZW5zaW9uX3R5cGVfaWQ7
CgkJZ2Vhcnlfd2ViX2V4dGVuc2lvbl90eXBlX2lkID0gZ190eXBlX3JlZ2lzdGVyX3N0YXRpYyAo
R19UWVBFX09CSkVDVCwgIkdlYXJ5V2ViRXh0ZW5zaW9uIiwgJmdfZGVmaW5lX3R5cGVfaW5mbywg
MCk7CgkJZ19vbmNlX2luaXRfbGVhdmUgKCZnZWFyeV93ZWJfZXh0ZW5zaW9uX3R5cGVfaWRfX3Zv
bGF0aWxlLCBnZWFyeV93ZWJfZXh0ZW5zaW9uX3R5cGVfaWQpOwoJfQoJcmV0dXJuIGdlYXJ5X3dl
Yl9leHRlbnNpb25fdHlwZV9pZF9fdm9sYXRpbGU7Cn0KCgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>336551</attachid>
            <date>2018-03-26 16:28:45 -0700</date>
            <delta_ts>2018-03-26 16:28:45 -0700</delta_ts>
            <desc>Generated web extension header 2.20</desc>
            <filename>geary-web-process.h</filename>
            <type>text/x-chdr</type>
            <size>1708</size>
            <attacher name="Michael Gratton">mike</attacher>
            
              <data encoding="base64">LyogZ2Vhcnktd2ViLXByb2Nlc3MuaCBnZW5lcmF0ZWQgYnkgdmFsYWMgMC40MC4wLCB0aGUgVmFs
YSBjb21waWxlciwgZG8gbm90IG1vZGlmeSAqLwoKCiNpZm5kZWYgX19TUkNfR0VBUllfV0VCX1BS
T0NFU1NfSF9fCiNkZWZpbmUgX19TUkNfR0VBUllfV0VCX1BST0NFU1NfSF9fCgojaW5jbHVkZSA8
Z2xpYi5oPgojaW5jbHVkZSAid2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oIgojaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KCkdfQkVHSU5fREVDTFMKCgojZGVmaW5lIFRZUEVfR0VBUllfV0VC
X0VYVEVOU0lPTiAoZ2Vhcnlfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZSAoKSkKI2RlZmluZSBHRUFS
WV9XRUJfRVhURU5TSU9OKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwg
VFlQRV9HRUFSWV9XRUJfRVhURU5TSU9OLCBHZWFyeVdlYkV4dGVuc2lvbikpCiNkZWZpbmUgR0VB
UllfV0VCX0VYVEVOU0lPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgo
a2xhc3MpLCBUWVBFX0dFQVJZX1dFQl9FWFRFTlNJT04sIEdlYXJ5V2ViRXh0ZW5zaW9uQ2xhc3Mp
KQojZGVmaW5lIElTX0dFQVJZX1dFQl9FWFRFTlNJT04ob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX1RZUEUgKChvYmopLCBUWVBFX0dFQVJZX1dFQl9FWFRFTlNJT04pKQojZGVmaW5lIElTX0dF
QVJZX1dFQl9FWFRFTlNJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAo
KGtsYXNzKSwgVFlQRV9HRUFSWV9XRUJfRVhURU5TSU9OKSkKI2RlZmluZSBHRUFSWV9XRUJfRVhU
RU5TSU9OX0dFVF9DTEFTUyhvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqKSwg
VFlQRV9HRUFSWV9XRUJfRVhURU5TSU9OLCBHZWFyeVdlYkV4dGVuc2lvbkNsYXNzKSkKCnR5cGVk
ZWYgc3RydWN0IF9HZWFyeVdlYkV4dGVuc2lvbiBHZWFyeVdlYkV4dGVuc2lvbjsKdHlwZWRlZiBz
dHJ1Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uQ2xhc3MgR2VhcnlXZWJFeHRlbnNpb25DbGFzczsKdHlw
ZWRlZiBzdHJ1Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uUHJpdmF0ZSBHZWFyeVdlYkV4dGVuc2lvblBy
aXZhdGU7CgpzdHJ1Y3QgX0dlYXJ5V2ViRXh0ZW5zaW9uIHsKCUdPYmplY3QgcGFyZW50X2luc3Rh
bmNlOwoJR2VhcnlXZWJFeHRlbnNpb25Qcml2YXRlICogcHJpdjsKfTsKCnN0cnVjdCBfR2VhcnlX
ZWJFeHRlbnNpb25DbGFzcyB7CglHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwp9OwoKCnZvaWQg
d2Via2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZV93aXRoX3VzZXJfZGF0YSAoV2ViS2l0V2Vi
RXh0ZW5zaW9uKiBleHRlbnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQqIGRhdGEpOwpHVHlwZSBnZWFyeV93ZWJfZXh0ZW5z
aW9uX2dldF90eXBlICh2b2lkKSBHX0dOVUNfQ09OU1Q7CkdlYXJ5V2ViRXh0ZW5zaW9uKiBnZWFy
eV93ZWJfZXh0ZW5zaW9uX25ldyAoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pOwpHZWFy
eVdlYkV4dGVuc2lvbiogZ2Vhcnlfd2ViX2V4dGVuc2lvbl9jb25zdHJ1Y3QgKEdUeXBlIG9iamVj
dF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKTsKCgpHX0VORF9ERUNMUwoKI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>