<?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>228664</bug_id>
          
          <creation_ts>2021-07-30 15:47:09 -0700</creation_ts>
          <short_desc>[GTK] Opening emoji chooser crashes UI process with GTK 3.24.30</short_desc>
          <delta_ts>2021-10-13 15:53:00 -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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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 Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780969</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-07-30 15:47:09 -0700</bug_when>
    <thetext>GTK 3.24.30 changed its emoji data format in https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3521. Now opening the emoji chooser results in this UI process crash:

(gdb) bt full
#0  0x00007efdc24474bb in raise () at /usr/lib/x86_64-linux-gnu/libc.so.6
#1  0x00007efdc2430867 in abort () at /usr/lib/x86_64-linux-gnu/libc.so.6
#2  0x00007efdc276ec7c in g_assertion_message_expr.cold () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007efdc27cf69f in g_assertion_message_expr () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007efdc27f0ad7 in g_variant_serialised_n_children () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007efdc27ebc27 in g_variant_n_children () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007efdc27e714c in g_variant_iter_init () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007efdc27e71ac in g_variant_iter_new () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007efdbefd5a44 in webkitEmojiChooserSetupEmojiSections
    (buttonBox=&lt;optimized out&gt;, emojiBox=0x563d619b35f0, chooser=0x563d608ee3f0)
    at ../Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:500
        vAdjustment = &lt;optimized out&gt;
        flowBox = 0x563d60ba48d0
        sections = 
            {{firstEmojiName = 0x7efdc1007162 &quot;grinning face&quot;, title = 0x7efdc1007170 &quot;Smileys &amp; People&quot;, iconName = 0x7efdc1007181 &quot;emoji-people-symbolic&quot;, canHaveVariations = true}, {firstEmojiName = 0x7efdc1007197 &quot;selfie&quot;, title = 0x7efdc100719e &quot;Body &amp; Clothing&quot;, iconName = 0x7efdc10071ae &quot;emoji-body-symbolic&quot;, canHaveVariations = true}, {firstEmojiName = 0x7efdc10071c2 &quot;monkey&quot;, title = 0x7efdc10071c9 &quot;Animals &amp; Nature&quot;, iconName = 0x7efdc10071da &quot;emoji-nature-symbolic&quot;, canHaveVariations = false}, {firstEmojiName = 0x7efdc10071f0 &quot;grapes&quot;, title = 0x7efdc10071f7 &quot;Food &amp; Drink&quot;, iconName = 0x7efdc1007204 &quot;emoji-food-symbolic&quot;, canHaveVariations = false}, {firstEmojiName = 0x7efdc1007218 &quot;globe showing Europe-Africa&quot;, title = 0x7efdc1007234 &quot;Travel &amp; Places&quot;, iconName = 0x7efdc1007244 &quot;emoji-travel-symbolic&quot;, canHaveVariations = false}, {firstEmojiName = 0x7efdc100725a &quot;jack-o-lantern&quot;, title = 0x7efdc1007269 &quot;Activities&quot;, iconName = 0x7efdc1007274 &quot;emoji-activities-symbolic&quot;, canHaveVariations = false}, {firstEmojiName = 0x7efdc100728e &quot;muted speaker&quot;, title = 0x7efdc100714c &quot;Objects&quot;, iconName = 0x7efdc100729c &quot;emoji-objects-symbolic&quot;, canHaveVariations = false}, {firstEmojiName = 0x7efdc10072b3 &quot;ATM sign&quot;, title = 0x7efdc10072bc &quot;Symbols&quot;, iconName = 0x7efdc10072c4 &quot;emoji-symbols-symbolic&quot;, canHaveVariations = false}, {firstEmojiName = 0x7efdc10072db &quot;chequered flag&quot;, title = 0x7efdc1007154 &quot;Flags&quot;, iconName = 0x7efdc10072ea &quot;emoji-flags-symbolic&quot;, canHaveVariations = false}}
        chooser = 0x563d608ee3f0
        mainBox = 0x563d619b3330
        searchEntry = &lt;optimized out&gt;
        stack = 0x563d61984b60
        box = 0x563d619b3490
        swindow = &lt;optimized out&gt;
        emojiBox = 0x563d619b35f0
        buttonBox = 0x563d619b3750
        vAdjustment = &lt;optimized out&gt;
#9  webkitEmojiChooserConstructed(GObject*) (object=0x563d608ee3f0)
    at ../Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:588
        chooser = 0x563d608ee3f0
        mainBox = 0x563d619b3330
        searchEntry = &lt;optimized out&gt;
        stack = 0x563d61984b60
        box = 0x563d619b3490
        swindow = &lt;optimized out&gt;
        emojiBox = 0x563d619b35f0
        buttonBox = 0x563d619b3750
        vAdjustment = &lt;optimized out&gt;
............</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782047</commentid>
    <comment_count>1</comment_count>
      <attachid>434935</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-08-04 14:29:23 -0700</bug_when>
    <thetext>Created attachment 434935
WIP Patch


Untested, imports all the changes from the upstream gtk-3-24 branch
(adapted to WebKit style, of course). This needs a bit of work to keep
using the old code paths for GTK versions older than 3.24.30, so runtime
checks still need to be added and some of the removed code brough back
before even considering the patch ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782048</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-04 14:30:08 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782200</commentid>
    <comment_count>3</comment_count>
      <attachid>434984</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-08-05 07:51:43 -0700</bug_when>
    <thetext>Created attachment 434984
Emoji picker almost working again

Well, with a couple of tweaks at least there is no crash, I can
see the picker, and enter emojis (recents work, too!)

All the emojis get stashed in the first group, though. This seems
related to the criticals, so hopefully won&apos;t be hard to iron out.

Then I&apos;ll add some code to switch things around depending on the
GTK version at runtime and we&apos;ll be good to go :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784632</commentid>
    <comment_count>4</comment_count>
      <attachid>435626</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-08-16 13:39:16 -0700</bug_when>
    <thetext>Created attachment 435626
WIP Patch v2


Better version, still needs a bit of work. This includes the runtime
check to choose whether to use the old or the new emoji data format.
There are a couple of cases where I still need to re-add support for
the old format, mostly around recently used emojis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803536</commentid>
    <comment_count>5</comment_count>
      <attachid>441015</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-12 16:32:49 -0700</bug_when>
    <thetext>Created attachment 441015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803601</commentid>
    <comment_count>6</comment_count>
      <attachid>441015</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-12 18:15:00 -0700</bug_when>
    <thetext>Comment on attachment 441015
Patch

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

Well it&apos;s worth being a little evil when you get to delete this much code. I can&apos;t think of anything better. No design awards for you this day, though. :P

&gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:43
&gt; +        GtkWidget* entry = gtk_entry_new();

I think this is leaked? Since you don&apos;t add it to the widget hierarchy, you have to unref it manually, right? Solution:

GRefPtr&lt;GtkWidget&gt; entry = adoptGRef(g_object_ref_sink(gtk_entry_new()));

&gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:57
&gt; +        GSource* source = g_idle_source_new();

Avoid the manual g_source_unref():

GRefPtr&lt;GSource&gt; source = adoptGRef(g_idle_source_new());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803665</commentid>
    <comment_count>7</comment_count>
      <attachid>441015</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-13 00:36:54 -0700</bug_when>
    <thetext>Comment on attachment 441015
Patch

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

&gt; Source/WebKit/ChangeLog:12
&gt; +        Instead of providing a copy of the emoji chooser widget, use GLib&apos;s
&gt; +        introspection features and a little sprinkle of knowledge about how
&gt; +        GTK works in order to obtain the type code of the GtkEmojiChooser
&gt; +        widget included with GTK. This ensures that a working widget is
&gt; +        always used, regardless of the current GTK version.

Great idea!

&gt;&gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:43
&gt;&gt; +        GtkWidget* entry = gtk_entry_new();
&gt; 
&gt; I think this is leaked? Since you don&apos;t add it to the widget hierarchy, you have to unref it manually, right? Solution:
&gt; 
&gt; GRefPtr&lt;GtkWidget&gt; entry = adoptGRef(g_object_ref_sink(gtk_entry_new()));

This is equivalent to just GRefPtr&lt;GtkWidget&gt; entry = gtk_entry_new(); but the entry is not leaked because gtk_widget_destroy is used, which ignores the refs and calls g_object_run_dispose().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803695</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 03:29:32 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; Comment on attachment 441015 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441015&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:12
&gt; &gt; +        Instead of providing a copy of the emoji chooser widget, use GLib&apos;s
&gt; &gt; +        introspection features and a little sprinkle of knowledge about how
&gt; &gt; +        GTK works in order to obtain the type code of the GtkEmojiChooser
&gt; &gt; +        widget included with GTK. This ensures that a working widget is
&gt; &gt; +        always used, regardless of the current GTK version.
&gt; 
&gt; Great idea!

I&apos;m glad you didn&apos;t hate it :)

&gt; &gt;&gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:43
&gt; &gt;&gt; +        GtkWidget* entry = gtk_entry_new();
&gt; &gt; 
&gt; &gt; I think this is leaked? Since you don&apos;t add it to the widget hierarchy, you have to unref it manually, right? Solution:
&gt; &gt; 
&gt; &gt; GRefPtr&lt;GtkWidget&gt; entry = adoptGRef(g_object_ref_sink(gtk_entry_new()));
&gt; 
&gt; This is equivalent to just GRefPtr&lt;GtkWidget&gt; entry = gtk_entry_new(); but
&gt; the entry is not leaked because gtk_widget_destroy is used, which ignores
&gt; the refs and calls g_object_run_dispose().

Yes, I went with a call to gtk_widget_destroy() because it looked more
clear and explicit to me that the widget is not used for anything else
than forcing the GtkEmojiChooser class to be registered with the type
system.

I will change the patch to use GRefPtr&lt;GSource&gt; for the idle source before
landing, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803697</commentid>
    <comment_count>9</comment_count>
      <attachid>441053</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 03:45:49 -0700</bug_when>
    <thetext>Created attachment 441053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803746</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-13 06:59:11 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; &gt; GRefPtr&lt;GtkWidget&gt; entry = adoptGRef(g_object_ref_sink(gtk_entry_new()));
&gt; 
&gt; This is equivalent to just GRefPtr&lt;GtkWidget&gt; entry = gtk_entry_new();

Um, yes, that&apos;s right. Maybe I should add a comment in GRefPtr.h to remind us how to handle floating refs, since clearly I can&apos;t keep it straight.

&gt; but
&gt; the entry is not leaked because gtk_widget_destroy is used, which ignores
&gt; the refs and calls g_object_run_dispose().

Sure it will be disposed, since objects can be disposed multiple times, but it obviously cannot be finalized when there is an outstanding ref. The documentation of gtk_widget_destroy() says:

&quot;&quot;&quot;
It&apos;s important to notice that gtk_widget_destroy() will only cause the widget to be finalized if no additional references, acquired using g_object_ref(), are held on it. In case additional references are in place, the widget will be in an &quot;inert&quot; state after calling this function; widget will still point to valid memory, allowing you to release the references you hold, but you may not query the widget&apos;s own state.
&quot;&quot;&quot;

So I&apos;m pretty sure it will be leaked!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803747</commentid>
    <comment_count>11</comment_count>
      <attachid>441053</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-13 07:00:58 -0700</bug_when>
    <thetext>Comment on attachment 441053
Patch

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

&gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:46
&gt; +        GtkWidget* entry = gtk_entry_new();
&gt; +        gtk_entry_set_input_hints(GTK_ENTRY(entry), GTK_INPUT_HINT_EMOJI);
&gt; +        g_object_ref_sink(entry);

So I would do:

GRefPtr&lt;GtkWidget&gt; entry = gtk_entry_new();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803934</commentid>
    <comment_count>12</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 13:22:46 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; Comment on attachment 441053 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441053&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:46
&gt; &gt; +        GtkWidget* entry = gtk_entry_new();
&gt; &gt; +        gtk_entry_set_input_hints(GTK_ENTRY(entry), GTK_INPUT_HINT_EMOJI);
&gt; &gt; +        g_object_ref_sink(entry);
&gt; 
&gt; So I would do:
&gt; 
&gt; GRefPtr&lt;GtkWidget&gt; entry = gtk_entry_new();

No, we don&apos;t want that: using GRefPtr would drop the last ref when the
lambda goes out of scope, but we want to actually drop the last ref in
the idle source callback where currently gtk_widget_destroy() is done.
Otherwise we will hit a critical warning because GTK is missing a null
check and it tries to unref a null GVariant which gets populated in the
next main loop iteration. There is a comment explaining that in the patch,
let me know if it is not clear enough and I can try to reword it.

Also, I will update POTFILES to remove “WebKitEmojiChooser.cpp” before
landing, which is something Carlos García reminded me earlier in a private
chat =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803937</commentid>
    <comment_count>13</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 13:27:02 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #10)
&gt; (In reply to Carlos Garcia Campos from comment #7)
&gt; &gt; &gt; GRefPtr&lt;GtkWidget&gt; entry = adoptGRef(g_object_ref_sink(gtk_entry_new()));
&gt; &gt; 
&gt; &gt; This is equivalent to just GRefPtr&lt;GtkWidget&gt; entry = gtk_entry_new();
&gt; 
&gt; Um, yes, that&apos;s right. Maybe I should add a comment in GRefPtr.h to remind
&gt; us how to handle floating refs, since clearly I can&apos;t keep it straight.
&gt; 
&gt; &gt; but
&gt; &gt; the entry is not leaked because gtk_widget_destroy is used, which ignores
&gt; &gt; the refs and calls g_object_run_dispose().
&gt; 
&gt; Sure it will be disposed, since objects can be disposed multiple times, but
&gt; it obviously cannot be finalized when there is an outstanding ref. The
&gt; documentation of gtk_widget_destroy() says:
&gt; 
&gt; &quot;&quot;&quot;
&gt; It&apos;s important to notice that gtk_widget_destroy() will only cause the
&gt; widget to be finalized if no additional references, acquired using
&gt; g_object_ref(), are held on it. In case additional references are in place,
&gt; the widget will be in an &quot;inert&quot; state after calling this function; widget
&gt; will still point to valid memory, allowing you to release the references you
&gt; hold, but you may not query the widget&apos;s own state.
&gt; &quot;&quot;&quot;
&gt; 
&gt; So I&apos;m pretty sure it will be leaked!

Mmmh, right. I actually checked the implementation and basically it only
calls into g_object_run_dispose() — I need to add a call to g_object_unref(),
and given that there are no circular references (i.e. the widget is a dummy
one, not added into any hierarchy) we can skip the gtk_widget_destroy() call.
We still need to free the widget in the idle callback, though, so there is
little incentive to use GRefPtr for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803950</commentid>
    <comment_count>14</comment_count>
      <attachid>441130</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 13:49:18 -0700</bug_when>
    <thetext>Created attachment 441130
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803969</commentid>
    <comment_count>15</comment_count>
      <attachid>441130</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-13 14:27:25 -0700</bug_when>
    <thetext>Comment on attachment 441130
Patch for landing

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

&gt; Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp:62
&gt; +        }, entry, nullptr);

Eh, I would still store ownership in a GRefPtr for as long as possible, then use entry.leakRef() when you need to transfer the ownership into the lambda. Up to you. If you want to land as-is, just set cq+ again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804001</commentid>
    <comment_count>16</comment_count>
      <attachid>441143</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 15:17:59 -0700</bug_when>
    <thetext>Created attachment 441143
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804003</commentid>
    <comment_count>17</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-13 15:19:07 -0700</bug_when>
    <thetext>Last version of the patch adds the GRefPtr suggested by Michael, but
the g_object_unref() is kept explicit inside the idle lambda callback
for clarity :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804036</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 15:52:56 -0700</bug_when>
    <thetext>Committed r284132 (242952@main): &lt;https://commits.webkit.org/242952@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441143.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434935</attachid>
            <date>2021-08-04 14:29:23 -0700</date>
            <delta_ts>2021-08-16 13:39:12 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-228664-20210805002921.patch</filename>
            <type>text/plain</type>
            <size>18064</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA0
OGFiN2MzYTM1MjNhMmJlNjA3NzY2NGVmNjVlNmVjMzBmMTQ2OTFlLi43ZDM5MTdiMzg2YTYxMjQy
ZWM4MWIwNWNiYjlhMmRhNjFhYjJmNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTM4
LDYgKzM4LDggQEAgYWRkX2RlZmluaXRpb25zKC1ETE9DQUxFRElSPSIke0NNQUtFX0lOU1RBTExf
RlVMTF9MT0NBTEVESVJ9IikKIGFkZF9kZWZpbml0aW9ucygtRERBVEFESVI9IiR7Q01BS0VfSU5T
VEFMTF9GVUxMX0RBVEFESVJ9IikKIGFkZF9kZWZpbml0aW9ucygtRExJQkRJUj0iJHtMSUJfSU5T
VEFMTF9ESVJ9IikKIAorV0VCS0lUX0FERF9UQVJHRVRfUFJPUEVSVElFUyhXZWJLaXQgQ09NUElM
RV9ERUZJTklUSU9OUyBHVEtfUFJFRklYPVwiJHtHVEtfUFJFRklYfVwiKQorCiBpZiAoTk9UIERF
VkVMT1BFUl9NT0RFIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiRGFyd2luIikK
ICAgICBXRUJLSVRfQUREX1RBUkdFVF9QUk9QRVJUSUVTKFdlYktpdCBMSU5LX0ZMQUdTICItV2ws
LS12ZXJzaW9uLXNjcmlwdCwke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vd2Via2l0Z2xpYi1z
eW1ib2xzLm1hcCIpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwCmluZGV4IGNiY2EwZjEyNjZhZmFmZGQw
MWFhZmFkM2YzOWQ3MzNmMTA2ZjMxMjguLmY2NjBkOTA1MjE4NTQ4MzAyYzdlMzFhMTA4Nzg0MGNh
ZmVhOWEwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RW1vamlDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYktpdEVtb2ppQ2hvb3Nlci5oIgorI2luY2x1ZGUgInd0Zi9O
b3RGb3VuZC5oIgogCiAjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RL
NCkKIApAQCAtNDcsNyArNDgsNyBAQCBzdHJ1Y3QgRW1vamlTZWN0aW9uIHsKICAgICBHdGtXaWRn
ZXQqIGJveCB7IG51bGxwdHIgfTsKICAgICBHdGtXaWRnZXQqIGJ1dHRvbiB7IG51bGxwdHIgfTsK
ICAgICBib29sIGlzRW1wdHkgeyBmYWxzZSB9OwotICAgIGNvbnN0IGNoYXIqIGZpcnN0RW1vamlO
YW1lIHsgbnVsbHB0ciB9OworICAgIGludCBncm91cDsKIH07CiAKIHVzaW5nIFNlY3Rpb25MaXN0
ID0gVmVjdG9yPEVtb2ppU2VjdGlvbiwgOT47CkBAIC0xNTIsNiArMTUzLDMwIEBAIHN0YXRpYyBH
dGtXaWRnZXQqIHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKFdlYktpdEVtb2ppQ2hvb3Nlciog
Y2hvb3NlciwgR3RrRmxvCiAgICAgcmV0dXJuIGNoaWxkOwogfQogCitzdGF0aWMgR1JlZlB0cjxH
VmFyaWFudD4gd2Via2l0RW1vamlDaG9vc2VyR2V0UmVjZW50RGF0YShHdGtXaWRnZXQqIHdpZGdl
dCkKK3sKKyAgICBHUmVmUHRyPEdWYXJpYW50PiBlbW9qaURhdGEgPSBzdGF0aWNfY2FzdDxHVmFy
aWFudCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKHdpZGdldCksICJlbW9qaS1kYXRhIikp
OworICAgIEFTU0VSVChlbW9qaURhdGEpOworCisgICAgaWYgKGdfdmFyaWFudF9pc19vZl90eXBl
KGVtb2ppRGF0YS5nZXQoKSwgR19WQVJJQU5UX1RZUEUoIihhdXNzKSIpKSkKKyAgICAgICAgcmV0
dXJuIGVtb2ppRGF0YTsKKworICAgIEdVbmlxdWVPdXRQdHI8R1ZhcmlhbnRJdGVyPiBjb2Rlc0l0
ZXI7CisgICAgR1VuaXF1ZU91dFB0cjxHVmFyaWFudEl0ZXI+IGtleXdvcmRzSXRlcjsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworICAgIHVuc2lnbmVkIGdyb3VwOworICAgIGdfdmFyaWFudF9nZXQo
ZW1vamlEYXRhLmdldCgpLCAiKGF1JnNhc3UpIiwgJmNvZGVzSXRlci5vdXRQdHIoKSwgJm5hbWUs
ICZrZXl3b3Jkc0l0ZXIub3V0UHRyKCksICZncm91cCk7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIg
Y29kZXNCdWlsZGVyOworICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmNvZGVzQnVpbGRlciwg
R19WQVJJQU5UX1RZUEUoImF1IikpOworCisgICAgdW5zaWduZWQgY29kZTsKKyAgICB3aGlsZSAo
Z192YXJpYW50X2l0ZXJfbG9vcChjb2Rlc0l0ZXIuZ2V0KCksICJ1IiwgJmNvZGUpKQorICAgICAg
ICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmNvZGVzQnVpbGRlciwgInUiLCBjb2RlKTsKKworICAg
IHJldHVybiBhZG9wdEdSZWYoZ192YXJpYW50X25ldygiKGF1c3MpIiwgJmNvZGVzQnVpbGRlciwg
bmFtZSwgIiIpKTsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyQWRkUmVjZW50
SXRlbShXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEdWYXJpYW50KiBpdGVtLCBndW5pY2hh
ciBtb2RpZmllcikKIHsKICAgICBHUmVmUHRyPEdWYXJpYW50PiBwcm90ZWN0SXRlbShpdGVtKTsK
QEAgLTE2Niw5ICsxOTEsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJBZGRSZWNl
bnRJdGVtKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR1ZhcmlhbgogICAgIEdVbmlxdWVQ
dHI8R0xpc3Q+IGNoaWxkcmVuKGd0a19jb250YWluZXJfZ2V0X2NoaWxkcmVuKEdUS19DT05UQUlO
RVIoc2VjdGlvbi5ib3gpKSk7CiAgICAgdW5zaWduZWQgaSA9IDE7CiAgICAgZm9yIChhdXRvKiBs
ID0gY2hpbGRyZW4uZ2V0KCk7IGw7IGwgPSBnX2xpc3RfbmV4dChsKSwgKytpKSB7Ci0gICAgICAg
IGF1dG8qIGl0ZW0yID0gc3RhdGljX2Nhc3Q8R1ZhcmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShH
X09CSkVDVChsLT5kYXRhKSwgImVtb2ppLWRhdGEiKSk7CisgICAgICAgIGF1dG8gaXRlbTIgPSB3
ZWJraXRFbW9qaUNob29zZXJHZXRSZWNlbnREYXRhKEdUS19XSURHRVQobC0+ZGF0YSkpOwogICAg
ICAgICBhdXRvIG1vZGlmaWVyMiA9IHN0YXRpY19jYXN0PGd1bmljaGFyPihHUE9JTlRFUl9UT19V
SU5UKGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGwtPmRhdGEpLCAibW9kaWZpZXIiKSkpOwot
ICAgICAgICBpZiAobW9kaWZpZXIgPT0gbW9kaWZpZXIyICYmIGdfdmFyaWFudF9lcXVhbChpdGVt
LCBpdGVtMikpIHsKKyAgICAgICAgaWYgKG1vZGlmaWVyID09IG1vZGlmaWVyMiAmJiBnX3Zhcmlh
bnRfZXF1YWwoaXRlbSwgaXRlbTIuZ2V0KCkpKSB7CiAgICAgICAgICAgICBndGtfd2lkZ2V0X2Rl
c3Ryb3koR1RLX1dJREdFVChsLT5kYXRhKSk7CiAgICAgICAgICAgICAtLWk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTE3OSw3ICsyMDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNo
b29zZXJBZGRSZWNlbnRJdGVtKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR1Zhcmlhbgog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBnX3ZhcmlhbnRfYnVp
bGRlcl9hZGQoJmJ1aWxkZXIsICIoQChhdXNzKXUpIiwgaXRlbTIsIG1vZGlmaWVyMik7CisgICAg
ICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIihAKGF1c3MpdSkiLCBpdGVtMi5n
ZXQoKSwgbW9kaWZpZXIyKTsKICAgICB9CiAKICAgICBhdXRvKiBjaGlsZCA9IHdlYmtpdEVtb2pp
Q2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChzZWN0aW9uLmJveCksIGl0ZW0s
IHRydWUsIG1vZGlmaWVyKTsKQEAgLTE5MiwxNiArMjE3LDM1IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dEVtb2ppQ2hvb3NlckFkZFJlY2VudEl0ZW0oV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBH
VmFyaWFuCiAgICAgZ19zZXR0aW5nc19zZXRfdmFsdWUoY2hvb3Nlci0+cHJpdi0+c2V0dGluZ3Mu
Z2V0KCksICJyZWNlbnQtZW1vamkiLCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpKTsK
IH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQ2xvc2UoV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2Vy
KQoreworICAgIGF1dG8qIGRpc3BsYXkgPSBndGtfd2lkZ2V0X2dldF9kaXNwbGF5KEdUS19XSURH
RVQoY2hvb3NlcikpOworICAgIGF1dG8qIHNlYXQgPSBnZGtfZGlzcGxheV9nZXRfZGVmYXVsdF9z
ZWF0KGRpc3BsYXkpOworICAgIGF1dG8qIGRldmljZSA9IGdka19zZWF0X2dldF9wb2ludGVyKHNl
YXQpOworICAgIGlmICghZGV2aWNlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEdka01v
ZGlmaWVyVHlwZSBzdGF0ZTsKKyAgICBnZGtfZGV2aWNlX2dldF9zdGF0ZShkZXZpY2UsIGd0a193
aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKGNob29zZXIpKSwgbnVsbHB0ciwgJnN0YXRlKTsK
KyAgICByZXR1cm4gKHN0YXRlICYgR0RLX0NPTlRST0xfTUFTSykgPT0gMDsKK30KKwogc3RhdGlj
IHZvaWQgZW1vamlBY3RpdmF0ZWQoR3RrRmxvd0JveCogYm94LCBHdGtGbG93Qm94Q2hpbGQqIGNo
aWxkLCBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCiB7Ci0gICAgZ3RrX3BvcG92ZXJfcG9w
ZG93bihHVEtfUE9QT1ZFUihjaG9vc2VyKSk7CisgICAgaWYgKHNob3VsZENsb3NlKGNob29zZXIp
KSB7CisgICAgICAgIGd0a19wb3BvdmVyX3BvcGRvd24oR1RLX1BPUE9WRVIoY2hvb3NlcikpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8qIHBvcG92ZXIgPSBndGtfd2lkZ2V0X2dldF9hbmNl
c3RvcihHVEtfV0lER0VUKGJveCksIEdUS19UWVBFX1BPUE9WRVIpOworICAgICAgICBpZiAocG9w
b3ZlciAhPSBHVEtfV0lER0VUKGNob29zZXIpKQorICAgICAgICAgICAgZ3RrX3BvcG92ZXJfcG9w
ZG93bihHVEtfUE9QT1ZFUihwb3BvdmVyKSk7CisgICAgfQogCiAgICAgR3RrV2lkZ2V0KiBsYWJl
bCA9IGd0a19iaW5fZ2V0X2NoaWxkKEdUS19CSU4oZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihj
aGlsZCkpKSk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0ZXh0KGdfc3RyZHVwKGd0a19sYWJlbF9n
ZXRfbGFiZWwoR1RLX0xBQkVMKGxhYmVsKSkpKTsKIAotICAgIGF1dG8qIGl0ZW0gPSBzdGF0aWNf
Y2FzdDxHVmFyaWFudCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2pp
LWRhdGEiKSk7CisgICAgYXV0byBpdGVtID0gd2Via2l0RW1vamlDaG9vc2VyR2V0UmVjZW50RGF0
YShHVEtfV0lER0VUKGNoaWxkKSk7CiAgICAgYXV0byBtb2RpZmllciA9IHN0YXRpY19jYXN0PGd1
bmljaGFyPihHUE9JTlRFUl9UT19VSU5UKGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxk
KSwgIm1vZGlmaWVyIikpKTsKLSAgICB3ZWJraXRFbW9qaUNob29zZXJBZGRSZWNlbnRJdGVtKGNo
b29zZXIsIGl0ZW0sIG1vZGlmaWVyKTsKKyAgICB3ZWJraXRFbW9qaUNob29zZXJBZGRSZWNlbnRJ
dGVtKGNob29zZXIsIGl0ZW0uZ2V0KCksIG1vZGlmaWVyKTsKICAgICBnX3NpZ25hbF9lbWl0KGNo
b29zZXIsIHNpZ25hbHNbRU1PSklfUElDS0VEXSwgMCwgdGV4dC5nZXQoKSk7CiB9CiAKQEAgLTIy
MiwxMSArMjY2LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNob3dWYXJpYXRp
b25zKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR3RrV2lkCiAgICAgaWYgKCFjaGlsZCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogZW1vamlEYXRhID0gc3RhdGljX2Nhc3Q8R1Zh
cmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChjaGlsZCksICJlbW9qaS1kYXRhIikp
OworICAgIGF1dG8gZW1vamlEYXRhID0gd2Via2l0RW1vamlDaG9vc2VyR2V0UmVjZW50RGF0YShj
aGlsZCk7CiAgICAgaWYgKCFlbW9qaURhdGEpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICgh
ZW1vamlEYXRhSGFzVmFyaWF0aW9ucyhlbW9qaURhdGEpKQorICAgIGlmICghZW1vamlEYXRhSGFz
VmFyaWF0aW9ucyhlbW9qaURhdGEuZ2V0KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBHdGtX
aWRnZXQqIHBvcG92ZXIgPSBndGtfcG9wb3Zlcl9uZXcoY2hpbGQpOwpAQCAtMjQ0LDkgKzI4OCw5
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNob3dWYXJpYXRpb25zKFdlYktpdEVt
b2ppQ2hvb3NlciogY2hvb3NlciwgR3RrV2lkCiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NP
TlRBSU5FUihwb3BvdmVyKSwgdmlldyk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHZpZXcpOwogCi0g
ICAgd2Via2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RLX0ZMT1dfQk9YKGJveCks
IGVtb2ppRGF0YSk7CisgICAgd2Via2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RL
X0ZMT1dfQk9YKGJveCksIGVtb2ppRGF0YS5nZXQoKSk7CiAgICAgZm9yIChndW5pY2hhciBtb2Rp
ZmllciA9IDB4MUYzRkI7IG1vZGlmaWVyIDw9IDB4MUYzRkY7ICsrbW9kaWZpZXIpCi0gICAgICAg
IHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gpLCBl
bW9qaURhdGEsIGZhbHNlLCBtb2RpZmllcik7CisgICAgICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFk
ZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gpLCBlbW9qaURhdGEuZ2V0KCksIGZhbHNl
LCBtb2RpZmllcik7CiAKICAgICBndGtfcG9wb3Zlcl9wb3B1cChHVEtfUE9QT1ZFUihwb3BvdmVy
KSk7CiB9CkBAIC0yNzIsNiArMzE2LDkgQEAgc3RhdGljIHZvaWQgdmVydGljYWxBZGp1c3RtZW50
Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50LCBXZWJLaXRFbW9qaUNob28KICAgICBk
b3VibGUgdmFsdWUgPSBndGtfYWRqdXN0bWVudF9nZXRfdmFsdWUoYWRqdXN0bWVudCk7CiAgICAg
RW1vamlTZWN0aW9uKiBzZWN0aW9uVG9TZWxlY3QgPSBudWxscHRyOwogICAgIGZvciAoYXV0byYg
c2VjdGlvbiA6IGNob29zZXItPnByaXYtPnNlY3Rpb25zKSB7CisgICAgICAgIGlmICghZ3RrX3dp
ZGdldF9nZXRfdmlzaWJsZShzZWN0aW9uLmJveCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwog
ICAgICAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb247CiAgICAgICAgIGlmIChzZWN0aW9uLmhl
YWRpbmcpCiAgICAgICAgICAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24uaGVh
ZGluZywgJmFsbG9jYXRpb24pOwpAQCAtMjk1LDEwICszNDIsMTAgQEAgc3RhdGljIHZvaWQgdmVy
dGljYWxBZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50LCBXZWJLaXRF
bW9qaUNob28KICAgICB9CiB9CiAKLXN0YXRpYyBHdGtXaWRnZXQqIHdlYmtpdEVtb2ppQ2hvb3Nl
clNldHVwU2VjdGlvbkJveChXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a0JveCogcGFy
ZW50LCBjb25zdCBjaGFyKiBmaXJzdEVtb2ppTmFtZSwgY29uc3QgY2hhciogdGl0bGUsIEd0a0Fk
anVzdG1lbnQqIGFkanVzdG1lbnQsIGdib29sZWFuIGNhbkhhdmVWYXJpYXRpb25zID0gRkFMU0Up
CitzdGF0aWMgR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25Cb3goV2Vi
S2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBHdGtCb3gqIHBhcmVudCwgaW50IGdyb3VwLCBjb25z
dCBjaGFyKiB0aXRsZSwgR3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCwgZ2Jvb2xlYW4gY2FuSGF2
ZVZhcmlhdGlvbnMgPSBGQUxTRSkKIHsKICAgICBFbW9qaVNlY3Rpb24gc2VjdGlvbjsKLSAgICBz
ZWN0aW9uLmZpcnN0RW1vamlOYW1lID0gZmlyc3RFbW9qaU5hbWU7CisgICAgc2VjdGlvbi5ncm91
cCA9IGdyb3VwOwogICAgIGlmICh0aXRsZSkgewogICAgICAgICBHdGtXaWRnZXQqIGxhYmVsID0g
Z3RrX2xhYmVsX25ldyh0aXRsZSk7CiAgICAgICAgIHNlY3Rpb24uaGVhZGluZyA9IGxhYmVsOwpA
QCAtMzU2LDcgKzQwMyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2Vj
dGlvbkJ1dHRvbihXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0CiAKIHN0YXRpYyB2b2lk
IHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3Nl
ciwgR3RrQm94KiBlbW9qaUJveCwgR3RrQm94KiBidXR0b25Cb3gsIEd0a0FkanVzdG1lbnQqIGFk
anVzdG1lbnQpCiB7Ci0gICAgR3RrV2lkZ2V0KiBmbG93Qm94ID0gd2Via2l0RW1vamlDaG9vc2Vy
U2V0dXBTZWN0aW9uQm94KGNob29zZXIsIGVtb2ppQm94LCBudWxscHRyLCBudWxscHRyLCBhZGp1
c3RtZW50LCB0cnVlKTsKKyAgICBHdGtXaWRnZXQqIGZsb3dCb3ggPSB3ZWJraXRFbW9qaUNob29z
ZXJTZXR1cFNlY3Rpb25Cb3goY2hvb3NlciwgZW1vamlCb3gsIC0xLCBudWxscHRyLCBhZGp1c3Rt
ZW50LCB0cnVlKTsKICAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25CdXR0b24oY2hv
b3NlciwgYnV0dG9uQm94LCAiZW1vamktcmVjZW50LXN5bWJvbGljIiwgXygiUmVjZW50IikpOwog
CiAgICAgYm9vbCBpc0VtcHR5ID0gdHJ1ZTsKQEAgLTQ0OCw2NSArNDk1LDEyMyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRFbW9qaUNob29zZXJTZXR1cEZpbHRlcnMoV2ViS2l0RW1vamlDaG9vc2VyKiBj
aG9vc2VyKQogICAgICAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBhdXRvKiBlbW9qaURhdGEgPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdfb2Jq
ZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiKSk7CisgICAgICAgICAg
ICBhdXRvIGVtb2ppRGF0YSA9IHdlYmtpdEVtb2ppQ2hvb3NlckdldFJlY2VudERhdGEoR1RLX1dJ
REdFVChjaGlsZCkpOwogICAgICAgICAgICAgaWYgKCFlbW9qaURhdGEpIHsKICAgICAgICAgICAg
ICAgICBzZWN0aW9uLmlzRW1wdHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICByZXR1cm4gVFJV
RTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKLSAgICAg
ICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoZW1vamlEYXRhLCAxLCAiJnMiLCAmbmFtZSk7Ci0g
ICAgICAgICAgICBpZiAoZ19zdHJfbWF0Y2hfc3RyaW5nKHRleHQsIG5hbWUsIFRSVUUpKSB7Ci0g
ICAgICAgICAgICAgICAgc2VjdGlvbi5pc0VtcHR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIFRSVUU7CisgICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGVtb2ppRGF0YS5n
ZXQoKSwgMSwgIiZzIiwgJm5hbWUpOworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyKj4gbmFt
ZVRva2VucyhnX3N0cl90b2tlbml6ZV9hbmRfZm9sZChuYW1lLCAiZW4iLCBudWxscHRyKSk7Cisg
ICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXIqPiB0ZXJtVG9rZW5zKGdfc3RyX3Rva2VuaXplX2Fu
ZF9mb2xkKHRleHQsICJlbiIsIG51bGxwdHIpKTsKKworICAgICAgICAgICAgYXV0byBtYXRjaFRv
a2VucyA9IFt0dCA9IHRlcm1Ub2tlbnMuZ2V0KCldKGNvbnN0IGNoYXIqIGNvbnN0KiBoaXRUb2tl
bnMpIC0+IGJvb2wgeworICAgICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgdHRbaV07ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBoaXRUb2tlbnNbal07ICsraikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChnX3N0cl9oYXNfcHJlZml4KGhpdFRva2Vuc1tqXSwgdHRb
aV0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25lTWF0Y2hlZDsKKworICAg
ICAgICAgICAgICAgICAgICBtYXRjaGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgICAgICAgb25lTWF0Y2hlZDoKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBtYXRj
aGVkOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBtYXRjaFRv
a2Vucyh0ZXJtVG9rZW5zLmdldCgpKTsKKworICAgICAgICAgICAgaWYgKGdfdmFyaWFudF9pc19v
Zl90eXBlKGVtb2ppRGF0YS5nZXQoKSwgR19WQVJJQU5UX1RZUEUoIihhdXNhc3UpIikpKSB7Cisg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogY29uc3QqIGtleXdvcmRzOworICAgICAgICAgICAg
ICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoZW1vamlEYXRhLmdldCgpLCAyLCAiXmEmcyIsICZrZXl3
b3Jkcyk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IG1hdGNoVG9rZW5zKGtl
eXdvcmRzKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAg
ICAgICAgICAgc2VjdGlvbi5pc0VtcHR5ID0gIXJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQgPyBUUlVFIDogRkFMU0U7CiAgICAgICAgIH0sIEdVSU5UX1RPX1BPSU5URVIoaSksIG51
bGxwdHIpOwogICAgIH0KIH0KIAorc3RhdGljIEdSZWZQdHI8R0J5dGVzPiB3ZWJraXRFbW9qaUNo
b29zZXJHZXRFbW9qaURhdGEoKQoreworICAgIFN0cmluZyBsYW5ndWFnZShwYW5nb19sYW5ndWFn
ZV90b19zdHJpbmcoZ3RrX2dldF9kZWZhdWx0X2xhbmd1YWdlKCkpKTsKKyAgICBjb25zdCBhdXRv
IGRhc2hQb3NpdGlvbiA9IGxhbmd1YWdlLmZpbmQoJy0nKTsKKyAgICBpZiAoZGFzaFBvc2l0aW9u
ICE9IG5vdEZvdW5kKQorICAgICAgICBsYW5ndWFnZS50cnVuY2F0ZShkYXNoUG9zaXRpb24pOwor
CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVBhdGgoZ19zdHJjb25jYXQoIi9vcmcvZ3Rr
L2xpYmd0ay9lbW9qaS8iLCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpLCAiLmRhdGEiLCBudWxscHRy
KSk7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgR1JlZlB0cjxHQnl0
ZXM+IGVtb2ppRGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBfZGF0YShyZXNvdXJj
ZVBhdGguZ2V0KCksIEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsICZlcnJvci5vdXRQdHIo
KSkpOworICAgIGlmIChlbW9qaURhdGEpIHsKKyAgICAgICAgZ19kZWJ1ZygiRm91bmQgZW1vamkg
ZGF0YSBmb3IgJXMgaW4gcmVzb3VyY2UgJXMiLCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpLCByZXNv
dXJjZVBhdGguZ2V0KCkpOworICAgICAgICByZXR1cm4gZW1vamlEYXRhOworICAgIH0KKworICAg
IGlmIChnX2Vycm9yX21hdGNoZXMoZXJyb3IuZ2V0KCksIEdfUkVTT1VSQ0VfRVJST1IsIEdfUkVT
T1VSQ0VfRVJST1JfTk9UX0ZPVU5EKSkgeworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBsYW5n
dWFnZSArICIuZ3Jlc291cmNlIjsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBmaWxlUGF0aChn
X2J1aWxkX2ZpbGVuYW1lKEdUS19QUkVGSVgsICJzaGFyZSIsICJndGstMy4wIiwgImVtb2ppIiwg
ZmlsZW5hbWUudXRmOCgpLmRhdGEoKSwgbnVsbHB0cikpOworICAgICAgICBHVW5pcXVlUHRyPEdN
YXBwZWRGaWxlPiBmaWxlKGdfbWFwcGVkX2ZpbGVfbmV3KGZpbGVQYXRoLmdldCgpLCBGQUxTRSwg
bnVsbHB0cikpOworICAgICAgICBpZiAoZmlsZSkgeworICAgICAgICAgICAgR1JlZlB0cjxHQnl0
ZXM+IGRhdGEgPSBhZG9wdEdSZWYoZ19tYXBwZWRfZmlsZV9nZXRfYnl0ZXMoZmlsZS5nZXQoKSkp
OworICAgICAgICAgICAgR1JlZlB0cjxHUmVzb3VyY2U+IHJlc291cmNlID0gYWRvcHRHUmVmKGdf
cmVzb3VyY2VfbmV3X2Zyb21fZGF0YShkYXRhLmdldCgpLCBudWxscHRyKSk7CisgICAgICAgICAg
ICBnX2RlYnVnKCJSZWdpc3RlcmluZyByZXNvdXJjZSBmb3IgRW1vamkgZGF0YSBmb3IgJXMgZnJv
bSBmaWxlICVzIiwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSwgZmlsZW5hbWUudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICBnX3Jlc291cmNlc19yZWdpc3RlcihyZXNvdXJjZS5nZXQoKSk7Cisg
ICAgICAgICAgICBpZiAoKGVtb2ppRGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBf
ZGF0YShyZXNvdXJjZVBhdGguZ2V0KCksIEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51
bGxwdHIpKSkpIHsKKyAgICAgICAgICAgICAgICBnX2RlYnVnKCJGb3VuZCBlbW9qaSBkYXRhIGZv
ciAlcyBpbiByZXNvdXJjZSAlcyIsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCksIHJlc291cmNlUGF0
aC5nZXQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVtb2ppRGF0YTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBhZG9wdEdSZWYoZ19yZXNvdXJjZXNf
bG9va3VwX2RhdGEoIi9vcmcvZ3RrL2xpYmd0ay9lbW9qaS9lbi5kYXRhIiwgR19SRVNPVVJDRV9M
T09LVVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRFbW9q
aUNob29zZXJTZXR1cEVtb2ppU2VjdGlvbnMoV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBH
dGtCb3gqIGVtb2ppQm94LCBHdGtCb3gqIGJ1dHRvbkJveCkKIHsKICAgICBzdGF0aWMgY29uc3Qg
c3RydWN0IHsKLSAgICAgICAgY29uc3QgY2hhciogZmlyc3RFbW9qaU5hbWU7CiAgICAgICAgIGNv
bnN0IGNoYXIqIHRpdGxlOwogICAgICAgICBjb25zdCBjaGFyKiBpY29uTmFtZTsKICAgICAgICAg
Ym9vbCBjYW5IYXZlVmFyaWF0aW9uczsKICAgICB9IHNlY3Rpb25zW10gPSB7Ci0gICAgICAgIHsg
ImdyaW5uaW5nIGZhY2UiLCBOXygiU21pbGV5cyAmIFBlb3BsZSIpLCAiZW1vamktcGVvcGxlLXN5
bWJvbGljIiwgdHJ1ZSB9LAotICAgICAgICB7ICJzZWxmaWUiLCBOXygiQm9keSAmIENsb3RoaW5n
IiksICJlbW9qaS1ib2R5LXN5bWJvbGljIiwgdHJ1ZSB9LAotICAgICAgICB7ICJtb25rZXkiLCBO
XygiQW5pbWFscyAmIE5hdHVyZSIpLCAiZW1vamktbmF0dXJlLXN5bWJvbGljIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAiZ3JhcGVzIiwgTl8oIkZvb2QgJiBEcmluayIpLCAiZW1vamktZm9vZC1zeW1i
b2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImdsb2JlIHNob3dpbmcgRXVyb3BlLUFmcmljYSIs
IE5fKCJUcmF2ZWwgJiBQbGFjZXMiKSwgImVtb2ppLXRyYXZlbC1zeW1ib2xpYyIsIGZhbHNlIH0s
Ci0gICAgICAgIHsgImphY2stby1sYW50ZXJuIiwgTl8oIkFjdGl2aXRpZXMiKSwgImVtb2ppLWFj
dGl2aXRpZXMtc3ltYm9saWMiLCBmYWxzZSB9LAotICAgICAgICB7ICJtdXRlZCBzcGVha2VyIiwg
XygiT2JqZWN0cyIpLCAiZW1vamktb2JqZWN0cy1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAgICAg
IHsgIkFUTSBzaWduIiwgTl8oIlN5bWJvbHMiKSwgImVtb2ppLXN5bWJvbHMtc3ltYm9saWMiLCBm
YWxzZSB9LAotICAgICAgICB7ICJjaGVxdWVyZWQgZmxhZyIsIF8oIkZsYWdzIiksICJlbW9qaS1m
bGFncy1zeW1ib2xpYyIsIGZhbHNlIH0KKyAgICAgICAgeyBOXygiU21pbGV5cyAmIFBlb3BsZSIp
LCAiZW1vamktcGVvcGxlLXN5bWJvbGljIiwgdHJ1ZSB9LAorICAgICAgICB7IE5fKCJCb2R5ICYg
Q2xvdGhpbmciKSwgImVtb2ppLWJvZHktc3ltYm9saWMiLCB0cnVlIH0sCisgICAgICAgIHsgTl8o
IkFuaW1hbHMgJiBOYXR1cmUiKSwgImVtb2ppLW5hdHVyZS1zeW1ib2xpYyIsIGZhbHNlIH0sCisg
ICAgICAgIHsgTl8oIkZvb2QgJiBEcmluayIpLCAiZW1vamktZm9vZC1zeW1ib2xpYyIsIGZhbHNl
IH0sCisgICAgICAgIHsgTl8oIlRyYXZlbCAmIFBsYWNlcyIpLCAiZW1vamktdHJhdmVsLXN5bWJv
bGljIiwgZmFsc2UgfSwKKyAgICAgICAgeyBOXygiQWN0aXZpdGllcyIpLCAiZW1vamktYWN0aXZp
dGllcy1zeW1ib2xpYyIsIGZhbHNlIH0sCisgICAgICAgIHsgXygiT2JqZWN0cyIpLCAiZW1vamkt
b2JqZWN0cy1zeW1ib2xpYyIsIGZhbHNlIH0sCisgICAgICAgIHsgTl8oIlN5bWJvbHMiKSwgImVt
b2ppLXN5bWJvbHMtc3ltYm9saWMiLCBmYWxzZSB9LAorICAgICAgICB7IF8oIkZsYWdzIiksICJl
bW9qaS1mbGFncy1zeW1ib2xpYyIsIGZhbHNlIH0KICAgICB9OwogCiAgICAgYXV0byogdkFkanVz
dG1lbnQgPSBndGtfc2Nyb2xsZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xMRURf
V0lORE9XKGNob29zZXItPnByaXYtPnN3aW5kb3cpKTsKIAogICAgIEd0a1dpZGdldCogZmxvd0Jv
eCA9IG51bGxwdHI7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyhz
ZWN0aW9ucyk7ICsraSkgewotICAgICAgICBhdXRvKiBib3ggPSB3ZWJraXRFbW9qaUNob29zZXJT
ZXR1cFNlY3Rpb25Cb3goY2hvb3NlciwgZW1vamlCb3gsIHNlY3Rpb25zW2ldLmZpcnN0RW1vamlO
YW1lLCBzZWN0aW9uc1tpXS50aXRsZSwgdkFkanVzdG1lbnQsIHNlY3Rpb25zW2ldLmNhbkhhdmVW
YXJpYXRpb25zKTsKKyAgICAgICAgYXV0byogYm94ID0gd2Via2l0RW1vamlDaG9vc2VyU2V0dXBT
ZWN0aW9uQm94KGNob29zZXIsIGVtb2ppQm94LCBpLCBzZWN0aW9uc1tpXS50aXRsZSwgdkFkanVz
dG1lbnQsIHNlY3Rpb25zW2ldLmNhbkhhdmVWYXJpYXRpb25zKTsKICAgICAgICAgd2Via2l0RW1v
amlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKGNob29zZXIsIGJ1dHRvbkJveCwgc2VjdGlvbnNb
aV0uaWNvbk5hbWUsIHNlY3Rpb25zW2ldLnRpdGxlKTsKICAgICAgICAgaWYgKCFpKQogICAgICAg
ICAgICAgZmxvd0JveCA9IGJveDsKICAgICB9CiAKLSAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMg
PSBhZG9wdEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEoIi9vcmcvZ3RrL2xpYmd0ay9lbW9q
aS9lbW9qaS5kYXRhIiwgR19SRVNPVVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOwot
ICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IGRhdGEgPSBnX3ZhcmlhbnRfbmV3X2Zyb21fYnl0ZXMoR19W
QVJJQU5UX1RZUEUoImEoYXVzcykiKSwgYnl0ZXMuZ2V0KCksIFRSVUUpOworICAgIEdSZWZQdHI8
R0J5dGVzPiBieXRlcyA9IHdlYmtpdEVtb2ppQ2hvb3NlckdldEVtb2ppRGF0YSgpOworICAgIGNv
bnN0IGF1dG8gdmFyaWFudFR5cGUgPSBHX1ZBUklBTlRfVFlQRSgoZ3RrX2NoZWNrX3ZlcnNpb24o
MywgMjQsIDMwKSA9PSBudWxscHRyKSA/ICJhKGF1c2FzdSkiIDogImEoYXVzcykiKTsKKyAgICBH
UmVmUHRyPEdWYXJpYW50PiBkYXRhID0gZ192YXJpYW50X25ld19mcm9tX2J5dGVzKHZhcmlhbnRU
eXBlLCBieXRlcy5nZXQoKSwgVFJVRSk7CiAgICAgR1VuaXF1ZVB0cjxHVmFyaWFudEl0ZXI+IGl0
ZXIoZ192YXJpYW50X2l0ZXJfbmV3KGRhdGEuZ2V0KCkpKTsKIAogICAgIEZ1bmN0aW9uPHZvaWQo
KT4gcG9wdWxhdGVTZWN0aW9ucyA9IFtjaG9vc2VyLCBpdGVyID0gV1RGTW92ZShpdGVyKSwgZmxv
d0JveF0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5v
dygpOwogICAgICAgICB3aGlsZSAoR1JlZlB0cjxHVmFyaWFudD4gaXRlbSA9IGFkb3B0R1JlZihn
X3ZhcmlhbnRfaXRlcl9uZXh0X3ZhbHVlKGl0ZXIuZ2V0KCkpKSkgewotICAgICAgICAgICAgY29u
c3QgY2hhciogbmFtZTsKLSAgICAgICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoaXRlbS5nZXQo
KSwgMSwgIiZzIiwgJm5hbWUpOworICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXA7CisgICAgICAg
ICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGl0ZW0uZ2V0KCksIDMsICImdSIsICZncm91cCk7CiAK
LSAgICAgICAgICAgIGF1dG8gaW5kZXggPSBjaG9vc2VyLT5wcml2LT5zZWN0aW9ucy5maW5kTWF0
Y2hpbmcoWyZuYW1lXShjb25zdCBhdXRvJiBzZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuICFnX3N0cmNtcDAobmFtZSwgc2VjdGlvbi5maXJzdEVtb2ppTmFtZSk7CisgICAgICAgICAg
ICBhdXRvIGluZGV4ID0gY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuZmluZE1hdGNoaW5nKFtncm91
cCA9IHN0YXRpY19jYXN0PGludD4oZ3JvdXApXShjb25zdCBhdXRvJiBzZWN0aW9uKSB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHNlY3Rpb24uZ3JvdXAgPT0gZ3JvdXA7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIGZsb3dCb3ggPSBpbmRleCA9PSBub3RGb3VuZCA/IGZsb3dCb3ggOiBj
aG9vc2VyLT5wcml2LT5zZWN0aW9uc1tpbmRleF0uYm94OwogICAgICAgICAgICAgYXV0byogY2hp
bGQgPSB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19CT1goZmxv
d0JveCksIGl0ZW0uZ2V0KCkpOwpAQCAtNTg3LDggKzY5Miw2IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dEVtb2ppQ2hvb3NlckNvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKIAogICAgIHdlYmtpdEVt
b2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyhjaG9vc2VyLCBHVEtfQk9YKGVtb2ppQm94KSwg
R1RLX0JPWChidXR0b25Cb3gpKTsKIAotICAgIGd0a193aWRnZXRfc2V0X3N0YXRlX2ZsYWdzKGNo
b29zZXItPnByaXYtPnNlY3Rpb25zLmZpcnN0KCkuYnV0dG9uLCBHVEtfU1RBVEVfRkxBR19DSEVD
S0VELCBGQUxTRSk7Ci0KICAgICBndGtfc3RhY2tfYWRkX25hbWVkKEdUS19TVEFDSyhzdGFjayks
IGJveCwgImxpc3QiKTsKICAgICBndGtfd2lkZ2V0X3Nob3coYm94KTsKIApAQCAtNjA4LDYgKzcx
MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNob3coR3RrV2lkZ2V0KiB3aWRn
ZXQpCiAgICAgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyID0gV0VCS0lUX0VNT0pJX0NIT09T
RVIod2lkZ2V0KTsKICAgICBhdXRvKiBhZGp1c3RtZW50ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19n
ZXRfdmFkanVzdG1lbnQoR1RLX1NDUk9MTEVEX1dJTkRPVyhjaG9vc2VyLT5wcml2LT5zd2luZG93
KSk7CiAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKGFkanVzdG1lbnQsIDApOworICAgIHZl
cnRpY2FsQWRqdXN0bWVudENoYW5nZWQoYWRqdXN0bWVudCwgY2hvb3Nlcik7CiAKICAgICBndGtf
ZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGNob29zZXItPnByaXYtPnNlYXJjaEVudHJ5KSwgIiIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRHVEsuY21ha2UgYi9Tb3VyY2UvY21h
a2UvRmluZEdUSy5jbWFrZQppbmRleCBhYmI0Yjg2M2Y0M2NjNTUzMzE2NTlhMDA2NmY2Nzc0N2Q5
ZjhlZWMwLi4yMTU4ZGRlZDMwZDUzN2FjMmQ2MzMzMTIyM2NlNDAzMTM5OWFiYWZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvRmluZEdUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvRmluZEdU
Sy5jbWFrZQpAQCAtNjAsNiArNjAsOCBAQCBUaGlzIHdpbGwgZGVmaW5lIHRoZSBmb2xsb3dpbmcg
dmFyaWFibGVzIGluIHlvdXIgcHJvamVjdDoKICAgd2hldGhlciBHVEsgNCB3YXMgZGV0ZWN0ZWQK
IGBgR1RLXzNgYAogICB3aGV0aGVyIEdUSyAzIHdhcyBkZXRlY3RlZAorYGBHVEtfUFJFRklYYGAK
KyAgaW5zdGFsbGF0aW9uIHByZWZpeCBvZiB0aGUgR1RLIGxpYnJhcmllcy4KIGBgR1RLX1ZFUlNJ
T05gYAogICB0aGUgdmVyc2lvbiBvZiBHVEsuCiBgYEdUS19TVVBQT1JUU19CUk9BRFdBWWBgCkBA
IC05Myw2ICs5NSw3IEBAIGVuZGlmICgpCiAKIGZpbmRfcGFja2FnZShQa2dDb25maWcgUVVJRVQp
CiBwa2dfY2hlY2tfbW9kdWxlcyhHVEsgSU1QT1JURURfVEFSR0VUICR7R1RLX1BDX01PRFVMRX0p
Citwa2dfZ2V0X3ZhcmlhYmxlKEdUS19QUkVGSVggJHtHVEtfUENfTU9EVUxFfSBwcmVmaXgpCiAK
IHNldChHVEtfVkVSU0lPTl9PSyBUUlVFKQogaWYgKEdUS19WRVJTSU9OKQpAQCAtMTQ3LDQgKzE1
MCw0IEBAIGZvcmVhY2ggKGd0a19jb21wb25lbnQgJHtHVEtfRklORF9DT01QT05FTlRTfSkKIGVu
ZGZvcmVhY2ggKCkKIAogaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKLUZJ
TkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhHVEsgREVGQVVMVF9NU0cgR1RLX1ZFUlNJ
T04gR1RLX1ZFUlNJT05fT0spCitGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1MoR1RL
IERFRkFVTFRfTVNHIEdUS19WRVJTSU9OIEdUS19WRVJTSU9OX09LIEdUS19QUkVGSVgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>434984</attachid>
            <date>2021-08-05 07:51:43 -0700</date>
            <delta_ts>2021-10-12 16:35:02 -0700</delta_ts>
            <desc>Emoji picker almost working again</desc>
            <filename>emojopicker-almost-working.png</filename>
            <type>image/png</type>
            <size>158616</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435626</attachid>
            <date>2021-08-16 13:39:16 -0700</date>
            <delta_ts>2021-10-12 16:32:08 -0700</delta_ts>
            <desc>WIP Patch v2</desc>
            <filename>bug-228664-20210816233914.patch</filename>
            <type>text/plain</type>
            <size>19873</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA0
OGFiN2MzYTM1MjNhMmJlNjA3NzY2NGVmNjVlNmVjMzBmMTQ2OTFlLi43ZDM5MTdiMzg2YTYxMjQy
ZWM4MWIwNWNiYjlhMmRhNjFhYjJmNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTM4
LDYgKzM4LDggQEAgYWRkX2RlZmluaXRpb25zKC1ETE9DQUxFRElSPSIke0NNQUtFX0lOU1RBTExf
RlVMTF9MT0NBTEVESVJ9IikKIGFkZF9kZWZpbml0aW9ucygtRERBVEFESVI9IiR7Q01BS0VfSU5T
VEFMTF9GVUxMX0RBVEFESVJ9IikKIGFkZF9kZWZpbml0aW9ucygtRExJQkRJUj0iJHtMSUJfSU5T
VEFMTF9ESVJ9IikKIAorV0VCS0lUX0FERF9UQVJHRVRfUFJPUEVSVElFUyhXZWJLaXQgQ09NUElM
RV9ERUZJTklUSU9OUyBHVEtfUFJFRklYPVwiJHtHVEtfUFJFRklYfVwiKQorCiBpZiAoTk9UIERF
VkVMT1BFUl9NT0RFIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiRGFyd2luIikK
ICAgICBXRUJLSVRfQUREX1RBUkdFVF9QUk9QRVJUSUVTKFdlYktpdCBMSU5LX0ZMQUdTICItV2ws
LS12ZXJzaW9uLXNjcmlwdCwke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vd2Via2l0Z2xpYi1z
eW1ib2xzLm1hcCIpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwCmluZGV4IGNiY2EwZjEyNjZhZmFmZGQw
MWFhZmFkM2YzOWQ3MzNmMTA2ZjMxMjguLjI2ODcwOWU5OGIyNjRiNDJhY2M5MjI5MjU4ODExMzYz
ZWJjM2Q2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RW1vamlDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IEVtb2ppU2Vj
dGlvbiB7CiAgICAgR3RrV2lkZ2V0KiBidXR0b24geyBudWxscHRyIH07CiAgICAgYm9vbCBpc0Vt
cHR5IHsgZmFsc2UgfTsKICAgICBjb25zdCBjaGFyKiBmaXJzdEVtb2ppTmFtZSB7IG51bGxwdHIg
fTsKKyAgICBpbnQgZ3JvdXAgeyAtMSB9OwogfTsKIAogdXNpbmcgU2VjdGlvbkxpc3QgPSBWZWN0
b3I8RW1vamlTZWN0aW9uLCA5PjsKQEAgLTg0LDYgKzg1LDEwMSBAQCBzdHJ1Y3QgX1dlYktpdEVt
b2ppQ2hvb3NlclByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0g
PSB7IDAsIH07CiAKK3N0cnVjdCBFbW9qaURhdGEgeworICAgIHZpcnR1YWwgR1JlZlB0cjxHVmFy
aWFudD4gZ2V0RGF0YSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQYXJ0T2ZTZWN0
aW9uKGNvbnN0IEdSZWZQdHI8R1ZhcmlhbnQ+JiBpdGVtLCBjb25zdCBFbW9qaVNlY3Rpb24mIHNl
Y3Rpb24pIGNvbnN0ID0gMDsKKworICAgIHN0YXRpYyBHUmVmUHRyPEdWYXJpYW50PiBnZXRSZWNl
bnQoR09iamVjdCogb2JqZWN0KSB7CisgICAgICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IGVtb2ppRGF0
YSA9IHN0YXRpY19jYXN0PEdWYXJpYW50Kj4oZ19vYmplY3RfZ2V0X2RhdGEob2JqZWN0LCAiZW1v
amktZGF0YSIpKTsKKyAgICAgICAgQVNTRVJUKGVtb2ppRGF0YSk7CisKKyAgICAgICAgaWYgKGdf
dmFyaWFudF9pc19vZl90eXBlKGVtb2ppRGF0YS5nZXQoKSwgR19WQVJJQU5UX1RZUEUoIihhdXNz
KSIpKSkKKyAgICAgICAgICAgIHJldHVybiBlbW9qaURhdGE7CisKKyAgICAgICAgR1VuaXF1ZU91
dFB0cjxHVmFyaWFudEl0ZXI+IGNvZGVzSXRlcjsKKyAgICAgICAgR1VuaXF1ZU91dFB0cjxHVmFy
aWFudEl0ZXI+IGtleXdvcmRzSXRlcjsKKyAgICAgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICAg
ICAgdW5zaWduZWQgZ3JvdXA7CisgICAgICAgIGdfdmFyaWFudF9nZXQoZW1vamlEYXRhLmdldCgp
LCAiKGF1JnNhc3UpIiwgJmNvZGVzSXRlci5vdXRQdHIoKSwgJm5hbWUsICZrZXl3b3Jkc0l0ZXIu
b3V0UHRyKCksICZncm91cCk7CisKKyAgICAgICAgR1ZhcmlhbnRCdWlsZGVyIGNvZGVzQnVpbGRl
cjsKKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmY29kZXNCdWlsZGVyLCBHX1ZBUklB
TlRfVFlQRSgiYXUiKSk7CisKKyAgICAgICAgdW5zaWduZWQgY29kZTsKKyAgICAgICAgd2hpbGUg
KGdfdmFyaWFudF9pdGVyX2xvb3AoY29kZXNJdGVyLmdldCgpLCAidSIsICZjb2RlKSkKKyAgICAg
ICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmY29kZXNCdWlsZGVyLCAidSIsIGNvZGUpOwor
CisgICAgICAgIHJldHVybiBhZG9wdEdSZWYoZ192YXJpYW50X25ldygiKGF1c3MpIiwgJmNvZGVz
QnVpbGRlciwgbmFtZSwgIiIpKTsKKyAgICB9Cit9OworCitzdHJ1Y3QgT2xkRW1vamlEYXRhIDog
RW1vamlEYXRhIHsKKyAgICBHUmVmUHRyPEdWYXJpYW50PiBnZXREYXRhKCkgY29uc3Qgb3ZlcnJp
ZGUgeworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19yZXNvdXJj
ZXNfbG9va3VwX2RhdGEoIi9vcmcvZ3RrL2xpYmd0ay9lbW9qaS9lbW9qaS5kYXRhIiwgR19SRVNP
VVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VF9XSVRIX01FU1NBR0UoYnl0ZXMuZ2V0KCksICJDb3VsZCBub3QgZ2V0IG9sZCBzdHlsZSBHVEsg
ZW1vamkgZGF0YSIpOworICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19mcm9tX2J5dGVzKEdf
VkFSSUFOVF9UWVBFKCJhKGF1c3MpIiksIGJ5dGVzLmdldCgpLCBUUlVFKTsKKyAgICB9CisKKyAg
ICBib29sIGlzUGFydE9mU2VjdGlvbihjb25zdCBHUmVmUHRyPEdWYXJpYW50PiYgaXRlbSwgY29u
c3QgRW1vamlTZWN0aW9uJiBzZWN0aW9uKSBjb25zdCBvdmVycmlkZSB7CisgICAgICAgIGNvbnN0
IGNoYXIqIG5hbWU7CisgICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoaXRlbS5nZXQoKSwgMSwg
IiZzIiwgJm5hbWUpOworICAgICAgICByZXR1cm4gIWdfc3RyY21wMChuYW1lLCBzZWN0aW9uLmZp
cnN0RW1vamlOYW1lKTsKKyAgICB9Cit9OworCitzdHJ1Y3QgTmV3RW1vamlEYXRhIDogRW1vamlE
YXRhIHsKKyAgICBHUmVmUHRyPEdWYXJpYW50PiBnZXREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgewor
ICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMoZ2V0RGF0YUFzQnl0ZXMoKSk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShieXRlcy5nZXQoKSwgIkNvdWxkIG5vdCBnZXQg
bmV3IHN0eWxlIEdUSyBlbW9qaSBkYXRhIik7CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3
X2Zyb21fYnl0ZXMoR19WQVJJQU5UX1RZUEUoImEoYXVzYXN1KSIpLCBieXRlcy5nZXQoKSwgVFJV
RSk7CisgICAgfQorCisgICAgYm9vbCBpc1BhcnRPZlNlY3Rpb24oY29uc3QgR1JlZlB0cjxHVmFy
aWFudD4mIGl0ZW0sIGNvbnN0IEVtb2ppU2VjdGlvbiYgc2VjdGlvbikgY29uc3Qgb3ZlcnJpZGUg
eworICAgICAgICB1bnNpZ25lZCBncm91cDsKKyAgICAgICAgZ192YXJpYW50X2dldF9jaGlsZChp
dGVtLmdldCgpLCAzLCAidSIsICZncm91cCk7CisgICAgICAgIHJldHVybiAoc2VjdGlvbi5ncm91
cCA+PSAwKSAmJiAoc2VjdGlvbi5ncm91cCA9PSBzdGF0aWNfY2FzdDxpbnQ+KGdyb3VwKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBHUmVmUHRyPEdCeXRlcz4gZ2V0RGF0YUFzQnl0
ZXMoKSB7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZShwYW5nb19sYW5ndWFnZV90b19zdHJpbmco
Z3RrX2dldF9kZWZhdWx0X2xhbmd1YWdlKCkpKTsKKyAgICAgICAgY29uc3QgYXV0byBkYXNoUG9z
aXRpb24gPSBsYW5ndWFnZS5maW5kKCctJyk7CisgICAgICAgIGlmIChkYXNoUG9zaXRpb24gIT0g
bm90Rm91bmQpCisgICAgICAgICAgICBsYW5ndWFnZS50cnVuY2F0ZShkYXNoUG9zaXRpb24pOwor
CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VQYXRoKGdfc3RyY29uY2F0KCIvb3Jn
L2d0ay9saWJndGsvZW1vamkvIiwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSwgIi5kYXRhIiwgbnVs
bHB0cikpOworCisgICAgICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICAgICAg
R1JlZlB0cjxHQnl0ZXM+IGVtb2ppRGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBf
ZGF0YShyZXNvdXJjZVBhdGguZ2V0KCksIEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsICZl
cnJvci5vdXRQdHIoKSkpOworICAgICAgICBpZiAoZW1vamlEYXRhKSB7CisgICAgICAgICAgICBn
X2RlYnVnKCJGb3VuZCBlbW9qaSBkYXRhIGZvciAlcyBpbiByZXNvdXJjZSAlcyIsIGxhbmd1YWdl
LnV0ZjgoKS5kYXRhKCksIHJlc291cmNlUGF0aC5nZXQoKSk7CisgICAgICAgICAgICByZXR1cm4g
ZW1vamlEYXRhOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnJv
ci5nZXQoKSwgR19SRVNPVVJDRV9FUlJPUiwgR19SRVNPVVJDRV9FUlJPUl9OT1RfRk9VTkQpKSB7
CisgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBsYW5ndWFnZSArICIuZ3Jlc291cmNlIjsK
KyAgICAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZVBhdGgoZ19idWlsZF9maWxlbmFtZShH
VEtfUFJFRklYLCAic2hhcmUiLCAiZ3RrLTMuMCIsICJlbW9qaSIsIGZpbGVuYW1lLnV0ZjgoKS5k
YXRhKCksIG51bGxwdHIpKTsKKyAgICAgICAgICAgIEdVbmlxdWVQdHI8R01hcHBlZEZpbGU+IGZp
bGUoZ19tYXBwZWRfZmlsZV9uZXcoZmlsZVBhdGguZ2V0KCksIEZBTFNFLCBudWxscHRyKSk7Cisg
ICAgICAgICAgICBpZiAoZmlsZSkgeworICAgICAgICAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBk
YXRhID0gYWRvcHRHUmVmKGdfbWFwcGVkX2ZpbGVfZ2V0X2J5dGVzKGZpbGUuZ2V0KCkpKTsKKyAg
ICAgICAgICAgICAgICBHUmVmUHRyPEdSZXNvdXJjZT4gcmVzb3VyY2UgPSBhZG9wdEdSZWYoZ19y
ZXNvdXJjZV9uZXdfZnJvbV9kYXRhKGRhdGEuZ2V0KCksIG51bGxwdHIpKTsKKyAgICAgICAgICAg
ICAgICBnX2RlYnVnKCJSZWdpc3RlcmluZyByZXNvdXJjZSBmb3IgZW1vamkgZGF0YSBmb3IgJXMg
ZnJvbSBmaWxlICVzIiwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSwgZmlsZVBhdGguZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIGdfcmVzb3VyY2VzX3JlZ2lzdGVyKHJlc291cmNlLmdldCgpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoKGVtb2ppRGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29r
dXBfZGF0YShyZXNvdXJjZVBhdGguZ2V0KCksIEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUs
IG51bGxwdHIpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ19kZWJ1ZygiRm91bmQgZW1vamkg
ZGF0YSBmb3IgJXMgaW4gcmVzb3VyY2UgJXMiLCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpLCByZXNv
dXJjZVBhdGguZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1vamlEYXRhOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJl
dHVybiBhZG9wdEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEoIi9vcmcvZ3RrL2xpYmd0ay9l
bW9qaS9lbi5kYXRhIiwgR19SRVNPVVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOwor
ICAgIH0KK307CisKK3N0YXRpYyBjb25zdCBFbW9qaURhdGEqIHNFbW9qaURhdGEgPSBudWxscHRy
Oworc3RhdGljIGNvbnN0IE9sZEVtb2ppRGF0YSBzT2xkRW1vamlEYXRhID0ge307CitzdGF0aWMg
Y29uc3QgTmV3RW1vamlEYXRhIHNOZXdFbW9qaURhdGEgPSB7fTsKKwogV0VCS0lUX0RFRklORV9U
WVBFKFdlYktpdEVtb2ppQ2hvb3Nlciwgd2Via2l0X2Vtb2ppX2Nob29zZXIsIEdUS19UWVBFX1BP
UE9WRVIpCiAKIHN0YXRpYyB2b2lkIGVtb2ppUG9wdXBNZW51KEd0a1dpZGdldCosIFdlYktpdEVt
b2ppQ2hvb3NlciopOwpAQCAtMTY2LDkgKzI2Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEVtb2pp
Q2hvb3NlckFkZFJlY2VudEl0ZW0oV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBHVmFyaWFu
CiAgICAgR1VuaXF1ZVB0cjxHTGlzdD4gY2hpbGRyZW4oZ3RrX2NvbnRhaW5lcl9nZXRfY2hpbGRy
ZW4oR1RLX0NPTlRBSU5FUihzZWN0aW9uLmJveCkpKTsKICAgICB1bnNpZ25lZCBpID0gMTsKICAg
ICBmb3IgKGF1dG8qIGwgPSBjaGlsZHJlbi5nZXQoKTsgbDsgbCA9IGdfbGlzdF9uZXh0KGwpLCAr
K2kpIHsKLSAgICAgICAgYXV0byogaXRlbTIgPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdfb2Jq
ZWN0X2dldF9kYXRhKEdfT0JKRUNUKGwtPmRhdGEpLCAiZW1vamktZGF0YSIpKTsKKyAgICAgICAg
YXV0byBpdGVtMiA9IEVtb2ppRGF0YTo6Z2V0UmVjZW50KEdfT0JKRUNUKGwtPmRhdGEpKTsKICAg
ICAgICAgYXV0byBtb2RpZmllcjIgPSBzdGF0aWNfY2FzdDxndW5pY2hhcj4oR1BPSU5URVJfVE9f
VUlOVChnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChsLT5kYXRhKSwgIm1vZGlmaWVyIikpKTsK
LSAgICAgICAgaWYgKG1vZGlmaWVyID09IG1vZGlmaWVyMiAmJiBnX3ZhcmlhbnRfZXF1YWwoaXRl
bSwgaXRlbTIpKSB7CisgICAgICAgIGlmIChtb2RpZmllciA9PSBtb2RpZmllcjIgJiYgZ192YXJp
YW50X2VxdWFsKGl0ZW0sIGl0ZW0yLmdldCgpKSkgewogICAgICAgICAgICAgZ3RrX3dpZGdldF9k
ZXN0cm95KEdUS19XSURHRVQobC0+ZGF0YSkpOwogICAgICAgICAgICAgLS1pOwogICAgICAgICAg
ICAgY29udGludWU7CkBAIC0xNzksNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0RW1vamlD
aG9vc2VyQWRkUmVjZW50SXRlbShXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEdWYXJpYW4K
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgZ192YXJpYW50X2J1
aWxkZXJfYWRkKCZidWlsZGVyLCAiKEAoYXVzcyl1KSIsIGl0ZW0yLCBtb2RpZmllcjIpOworICAg
ICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICIoQChhdXNzKXUpIiwgaXRlbTIu
Z2V0KCksIG1vZGlmaWVyMik7CiAgICAgfQogCiAgICAgYXV0byogY2hpbGQgPSB3ZWJraXRFbW9q
aUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19CT1goc2VjdGlvbi5ib3gpLCBpdGVt
LCB0cnVlLCBtb2RpZmllcik7CkBAIC0xOTIsMTYgKzI4OCwzNSBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRFbW9qaUNob29zZXJBZGRSZWNlbnRJdGVtKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3Nlciwg
R1ZhcmlhbgogICAgIGdfc2V0dGluZ3Nfc2V0X3ZhbHVlKGNob29zZXItPnByaXYtPnNldHRpbmdz
LmdldCgpLCAicmVjZW50LWVtb2ppIiwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKSk7
CiB9CiAKK3N0YXRpYyBib29sIHNob3VsZENsb3NlKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3Nl
cikKK3sKKyAgICBhdXRvKiBkaXNwbGF5ID0gZ3RrX3dpZGdldF9nZXRfZGlzcGxheShHVEtfV0lE
R0VUKGNob29zZXIpKTsKKyAgICBhdXRvKiBzZWF0ID0gZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHRf
c2VhdChkaXNwbGF5KTsKKyAgICBhdXRvKiBkZXZpY2UgPSBnZGtfc2VhdF9nZXRfcG9pbnRlcihz
ZWF0KTsKKyAgICBpZiAoIWRldmljZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBHZGtN
b2RpZmllclR5cGUgc3RhdGU7CisgICAgZ2RrX2RldmljZV9nZXRfc3RhdGUoZGV2aWNlLCBndGtf
d2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVChjaG9vc2VyKSksIG51bGxwdHIsICZzdGF0ZSk7
CisgICAgcmV0dXJuIChzdGF0ZSAmIEdES19DT05UUk9MX01BU0spID09IDA7Cit9CisKIHN0YXRp
YyB2b2lkIGVtb2ppQWN0aXZhdGVkKEd0a0Zsb3dCb3gqIGJveCwgR3RrRmxvd0JveENoaWxkKiBj
aGlsZCwgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQogewotICAgIGd0a19wb3BvdmVyX3Bv
cGRvd24oR1RLX1BPUE9WRVIoY2hvb3NlcikpOworICAgIGlmIChzaG91bGRDbG9zZShjaG9vc2Vy
KSkKKyAgICAgICAgZ3RrX3BvcG92ZXJfcG9wZG93bihHVEtfUE9QT1ZFUihjaG9vc2VyKSk7Cisg
ICAgZWxzZSB7CisgICAgICAgIGF1dG8qIHBvcG92ZXIgPSBndGtfd2lkZ2V0X2dldF9hbmNlc3Rv
cihHVEtfV0lER0VUKGJveCksIEdUS19UWVBFX1BPUE9WRVIpOworICAgICAgICBpZiAocG9wb3Zl
ciAhPSBHVEtfV0lER0VUKGNob29zZXIpKQorICAgICAgICAgICAgZ3RrX3BvcG92ZXJfcG9wZG93
bihHVEtfUE9QT1ZFUihwb3BvdmVyKSk7CisgICAgfQogCiAgICAgR3RrV2lkZ2V0KiBsYWJlbCA9
IGd0a19iaW5fZ2V0X2NoaWxkKEdUS19CSU4oZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihjaGls
ZCkpKSk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0ZXh0KGdfc3RyZHVwKGd0a19sYWJlbF9nZXRf
bGFiZWwoR1RLX0xBQkVMKGxhYmVsKSkpKTsKIAotICAgIGF1dG8qIGl0ZW0gPSBzdGF0aWNfY2Fz
dDxHVmFyaWFudCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRh
dGEiKSk7CisgICAgYXV0byBpdGVtID0gRW1vamlEYXRhOjpnZXRSZWNlbnQoR19PQkpFQ1QoY2hp
bGQpKTsKICAgICBhdXRvIG1vZGlmaWVyID0gc3RhdGljX2Nhc3Q8Z3VuaWNoYXI+KEdQT0lOVEVS
X1RPX1VJTlQoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoY2hpbGQpLCAibW9kaWZpZXIiKSkp
OwotICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJlY2VudEl0ZW0oY2hvb3NlciwgaXRlbSwgbW9k
aWZpZXIpOworICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJlY2VudEl0ZW0oY2hvb3NlciwgaXRl
bS5nZXQoKSwgbW9kaWZpZXIpOwogICAgIGdfc2lnbmFsX2VtaXQoY2hvb3Nlciwgc2lnbmFsc1tF
TU9KSV9QSUNLRURdLCAwLCB0ZXh0LmdldCgpKTsKIH0KIApAQCAtMjIyLDExICszMzcsMTEgQEAg
c3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2hvd1ZhcmlhdGlvbnMoV2ViS2l0RW1vamlD
aG9vc2VyKiBjaG9vc2VyLCBHdGtXaWQKICAgICBpZiAoIWNoaWxkKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvKiBlbW9qaURhdGEgPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiKSk7CisgICAgYXV0byBlbW9q
aURhdGEgPSBFbW9qaURhdGE6OmdldFJlY2VudChHX09CSkVDVChjaGlsZCkpOwogICAgIGlmICgh
ZW1vamlEYXRhKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWVtb2ppRGF0YUhhc1Zhcmlh
dGlvbnMoZW1vamlEYXRhKSkKKyAgICBpZiAoIWVtb2ppRGF0YUhhc1ZhcmlhdGlvbnMoZW1vamlE
YXRhLmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3RrV2lkZ2V0KiBwb3BvdmVyID0g
Z3RrX3BvcG92ZXJfbmV3KGNoaWxkKTsKQEAgLTI0NCw5ICszNTksOSBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyhXZWJLaXRFbW9qaUNob29zZXIqIGNob29z
ZXIsIEd0a1dpZAogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIocG9wb3Zlciks
IHZpZXcpOwogICAgIGd0a193aWRnZXRfc2hvdyh2aWV3KTsKIAotICAgIHdlYmtpdEVtb2ppQ2hv
b3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gpLCBlbW9qaURhdGEpOworICAg
IHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gpLCBl
bW9qaURhdGEuZ2V0KCkpOwogICAgIGZvciAoZ3VuaWNoYXIgbW9kaWZpZXIgPSAweDFGM0ZCOyBt
b2RpZmllciA8PSAweDFGM0ZGOyArK21vZGlmaWVyKQotICAgICAgICB3ZWJraXRFbW9qaUNob29z
ZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19CT1goYm94KSwgZW1vamlEYXRhLCBmYWxzZSwg
bW9kaWZpZXIpOworICAgICAgICB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBH
VEtfRkxPV19CT1goYm94KSwgZW1vamlEYXRhLmdldCgpLCBmYWxzZSwgbW9kaWZpZXIpOwogCiAg
ICAgZ3RrX3BvcG92ZXJfcG9wdXAoR1RLX1BPUE9WRVIocG9wb3ZlcikpOwogfQpAQCAtMjcyLDYg
KzM4Nyw5IEBAIHN0YXRpYyB2b2lkIHZlcnRpY2FsQWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0
bWVudCogYWRqdXN0bWVudCwgV2ViS2l0RW1vamlDaG9vCiAgICAgZG91YmxlIHZhbHVlID0gZ3Rr
X2FkanVzdG1lbnRfZ2V0X3ZhbHVlKGFkanVzdG1lbnQpOwogICAgIEVtb2ppU2VjdGlvbiogc2Vj
dGlvblRvU2VsZWN0ID0gbnVsbHB0cjsKICAgICBmb3IgKGF1dG8mIHNlY3Rpb24gOiBjaG9vc2Vy
LT5wcml2LT5zZWN0aW9ucykgeworICAgICAgICBpZiAoIWd0a193aWRnZXRfZ2V0X3Zpc2libGUo
c2VjdGlvbi5ib3gpKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAgR3RrQWxsb2Nh
dGlvbiBhbGxvY2F0aW9uOwogICAgICAgICBpZiAoc2VjdGlvbi5oZWFkaW5nKQogICAgICAgICAg
ICAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbihzZWN0aW9uLmhlYWRpbmcsICZhbGxvY2F0aW9u
KTsKQEAgLTI5NSwxMCArNDEzLDExIEBAIHN0YXRpYyB2b2lkIHZlcnRpY2FsQWRqdXN0bWVudENo
YW5nZWQoR3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCwgV2ViS2l0RW1vamlDaG9vCiAgICAgfQog
fQogCi1zdGF0aWMgR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25Cb3go
V2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBHdGtCb3gqIHBhcmVudCwgY29uc3QgY2hhciog
Zmlyc3RFbW9qaU5hbWUsIGNvbnN0IGNoYXIqIHRpdGxlLCBHdGtBZGp1c3RtZW50KiBhZGp1c3Rt
ZW50LCBnYm9vbGVhbiBjYW5IYXZlVmFyaWF0aW9ucyA9IEZBTFNFKQorc3RhdGljIEd0a1dpZGdl
dCogd2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQm94KFdlYktpdEVtb2ppQ2hvb3Nlciog
Y2hvb3NlciwgR3RrQm94KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGZpcnN0RW1vamlOYW1lLCBpbnQg
Z3JvdXAsIGNvbnN0IGNoYXIqIHRpdGxlLCBHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50LCBnYm9v
bGVhbiBjYW5IYXZlVmFyaWF0aW9ucyA9IEZBTFNFKQogewogICAgIEVtb2ppU2VjdGlvbiBzZWN0
aW9uOwogICAgIHNlY3Rpb24uZmlyc3RFbW9qaU5hbWUgPSBmaXJzdEVtb2ppTmFtZTsKKyAgICBz
ZWN0aW9uLmdyb3VwID0gZ3JvdXA7CiAgICAgaWYgKHRpdGxlKSB7CiAgICAgICAgIEd0a1dpZGdl
dCogbGFiZWwgPSBndGtfbGFiZWxfbmV3KHRpdGxlKTsKICAgICAgICAgc2VjdGlvbi5oZWFkaW5n
ID0gbGFiZWw7CkBAIC0zNTYsNyArNDc1LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9v
c2VyU2V0dXBTZWN0aW9uQnV0dG9uKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR3QKIAog
c3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBSZWNlbnQoV2ViS2l0RW1vamlDaG9v
c2VyKiBjaG9vc2VyLCBHdGtCb3gqIGVtb2ppQm94LCBHdGtCb3gqIGJ1dHRvbkJveCwgR3RrQWRq
dXN0bWVudCogYWRqdXN0bWVudCkKIHsKLSAgICBHdGtXaWRnZXQqIGZsb3dCb3ggPSB3ZWJraXRF
bW9qaUNob29zZXJTZXR1cFNlY3Rpb25Cb3goY2hvb3NlciwgZW1vamlCb3gsIG51bGxwdHIsIG51
bGxwdHIsIGFkanVzdG1lbnQsIHRydWUpOworICAgIEd0a1dpZGdldCogZmxvd0JveCA9IHdlYmtp
dEVtb2ppQ2hvb3NlclNldHVwU2VjdGlvbkJveChjaG9vc2VyLCBlbW9qaUJveCwgbnVsbHB0ciwg
LTEsIG51bGxwdHIsIGFkanVzdG1lbnQsIHRydWUpOwogICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNl
dHVwU2VjdGlvbkJ1dHRvbihjaG9vc2VyLCBidXR0b25Cb3gsICJlbW9qaS1yZWNlbnQtc3ltYm9s
aWMiLCBfKCJSZWNlbnQiKSk7CiAKICAgICBib29sIGlzRW1wdHkgPSB0cnVlOwpAQCAtNDQ4LDIw
ICs1NjcsNDIgQEAgc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKFdl
YktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKICAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byogZW1vamlEYXRhID0gc3RhdGljX2Nh
c3Q8R1ZhcmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChjaGlsZCksICJlbW9qaS1k
YXRhIikpOworICAgICAgICAgICAgYXV0byBlbW9qaURhdGEgPSBFbW9qaURhdGE6OmdldFJlY2Vu
dChHX09CSkVDVChjaGlsZCkpOwogICAgICAgICAgICAgaWYgKCFlbW9qaURhdGEpIHsKICAgICAg
ICAgICAgICAgICBzZWN0aW9uLmlzRW1wdHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICByZXR1
cm4gVFJVRTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsK
LSAgICAgICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoZW1vamlEYXRhLCAxLCAiJnMiLCAmbmFt
ZSk7Ci0gICAgICAgICAgICBpZiAoZ19zdHJfbWF0Y2hfc3RyaW5nKHRleHQsIG5hbWUsIFRSVUUp
KSB7Ci0gICAgICAgICAgICAgICAgc2VjdGlvbi5pc0VtcHR5ID0gZmFsc2U7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGVtb2pp
RGF0YS5nZXQoKSwgMSwgIiZzIiwgJm5hbWUpOworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFy
Kj4gbmFtZVRva2VucyhnX3N0cl90b2tlbml6ZV9hbmRfZm9sZChuYW1lLCAiZW4iLCBudWxscHRy
KSk7CisgICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXIqPiB0ZXJtVG9rZW5zKGdfc3RyX3Rva2Vu
aXplX2FuZF9mb2xkKHRleHQsICJlbiIsIG51bGxwdHIpKTsKKworICAgICAgICAgICAgYXV0byBt
YXRjaFRva2VucyA9IFt0dCA9IHRlcm1Ub2tlbnMuZ2V0KCldKGNvbnN0IGNoYXIqIGNvbnN0KiBo
aXRUb2tlbnMpIC0+IGJvb2wgeworICAgICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgdHRbaV07ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBoaXRUb2tlbnNbal07ICsraikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnX3N0cl9oYXNfcHJlZml4KGhpdFRva2Vuc1tq
XSwgdHRbaV0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25lTWF0Y2hlZDsK
KworICAgICAgICAgICAgICAgICAgICBtYXRjaGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgb25lTWF0Y2hlZDoKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVy
biBtYXRjaGVkOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBt
YXRjaFRva2Vucyh0ZXJtVG9rZW5zLmdldCgpKTsKKyAgICAgICAgICAgIGlmIChnX3ZhcmlhbnRf
aXNfb2ZfdHlwZShlbW9qaURhdGEuZ2V0KCksIEdfVkFSSUFOVF9UWVBFKCIoYXVzYXN1KSIpKSkg
eworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBrZXl3b3JkczsKKyAgICAgICAg
ICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGVtb2ppRGF0YS5nZXQoKSwgMiwgIl5hJnMiLCAm
a2V5d29yZHMpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCB8fCBtYXRjaFRva2Vu
cyhrZXl3b3Jkcyk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsK
KyAgICAgICAgICAgIHNlY3Rpb24uaXNFbXB0eSA9ICFyZXN1bHQ7CisgICAgICAgICAgICByZXR1
cm4gcmVzdWx0ID8gVFJVRSA6IEZBTFNFOwogICAgICAgICB9LCBHVUlOVF9UT19QT0lOVEVSKGkp
LCBudWxscHRyKTsKICAgICB9CiB9CkBAIC00NzAsNDMgKzYxMSw0MCBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRFbW9qaUNob29zZXJTZXR1cEVtb2ppU2VjdGlvbnMoV2ViS2l0RW1vamlDaG9vc2VyKiBj
aG9vc2VyLCBHdAogewogICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgICAgICBjb25zdCBj
aGFyKiBmaXJzdEVtb2ppTmFtZTsKKyAgICAgICAgaW50IGdyb3VwOwogICAgICAgICBjb25zdCBj
aGFyKiB0aXRsZTsKICAgICAgICAgY29uc3QgY2hhciogaWNvbk5hbWU7CiAgICAgICAgIGJvb2wg
Y2FuSGF2ZVZhcmlhdGlvbnM7CiAgICAgfSBzZWN0aW9uc1tdID0gewotICAgICAgICB7ICJncmlu
bmluZyBmYWNlIiwgTl8oIlNtaWxleXMgJiBQZW9wbGUiKSwgImVtb2ppLXBlb3BsZS1zeW1ib2xp
YyIsIHRydWUgfSwKLSAgICAgICAgeyAic2VsZmllIiwgTl8oIkJvZHkgJiBDbG90aGluZyIpLCAi
ZW1vamktYm9keS1zeW1ib2xpYyIsIHRydWUgfSwKLSAgICAgICAgeyAibW9ua2V5IiwgTl8oIkFu
aW1hbHMgJiBOYXR1cmUiKSwgImVtb2ppLW5hdHVyZS1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAg
ICAgIHsgImdyYXBlcyIsIE5fKCJGb29kICYgRHJpbmsiKSwgImVtb2ppLWZvb2Qtc3ltYm9saWMi
LCBmYWxzZSB9LAotICAgICAgICB7ICJnbG9iZSBzaG93aW5nIEV1cm9wZS1BZnJpY2EiLCBOXygi
VHJhdmVsICYgUGxhY2VzIiksICJlbW9qaS10cmF2ZWwtc3ltYm9saWMiLCBmYWxzZSB9LAotICAg
ICAgICB7ICJqYWNrLW8tbGFudGVybiIsIE5fKCJBY3Rpdml0aWVzIiksICJlbW9qaS1hY3Rpdml0
aWVzLXN5bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAibXV0ZWQgc3BlYWtlciIsIF8oIk9i
amVjdHMiKSwgImVtb2ppLW9iamVjdHMtc3ltYm9saWMiLCBmYWxzZSB9LAotICAgICAgICB7ICJB
VE0gc2lnbiIsIE5fKCJTeW1ib2xzIiksICJlbW9qaS1zeW1ib2xzLXN5bWJvbGljIiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAiY2hlcXVlcmVkIGZsYWciLCBfKCJGbGFncyIpLCAiZW1vamktZmxhZ3Mt
c3ltYm9saWMiLCBmYWxzZSB9CisgICAgICAgIHsgImdyaW5uaW5nIGZhY2UiLCAwLCBOXygiU21p
bGV5cyAmIFBlb3BsZSIpLCAiZW1vamktcGVvcGxlLXN5bWJvbGljIiwgdHJ1ZSB9LAorICAgICAg
ICB7ICJzZWxmaWUiLCAxLCBOXygiQm9keSAmIENsb3RoaW5nIiksICJlbW9qaS1ib2R5LXN5bWJv
bGljIiwgdHJ1ZSB9LAorICAgICAgICB7ICJtb25rZXkiLCAzLCBOXygiQW5pbWFscyAmIE5hdHVy
ZSIpLCAiZW1vamktbmF0dXJlLXN5bWJvbGljIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZ3JhcGVz
IiwgNCwgTl8oIkZvb2QgJiBEcmluayIpLCAiZW1vamktZm9vZC1zeW1ib2xpYyIsIGZhbHNlIH0s
CisgICAgICAgIHsgImdsb2JlIHNob3dpbmcgRXVyb3BlLUFmcmljYSIsIDUsIE5fKCJUcmF2ZWwg
JiBQbGFjZXMiKSwgImVtb2ppLXRyYXZlbC1zeW1ib2xpYyIsIGZhbHNlIH0sCisgICAgICAgIHsg
ImphY2stby1sYW50ZXJuIiwgNiwgTl8oIkFjdGl2aXRpZXMiKSwgImVtb2ppLWFjdGl2aXRpZXMt
c3ltYm9saWMiLCBmYWxzZSB9LAorICAgICAgICB7ICJtdXRlZCBzcGVha2VyIiwgNywgXygiT2Jq
ZWN0cyIpLCAiZW1vamktb2JqZWN0cy1zeW1ib2xpYyIsIGZhbHNlIH0sCisgICAgICAgIHsgIkFU
TSBzaWduIiwgOCwgTl8oIlN5bWJvbHMiKSwgImVtb2ppLXN5bWJvbHMtc3ltYm9saWMiLCBmYWxz
ZSB9LAorICAgICAgICB7ICJjaGVxdWVyZWQgZmxhZyIsIDksIF8oIkZsYWdzIiksICJlbW9qaS1m
bGFncy1zeW1ib2xpYyIsIGZhbHNlIH0KICAgICB9OwogCiAgICAgYXV0byogdkFkanVzdG1lbnQg
PSBndGtfc2Nyb2xsZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xMRURfV0lORE9X
KGNob29zZXItPnByaXYtPnN3aW5kb3cpKTsKIAogICAgIEd0a1dpZGdldCogZmxvd0JveCA9IG51
bGxwdHI7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyhzZWN0aW9u
cyk7ICsraSkgewotICAgICAgICBhdXRvKiBib3ggPSB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNl
Y3Rpb25Cb3goY2hvb3NlciwgZW1vamlCb3gsIHNlY3Rpb25zW2ldLmZpcnN0RW1vamlOYW1lLCBz
ZWN0aW9uc1tpXS50aXRsZSwgdkFkanVzdG1lbnQsIHNlY3Rpb25zW2ldLmNhbkhhdmVWYXJpYXRp
b25zKTsKKyAgICAgICAgYXV0byogYm94ID0gd2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9u
Qm94KGNob29zZXIsIGVtb2ppQm94LCBzZWN0aW9uc1tpXS5maXJzdEVtb2ppTmFtZSwgc2VjdGlv
bnNbaV0uZ3JvdXAsIHNlY3Rpb25zW2ldLnRpdGxlLCB2QWRqdXN0bWVudCwgc2VjdGlvbnNbaV0u
Y2FuSGF2ZVZhcmlhdGlvbnMpOwogICAgICAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rp
b25CdXR0b24oY2hvb3NlciwgYnV0dG9uQm94LCBzZWN0aW9uc1tpXS5pY29uTmFtZSwgc2VjdGlv
bnNbaV0udGl0bGUpOwogICAgICAgICBpZiAoIWkpCiAgICAgICAgICAgICBmbG93Qm94ID0gYm94
OwogICAgIH0KIAotICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX3Jlc291
cmNlc19sb29rdXBfZGF0YSgiL29yZy9ndGsvbGliZ3RrL2Vtb2ppL2Vtb2ppLmRhdGEiLCBHX1JF
U09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCBudWxscHRyKSk7Ci0gICAgR1JlZlB0cjxHVmFyaWFu
dD4gZGF0YSA9IGdfdmFyaWFudF9uZXdfZnJvbV9ieXRlcyhHX1ZBUklBTlRfVFlQRSgiYShhdXNz
KSIpLCBieXRlcy5nZXQoKSwgVFJVRSk7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gZGF0YShzRW1v
amlEYXRhLT5nZXREYXRhKCkpOwogICAgIEdVbmlxdWVQdHI8R1ZhcmlhbnRJdGVyPiBpdGVyKGdf
dmFyaWFudF9pdGVyX25ldyhkYXRhLmdldCgpKSk7CiAKICAgICBGdW5jdGlvbjx2b2lkKCk+IHBv
cHVsYXRlU2VjdGlvbnMgPSBbY2hvb3NlciwgaXRlciA9IFdURk1vdmUoaXRlciksIGZsb3dCb3hd
KCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gc3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
ICAgICAgICAgd2hpbGUgKEdSZWZQdHI8R1ZhcmlhbnQ+IGl0ZW0gPSBhZG9wdEdSZWYoZ192YXJp
YW50X2l0ZXJfbmV4dF92YWx1ZShpdGVyLmdldCgpKSkpIHsKLSAgICAgICAgICAgIGNvbnN0IGNo
YXIqIG5hbWU7Ci0gICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGl0ZW0uZ2V0KCksIDEs
ICImcyIsICZuYW1lKTsKLQotICAgICAgICAgICAgYXV0byBpbmRleCA9IGNob29zZXItPnByaXYt
PnNlY3Rpb25zLmZpbmRNYXRjaGluZyhbJm5hbWVdKGNvbnN0IGF1dG8mIHNlY3Rpb24pIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gIWdfc3RyY21wMChuYW1lLCBzZWN0aW9uLmZpcnN0RW1vamlO
YW1lKTsKKyAgICAgICAgICAgIGF1dG8gaW5kZXggPSBjaG9vc2VyLT5wcml2LT5zZWN0aW9ucy5m
aW5kTWF0Y2hpbmcoWyZpdGVtXShjb25zdCBhdXRvJiBzZWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNFbW9qaURhdGEtPmlzUGFydE9mU2VjdGlvbihpdGVtLCBzZWN0aW9uKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgZmxvd0JveCA9IGluZGV4ID09IG5vdEZvdW5kID8g
Zmxvd0JveCA6IGNob29zZXItPnByaXYtPnNlY3Rpb25zW2luZGV4XS5ib3g7CiAgICAgICAgICAg
ICBhdXRvKiBjaGlsZCA9IHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19G
TE9XX0JPWChmbG93Qm94KSwgaXRlbS5nZXQoKSk7CkBAIC01ODcsOCArNzI1LDYgQEAgc3RhdGlj
IHZvaWQgd2Via2l0RW1vamlDaG9vc2VyQ29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogCiAg
ICAgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBFbW9qaVNlY3Rpb25zKGNob29zZXIsIEdUS19CT1go
ZW1vamlCb3gpLCBHVEtfQk9YKGJ1dHRvbkJveCkpOwogCi0gICAgZ3RrX3dpZGdldF9zZXRfc3Rh
dGVfZmxhZ3MoY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuZmlyc3QoKS5idXR0b24sIEdUS19TVEFU
RV9GTEFHX0NIRUNLRUQsIEZBTFNFKTsKLQogICAgIGd0a19zdGFja19hZGRfbmFtZWQoR1RLX1NU
QUNLKHN0YWNrKSwgYm94LCAibGlzdCIpOwogICAgIGd0a193aWRnZXRfc2hvdyhib3gpOwogCkBA
IC02MDgsNiArNzQ0LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2hvdyhHdGtX
aWRnZXQqIHdpZGdldCkKICAgICBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIgPSBXRUJLSVRf
RU1PSklfQ0hPT1NFUih3aWRnZXQpOwogICAgIGF1dG8qIGFkanVzdG1lbnQgPSBndGtfc2Nyb2xs
ZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xMRURfV0lORE9XKGNob29zZXItPnBy
aXYtPnN3aW5kb3cpKTsKICAgICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUoYWRqdXN0bWVudCwg
MCk7CisgICAgdmVydGljYWxBZGp1c3RtZW50Q2hhbmdlZChhZGp1c3RtZW50LCBjaG9vc2VyKTsK
IAogICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkoY2hvb3Nlci0+cHJpdi0+c2VhcmNo
RW50cnkpLCAiIik7CiB9CkBAIC02MjksNiArNzY2LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9l
bW9qaV9jaG9vc2VyX2NsYXNzX2luaXQoV2ViS2l0RW1vamlDaG9vc2VyQ2xhc3MqIGtsYXNzKQog
ICAgICAgICBudWxscHRyLAogICAgICAgICBHX1RZUEVfTk9ORSwgMSwKICAgICAgICAgR19UWVBF
X1NUUklORyB8IEdfU0lHTkFMX1RZUEVfU1RBVElDX1NDT1BFKTsKKworICAgIGlmIChndGtfY2hl
Y2tfdmVyc2lvbigzLCAyNCwgMzApID09IG51bGxwdHIpCisgICAgICAgIHNFbW9qaURhdGEgPSAm
c05ld0Vtb2ppRGF0YTsKKyAgICBlbHNlCisgICAgICAgIHNFbW9qaURhdGEgPSAmc09sZEVtb2pp
RGF0YTsKIH0KIAogR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJOZXcoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL0ZpbmRHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZEdUSy5jbWFr
ZQppbmRleCBhYmI0Yjg2M2Y0M2NjNTUzMzE2NTlhMDA2NmY2Nzc0N2Q5ZjhlZWMwLi4yMTU4ZGRl
ZDMwZDUzN2FjMmQ2MzMzMTIyM2NlNDAzMTM5OWFiYWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvRmluZEdUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvRmluZEdUSy5jbWFrZQpAQCAtNjAs
NiArNjAsOCBAQCBUaGlzIHdpbGwgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGluIHlv
dXIgcHJvamVjdDoKICAgd2hldGhlciBHVEsgNCB3YXMgZGV0ZWN0ZWQKIGBgR1RLXzNgYAogICB3
aGV0aGVyIEdUSyAzIHdhcyBkZXRlY3RlZAorYGBHVEtfUFJFRklYYGAKKyAgaW5zdGFsbGF0aW9u
IHByZWZpeCBvZiB0aGUgR1RLIGxpYnJhcmllcy4KIGBgR1RLX1ZFUlNJT05gYAogICB0aGUgdmVy
c2lvbiBvZiBHVEsuCiBgYEdUS19TVVBQT1JUU19CUk9BRFdBWWBgCkBAIC05Myw2ICs5NSw3IEBA
IGVuZGlmICgpCiAKIGZpbmRfcGFja2FnZShQa2dDb25maWcgUVVJRVQpCiBwa2dfY2hlY2tfbW9k
dWxlcyhHVEsgSU1QT1JURURfVEFSR0VUICR7R1RLX1BDX01PRFVMRX0pCitwa2dfZ2V0X3Zhcmlh
YmxlKEdUS19QUkVGSVggJHtHVEtfUENfTU9EVUxFfSBwcmVmaXgpCiAKIHNldChHVEtfVkVSU0lP
Tl9PSyBUUlVFKQogaWYgKEdUS19WRVJTSU9OKQpAQCAtMTQ3LDQgKzE1MCw0IEBAIGZvcmVhY2gg
KGd0a19jb21wb25lbnQgJHtHVEtfRklORF9DT01QT05FTlRTfSkKIGVuZGZvcmVhY2ggKCkKIAog
aW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKLUZJTkRfUEFDS0FHRV9IQU5E
TEVfU1RBTkRBUkRfQVJHUyhHVEsgREVGQVVMVF9NU0cgR1RLX1ZFUlNJT04gR1RLX1ZFUlNJT05f
T0spCitGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1MoR1RLIERFRkFVTFRfTVNHIEdU
S19WRVJTSU9OIEdUS19WRVJTSU9OX09LIEdUS19QUkVGSVgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441015</attachid>
            <date>2021-10-12 16:32:49 -0700</date>
            <delta_ts>2021-10-13 03:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228664-20211013013248.patch</filename>
            <type>text/plain</type>
            <size>32626</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZWI0ZDg2ZjJhM2NjODc3
ZWJjNzVjMWE3YjRkYmE2ODJiOWJkOTkuLjdlYTZjZDUyN2I5MmYyZjc5NWRiNTZkNTFjMzllZDNm
NTM1MmY3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMTAtMTIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBPcGVu
aW5nIGVtb2ppIGNob29zZXIgY3Jhc2hlcyBVSSBwcm9jZXNzIHdpdGggR1RLIDMuMjQuMzAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODY2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2Yg
cHJvdmlkaW5nIGEgY29weSBvZiB0aGUgZW1vamkgY2hvb3NlciB3aWRnZXQsIHVzZSBHTGliJ3MK
KyAgICAgICAgaW50cm9zcGVjdGlvbiBmZWF0dXJlcyBhbmQgYSBsaXR0bGUgc3ByaW5rbGUgb2Yg
a25vd2xlZGdlIGFib3V0IGhvdworICAgICAgICBHVEsgd29ya3MgaW4gb3JkZXIgdG8gb2J0YWlu
IHRoZSB0eXBlIGNvZGUgb2YgdGhlIEd0a0Vtb2ppQ2hvb3NlcgorICAgICAgICB3aWRnZXQgaW5j
bHVkZWQgd2l0aCBHVEsuIFRoaXMgZW5zdXJlcyB0aGF0IGEgd29ya2luZyB3aWRnZXQgaXMKKyAg
ICAgICAgYWx3YXlzIHVzZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgR1RLIHZlcnNpb24u
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICh3ZWJraXRFbW9qaUNob29z
ZXJOZXcpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3Nl
ckFkZEVtb2ppKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJlY2Vu
dEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoZW1vamlBY3RpdmF0ZWQpOiBEZWxldGVkLgorICAg
ICAgICAoZW1vamlEYXRhSGFzVmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJraXRF
bW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChlbW9qaUxvbmdQ
cmVzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGVtb2ppUHJlc3NlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChlbW9qaVBvcHVwTWVudSk6IERlbGV0ZWQuCisgICAgICAgICh2ZXJ0aWNhbEFkanVzdG1l
bnRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2Vj
dGlvbkJveCk6IERlbGV0ZWQuCisgICAgICAgIChzY3JvbGxUb1NlY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKTogRGVsZXRlZC4K
KyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKHdlYmtpdEVtb2ppQ2hvb3NlckVuc3VyZUVtcHR5UmVzdWx0KTogRGVsZXRlZC4KKyAgICAg
ICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNlYXJjaENoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAo
d2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtp
dEVtb2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJr
aXRFbW9qaUNob29zZXJJbml0aWFsaXplRW1vamlNYXhXaWR0aCk6IERlbGV0ZWQuCisgICAgICAg
ICh3ZWJraXRFbW9qaUNob29zZXJDb25zdHJ1Y3RlZCk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJr
aXRFbW9qaUNob29zZXJTaG93KTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdF9lbW9qaV9jaG9v
c2VyX2NsYXNzX2luaXQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVtb2ppQ2hvb3Nlci5oOgorCiAyMDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1lIEFkQXR0cmlidXRpb25EYWVt
b24gdG8gYWRhdHRyaWJ1dGlvbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcAppbmRleCBjYmNhMGYxMjY2YWZhZmRkMDFh
YWZhZDNmMzlkNzMzZjEwNmYzMTI4Li4xZjY1YzI1NDY4NTAwY2I2NWMzODExN2UzZTE1NWIyZGZh
MTljMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEVtb2ppQ2hvb3Nlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRFbW9qaUNob29zZXIuY3BwCkBAIC0xLDYgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOSBJZ2FsaWEgUy5MLgotICogQ29weXJpZ2h0IChDKSAyMDE3IFJlZCBIYXQsIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0xOCw2MjMgKzE3LDU2IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwog
Ci0vLyBHdGtFbW9qaUNob29zZXIgaXMgcHJpdmF0ZSBpbiBHVEsgMywgc28gdGhpcyBpcyBiYXNl
ZCBpbiB0aGUgR1RLIGNvZGUsIGp1c3QgYWRhcHRlZCB0bwotLy8gV2ViS2l0IGNvZGluZyBzdHls
ZSwgdXNpbmcgc29tZSBpbnRlcm5hbCB0eXBlcyBmcm9tIFdURiB0byBzaW1wbGlmeSB0aGUgaW1w
bGVtZW50YXRpb24KLS8vIGFuZCBub3QgdXNpbmcgR3RrQnVpbGRlciBmb3IgdGhlIFVJLgorLy8g
R3RrRW1vamlDaG9vc2VyIGlzIHByaXZhdGUgaW4gR1RLIDMsIHNvIHRoaXMgZ29lcyB0aHJvdWdo
IHNvbWUgaG9vcHMgdG8KKy8vIG9idGFpbiBpdHMgdHlwZSBjb2RlIHZpYSBnX3R5cGVfZnJvbV9u
YW1lKCkuIFRoZSBtYWluIGlzc3VlIGlzIHRoYXQgdGhlCisvLyB0eXBlIG5lZWRzIHRvIGhhdmUg
YmVlbiBwcmV2aW91c2x5IHJlZ2lzdGVyZWQsIHdoaWNoIGluIHByYWN0aWNlIG1lYW5zCisvLyB0
cmlnZ2VyaW5nIGEgY2FsbCB0byBndGtfZW1vamlfY2hvb3Nlcl9nZXRfdHlwZSgpLCBhbHNvIGEg
aGlkZGVuIHByaXZhdGUKKy8vIGZ1bmN0aW9uLgorLy8KKy8vIE9uZSBwb2ludCBpbiB0aGUgcHVi
bGljIEFQSSB3aGVyZSBhbiBlbW9qaSBjaG9vc2VyIGNhbiBiZSBleHBsaWNpdGx5CisvLyB0cmln
Z2VyZWQgaXMgdGhlIEd0a0VudHJ5Lmluc2VydF9lbW9qaSB2ZnVuYzogZWl0aGVyIGF0IHRoYXQg
cG9pbnQgdGhlCisvLyBHdGtFbW9qaUNob29zZXIgdXNlZCBieSB0aGUgZW50cnkgaGFzIGJlZW4g
YWxyZWFkeSBjcmVhdGVkLCBvciBpdCB3aWxsCisvLyBiZSBjcmVhdGVkIGJ5IGNhbGxpbmcgaXQu
IE9iamVjdCBpbnN0YW50aWF0aW9uIG5lZWRzIHRoZSB0eXBlIHRvIGJlCisvLyByZWdpc3RlcmVk
LCBzbyBhZnRlciBtYWtpbmcgc3VyZSBhdCBsZWFzdCBvbmUgaW5zdGFuY2UgaXMgY3JlYXRlZCBp
dAorLy8gaXMgc2FmZSB0byB1c2UgZ190eXBlX2Zyb21fbmFtZSgpLgogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0RW1vamlDaG9vc2VyLmgiCiAKICNpZiBHVEtfQ0hFQ0tf
VkVSU0lPTigzLCAyNCwgMCkgJiYgIVVTRShHVEs0KQogCi0jaW5jbHVkZSA8Z2xpYi9naTE4bi1s
aWIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvV1RG
R1R5cGUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLWVudW0gewotICAgIEVN
T0pJX1BJQ0tFRCwKLQotICAgIExBU1RfU0lHTkFMCi19OwotCi1zdHJ1Y3QgRW1vamlTZWN0aW9u
IHsKLSAgICBHdGtXaWRnZXQqIGhlYWRpbmcgeyBudWxscHRyIH07Ci0gICAgR3RrV2lkZ2V0KiBi
b3ggeyBudWxscHRyIH07Ci0gICAgR3RrV2lkZ2V0KiBidXR0b24geyBudWxscHRyIH07Ci0gICAg
Ym9vbCBpc0VtcHR5IHsgZmFsc2UgfTsKLSAgICBjb25zdCBjaGFyKiBmaXJzdEVtb2ppTmFtZSB7
IG51bGxwdHIgfTsKLX07Ci0KLXVzaW5nIFNlY3Rpb25MaXN0ID0gVmVjdG9yPEVtb2ppU2VjdGlv
biwgOT47Ci0KLWNsYXNzIENhbGxiYWNrVGltZXIgZmluYWwgOiBwdWJsaWMgUnVuTG9vcDo6VGlt
ZXJCYXNlIHsKLXB1YmxpYzoKLSAgICBDYWxsYmFja1RpbWVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBj
YWxsYmFjaykKLSAgICAgICAgOiBSdW5Mb29wOjpUaW1lckJhc2UoUnVuTG9vcDo6bWFpbigpKQot
ICAgICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCi0gICAgewotICAgIH0KLQot
ICAgIH5DYWxsYmFja1RpbWVyKCkgPSBkZWZhdWx0OwotCi1wcml2YXRlOgotICAgIHZvaWQgZmly
ZWQoKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgbV9jYWxsYmFjaygpOwotICAgIH0KLQotICAg
IEZ1bmN0aW9uPHZvaWQoKT4gbV9jYWxsYmFjazsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0RW1vamlD
aG9vc2VyUHJpdmF0ZSB7Ci0gICAgR3RrV2lkZ2V0KiBzdGFjazsKLSAgICBHdGtXaWRnZXQqIHN3
aW5kb3c7Ci0gICAgR3RrV2lkZ2V0KiBzZWFyY2hFbnRyeTsKLSAgICBTZWN0aW9uTGlzdCBzZWN0
aW9uczsKLSAgICBHUmVmUHRyPEdTZXR0aW5ncz4gc2V0dGluZ3M7Ci0gICAgSGFzaFNldDxHUmVm
UHRyPEd0a0dlc3R1cmU+PiBnZXN0dXJlczsKLSAgICBpbnQgZW1vamlNYXhXaWR0aDsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q2FsbGJhY2tUaW1lcj4gcG9wdWxhdGVTZWN0aW9uc1RpbWVyOwotfTsK
LQotc3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwotCi1XRUJLSVRf
REVGSU5FX1RZUEUoV2ViS2l0RW1vamlDaG9vc2VyLCB3ZWJraXRfZW1vamlfY2hvb3NlciwgR1RL
X1RZUEVfUE9QT1ZFUikKLQotc3RhdGljIHZvaWQgZW1vamlQb3B1cE1lbnUoR3RrV2lkZ2V0Kiwg
V2ViS2l0RW1vamlDaG9vc2VyKik7Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBib3hTcGFjZSA9
IDY7Ci0KLXN0YXRpYyB2b2lkIGVtb2ppSG92ZXJlZChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZl
bnQqIGV2ZW50KQotewotICAgIGlmIChnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoZXZlbnQpID09
IEdES19FTlRFUl9OT1RJRlkpCi0gICAgICAgIGd0a193aWRnZXRfc2V0X3N0YXRlX2ZsYWdzKHdp
ZGdldCwgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQsIEZBTFNFKTsKLSAgICBlbHNlCi0gICAgICAg
IGd0a193aWRnZXRfdW5zZXRfc3RhdGVfZmxhZ3Mod2lkZ2V0LCBHVEtfU1RBVEVfRkxBR19QUkVM
SUdIVCk7Ci19Ci0KLXN0YXRpYyBHdGtXaWRnZXQqIHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2pp
KFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR3RrRmxvd0JveCogcGFyZW50LCBHVmFyaWFu
dCogaXRlbSwgYm9vbCBwcmVwZW5kID0gZmFsc2UsIGd1bmljaGFyIG1vZGlmaWVyID0gMCkKLXsK
LSAgICBjaGFyIHRleHRbNjRdOwotICAgIGNoYXIqIHRleHRQdHIgPSB0ZXh0OwotICAgIEdSZWZQ
dHI8R1ZhcmlhbnQ+IGNvZGVzID0gYWRvcHRHUmVmKGdfdmFyaWFudF9nZXRfY2hpbGRfdmFsdWUo
aXRlbSwgMCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnX3ZhcmlhbnRfbl9jaGls
ZHJlbihjb2Rlcy5nZXQoKSk7ICsraSkgewotICAgICAgICBndW5pY2hhciBjb2RlOwotICAgICAg
ICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGNvZGVzLmdldCgpLCBpLCAidSIsICZjb2RlKTsKLSAgICAg
ICAgaWYgKCFjb2RlKQotICAgICAgICAgICAgY29kZSA9IG1vZGlmaWVyOwotICAgICAgICBpZiAo
Y29kZSkKLSAgICAgICAgICAgIHRleHRQdHIgKz0gZ191bmljaGFyX3RvX3V0ZjgoY29kZSwgdGV4
dFB0cik7Ci0gICAgfQotICAgIC8vIFUrRkUwRiBpcyB0aGUgRW1vamkgdmFyaWF0aW9uIHNlbGVj
dG9yCi0gICAgdGV4dFB0ciArPSBnX3VuaWNoYXJfdG9fdXRmOCgweEZFMEYsIHRleHRQdHIpOwot
ICAgIHRleHRQdHJbMF0gPSAnXDAnOwotCi0gICAgR3RrV2lkZ2V0KiBsYWJlbCA9IGd0a19sYWJl
bF9uZXcodGV4dCk7Ci0gICAgUGFuZ29BdHRyTGlzdCogYXR0cmlidXRlcyA9IHBhbmdvX2F0dHJf
bGlzdF9uZXcoKTsKLSAgICBwYW5nb19hdHRyX2xpc3RfaW5zZXJ0KGF0dHJpYnV0ZXMsIHBhbmdv
X2F0dHJfc2NhbGVfbmV3KFBBTkdPX1NDQUxFX1hfTEFSR0UpKTsKLSAgICBndGtfbGFiZWxfc2V0
X2F0dHJpYnV0ZXMoR1RLX0xBQkVMKGxhYmVsKSwgYXR0cmlidXRlcyk7Ci0gICAgcGFuZ29fYXR0
cl9saXN0X3VucmVmKGF0dHJpYnV0ZXMpOwotCi0gICAgUGFuZ29MYXlvdXQqIGxheW91dCA9IGd0
a19sYWJlbF9nZXRfbGF5b3V0KEdUS19MQUJFTChsYWJlbCkpOwotICAgIFBhbmdvUmVjdGFuZ2xl
IHJlY3Q7Ci0gICAgcGFuZ29fbGF5b3V0X2dldF9leHRlbnRzKGxheW91dCwgJnJlY3QsIG51bGxw
dHIpOwotICAgIC8vIENoZWNrIGZvciBmYWxsYmFjayByZW5kZXJpbmcgdGhhdCBnZW5lcmF0ZXMg
dG9vIHdpZGUgaXRlbXMuCi0gICAgaWYgKHBhbmdvX2xheW91dF9nZXRfdW5rbm93bl9nbHlwaHNf
Y291bnQobGF5b3V0KSB8fCByZWN0LndpZHRoID49IDEuNSAqIGNob29zZXItPnByaXYtPmVtb2pp
TWF4V2lkdGgpIHsKLSAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KGxhYmVsKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgR3RrV2lkZ2V0KiBjaGlsZCA9IGd0a19mbG93
X2JveF9jaGlsZF9uZXcoKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dp
ZGdldF9nZXRfc3R5bGVfY29udGV4dChjaGlsZCksICJlbW9qaSIpOwotICAgIGdfb2JqZWN0X3Nl
dF9kYXRhX2Z1bGwoR19PQkpFQ1QoY2hpbGQpLCAiZW1vamktZGF0YSIsIGdfdmFyaWFudF9yZWYo
aXRlbSksIHJlaW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KGdfdmFyaWFudF91bnJlZikp
OwotICAgIGlmIChtb2RpZmllcikKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qo
Y2hpbGQpLCAibW9kaWZpZXIiLCBHVUlOVF9UT19QT0lOVEVSKG1vZGlmaWVyKSk7Ci0KLSAgICBH
dGtXaWRnZXQqIGV2ZW50Qm94ID0gZ3RrX2V2ZW50X2JveF9uZXcoKTsKLSAgICBndGtfd2lkZ2V0
X2FkZF9ldmVudHMoZXZlbnRCb3gsIEdES19FTlRFUl9OT1RJRllfTUFTSyB8IEdES19MRUFWRV9O
T1RJRllfTUFTSyk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChldmVudEJveCwgImVudGVyLW5vdGlm
eS1ldmVudCIsIEdfQ0FMTEJBQ0soZW1vamlIb3ZlcmVkKSwgbnVsbHB0cik7Ci0gICAgZ19zaWdu
YWxfY29ubmVjdChldmVudEJveCwgImxlYXZlLW5vdGlmeS1ldmVudCIsIEdfQ0FMTEJBQ0soZW1v
amlIb3ZlcmVkKSwgbnVsbHB0cik7Ci0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5F
UihldmVudEJveCksIGxhYmVsKTsKLSAgICBndGtfd2lkZ2V0X3Nob3cobGFiZWwpOwotCi0gICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihjaGlsZCksIGV2ZW50Qm94KTsKLSAgICBn
dGtfd2lkZ2V0X3Nob3coZXZlbnRCb3gpOwotCi0gICAgZ3RrX2Zsb3dfYm94X2luc2VydChwYXJl
bnQsIGNoaWxkLCBwcmVwZW5kID8gMCA6IC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coY2hpbGQp
OwotCi0gICAgcmV0dXJuIGNoaWxkOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29z
ZXJBZGRSZWNlbnRJdGVtKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR1ZhcmlhbnQqIGl0
ZW0sIGd1bmljaGFyIG1vZGlmaWVyKQotewotICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IHByb3RlY3RJ
dGVtKGl0ZW0pOwotICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVyOwotICAgIGdfdmFyaWFudF9i
dWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKCJhKChhdXNzKXUpIikpOwotICAg
IGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIihAKGF1c3MpdSkiLCBpdGVtLCBtb2Rp
Zmllcik7Ci0KLSAgICBhdXRvJiBzZWN0aW9uID0gY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuZmly
c3QoKTsKLQotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhSZWNlbnRJdGVtcyA9IDcgKiAz
OwotCi0gICAgR1VuaXF1ZVB0cjxHTGlzdD4gY2hpbGRyZW4oZ3RrX2NvbnRhaW5lcl9nZXRfY2hp
bGRyZW4oR1RLX0NPTlRBSU5FUihzZWN0aW9uLmJveCkpKTsKLSAgICB1bnNpZ25lZCBpID0gMTsK
LSAgICBmb3IgKGF1dG8qIGwgPSBjaGlsZHJlbi5nZXQoKTsgbDsgbCA9IGdfbGlzdF9uZXh0KGwp
LCArK2kpIHsKLSAgICAgICAgYXV0byogaXRlbTIgPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdf
b2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGwtPmRhdGEpLCAiZW1vamktZGF0YSIpKTsKLSAgICAg
ICAgYXV0byBtb2RpZmllcjIgPSBzdGF0aWNfY2FzdDxndW5pY2hhcj4oR1BPSU5URVJfVE9fVUlO
VChnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChsLT5kYXRhKSwgIm1vZGlmaWVyIikpKTsKLSAg
ICAgICAgaWYgKG1vZGlmaWVyID09IG1vZGlmaWVyMiAmJiBnX3ZhcmlhbnRfZXF1YWwoaXRlbSwg
aXRlbTIpKSB7Ci0gICAgICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koR1RLX1dJREdFVChsLT5k
YXRhKSk7Ci0gICAgICAgICAgICAtLWk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmIChpID49IG1heFJlY2VudEl0ZW1zKSB7Ci0gICAgICAgICAgICBndGtf
d2lkZ2V0X2Rlc3Ryb3koR1RLX1dJREdFVChsLT5kYXRhKSk7Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwg
IihAKGF1c3MpdSkiLCBpdGVtMiwgbW9kaWZpZXIyKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBjaGls
ZCA9IHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChzZWN0
aW9uLmJveCksIGl0ZW0sIHRydWUsIG1vZGlmaWVyKTsKLSAgICBpZiAoY2hpbGQpCi0gICAgICAg
IGdfc2lnbmFsX2Nvbm5lY3QoY2hpbGQsICJwb3B1cC1tZW51IiwgR19DQUxMQkFDSyhlbW9qaVBv
cHVwTWVudSksIGNob29zZXIpOwotCi0gICAgZ3RrX3dpZGdldF9zaG93KHNlY3Rpb24uYm94KTsK
LSAgICBndGtfd2lkZ2V0X3NldF9zZW5zaXRpdmUoc2VjdGlvbi5idXR0b24sIFRSVUUpOwotCi0g
ICAgZ19zZXR0aW5nc19zZXRfdmFsdWUoY2hvb3Nlci0+cHJpdi0+c2V0dGluZ3MuZ2V0KCksICJy
ZWNlbnQtZW1vamkiLCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpKTsKLX0KLQotc3Rh
dGljIHZvaWQgZW1vamlBY3RpdmF0ZWQoR3RrRmxvd0JveCogYm94LCBHdGtGbG93Qm94Q2hpbGQq
IGNoaWxkLCBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgZ3RrX3BvcG92ZXJf
cG9wZG93bihHVEtfUE9QT1ZFUihjaG9vc2VyKSk7Ci0KLSAgICBHdGtXaWRnZXQqIGxhYmVsID0g
Z3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihndGtfYmluX2dldF9jaGlsZChHVEtfQklOKGNoaWxk
KSkpKTsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IHRleHQoZ19zdHJkdXAoZ3RrX2xhYmVsX2dldF9s
YWJlbChHVEtfTEFCRUwobGFiZWwpKSkpOwotCi0gICAgYXV0byogaXRlbSA9IHN0YXRpY19jYXN0
PEdWYXJpYW50Kj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoY2hpbGQpLCAiZW1vamktZGF0
YSIpKTsKLSAgICBhdXRvIG1vZGlmaWVyID0gc3RhdGljX2Nhc3Q8Z3VuaWNoYXI+KEdQT0lOVEVS
X1RPX1VJTlQoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoY2hpbGQpLCAibW9kaWZpZXIiKSkp
OwotICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJlY2VudEl0ZW0oY2hvb3NlciwgaXRlbSwgbW9k
aWZpZXIpOwotICAgIGdfc2lnbmFsX2VtaXQoY2hvb3Nlciwgc2lnbmFsc1tFTU9KSV9QSUNLRURd
LCAwLCB0ZXh0LmdldCgpKTsKLX0KLQotc3RhdGljIGJvb2wgZW1vamlEYXRhSGFzVmFyaWF0aW9u
cyhHVmFyaWFudCogZW1vamlEYXRhKQotewotICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IGNvZGVzID0g
YWRvcHRHUmVmKGdfdmFyaWFudF9nZXRfY2hpbGRfdmFsdWUoZW1vamlEYXRhLCAwKSk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBnX3ZhcmlhbnRfbl9jaGlsZHJlbihjb2Rlcy5nZXQoKSk7
ICsraSkgewotICAgICAgICBndW5pY2hhciBjb2RlOwotICAgICAgICBnX3ZhcmlhbnRfZ2V0X2No
aWxkKGNvZGVzLmdldCgpLCBpLCAidSIsICZjb2RlKTsKLSAgICAgICAgaWYgKCFjb2RlKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2hvd1ZhcmlhdGlvbnMoV2ViS2l0RW1vamlDaG9v
c2VyKiBjaG9vc2VyLCBHdGtXaWRnZXQqIGNoaWxkKQotewotICAgIGlmICghY2hpbGQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGF1dG8qIGVtb2ppRGF0YSA9IHN0YXRpY19jYXN0PEdWYXJpYW50
Kj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoY2hpbGQpLCAiZW1vamktZGF0YSIpKTsKLSAg
ICBpZiAoIWVtb2ppRGF0YSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFlbW9qaURhdGFI
YXNWYXJpYXRpb25zKGVtb2ppRGF0YSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEd0a1dpZGdl
dCogcG9wb3ZlciA9IGd0a19wb3BvdmVyX25ldyhjaGlsZCk7Ci0gICAgR3RrV2lkZ2V0KiB2aWV3
ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIDApOwotICAgIGd0a19z
dHlsZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KHZpZXcp
LCAidmlldyIpOwotICAgIEd0a1dpZGdldCogYm94ID0gZ3RrX2Zsb3dfYm94X25ldygpOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3QoYm94LCAiY2hpbGQtYWN0aXZhdGVkIiwgR19DQUxMQkFDSyhlbW9q
aUFjdGl2YXRlZCksIGNob29zZXIpOwotICAgIGd0a19mbG93X2JveF9zZXRfaG9tb2dlbmVvdXMo
R1RLX0ZMT1dfQk9YKGJveCksIFRSVUUpOwotICAgIGd0a19mbG93X2JveF9zZXRfbWluX2NoaWxk
cmVuX3Blcl9saW5lKEdUS19GTE9XX0JPWChib3gpLCA2KTsKLSAgICBndGtfZmxvd19ib3hfc2V0
X21heF9jaGlsZHJlbl9wZXJfbGluZShHVEtfRkxPV19CT1goYm94KSwgNik7Ci0gICAgZ3RrX2Zs
b3dfYm94X3NldF9hY3RpdmF0ZV9vbl9zaW5nbGVfY2xpY2soR1RLX0ZMT1dfQk9YKGJveCksIFRS
VUUpOwotICAgIGd0a19mbG93X2JveF9zZXRfc2VsZWN0aW9uX21vZGUoR1RLX0ZMT1dfQk9YKGJv
eCksIEdUS19TRUxFQ1RJT05fTk9ORSk7Ci0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRB
SU5FUih2aWV3KSwgYm94KTsKLSAgICBndGtfd2lkZ2V0X3Nob3coYm94KTsKLSAgICBndGtfY29u
dGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHBvcG92ZXIpLCB2aWV3KTsKLSAgICBndGtfd2lkZ2V0
X3Nob3codmlldyk7Ci0KLSAgICB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBH
VEtfRkxPV19CT1goYm94KSwgZW1vamlEYXRhKTsKLSAgICBmb3IgKGd1bmljaGFyIG1vZGlmaWVy
ID0gMHgxRjNGQjsgbW9kaWZpZXIgPD0gMHgxRjNGRjsgKyttb2RpZmllcikKLSAgICAgICAgd2Vi
a2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RLX0ZMT1dfQk9YKGJveCksIGVtb2pp
RGF0YSwgZmFsc2UsIG1vZGlmaWVyKTsKLQotICAgIGd0a19wb3BvdmVyX3BvcHVwKEdUS19QT1BP
VkVSKHBvcG92ZXIpKTsKLX0KLQotc3RhdGljIHZvaWQgZW1vamlMb25nUHJlc3NlZChHdGtHZXN0
dXJlKiBnZXN0dXJlLCBkb3VibGUgeCwgZG91YmxlIHksIFdlYktpdEVtb2ppQ2hvb3NlciogY2hv
b3NlcikKLXsKLSAgICBhdXRvKiBib3ggPSBHVEtfRkxPV19CT1goZ3RrX2V2ZW50X2NvbnRyb2xs
ZXJfZ2V0X3dpZGdldChHVEtfRVZFTlRfQ09OVFJPTExFUihnZXN0dXJlKSkpOwotICAgIHdlYmtp
dEVtb2ppQ2hvb3NlclNob3dWYXJpYXRpb25zKGNob29zZXIsIEdUS19XSURHRVQoZ3RrX2Zsb3df
Ym94X2dldF9jaGlsZF9hdF9wb3MoYm94LCB4LCB5KSkpOwotfQotCi1zdGF0aWMgdm9pZCBlbW9q
aVByZXNzZWQoR3RrR2VzdHVyZSogZ2VzdHVyZSwgaW50LCBkb3VibGUgeCwgZG91YmxlIHksIFdl
YktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKLXsKLSAgICBlbW9qaUxvbmdQcmVzc2VkKGdlc3R1
cmUsIHgsIHksIGNob29zZXIpOwotfQotCi1zdGF0aWMgdm9pZCBlbW9qaVBvcHVwTWVudShHdGtX
aWRnZXQqIGNoaWxkLCBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgd2Via2l0
RW1vamlDaG9vc2VyU2hvd1ZhcmlhdGlvbnMoY2hvb3NlciwgY2hpbGQpOwotfQotCi1zdGF0aWMg
dm9pZCB2ZXJ0aWNhbEFkanVzdG1lbnRDaGFuZ2VkKEd0a0FkanVzdG1lbnQqIGFkanVzdG1lbnQs
IFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKLXsKLSAgICBkb3VibGUgdmFsdWUgPSBndGtf
YWRqdXN0bWVudF9nZXRfdmFsdWUoYWRqdXN0bWVudCk7Ci0gICAgRW1vamlTZWN0aW9uKiBzZWN0
aW9uVG9TZWxlY3QgPSBudWxscHRyOwotICAgIGZvciAoYXV0byYgc2VjdGlvbiA6IGNob29zZXIt
PnByaXYtPnNlY3Rpb25zKSB7Ci0gICAgICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKLSAg
ICAgICAgaWYgKHNlY3Rpb24uaGVhZGluZykKLSAgICAgICAgICAgIGd0a193aWRnZXRfZ2V0X2Fs
bG9jYXRpb24oc2VjdGlvbi5oZWFkaW5nLCAmYWxsb2NhdGlvbik7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRpb24oc2VjdGlvbi5ib3gsICZhbGxvY2F0
aW9uKTsKLQotICAgICAgICBpZiAodmFsdWUgPCBhbGxvY2F0aW9uLnkgLSBib3hTcGFjZSkKLSAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIHNlY3Rpb25Ub1NlbGVjdCA9ICZzZWN0aW9uOwot
ICAgIH0KLQotICAgIGlmICghc2VjdGlvblRvU2VsZWN0KQotICAgICAgICBzZWN0aW9uVG9TZWxl
Y3QgPSAmY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnNbMF07Ci0KLSAgICBmb3IgKGF1dG8mIHNlY3Rp
b24gOiBjaG9vc2VyLT5wcml2LT5zZWN0aW9ucykgewotICAgICAgICBpZiAoJnNlY3Rpb24gPT0g
c2VjdGlvblRvU2VsZWN0KQotICAgICAgICAgICAgZ3RrX3dpZGdldF9zZXRfc3RhdGVfZmxhZ3Mo
c2VjdGlvbi5idXR0b24sIEdUS19TVEFURV9GTEFHX0NIRUNLRUQsIEZBTFNFKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZ3RrX3dpZGdldF91bnNldF9zdGF0ZV9mbGFncyhzZWN0aW9uLmJ1
dHRvbiwgR1RLX1NUQVRFX0ZMQUdfQ0hFQ0tFRCk7Ci0gICAgfQotfQotCi1zdGF0aWMgR3RrV2lk
Z2V0KiB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25Cb3goV2ViS2l0RW1vamlDaG9vc2Vy
KiBjaG9vc2VyLCBHdGtCb3gqIHBhcmVudCwgY29uc3QgY2hhciogZmlyc3RFbW9qaU5hbWUsIGNv
bnN0IGNoYXIqIHRpdGxlLCBHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50LCBnYm9vbGVhbiBjYW5I
YXZlVmFyaWF0aW9ucyA9IEZBTFNFKQotewotICAgIEVtb2ppU2VjdGlvbiBzZWN0aW9uOwotICAg
IHNlY3Rpb24uZmlyc3RFbW9qaU5hbWUgPSBmaXJzdEVtb2ppTmFtZTsKLSAgICBpZiAodGl0bGUp
IHsKLSAgICAgICAgR3RrV2lkZ2V0KiBsYWJlbCA9IGd0a19sYWJlbF9uZXcodGl0bGUpOwotICAg
ICAgICBzZWN0aW9uLmhlYWRpbmcgPSBsYWJlbDsKLSAgICAgICAgZ3RrX2xhYmVsX3NldF94YWxp
Z24oR1RLX0xBQkVMKGxhYmVsKSwgMCk7Ci0gICAgICAgIGd0a19ib3hfcGFja19zdGFydChwYXJl
bnQsIGxhYmVsLCBGQUxTRSwgRkFMU0UsIDApOwotICAgICAgICBndGtfd2lkZ2V0X3Nob3cobGFi
ZWwpOwotICAgIH0KLQotICAgIEd0a1dpZGdldCogYm94ID0gZ3RrX2Zsb3dfYm94X25ldygpOwot
ICAgIHNlY3Rpb24uYm94ID0gYm94OwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoYm94LCAiY2hpbGQt
YWN0aXZhdGVkIiwgR19DQUxMQkFDSyhlbW9qaUFjdGl2YXRlZCksIGNob29zZXIpOwotICAgIGd0
a19mbG93X2JveF9zZXRfaG9tb2dlbmVvdXMoR1RLX0ZMT1dfQk9YKGJveCksIFRSVUUpOwotICAg
IGd0a19mbG93X2JveF9zZXRfc2VsZWN0aW9uX21vZGUoR1RLX0ZMT1dfQk9YKGJveCksIEdUS19T
RUxFQ1RJT05fTk9ORSk7Ci0gICAgZ3RrX2NvbnRhaW5lcl9zZXRfZm9jdXNfdmFkanVzdG1lbnQo
R1RLX0NPTlRBSU5FUihib3gpLCBhZGp1c3RtZW50KTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQo
cGFyZW50LCBib3gsIEZBTFNFLCBGQUxTRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGJveCk7
Ci0KLSAgICBpZiAoY2FuSGF2ZVZhcmlhdGlvbnMpIHsKLSAgICAgICAgR1JlZlB0cjxHdGtHZXN0
dXJlPiBnZXN0dXJlID0gYWRvcHRHUmVmKGd0a19nZXN0dXJlX2xvbmdfcHJlc3NfbmV3KGJveCkp
OwotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KGdlc3R1cmUuZ2V0KCksICJwcmVzc2VkIiwgR19D
QUxMQkFDSyhlbW9qaUxvbmdQcmVzc2VkKSwgY2hvb3Nlcik7Ci0gICAgICAgIGNob29zZXItPnBy
aXYtPmdlc3R1cmVzLmFkZChXVEZNb3ZlKGdlc3R1cmUpKTsKLSAgICAgICAgR1JlZlB0cjxHdGtH
ZXN0dXJlPiBtdWx0aUdlc3R1cmUgPSBhZG9wdEdSZWYoZ3RrX2dlc3R1cmVfbXVsdGlfcHJlc3Nf
bmV3KGJveCkpOwotICAgICAgICBndGtfZ2VzdHVyZV9zaW5nbGVfc2V0X2J1dHRvbihHVEtfR0VT
VFVSRV9TSU5HTEUobXVsdGlHZXN0dXJlLmdldCgpKSwgR0RLX0JVVFRPTl9TRUNPTkRBUlkpOwot
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG11bHRpR2VzdHVyZS5nZXQoKSwgInByZXNzZWQiLCBH
X0NBTExCQUNLKGVtb2ppUHJlc3NlZCksIGNob29zZXIpOwotICAgICAgICBjaG9vc2VyLT5wcml2
LT5nZXN0dXJlcy5hZGQoV1RGTW92ZShtdWx0aUdlc3R1cmUpKTsKLSAgICB9Ci0KLSAgICBjaG9v
c2VyLT5wcml2LT5zZWN0aW9ucy5hcHBlbmQoV1RGTW92ZShzZWN0aW9uKSk7Ci0gICAgcmV0dXJu
IGJveDsKLX0KLQotc3RhdGljIHZvaWQgc2Nyb2xsVG9TZWN0aW9uKEd0a0J1dHRvbiogYnV0dG9u
LCBncG9pbnRlciBkYXRhKQotewotICAgIGF1dG8qIGNob29zZXIgPSBXRUJLSVRfRU1PSklfQ0hP
T1NFUihndGtfd2lkZ2V0X2dldF9hbmNlc3RvcihHVEtfV0lER0VUKGJ1dHRvbiksIFdFQktJVF9U
WVBFX0VNT0pJX0NIT09TRVIpKTsKLSAgICBhdXRvJiBzZWN0aW9uID0gY2hvb3Nlci0+cHJpdi0+
c2VjdGlvbnNbR1BPSU5URVJfVE9fVUlOVChkYXRhKV07Ci0gICAgR3RrQWRqdXN0bWVudCogYWRq
dXN0bWVudCA9IGd0a19zY3JvbGxlZF93aW5kb3dfZ2V0X3ZhZGp1c3RtZW50KEdUS19TQ1JPTExF
RF9XSU5ET1coY2hvb3Nlci0+cHJpdi0+c3dpbmRvdykpOwotICAgIGlmIChzZWN0aW9uLmhlYWRp
bmcpIHsKLSAgICAgICAgR3RrQWxsb2NhdGlvbiBhbGxvY2F0aW9uID0geyAwLCAwLCAwLCAwIH07
Ci0gICAgICAgIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRpb24oc2VjdGlvbi5oZWFkaW5nLCAmYWxs
b2NhdGlvbik7Ci0gICAgICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShhZGp1c3RtZW50LCBh
bGxvY2F0aW9uLnkgLSBib3hTcGFjZSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGd0a19hZGp1c3Rt
ZW50X3NldF92YWx1ZShhZGp1c3RtZW50LCAwKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1v
amlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3Nlciwg
R3RrQm94KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBjb25zdCBjaGFyKiB0b29sdGlw
KQotewotICAgIEd0a1dpZGdldCogYnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdfZnJvbV9pY29uX25h
bWUoaWNvbk5hbWUsIEdUS19JQ09OX1NJWkVfQlVUVE9OKTsKLSAgICBjaG9vc2VyLT5wcml2LT5z
ZWN0aW9ucy5sYXN0KCkuYnV0dG9uID0gYnV0dG9uOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2Fk
ZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KGJ1dHRvbiksICJlbW9qaS1zZWN0
aW9uIik7Ci0gICAgZ3RrX3dpZGdldF9zZXRfdG9vbHRpcF90ZXh0KGJ1dHRvbiwgdG9vbHRpcCk7
Ci0gICAgZ19zaWduYWxfY29ubmVjdChidXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFDSyhzY3Jv
bGxUb1NlY3Rpb24pLCBHVUlOVF9UT19QT0lOVEVSKGNob29zZXItPnByaXYtPnNlY3Rpb25zLnNp
emUoKSAtIDEpKTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQocGFyZW50LCBidXR0b24sIEZBTFNF
LCBGQUxTRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGJ1dHRvbik7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KFdlYktpdEVtb2ppQ2hvb3NlciogY2hv
b3NlciwgR3RrQm94KiBlbW9qaUJveCwgR3RrQm94KiBidXR0b25Cb3gsIEd0a0FkanVzdG1lbnQq
IGFkanVzdG1lbnQpCi17Ci0gICAgR3RrV2lkZ2V0KiBmbG93Qm94ID0gd2Via2l0RW1vamlDaG9v
c2VyU2V0dXBTZWN0aW9uQm94KGNob29zZXIsIGVtb2ppQm94LCBudWxscHRyLCBudWxscHRyLCBh
ZGp1c3RtZW50LCB0cnVlKTsKLSAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25CdXR0
b24oY2hvb3NlciwgYnV0dG9uQm94LCAiZW1vamktcmVjZW50LXN5bWJvbGljIiwgXygiUmVjZW50
IikpOwotCi0gICAgYm9vbCBpc0VtcHR5ID0gdHJ1ZTsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiB2
YXJpYW50ID0gYWRvcHRHUmVmKGdfc2V0dGluZ3NfZ2V0X3ZhbHVlKGNob29zZXItPnByaXYtPnNl
dHRpbmdzLmdldCgpLCAicmVjZW50LWVtb2ppIikpOwotICAgIEdWYXJpYW50SXRlciBpdGVyOwot
ICAgIGdfdmFyaWFudF9pdGVyX2luaXQoJml0ZXIsIHZhcmlhbnQuZ2V0KCkpOwotICAgIHdoaWxl
IChHUmVmUHRyPEdWYXJpYW50PiBpdGVtID0gYWRvcHRHUmVmKGdfdmFyaWFudF9pdGVyX25leHRf
dmFsdWUoJml0ZXIpKSkgewotICAgICAgICBHUmVmUHRyPEdWYXJpYW50PiBlbW9qaURhdGEgPSBh
ZG9wdEdSZWYoZ192YXJpYW50X2dldF9jaGlsZF92YWx1ZShpdGVtLmdldCgpLCAwKSk7Ci0gICAg
ICAgIGd1bmljaGFyIG1vZGlmaWVyOwotICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKGl0ZW0u
Z2V0KCksIDEsICJ1IiwgJm1vZGlmaWVyKTsKLSAgICAgICAgaWYgKGF1dG8qIGNoaWxkID0gd2Vi
a2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RLX0ZMT1dfQk9YKGZsb3dCb3gpLCBl
bW9qaURhdGEuZ2V0KCksIHRydWUsIG1vZGlmaWVyKSkKLSAgICAgICAgICAgIGdfc2lnbmFsX2Nv
bm5lY3QoY2hpbGQsICJwb3B1cC1tZW51IiwgR19DQUxMQkFDSyhlbW9qaVBvcHVwTWVudSksIGNo
b29zZXIpOwotICAgICAgICBpc0VtcHR5ID0gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKGlzRW1w
dHkpIHsKLSAgICAgICAgZ3RrX3dpZGdldF9oaWRlKGZsb3dCb3gpOwotICAgICAgICBndGtfd2lk
Z2V0X3NldF9zZW5zaXRpdmUoY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuZmlyc3QoKS5idXR0b24s
IEZBTFNFKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlckVuc3Vy
ZUVtcHR5UmVzdWx0KFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKLXsKLSAgICBpZiAoZ3Rr
X3N0YWNrX2dldF9jaGlsZF9ieV9uYW1lKEdUS19TVEFDSyhjaG9vc2VyLT5wcml2LT5zdGFjayks
ICJlbXB0eSIpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtXaWRnZXQqIGdyaWQgPSBndGtf
Z3JpZF9uZXcoKTsKLSAgICBndGtfZ3JpZF9zZXRfcm93X3NwYWNpbmcoR1RLX0dSSUQoZ3JpZCks
IDEyKTsKLSAgICBndGtfd2lkZ2V0X3NldF9oYWxpZ24oZ3JpZCwgR1RLX0FMSUdOX0NFTlRFUik7
Ci0gICAgZ3RrX3dpZGdldF9zZXRfdmFsaWduKGdyaWQsIEdUS19BTElHTl9DRU5URVIpOwotICAg
IGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0
KGdyaWQpLCAiZGltLWxhYmVsIik7Ci0KLSAgICBHdGtXaWRnZXQqIGltYWdlID0gZ3RrX2ltYWdl
X25ld19mcm9tX2ljb25fbmFtZSgiZWRpdC1maW5kLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9E
SUFMT0cpOwotICAgIGd0a19pbWFnZV9zZXRfcGl4ZWxfc2l6ZShHVEtfSU1BR0UoaW1hZ2UpLCA3
Mik7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0X3N0eWxl
X2NvbnRleHQoaW1hZ2UpLCAiZGltLWxhYmVsIik7Ci0gICAgZ3RrX2dyaWRfYXR0YWNoKEdUS19H
UklEKGdyaWQpLCBpbWFnZSwgMCwgMCwgMSwgMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGltYWdl
KTsKLQotICAgIEd0a1dpZGdldCogbGFiZWwgPSBndGtfbGFiZWxfbmV3KF8oIk5vIFJlc3VsdHMg
Rm91bmQiKSk7Ci0gICAgUGFuZ29BdHRyTGlzdCogYXR0cmlidXRlcyA9IHBhbmdvX2F0dHJfbGlz
dF9uZXcoKTsKLSAgICBwYW5nb19hdHRyX2xpc3RfaW5zZXJ0KGF0dHJpYnV0ZXMsIHBhbmdvX2F0
dHJfc2NhbGVfbmV3KDEuNDQpKTsKLSAgICBwYW5nb19hdHRyX2xpc3RfaW5zZXJ0KGF0dHJpYnV0
ZXMsIHBhbmdvX2F0dHJfd2VpZ2h0X25ldyhQQU5HT19XRUlHSFRfQk9MRCkpOwotICAgIGd0a19s
YWJlbF9zZXRfYXR0cmlidXRlcyhHVEtfTEFCRUwobGFiZWwpLCBhdHRyaWJ1dGVzKTsKLSAgICBw
YW5nb19hdHRyX2xpc3RfdW5yZWYoYXR0cmlidXRlcyk7Ci0gICAgZ3RrX2dyaWRfYXR0YWNoKEdU
S19HUklEKGdyaWQpLCBsYWJlbCwgMCwgMSwgMSwgMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGxh
YmVsKTsKLQotICAgIGxhYmVsID0gZ3RrX2xhYmVsX25ldyhfKCJUcnkgYSBkaWZmZXJlbnQgc2Vh
cmNoIikpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9z
dHlsZV9jb250ZXh0KGxhYmVsKSwgImRpbS1sYWJlbCIpOwotICAgIGd0a19ncmlkX2F0dGFjaChH
VEtfR1JJRChncmlkKSwgbGFiZWwsIDAsIDIsIDEsIDEpOwotICAgIGd0a193aWRnZXRfc2hvdyhs
YWJlbCk7Ci0KLSAgICBndGtfc3RhY2tfYWRkX25hbWVkKEdUS19TVEFDSyhjaG9vc2VyLT5wcml2
LT5zdGFjayksIGdyaWQsICJlbXB0eSIpOwotICAgIGd0a193aWRnZXRfc2hvdyhncmlkKTsKLX0K
LQotc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2VhcmNoQ2hhbmdlZChXZWJLaXRFbW9q
aUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgZm9yIChhdXRvJiBzZWN0aW9uIDogY2hvb3Nlci0+
cHJpdi0+c2VjdGlvbnMpIHsKLSAgICAgICAgc2VjdGlvbi5pc0VtcHR5ID0gdHJ1ZTsKLSAgICAg
ICAgZ3RrX2Zsb3dfYm94X2ludmFsaWRhdGVfZmlsdGVyKEdUS19GTE9XX0JPWChzZWN0aW9uLmJv
eCkpOwotICAgIH0KLQotICAgIGJvb2wgcmVzdWx0c0ZvdW5kID0gZmFsc2U7Ci0gICAgZm9yIChh
dXRvJiBzZWN0aW9uIDogY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMpIHsKLSAgICAgICAgaWYgKHNl
Y3Rpb24uaGVhZGluZykgewotICAgICAgICAgICAgZ3RrX3dpZGdldF9zZXRfdmlzaWJsZShzZWN0
aW9uLmhlYWRpbmcsICFzZWN0aW9uLmlzRW1wdHkpOwotICAgICAgICAgICAgZ3RrX3dpZGdldF9z
ZXRfdmlzaWJsZShzZWN0aW9uLmJveCwgIXNlY3Rpb24uaXNFbXB0eSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmVzdWx0c0ZvdW5kID0gcmVzdWx0c0ZvdW5kIHx8ICFzZWN0aW9uLmlzRW1wdHk7Ci0g
ICAgfQotCi0gICAgaWYgKCFyZXN1bHRzRm91bmQpIHsKLSAgICAgICAgd2Via2l0RW1vamlDaG9v
c2VyRW5zdXJlRW1wdHlSZXN1bHQoY2hvb3Nlcik7Ci0gICAgICAgIGd0a19zdGFja19zZXRfdmlz
aWJsZV9jaGlsZF9uYW1lKEdUS19TVEFDSyhjaG9vc2VyLT5wcml2LT5zdGFjayksICJlbXB0eSIp
OwotICAgIH0gZWxzZQotICAgICAgICBndGtfc3RhY2tfc2V0X3Zpc2libGVfY2hpbGRfbmFtZShH
VEtfU1RBQ0soY2hvb3Nlci0+cHJpdi0+c3RhY2spLCAibGlzdCIpOwotfQotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRFbW9qaUNob29zZXJTZXR1cEZpbHRlcnMoV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9v
c2VyKQotewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hvb3Nlci0+cHJpdi0+c2VjdGlv
bnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZ3RrX2Zsb3dfYm94X3NldF9maWx0ZXJfZnVuYyhH
VEtfRkxPV19CT1goY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnNbaV0uYm94KSwgW10oR3RrRmxvd0Jv
eENoaWxkKiBjaGlsZCwgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKLSAgICAgICAg
ICAgIGF1dG8qIGNob29zZXIgPSBXRUJLSVRfRU1PSklfQ0hPT1NFUihndGtfd2lkZ2V0X2dldF9h
bmNlc3RvcihHVEtfV0lER0VUKGNoaWxkKSwgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUikpOwot
ICAgICAgICAgICAgYXV0byYgc2VjdGlvbiA9IGNob29zZXItPnByaXYtPnNlY3Rpb25zW0dQT0lO
VEVSX1RPX1VJTlQodXNlckRhdGEpXTsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRleHQgPSBn
dGtfZW50cnlfZ2V0X3RleHQoR1RLX0VOVFJZKGNob29zZXItPnByaXYtPnNlYXJjaEVudHJ5KSk7
Ci0gICAgICAgICAgICBpZiAoIXRleHQgfHwgISp0ZXh0KSB7Ci0gICAgICAgICAgICAgICAgc2Vj
dGlvbi5pc0VtcHR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRSVUU7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGF1dG8qIGVtb2ppRGF0YSA9IHN0YXRpY19jYXN0PEdW
YXJpYW50Kj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoY2hpbGQpLCAiZW1vamktZGF0YSIp
KTsKLSAgICAgICAgICAgIGlmICghZW1vamlEYXRhKSB7Ci0gICAgICAgICAgICAgICAgc2VjdGlv
bi5pc0VtcHR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRSVUU7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgICAgICAgICBnX3Zh
cmlhbnRfZ2V0X2NoaWxkKGVtb2ppRGF0YSwgMSwgIiZzIiwgJm5hbWUpOwotICAgICAgICAgICAg
aWYgKGdfc3RyX21hdGNoX3N0cmluZyh0ZXh0LCBuYW1lLCBUUlVFKSkgewotICAgICAgICAgICAg
ICAgIHNlY3Rpb24uaXNFbXB0eSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiBUUlVF
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgIH0s
IEdVSU5UX1RPX1BPSU5URVIoaSksIG51bGxwdHIpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQg
d2Via2l0RW1vamlDaG9vc2VyU2V0dXBFbW9qaVNlY3Rpb25zKFdlYktpdEVtb2ppQ2hvb3Nlciog
Y2hvb3NlciwgR3RrQm94KiBlbW9qaUJveCwgR3RrQm94KiBidXR0b25Cb3gpCi17Ci0gICAgc3Rh
dGljIGNvbnN0IHN0cnVjdCB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGZpcnN0RW1vamlOYW1lOwot
ICAgICAgICBjb25zdCBjaGFyKiB0aXRsZTsKLSAgICAgICAgY29uc3QgY2hhciogaWNvbk5hbWU7
Ci0gICAgICAgIGJvb2wgY2FuSGF2ZVZhcmlhdGlvbnM7Ci0gICAgfSBzZWN0aW9uc1tdID0gewot
ICAgICAgICB7ICJncmlubmluZyBmYWNlIiwgTl8oIlNtaWxleXMgJiBQZW9wbGUiKSwgImVtb2pp
LXBlb3BsZS1zeW1ib2xpYyIsIHRydWUgfSwKLSAgICAgICAgeyAic2VsZmllIiwgTl8oIkJvZHkg
JiBDbG90aGluZyIpLCAiZW1vamktYm9keS1zeW1ib2xpYyIsIHRydWUgfSwKLSAgICAgICAgeyAi
bW9ua2V5IiwgTl8oIkFuaW1hbHMgJiBOYXR1cmUiKSwgImVtb2ppLW5hdHVyZS1zeW1ib2xpYyIs
IGZhbHNlIH0sCi0gICAgICAgIHsgImdyYXBlcyIsIE5fKCJGb29kICYgRHJpbmsiKSwgImVtb2pp
LWZvb2Qtc3ltYm9saWMiLCBmYWxzZSB9LAotICAgICAgICB7ICJnbG9iZSBzaG93aW5nIEV1cm9w
ZS1BZnJpY2EiLCBOXygiVHJhdmVsICYgUGxhY2VzIiksICJlbW9qaS10cmF2ZWwtc3ltYm9saWMi
LCBmYWxzZSB9LAotICAgICAgICB7ICJqYWNrLW8tbGFudGVybiIsIE5fKCJBY3Rpdml0aWVzIiks
ICJlbW9qaS1hY3Rpdml0aWVzLXN5bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAibXV0ZWQg
c3BlYWtlciIsIF8oIk9iamVjdHMiKSwgImVtb2ppLW9iamVjdHMtc3ltYm9saWMiLCBmYWxzZSB9
LAotICAgICAgICB7ICJBVE0gc2lnbiIsIE5fKCJTeW1ib2xzIiksICJlbW9qaS1zeW1ib2xzLXN5
bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiY2hlcXVlcmVkIGZsYWciLCBfKCJGbGFncyIp
LCAiZW1vamktZmxhZ3Mtc3ltYm9saWMiLCBmYWxzZSB9Ci0gICAgfTsKLQotICAgIGF1dG8qIHZB
ZGp1c3RtZW50ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19nZXRfdmFkanVzdG1lbnQoR1RLX1NDUk9M
TEVEX1dJTkRPVyhjaG9vc2VyLT5wcml2LT5zd2luZG93KSk7Ci0KLSAgICBHdGtXaWRnZXQqIGZs
b3dCb3ggPSBudWxscHRyOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHX05fRUxFTUVO
VFMoc2VjdGlvbnMpOyArK2kpIHsKLSAgICAgICAgYXV0byogYm94ID0gd2Via2l0RW1vamlDaG9v
c2VyU2V0dXBTZWN0aW9uQm94KGNob29zZXIsIGVtb2ppQm94LCBzZWN0aW9uc1tpXS5maXJzdEVt
b2ppTmFtZSwgc2VjdGlvbnNbaV0udGl0bGUsIHZBZGp1c3RtZW50LCBzZWN0aW9uc1tpXS5jYW5I
YXZlVmFyaWF0aW9ucyk7Ci0gICAgICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2VjdGlvbkJ1
dHRvbihjaG9vc2VyLCBidXR0b25Cb3gsIHNlY3Rpb25zW2ldLmljb25OYW1lLCBzZWN0aW9uc1tp
XS50aXRsZSk7Ci0gICAgICAgIGlmICghaSkKLSAgICAgICAgICAgIGZsb3dCb3ggPSBib3g7Ci0g
ICAgfQotCi0gICAgR1JlZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfcmVzb3VyY2Vz
X2xvb2t1cF9kYXRhKCIvb3JnL2d0ay9saWJndGsvZW1vamkvZW1vamkuZGF0YSIsIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiBk
YXRhID0gZ192YXJpYW50X25ld19mcm9tX2J5dGVzKEdfVkFSSUFOVF9UWVBFKCJhKGF1c3MpIiks
IGJ5dGVzLmdldCgpLCBUUlVFKTsKLSAgICBHVW5pcXVlUHRyPEdWYXJpYW50SXRlcj4gaXRlcihn
X3ZhcmlhbnRfaXRlcl9uZXcoZGF0YS5nZXQoKSkpOwotCi0gICAgRnVuY3Rpb248dm9pZCgpPiBw
b3B1bGF0ZVNlY3Rpb25zID0gW2Nob29zZXIsIGl0ZXIgPSBXVEZNb3ZlKGl0ZXIpLCBmbG93Qm94
XSgpIG11dGFibGUgewotICAgICAgICBhdXRvIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7
Ci0gICAgICAgIHdoaWxlIChHUmVmUHRyPEdWYXJpYW50PiBpdGVtID0gYWRvcHRHUmVmKGdfdmFy
aWFudF9pdGVyX25leHRfdmFsdWUoaXRlci5nZXQoKSkpKSB7Ci0gICAgICAgICAgICBjb25zdCBj
aGFyKiBuYW1lOwotICAgICAgICAgICAgZ192YXJpYW50X2dldF9jaGlsZChpdGVtLmdldCgpLCAx
LCAiJnMiLCAmbmFtZSk7Ci0KLSAgICAgICAgICAgIGF1dG8gaW5kZXggPSBjaG9vc2VyLT5wcml2
LT5zZWN0aW9ucy5maW5kTWF0Y2hpbmcoWyZuYW1lXShjb25zdCBhdXRvJiBzZWN0aW9uKSB7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuICFnX3N0cmNtcDAobmFtZSwgc2VjdGlvbi5maXJzdEVtb2pp
TmFtZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGZsb3dCb3ggPSBpbmRleCA9PSBu
b3RGb3VuZCA/IGZsb3dCb3ggOiBjaG9vc2VyLT5wcml2LT5zZWN0aW9uc1tpbmRleF0uYm94Owot
ICAgICAgICAgICAgYXV0byogY2hpbGQgPSB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9v
c2VyLCBHVEtfRkxPV19CT1goZmxvd0JveCksIGl0ZW0uZ2V0KCkpOwotICAgICAgICAgICAgaWYg
KGNoaWxkKQotICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QoY2hpbGQsICJwb3B1cC1t
ZW51IiwgR19DQUxMQkFDSyhlbW9qaVBvcHVwTWVudSksIGNob29zZXIpOwotCi0gICAgICAgICAg
ICBpZiAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCA+PSA4X21zKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBjaG9vc2VyLT5wcml2LT5wb3B1bGF0ZVNl
Y3Rpb25zVGltZXIgPSBudWxscHRyOwotICAgIH07Ci0KLSAgICBjaG9vc2VyLT5wcml2LT5wb3B1
bGF0ZVNlY3Rpb25zVGltZXIgPSBtYWtlVW5pcXVlPENhbGxiYWNrVGltZXI+KFdURk1vdmUocG9w
dWxhdGVTZWN0aW9ucykpOwotICAgIGNob29zZXItPnByaXYtPnBvcHVsYXRlU2VjdGlvbnNUaW1l
ci0+c2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lETEUpOwotICAgIGNob29zZXItPnBy
aXYtPnBvcHVsYXRlU2VjdGlvbnNUaW1lci0+c2V0TmFtZSgiW1dlYktpdEVtb2ppQ2hvb3Nlcl0g
cG9wdWxhdGUgc2VjdGlvbnMgdGltZXIiKTsKLSAgICBjaG9vc2VyLT5wcml2LT5wb3B1bGF0ZVNl
Y3Rpb25zVGltZXItPnN0YXJ0UmVwZWF0aW5nKHsgfSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtp
dEVtb2ppQ2hvb3NlckluaXRpYWxpemVFbW9qaU1heFdpZHRoKFdlYktpdEVtb2ppQ2hvb3Nlciog
Y2hvb3NlcikKLXsKLSAgICAvLyBHZXQgYSByZWFzb25hYmxlIG1heGltdW0gd2lkdGggZm9yIGFu
IGVtb2ppLiBXZSBkbyB0aGlzIHRvIHNraXAgb3Zlcmx5IHdpZGUgZmFsbGJhY2sKLSAgICAvLyBy
ZW5kZXJpbmcgZm9yIGNlcnRhaW4gZW1vamlzIHRoZSBmb250IGRvZXMgbm90IGNvbnRhaW4gYW5k
IHRoZXJlZm9yZSBlbmQgdXAgYmVpbmcKLSAgICAvLyByZW5kZXJlZCBhcyBtdWx0aXBsZSBnbHlw
aHMuCi0gICAgR1JlZlB0cjxQYW5nb0xheW91dD4gbGF5b3V0ID0gYWRvcHRHUmVmKGd0a193aWRn
ZXRfY3JlYXRlX3BhbmdvX2xheW91dChHVEtfV0lER0VUKGNob29zZXIpLCAi8J+ZgiIpKTsKLSAg
ICBhdXRvKiBhdHRyaWJ1dGVzID0gcGFuZ29fYXR0cl9saXN0X25ldygpOwotICAgIHBhbmdvX2F0
dHJfbGlzdF9pbnNlcnQoYXR0cmlidXRlcywgcGFuZ29fYXR0cl9zY2FsZV9uZXcoUEFOR09fU0NB
TEVfWF9MQVJHRSkpOwotICAgIHBhbmdvX2xheW91dF9zZXRfYXR0cmlidXRlcyhsYXlvdXQuZ2V0
KCksIGF0dHJpYnV0ZXMpOwotICAgIHBhbmdvX2F0dHJfbGlzdF91bnJlZihhdHRyaWJ1dGVzKTsK
LQotICAgIFBhbmdvUmVjdGFuZ2xlIHJlY3Q7Ci0gICAgcGFuZ29fbGF5b3V0X2dldF9leHRlbnRz
KGxheW91dC5nZXQoKSwgJnJlY3QsIG51bGxwdHIpOwotICAgIGNob29zZXItPnByaXYtPmVtb2pp
TWF4V2lkdGggPSByZWN0LndpZHRoOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29z
ZXJDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgV2ViS2l0RW1vamlDaG9vc2Vy
KiBjaG9vc2VyID0gV0VCS0lUX0VNT0pJX0NIT09TRVIob2JqZWN0KTsKLSAgICBjaG9vc2VyLT5w
cml2LT5zZXR0aW5ncyA9IGFkb3B0R1JlZihnX3NldHRpbmdzX25ldygib3JnLmd0ay5TZXR0aW5n
cy5FbW9qaUNob29zZXIiKSk7Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZW1vamlfY2hv
b3Nlcl9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3RlZChvYmplY3QpOwotCi0gICAgd2Via2l0RW1v
amlDaG9vc2VySW5pdGlhbGl6ZUVtb2ppTWF4V2lkdGgoY2hvb3Nlcik7Ci0KLSAgICBndGtfc3R5
bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChHVEtfV0lE
R0VUKG9iamVjdCkpLCAiZW1vamktcGlja2VyIik7Ci0KLSAgICBHdGtXaWRnZXQqIG1haW5Cb3gg
PSBndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwsIDApOwotICAgIEd0a1dpZGdl
dCogc2VhcmNoRW50cnkgPSBndGtfc2VhcmNoX2VudHJ5X25ldygpOwotICAgIGNob29zZXItPnBy
aXYtPnNlYXJjaEVudHJ5ID0gc2VhcmNoRW50cnk7Ci0gICAgZ19zaWduYWxfY29ubmVjdF9zd2Fw
cGVkKHNlYXJjaEVudHJ5LCAic2VhcmNoLWNoYW5nZWQiLCBHX0NBTExCQUNLKHdlYmtpdEVtb2pp
Q2hvb3NlclNlYXJjaENoYW5nZWQpLCBjaG9vc2VyKTsKLSAgICBndGtfZW50cnlfc2V0X2lucHV0
X2hpbnRzKEdUS19FTlRSWShzZWFyY2hFbnRyeSksIEdUS19JTlBVVF9ISU5UX05PX0VNT0pJKTsK
LSAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChtYWluQm94KSwgc2VhcmNoRW50cnksIFRS
VUUsIEZBTFNFLCAwKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coc2VhcmNoRW50cnkpOwotCi0gICAg
R3RrV2lkZ2V0KiBzdGFjayA9IGd0a19zdGFja19uZXcoKTsKLSAgICBjaG9vc2VyLT5wcml2LT5z
dGFjayA9IHN0YWNrOwotICAgIEd0a1dpZGdldCogYm94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVO
VEFUSU9OX1ZFUlRJQ0FMLCAwKTsKLSAgICBHdGtXaWRnZXQqIHN3aW5kb3cgPSBndGtfc2Nyb2xs
ZWRfd2luZG93X25ldyhudWxscHRyLCBudWxscHRyKTsKLSAgICBjaG9vc2VyLT5wcml2LT5zd2lu
ZG93ID0gc3dpbmRvdzsKLSAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9wb2xpY3koR1RLX1ND
Uk9MTEVEX1dJTkRPVyhzd2luZG93KSwgR1RLX1BPTElDWV9ORVZFUiwgR1RLX1BPTElDWV9BVVRP
TUFUSUMpOwotICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X21pbl9jb250ZW50X2hlaWdodChH
VEtfU0NST0xMRURfV0lORE9XKHN3aW5kb3cpLCAyNTApOwotICAgIGd0a19zdHlsZV9jb250ZXh0
X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KHN3aW5kb3cpLCAidmlldyIp
OwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGJveCksIHN3aW5kb3csIFRSVUUsIFRS
VUUsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyhzd2luZG93KTsKLQotICAgIEd0a1dpZGdldCog
ZW1vamlCb3ggPSBndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwsIDYpOwotICAg
IGdfb2JqZWN0X3NldChlbW9qaUJveCwgIm1hcmdpbiIsIDYsIG51bGxwdHIpOwotICAgIGd0a19j
b250YWluZXJfYWRkKEdUS19DT05UQUlORVIoc3dpbmRvdyksIGVtb2ppQm94KTsKLSAgICBndGtf
d2lkZ2V0X3Nob3coZW1vamlCb3gpOwotCi0gICAgR3RrV2lkZ2V0KiBidXR0b25Cb3ggPSBndGtf
Ym94X25ldyhHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwgMCk7Ci0gICAgZ3RrX2JveF9wYWNr
X3N0YXJ0KEdUS19CT1goYm94KSwgYnV0dG9uQm94LCBUUlVFLCBGQUxTRSwgMCk7Ci0gICAgZ3Rr
X3dpZGdldF9zaG93KGJ1dHRvbkJveCk7Ci0KLSAgICBHdGtBZGp1c3RtZW50KiB2QWRqdXN0bWVu
dCA9IGd0a19zY3JvbGxlZF93aW5kb3dfZ2V0X3ZhZGp1c3RtZW50KEdUS19TQ1JPTExFRF9XSU5E
T1coc3dpbmRvdykpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QodkFkanVzdG1lbnQsICJ2YWx1ZS1j
aGFuZ2VkIiwgR19DQUxMQkFDSyh2ZXJ0aWNhbEFkanVzdG1lbnRDaGFuZ2VkKSwgY2hvb3Nlcik7
Ci0KLSAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFJlY2VudChjaG9vc2VyLCBHVEtfQk9YKGVt
b2ppQm94KSwgR1RLX0JPWChidXR0b25Cb3gpLCB2QWRqdXN0bWVudCk7Ci0KLSAgICB3ZWJraXRF
bW9qaUNob29zZXJTZXR1cEVtb2ppU2VjdGlvbnMoY2hvb3NlciwgR1RLX0JPWChlbW9qaUJveCks
IEdUS19CT1goYnV0dG9uQm94KSk7Ci0KLSAgICBndGtfd2lkZ2V0X3NldF9zdGF0ZV9mbGFncyhj
aG9vc2VyLT5wcml2LT5zZWN0aW9ucy5maXJzdCgpLmJ1dHRvbiwgR1RLX1NUQVRFX0ZMQUdfQ0hF
Q0tFRCwgRkFMU0UpOwotCi0gICAgZ3RrX3N0YWNrX2FkZF9uYW1lZChHVEtfU1RBQ0soc3RhY2sp
LCBib3gsICJsaXN0Iik7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGJveCk7Ci0KLSAgICBndGtfYm94
X3BhY2tfc3RhcnQoR1RLX0JPWChtYWluQm94KSwgc3RhY2ssIFRSVUUsIFRSVUUsIDApOwotICAg
IGd0a193aWRnZXRfc2hvdyhzdGFjayk7Ci0KLSAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09O
VEFJTkVSKG9iamVjdCksIG1haW5Cb3gpOwotICAgIGd0a193aWRnZXRfc2hvdyhtYWluQm94KTsK
LQotICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwRmlsdGVycyhjaG9vc2VyKTsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2hvdyhHdGtXaWRnZXQqIHdpZGdldCkKLXsKLSAg
ICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF9lbW9qaV9jaG9vc2VyX3BhcmVudF9jbGFzcyktPnNo
b3cod2lkZ2V0KTsKLQotICAgIFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciA9IFdFQktJVF9F
TU9KSV9DSE9PU0VSKHdpZGdldCk7Ci0gICAgYXV0byogYWRqdXN0bWVudCA9IGd0a19zY3JvbGxl
ZF93aW5kb3dfZ2V0X3ZhZGp1c3RtZW50KEdUS19TQ1JPTExFRF9XSU5ET1coY2hvb3Nlci0+cHJp
di0+c3dpbmRvdykpOwotICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShhZGp1c3RtZW50LCAw
KTsKLQotICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkoY2hvb3Nlci0+cHJpdi0+c2Vh
cmNoRW50cnkpLCAiIik7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9lbW9qaV9jaG9vc2VyX2Ns
YXNzX2luaXQoV2ViS2l0RW1vamlDaG9vc2VyQ2xhc3MqIGtsYXNzKQotewotICAgIEdPYmplY3RD
bGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0gICAgb2JqZWN0Q2xh
c3MtPmNvbnN0cnVjdGVkID0gd2Via2l0RW1vamlDaG9vc2VyQ29uc3RydWN0ZWQ7Ci0KLSAgICBH
dGtXaWRnZXRDbGFzcyogd2lkZ2V0Q2xhc3MgPSBHVEtfV0lER0VUX0NMQVNTKGtsYXNzKTsKLSAg
ICB3aWRnZXRDbGFzcy0+c2hvdyA9IHdlYmtpdEVtb2ppQ2hvb3NlclNob3c7Ci0KLSAgICBzaWdu
YWxzW0VNT0pJX1BJQ0tFRF0gPSBnX3NpZ25hbF9uZXcoCi0gICAgICAgICJlbW9qaS1waWNrZWQi
LAotICAgICAgICBHX09CSkVDVF9DTEFTU19UWVBFKG9iamVjdENsYXNzKSwKLSAgICAgICAgR19T
SUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0gICAgICAgIG51bGxwdHIsIG51bGxwdHIsCi0g
ICAgICAgIG51bGxwdHIsCi0gICAgICAgIEdfVFlQRV9OT05FLCAxLAotICAgICAgICBHX1RZUEVf
U1RSSU5HIHwgR19TSUdOQUxfVFlQRV9TVEFUSUNfU0NPUEUpOwotfQogCiBHdGtXaWRnZXQqIHdl
YmtpdEVtb2ppQ2hvb3Nlck5ldygpCiB7Ci0gICAgV2ViS2l0RW1vamlDaG9vc2VyKiBhdXRoRGlh
bG9nID0gV0VCS0lUX0VNT0pJX0NIT09TRVIoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0VNT0pJ
X0NIT09TRVIsIG51bGxwdHIpKTsKLSAgICByZXR1cm4gR1RLX1dJREdFVChhdXRoRGlhbG9nKTsK
KyAgICBzdGF0aWMgR1R5cGUgY2hvb3NlclR5cGUgPSAoW10geworICAgICAgICBHdGtXaWRnZXQq
IGVudHJ5ID0gZ3RrX2VudHJ5X25ldygpOworICAgICAgICBndGtfZW50cnlfc2V0X2lucHV0X2hp
bnRzKEdUS19FTlRSWShlbnRyeSksIEdUS19JTlBVVF9ISU5UX0VNT0pJKTsKKyAgICAgICAgZ19v
YmplY3RfcmVmX3NpbmsoZW50cnkpOworCisgICAgICAgIEd0a0VudHJ5Q2xhc3MqIGVudHJ5Q2xh
c3MgPSBHVEtfRU5UUllfR0VUX0NMQVNTKGVudHJ5KTsKKyAgICAgICAgZW50cnlDbGFzcy0+aW5z
ZXJ0X2Vtb2ppKEdUS19FTlRSWShlbnRyeSkpOworCisgICAgICAgIC8vIFRoZSBlbW9qaSBkYXRh
IGlzIGZldGNoZWQgaW4gYSBkZWxheWVkIG1hbm5lciwgc28gYSBkaXJlY3QgY2FsbCB0bworICAg
ICAgICAvLyBndGtfd2lkZ2V0X2Rlc3Ryb3koZW50cnkpIHJlc3VsdHMgaW4gY3JpdGljYWwgd2Fy
bmluZyBkdWUgdG8gYW4KKyAgICAgICAgLy8gYXR0ZW1wdCB0byB1bnJlZiBhIHlldCB1bnBvcHVs
YXRlZCB2YWx1ZS4gQXJndWFibHksIEdUSyBzaG91bGQgZG8gYQorICAgICAgICAvLyBudWxsLWNo
ZWNrLCBidXQgdGhpcyBjb2RlIG5lZWRzIHRvIHdvcmsgZXZlbiBmb3Igb2xkZXIgdmVyc2lvbnMg
b2YKKyAgICAgICAgLy8gR1RLIHdoaWNoIG1heSBiZSB1bnBhdGNoZWQuIFRoZXJlZm9yZSwgZGVz
dHJveSB0aGUgZHVtbXkgZW50cnkgaW4KKyAgICAgICAgLy8gYSBsb3cgcHJpb3JpdHkgaWRsZSBz
b3VyY2UsIGFmdGVyIHRoZSBzb3VyY2UgdGhhdCBmaWxscyB0aGUgZGF0YQorICAgICAgICAvLyBo
YXMgYmVlbiBhbHJlYWR5IGRpc3BhdGNoZWQuCisgICAgICAgIEdTb3VyY2UqIHNvdXJjZSA9IGdf
aWRsZV9zb3VyY2VfbmV3KCk7CisgICAgICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2Us
IFtdKHZvaWQqIGRhdGEpIHsKKyAgICAgICAgICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lE
R0VUKGRhdGEpKTsKKyAgICAgICAgICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CisgICAgICAg
IH0sIGVudHJ5LCBudWxscHRyKTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJj
ZSwgR19QUklPUklUWV9MT1cpOworICAgICAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLCBSdW5M
b29wOjptYWluKCkubWFpbkNvbnRleHQoKSk7CisgICAgICAgIGdfc291cmNlX3VucmVmKHNvdXJj
ZSk7CisKKyAgICAgICAgcmV0dXJuIGdfdHlwZV9mcm9tX25hbWUoIkd0a0Vtb2ppQ2hvb3NlciIp
OworICAgIH0pKCk7CisKKyAgICByZXR1cm4gR1RLX1dJREdFVChnX29iamVjdF9uZXcoY2hvb3Nl
clR5cGUsIG51bGxwdHIpKTsKIH0KIAogI2VuZGlmIC8vIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0
LCAwKSAmJiAhVVNFKEdUSzQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRFbW9qaUNob29zZXIuaAppbmRleCBlNWU0MDcwZWIyZmQzMmYyODM4N2M4OGIz
MzZhMzJmMWM5NzFjZjlhLi5lZjAwYWY3ZTI4ZjFjOTc1ZjMwZGE2MjYzN2VlZjRlNTYwZGI5MzE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2pp
Q2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1v
amlDaG9vc2VyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEln
YWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTksIDIwMjEgSWdhbGlhIFMuTC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjUsMjggKzI1LDYgQEAKIAogR19CRUdJTl9ERUNMUwogCi0jZGVm
aW5lIFdFQktJVF9UWVBFX0VNT0pJX0NIT09TRVIgICAgICAgICAgICAod2Via2l0X2Vtb2ppX2No
b29zZXJfZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX0VNT0pJX0NIT09TRVIob2JqKSAgICAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRU1P
SklfQ0hPT1NFUiwgV2ViS2l0RW1vamlDaG9vc2VyKSkKLSNkZWZpbmUgV0VCS0lUX0lTX0VNT0pJ
X0NIT09TRVIob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUikpCi0jZGVmaW5lIFdFQktJVF9FTU9KSV9DSE9PU0VS
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX0VNT0pJX0NIT09TRVIsIFdlYktpdEVtb2ppQ2hvb3NlckNsYXNzKSkKLSNkZWZpbmUg
V0VCS0lUX0lTX0VNT0pJX0NIT09TRVJfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUikpCi0jZGVmaW5lIFdFQktJ
VF9FTU9KSV9DSE9PU0VSX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9UWVBFX0VNT0pJX0NIT09TRVIsIFdlYktpdEVtb2ppQ2hvb3NlckNs
YXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEVtb2ppQ2hvb3NlciAgICAgICAgV2ViS2l0
RW1vamlDaG9vc2VyOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEVtb2ppQ2hvb3NlckNsYXNzICAg
V2ViS2l0RW1vamlDaG9vc2VyQ2xhc3M7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RW1vamlDaG9v
c2VyUHJpdmF0ZSBXZWJLaXRFbW9qaUNob29zZXJQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdEVt
b2ppQ2hvb3NlciB7Ci0gICAgR3RrUG9wb3ZlciBwYXJlbnQ7Ci0KLSAgICBXZWJLaXRFbW9qaUNo
b29zZXJQcml2YXRlKiBwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRFbW9qaUNob29zZXJDbGFz
cyB7Ci0gICAgR3RrUG9wb3ZlckNsYXNzIHBhcmVudENsYXNzOwotfTsKLQotR1R5cGUgd2Via2l0
X2Vtb2ppX2Nob29zZXJfZ2V0X3R5cGUoKTsKIEd0a1dpZGdldCogd2Via2l0RW1vamlDaG9vc2Vy
TmV3KCk7CiAKIEdfRU5EX0RFQ0xTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441053</attachid>
            <date>2021-10-13 03:45:49 -0700</date>
            <delta_ts>2021-10-13 13:49:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228664-20211013124546.patch</filename>
            <type>text/plain</type>
            <size>32637</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMDczYjkzYWJjMzY3NTc1
OTY1NDU3NDZiNzc0NjU4YmIwYmIwY2EuLmFjN2NjNjM3NWExYTY5NzdjY2JlZWJmNjcyZDU4MGJm
Y2Y0MzA0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMTAtMTIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBPcGVu
aW5nIGVtb2ppIGNob29zZXIgY3Jhc2hlcyBVSSBwcm9jZXNzIHdpdGggR1RLIDMuMjQuMzAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODY2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIEluc3RlYWQg
b2YgcHJvdmlkaW5nIGEgY29weSBvZiB0aGUgZW1vamkgY2hvb3NlciB3aWRnZXQsIHVzZSBHTGli
J3MKKyAgICAgICAgaW50cm9zcGVjdGlvbiBmZWF0dXJlcyBhbmQgYSBsaXR0bGUgc3ByaW5rbGUg
b2Yga25vd2xlZGdlIGFib3V0IGhvdworICAgICAgICBHVEsgd29ya3MgaW4gb3JkZXIgdG8gb2J0
YWluIHRoZSB0eXBlIGNvZGUgb2YgdGhlIEd0a0Vtb2ppQ2hvb3NlcgorICAgICAgICB3aWRnZXQg
aW5jbHVkZWQgd2l0aCBHVEsuIFRoaXMgZW5zdXJlcyB0aGF0IGEgd29ya2luZyB3aWRnZXQgaXMK
KyAgICAgICAgYWx3YXlzIHVzZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgR1RLIHZlcnNp
b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICh3ZWJraXRFbW9qaUNo
b29zZXJOZXcpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hv
b3NlckFkZEVtb2ppKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJl
Y2VudEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoZW1vamlBY3RpdmF0ZWQpOiBEZWxldGVkLgor
ICAgICAgICAoZW1vamlEYXRhSGFzVmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJr
aXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChlbW9qaUxv
bmdQcmVzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGVtb2ppUHJlc3NlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChlbW9qaVBvcHVwTWVudSk6IERlbGV0ZWQuCisgICAgICAgICh2ZXJ0aWNhbEFkanVz
dG1lbnRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVw
U2VjdGlvbkJveCk6IERlbGV0ZWQuCisgICAgICAgIChzY3JvbGxUb1NlY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckVuc3VyZUVtcHR5UmVzdWx0KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNlYXJjaENoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKHdl
YmtpdEVtb2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3
ZWJraXRFbW9qaUNob29zZXJJbml0aWFsaXplRW1vamlNYXhXaWR0aCk6IERlbGV0ZWQuCisgICAg
ICAgICh3ZWJraXRFbW9qaUNob29zZXJDb25zdHJ1Y3RlZCk6IERlbGV0ZWQuCisgICAgICAgICh3
ZWJraXRFbW9qaUNob29zZXJTaG93KTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdF9lbW9qaV9j
aG9vc2VyX2NsYXNzX2luaXQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVtb2ppQ2hvb3Nlci5oOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFy
ZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAKaW5kZXggY2JjYTBmMTI2NmFm
YWZkZDAxYWFmYWQzZjM5ZDczM2YxMDZmMzEyOC4uYmYwMWFkZGQwMDU5YjRmY2E0NDYyYTg3NjA1
NGQxZWY4NmEwYzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4KLSAqIENvcHlyaWdodCAoQykgMjAxNyBSZWQgSGF0
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMTgsNjIzICsxNyw1NiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CiAgKi8KIAotLy8gR3RrRW1vamlDaG9vc2VyIGlzIHByaXZhdGUgaW4gR1RLIDMsIHNvIHRoaXMg
aXMgYmFzZWQgaW4gdGhlIEdUSyBjb2RlLCBqdXN0IGFkYXB0ZWQgdG8KLS8vIFdlYktpdCBjb2Rp
bmcgc3R5bGUsIHVzaW5nIHNvbWUgaW50ZXJuYWwgdHlwZXMgZnJvbSBXVEYgdG8gc2ltcGxpZnkg
dGhlIGltcGxlbWVudGF0aW9uCi0vLyBhbmQgbm90IHVzaW5nIEd0a0J1aWxkZXIgZm9yIHRoZSBV
SS4KKy8vIEd0a0Vtb2ppQ2hvb3NlciBpcyBwcml2YXRlIGluIEdUSyAzLCBzbyB0aGlzIGdvZXMg
dGhyb3VnaCBzb21lIGhvb3BzIHRvCisvLyBvYnRhaW4gaXRzIHR5cGUgY29kZSB2aWEgZ190eXBl
X2Zyb21fbmFtZSgpLiBUaGUgbWFpbiBpc3N1ZSBpcyB0aGF0IHRoZQorLy8gdHlwZSBuZWVkcyB0
byBoYXZlIGJlZW4gcHJldmlvdXNseSByZWdpc3RlcmVkLCB3aGljaCBpbiBwcmFjdGljZSBtZWFu
cworLy8gdHJpZ2dlcmluZyBhIGNhbGwgdG8gZ3RrX2Vtb2ppX2Nob29zZXJfZ2V0X3R5cGUoKSwg
YWxzbyBhIGhpZGRlbiBwcml2YXRlCisvLyBmdW5jdGlvbi4KKy8vCisvLyBPbmUgcG9pbnQgaW4g
dGhlIHB1YmxpYyBBUEkgd2hlcmUgYW4gZW1vamkgY2hvb3NlciBjYW4gYmUgZXhwbGljaXRseQor
Ly8gdHJpZ2dlcmVkIGlzIHRoZSBHdGtFbnRyeS5pbnNlcnRfZW1vamkgdmZ1bmM6IGVpdGhlciBh
dCB0aGF0IHBvaW50IHRoZQorLy8gR3RrRW1vamlDaG9vc2VyIHVzZWQgYnkgdGhlIGVudHJ5IGhh
cyBiZWVuIGFscmVhZHkgY3JlYXRlZCwgb3IgaXQgd2lsbAorLy8gYmUgY3JlYXRlZCBieSBjYWxs
aW5nIGl0LiBPYmplY3QgaW5zdGFudGlhdGlvbiBuZWVkcyB0aGUgdHlwZSB0byBiZQorLy8gcmVn
aXN0ZXJlZCwgc28gYWZ0ZXIgbWFraW5nIHN1cmUgYXQgbGVhc3Qgb25lIGluc3RhbmNlIGlzIGNy
ZWF0ZWQgaXQKKy8vIGlzIHNhZmUgdG8gdXNlIGdfdHlwZV9mcm9tX25hbWUoKS4KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdEVtb2ppQ2hvb3Nlci5oIgogCiAjaWYgR1RL
X0NIRUNLX1ZFUlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKIAotI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9n
bGliL1dURkdUeXBlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1lbnVtIHsK
LSAgICBFTU9KSV9QSUNLRUQsCi0KLSAgICBMQVNUX1NJR05BTAotfTsKLQotc3RydWN0IEVtb2pp
U2VjdGlvbiB7Ci0gICAgR3RrV2lkZ2V0KiBoZWFkaW5nIHsgbnVsbHB0ciB9OwotICAgIEd0a1dp
ZGdldCogYm94IHsgbnVsbHB0ciB9OwotICAgIEd0a1dpZGdldCogYnV0dG9uIHsgbnVsbHB0ciB9
OwotICAgIGJvb2wgaXNFbXB0eSB7IGZhbHNlIH07Ci0gICAgY29uc3QgY2hhciogZmlyc3RFbW9q
aU5hbWUgeyBudWxscHRyIH07Ci19OwotCi11c2luZyBTZWN0aW9uTGlzdCA9IFZlY3RvcjxFbW9q
aVNlY3Rpb24sIDk+OwotCi1jbGFzcyBDYWxsYmFja1RpbWVyIGZpbmFsIDogcHVibGljIFJ1bkxv
b3A6OlRpbWVyQmFzZSB7Ci1wdWJsaWM6Ci0gICAgQ2FsbGJhY2tUaW1lcihGdW5jdGlvbjx2b2lk
KCk+JiYgY2FsbGJhY2spCi0gICAgICAgIDogUnVuTG9vcDo6VGltZXJCYXNlKFJ1bkxvb3A6Om1h
aW4oKSkKLSAgICAgICAgLCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB+Q2FsbGJhY2tUaW1lcigpID0gZGVmYXVsdDsKLQotcHJpdmF0ZToKLSAgICB2
b2lkIGZpcmVkKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIG1fY2FsbGJhY2soKTsKLSAgICB9
Ci0KLSAgICBGdW5jdGlvbjx2b2lkKCk+IG1fY2FsbGJhY2s7Ci19OwotCi1zdHJ1Y3QgX1dlYktp
dEVtb2ppQ2hvb3NlclByaXZhdGUgewotICAgIEd0a1dpZGdldCogc3RhY2s7Ci0gICAgR3RrV2lk
Z2V0KiBzd2luZG93OwotICAgIEd0a1dpZGdldCogc2VhcmNoRW50cnk7Ci0gICAgU2VjdGlvbkxp
c3Qgc2VjdGlvbnM7Ci0gICAgR1JlZlB0cjxHU2V0dGluZ3M+IHNldHRpbmdzOwotICAgIEhhc2hT
ZXQ8R1JlZlB0cjxHdGtHZXN0dXJlPj4gZ2VzdHVyZXM7Ci0gICAgaW50IGVtb2ppTWF4V2lkdGg7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENhbGxiYWNrVGltZXI+IHBvcHVsYXRlU2VjdGlvbnNUaW1l
cjsKLX07Ci0KLXN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKLQot
V0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEVtb2ppQ2hvb3Nlciwgd2Via2l0X2Vtb2ppX2Nob29z
ZXIsIEdUS19UWVBFX1BPUE9WRVIpCi0KLXN0YXRpYyB2b2lkIGVtb2ppUG9wdXBNZW51KEd0a1dp
ZGdldCosIFdlYktpdEVtb2ppQ2hvb3NlciopOwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgYm94
U3BhY2UgPSA2OwotCi1zdGF0aWMgdm9pZCBlbW9qaUhvdmVyZWQoR3RrV2lkZ2V0KiB3aWRnZXQs
IEdka0V2ZW50KiBldmVudCkKLXsKLSAgICBpZiAoZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2
ZW50KSA9PSBHREtfRU5URVJfTk9USUZZKQotICAgICAgICBndGtfd2lkZ2V0X3NldF9zdGF0ZV9m
bGFncyh3aWRnZXQsIEdUS19TVEFURV9GTEFHX1BSRUxJR0hULCBGQUxTRSk7Ci0gICAgZWxzZQot
ICAgICAgICBndGtfd2lkZ2V0X3Vuc2V0X3N0YXRlX2ZsYWdzKHdpZGdldCwgR1RLX1NUQVRFX0ZM
QUdfUFJFTElHSFQpOwotfQotCi1zdGF0aWMgR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJB
ZGRFbW9qaShXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a0Zsb3dCb3gqIHBhcmVudCwg
R1ZhcmlhbnQqIGl0ZW0sIGJvb2wgcHJlcGVuZCA9IGZhbHNlLCBndW5pY2hhciBtb2RpZmllciA9
IDApCi17Ci0gICAgY2hhciB0ZXh0WzY0XTsKLSAgICBjaGFyKiB0ZXh0UHRyID0gdGV4dDsKLSAg
ICBHUmVmUHRyPEdWYXJpYW50PiBjb2RlcyA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfZ2V0X2NoaWxk
X3ZhbHVlKGl0ZW0sIDApKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZ192YXJpYW50
X25fY2hpbGRyZW4oY29kZXMuZ2V0KCkpOyArK2kpIHsKLSAgICAgICAgZ3VuaWNoYXIgY29kZTsK
LSAgICAgICAgZ192YXJpYW50X2dldF9jaGlsZChjb2Rlcy5nZXQoKSwgaSwgInUiLCAmY29kZSk7
Ci0gICAgICAgIGlmICghY29kZSkKLSAgICAgICAgICAgIGNvZGUgPSBtb2RpZmllcjsKLSAgICAg
ICAgaWYgKGNvZGUpCi0gICAgICAgICAgICB0ZXh0UHRyICs9IGdfdW5pY2hhcl90b191dGY4KGNv
ZGUsIHRleHRQdHIpOwotICAgIH0KLSAgICAvLyBVK0ZFMEYgaXMgdGhlIEVtb2ppIHZhcmlhdGlv
biBzZWxlY3RvcgotICAgIHRleHRQdHIgKz0gZ191bmljaGFyX3RvX3V0ZjgoMHhGRTBGLCB0ZXh0
UHRyKTsKLSAgICB0ZXh0UHRyWzBdID0gJ1wwJzsKLQotICAgIEd0a1dpZGdldCogbGFiZWwgPSBn
dGtfbGFiZWxfbmV3KHRleHQpOwotICAgIFBhbmdvQXR0ckxpc3QqIGF0dHJpYnV0ZXMgPSBwYW5n
b19hdHRyX2xpc3RfbmV3KCk7Ci0gICAgcGFuZ29fYXR0cl9saXN0X2luc2VydChhdHRyaWJ1dGVz
LCBwYW5nb19hdHRyX3NjYWxlX25ldyhQQU5HT19TQ0FMRV9YX0xBUkdFKSk7Ci0gICAgZ3RrX2xh
YmVsX3NldF9hdHRyaWJ1dGVzKEdUS19MQUJFTChsYWJlbCksIGF0dHJpYnV0ZXMpOwotICAgIHBh
bmdvX2F0dHJfbGlzdF91bnJlZihhdHRyaWJ1dGVzKTsKLQotICAgIFBhbmdvTGF5b3V0KiBsYXlv
dXQgPSBndGtfbGFiZWxfZ2V0X2xheW91dChHVEtfTEFCRUwobGFiZWwpKTsKLSAgICBQYW5nb1Jl
Y3RhbmdsZSByZWN0OwotICAgIHBhbmdvX2xheW91dF9nZXRfZXh0ZW50cyhsYXlvdXQsICZyZWN0
LCBudWxscHRyKTsKLSAgICAvLyBDaGVjayBmb3IgZmFsbGJhY2sgcmVuZGVyaW5nIHRoYXQgZ2Vu
ZXJhdGVzIHRvbyB3aWRlIGl0ZW1zLgotICAgIGlmIChwYW5nb19sYXlvdXRfZ2V0X3Vua25vd25f
Z2x5cGhzX2NvdW50KGxheW91dCkgfHwgcmVjdC53aWR0aCA+PSAxLjUgKiBjaG9vc2VyLT5wcml2
LT5lbW9qaU1heFdpZHRoKSB7Ci0gICAgICAgIGd0a193aWRnZXRfZGVzdHJveShsYWJlbCk7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIEd0a1dpZGdldCogY2hpbGQgPSBn
dGtfZmxvd19ib3hfY2hpbGRfbmV3KCk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNz
KGd0a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQoY2hpbGQpLCAiZW1vamkiKTsKLSAgICBnX29i
amVjdF9zZXRfZGF0YV9mdWxsKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiLCBnX3Zhcmlh
bnRfcmVmKGl0ZW0pLCByZWludGVycHJldF9jYXN0PEdEZXN0cm95Tm90aWZ5PihnX3ZhcmlhbnRf
dW5yZWYpKTsKLSAgICBpZiAobW9kaWZpZXIpCi0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdf
T0JKRUNUKGNoaWxkKSwgIm1vZGlmaWVyIiwgR1VJTlRfVE9fUE9JTlRFUihtb2RpZmllcikpOwot
Ci0gICAgR3RrV2lkZ2V0KiBldmVudEJveCA9IGd0a19ldmVudF9ib3hfbmV3KCk7Ci0gICAgZ3Rr
X3dpZGdldF9hZGRfZXZlbnRzKGV2ZW50Qm94LCBHREtfRU5URVJfTk9USUZZX01BU0sgfCBHREtf
TEVBVkVfTk9USUZZX01BU0spOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZXZlbnRCb3gsICJlbnRl
ci1ub3RpZnktZXZlbnQiLCBHX0NBTExCQUNLKGVtb2ppSG92ZXJlZCksIG51bGxwdHIpOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3QoZXZlbnRCb3gsICJsZWF2ZS1ub3RpZnktZXZlbnQiLCBHX0NBTExC
QUNLKGVtb2ppSG92ZXJlZCksIG51bGxwdHIpOwotICAgIGd0a19jb250YWluZXJfYWRkKEdUS19D
T05UQUlORVIoZXZlbnRCb3gpLCBsYWJlbCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGxhYmVsKTsK
LQotICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoY2hpbGQpLCBldmVudEJveCk7
Ci0gICAgZ3RrX3dpZGdldF9zaG93KGV2ZW50Qm94KTsKLQotICAgIGd0a19mbG93X2JveF9pbnNl
cnQocGFyZW50LCBjaGlsZCwgcHJlcGVuZCA/IDAgOiAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93
KGNoaWxkKTsKLQotICAgIHJldHVybiBjaGlsZDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1v
amlDaG9vc2VyQWRkUmVjZW50SXRlbShXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEdWYXJp
YW50KiBpdGVtLCBndW5pY2hhciBtb2RpZmllcikKLXsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiBw
cm90ZWN0SXRlbShpdGVtKTsKLSAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKLSAgICBnX3Zh
cmlhbnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRSgiYSgoYXVzcyl1KSIp
KTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICIoQChhdXNzKXUpIiwgaXRl
bSwgbW9kaWZpZXIpOwotCi0gICAgYXV0byYgc2VjdGlvbiA9IGNob29zZXItPnByaXYtPnNlY3Rp
b25zLmZpcnN0KCk7Ci0KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4UmVjZW50SXRlbXMg
PSA3ICogMzsKLQotICAgIEdVbmlxdWVQdHI8R0xpc3Q+IGNoaWxkcmVuKGd0a19jb250YWluZXJf
Z2V0X2NoaWxkcmVuKEdUS19DT05UQUlORVIoc2VjdGlvbi5ib3gpKSk7Ci0gICAgdW5zaWduZWQg
aSA9IDE7Ci0gICAgZm9yIChhdXRvKiBsID0gY2hpbGRyZW4uZ2V0KCk7IGw7IGwgPSBnX2xpc3Rf
bmV4dChsKSwgKytpKSB7Ci0gICAgICAgIGF1dG8qIGl0ZW0yID0gc3RhdGljX2Nhc3Q8R1Zhcmlh
bnQqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChsLT5kYXRhKSwgImVtb2ppLWRhdGEiKSk7
Ci0gICAgICAgIGF1dG8gbW9kaWZpZXIyID0gc3RhdGljX2Nhc3Q8Z3VuaWNoYXI+KEdQT0lOVEVS
X1RPX1VJTlQoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QobC0+ZGF0YSksICJtb2RpZmllciIp
KSk7Ci0gICAgICAgIGlmIChtb2RpZmllciA9PSBtb2RpZmllcjIgJiYgZ192YXJpYW50X2VxdWFs
KGl0ZW0sIGl0ZW0yKSkgewotICAgICAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURH
RVQobC0+ZGF0YSkpOwotICAgICAgICAgICAgLS1pOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAoaSA+PSBtYXhSZWNlbnRJdGVtcykgewotICAgICAgICAg
ICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQobC0+ZGF0YSkpOwotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1
aWxkZXIsICIoQChhdXNzKXUpIiwgaXRlbTIsIG1vZGlmaWVyMik7Ci0gICAgfQotCi0gICAgYXV0
byogY2hpbGQgPSB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19C
T1goc2VjdGlvbi5ib3gpLCBpdGVtLCB0cnVlLCBtb2RpZmllcik7Ci0gICAgaWYgKGNoaWxkKQot
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0KGNoaWxkLCAicG9wdXAtbWVudSIsIEdfQ0FMTEJBQ0so
ZW1vamlQb3B1cE1lbnUpLCBjaG9vc2VyKTsKLQotICAgIGd0a193aWRnZXRfc2hvdyhzZWN0aW9u
LmJveCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHNlY3Rpb24uYnV0dG9uLCBUUlVF
KTsKLQotICAgIGdfc2V0dGluZ3Nfc2V0X3ZhbHVlKGNob29zZXItPnByaXYtPnNldHRpbmdzLmdl
dCgpLCAicmVjZW50LWVtb2ppIiwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGVtb2ppQWN0aXZhdGVkKEd0a0Zsb3dCb3gqIGJveCwgR3RrRmxvd0Jv
eENoaWxkKiBjaGlsZCwgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIGd0a19w
b3BvdmVyX3BvcGRvd24oR1RLX1BPUE9WRVIoY2hvb3NlcikpOwotCi0gICAgR3RrV2lkZ2V0KiBs
YWJlbCA9IGd0a19iaW5fZ2V0X2NoaWxkKEdUS19CSU4oZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJ
TihjaGlsZCkpKSk7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiB0ZXh0KGdfc3RyZHVwKGd0a19sYWJl
bF9nZXRfbGFiZWwoR1RLX0xBQkVMKGxhYmVsKSkpKTsKLQotICAgIGF1dG8qIGl0ZW0gPSBzdGF0
aWNfY2FzdDxHVmFyaWFudCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVt
b2ppLWRhdGEiKSk7Ci0gICAgYXV0byBtb2RpZmllciA9IHN0YXRpY19jYXN0PGd1bmljaGFyPihH
UE9JTlRFUl9UT19VSU5UKGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgIm1vZGlm
aWVyIikpKTsKLSAgICB3ZWJraXRFbW9qaUNob29zZXJBZGRSZWNlbnRJdGVtKGNob29zZXIsIGl0
ZW0sIG1vZGlmaWVyKTsKLSAgICBnX3NpZ25hbF9lbWl0KGNob29zZXIsIHNpZ25hbHNbRU1PSklf
UElDS0VEXSwgMCwgdGV4dC5nZXQoKSk7Ci19Ci0KLXN0YXRpYyBib29sIGVtb2ppRGF0YUhhc1Zh
cmlhdGlvbnMoR1ZhcmlhbnQqIGVtb2ppRGF0YSkKLXsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiBj
b2RlcyA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfZ2V0X2NoaWxkX3ZhbHVlKGVtb2ppRGF0YSwgMCkp
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZ192YXJpYW50X25fY2hpbGRyZW4oY29kZXMu
Z2V0KCkpOyArK2kpIHsKLSAgICAgICAgZ3VuaWNoYXIgY29kZTsKLSAgICAgICAgZ192YXJpYW50
X2dldF9jaGlsZChjb2Rlcy5nZXQoKSwgaSwgInUiLCAmY29kZSk7Ci0gICAgICAgIGlmICghY29k
ZSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNob3dWYXJpYXRpb25zKFdlYktpdEVt
b2ppQ2hvb3NlciogY2hvb3NlciwgR3RrV2lkZ2V0KiBjaGlsZCkKLXsKLSAgICBpZiAoIWNoaWxk
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiBlbW9qaURhdGEgPSBzdGF0aWNfY2FzdDxH
VmFyaWFudCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEi
KSk7Ci0gICAgaWYgKCFlbW9qaURhdGEpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZW1v
amlEYXRhSGFzVmFyaWF0aW9ucyhlbW9qaURhdGEpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBH
dGtXaWRnZXQqIHBvcG92ZXIgPSBndGtfcG9wb3Zlcl9uZXcoY2hpbGQpOwotICAgIEd0a1dpZGdl
dCogdmlldyA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsKLSAg
ICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4
dCh2aWV3KSwgInZpZXciKTsKLSAgICBHdGtXaWRnZXQqIGJveCA9IGd0a19mbG93X2JveF9uZXco
KTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGJveCwgImNoaWxkLWFjdGl2YXRlZCIsIEdfQ0FMTEJB
Q0soZW1vamlBY3RpdmF0ZWQpLCBjaG9vc2VyKTsKLSAgICBndGtfZmxvd19ib3hfc2V0X2hvbW9n
ZW5lb3VzKEdUS19GTE9XX0JPWChib3gpLCBUUlVFKTsKLSAgICBndGtfZmxvd19ib3hfc2V0X21p
bl9jaGlsZHJlbl9wZXJfbGluZShHVEtfRkxPV19CT1goYm94KSwgNik7Ci0gICAgZ3RrX2Zsb3df
Ym94X3NldF9tYXhfY2hpbGRyZW5fcGVyX2xpbmUoR1RLX0ZMT1dfQk9YKGJveCksIDYpOwotICAg
IGd0a19mbG93X2JveF9zZXRfYWN0aXZhdGVfb25fc2luZ2xlX2NsaWNrKEdUS19GTE9XX0JPWChi
b3gpLCBUUlVFKTsKLSAgICBndGtfZmxvd19ib3hfc2V0X3NlbGVjdGlvbl9tb2RlKEdUS19GTE9X
X0JPWChib3gpLCBHVEtfU0VMRUNUSU9OX05PTkUpOwotICAgIGd0a19jb250YWluZXJfYWRkKEdU
S19DT05UQUlORVIodmlldyksIGJveCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGJveCk7Ci0gICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihwb3BvdmVyKSwgdmlldyk7Ci0gICAgZ3Rr
X3dpZGdldF9zaG93KHZpZXcpOwotCi0gICAgd2Via2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hv
b3NlciwgR1RLX0ZMT1dfQk9YKGJveCksIGVtb2ppRGF0YSk7Ci0gICAgZm9yIChndW5pY2hhciBt
b2RpZmllciA9IDB4MUYzRkI7IG1vZGlmaWVyIDw9IDB4MUYzRkY7ICsrbW9kaWZpZXIpCi0gICAg
ICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gp
LCBlbW9qaURhdGEsIGZhbHNlLCBtb2RpZmllcik7Ci0KLSAgICBndGtfcG9wb3Zlcl9wb3B1cChH
VEtfUE9QT1ZFUihwb3BvdmVyKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGVtb2ppTG9uZ1ByZXNzZWQo
R3RrR2VzdHVyZSogZ2VzdHVyZSwgZG91YmxlIHgsIGRvdWJsZSB5LCBXZWJLaXRFbW9qaUNob29z
ZXIqIGNob29zZXIpCi17Ci0gICAgYXV0byogYm94ID0gR1RLX0ZMT1dfQk9YKGd0a19ldmVudF9j
b250cm9sbGVyX2dldF93aWRnZXQoR1RLX0VWRU5UX0NPTlRST0xMRVIoZ2VzdHVyZSkpKTsKLSAg
ICB3ZWJraXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyhjaG9vc2VyLCBHVEtfV0lER0VUKGd0
a19mbG93X2JveF9nZXRfY2hpbGRfYXRfcG9zKGJveCwgeCwgeSkpKTsKLX0KLQotc3RhdGljIHZv
aWQgZW1vamlQcmVzc2VkKEd0a0dlc3R1cmUqIGdlc3R1cmUsIGludCwgZG91YmxlIHgsIGRvdWJs
ZSB5LCBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgZW1vamlMb25nUHJlc3Nl
ZChnZXN0dXJlLCB4LCB5LCBjaG9vc2VyKTsKLX0KLQotc3RhdGljIHZvaWQgZW1vamlQb3B1cE1l
bnUoR3RrV2lkZ2V0KiBjaGlsZCwgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAg
IHdlYmtpdEVtb2ppQ2hvb3NlclNob3dWYXJpYXRpb25zKGNob29zZXIsIGNoaWxkKTsKLX0KLQot
c3RhdGljIHZvaWQgdmVydGljYWxBZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1
c3RtZW50LCBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgZG91YmxlIHZhbHVl
ID0gZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKGFkanVzdG1lbnQpOwotICAgIEVtb2ppU2VjdGlv
biogc2VjdGlvblRvU2VsZWN0ID0gbnVsbHB0cjsKLSAgICBmb3IgKGF1dG8mIHNlY3Rpb24gOiBj
aG9vc2VyLT5wcml2LT5zZWN0aW9ucykgewotICAgICAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRp
b247Ci0gICAgICAgIGlmIChzZWN0aW9uLmhlYWRpbmcpCi0gICAgICAgICAgICBndGtfd2lkZ2V0
X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24uaGVhZGluZywgJmFsbG9jYXRpb24pOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24uYm94LCAm
YWxsb2NhdGlvbik7Ci0KLSAgICAgICAgaWYgKHZhbHVlIDwgYWxsb2NhdGlvbi55IC0gYm94U3Bh
Y2UpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBzZWN0aW9uVG9TZWxlY3QgPSAmc2Vj
dGlvbjsKLSAgICB9Ci0KLSAgICBpZiAoIXNlY3Rpb25Ub1NlbGVjdCkKLSAgICAgICAgc2VjdGlv
blRvU2VsZWN0ID0gJmNob29zZXItPnByaXYtPnNlY3Rpb25zWzBdOwotCi0gICAgZm9yIChhdXRv
JiBzZWN0aW9uIDogY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMpIHsKLSAgICAgICAgaWYgKCZzZWN0
aW9uID09IHNlY3Rpb25Ub1NlbGVjdCkKLSAgICAgICAgICAgIGd0a193aWRnZXRfc2V0X3N0YXRl
X2ZsYWdzKHNlY3Rpb24uYnV0dG9uLCBHVEtfU1RBVEVfRkxBR19DSEVDS0VELCBGQUxTRSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGd0a193aWRnZXRfdW5zZXRfc3RhdGVfZmxhZ3Moc2Vj
dGlvbi5idXR0b24sIEdUS19TVEFURV9GTEFHX0NIRUNLRUQpOwotICAgIH0KLX0KLQotc3RhdGlj
IEd0a1dpZGdldCogd2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQm94KFdlYktpdEVtb2pp
Q2hvb3NlciogY2hvb3NlciwgR3RrQm94KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGZpcnN0RW1vamlO
YW1lLCBjb25zdCBjaGFyKiB0aXRsZSwgR3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCwgZ2Jvb2xl
YW4gY2FuSGF2ZVZhcmlhdGlvbnMgPSBGQUxTRSkKLXsKLSAgICBFbW9qaVNlY3Rpb24gc2VjdGlv
bjsKLSAgICBzZWN0aW9uLmZpcnN0RW1vamlOYW1lID0gZmlyc3RFbW9qaU5hbWU7Ci0gICAgaWYg
KHRpdGxlKSB7Ci0gICAgICAgIEd0a1dpZGdldCogbGFiZWwgPSBndGtfbGFiZWxfbmV3KHRpdGxl
KTsKLSAgICAgICAgc2VjdGlvbi5oZWFkaW5nID0gbGFiZWw7Ci0gICAgICAgIGd0a19sYWJlbF9z
ZXRfeGFsaWduKEdUS19MQUJFTChsYWJlbCksIDApOwotICAgICAgICBndGtfYm94X3BhY2tfc3Rh
cnQocGFyZW50LCBsYWJlbCwgRkFMU0UsIEZBTFNFLCAwKTsKLSAgICAgICAgZ3RrX3dpZGdldF9z
aG93KGxhYmVsKTsKLSAgICB9Ci0KLSAgICBHdGtXaWRnZXQqIGJveCA9IGd0a19mbG93X2JveF9u
ZXcoKTsKLSAgICBzZWN0aW9uLmJveCA9IGJveDsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGJveCwg
ImNoaWxkLWFjdGl2YXRlZCIsIEdfQ0FMTEJBQ0soZW1vamlBY3RpdmF0ZWQpLCBjaG9vc2VyKTsK
LSAgICBndGtfZmxvd19ib3hfc2V0X2hvbW9nZW5lb3VzKEdUS19GTE9XX0JPWChib3gpLCBUUlVF
KTsKLSAgICBndGtfZmxvd19ib3hfc2V0X3NlbGVjdGlvbl9tb2RlKEdUS19GTE9XX0JPWChib3gp
LCBHVEtfU0VMRUNUSU9OX05PTkUpOwotICAgIGd0a19jb250YWluZXJfc2V0X2ZvY3VzX3ZhZGp1
c3RtZW50KEdUS19DT05UQUlORVIoYm94KSwgYWRqdXN0bWVudCk7Ci0gICAgZ3RrX2JveF9wYWNr
X3N0YXJ0KHBhcmVudCwgYm94LCBGQUxTRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hv
dyhib3gpOwotCi0gICAgaWYgKGNhbkhhdmVWYXJpYXRpb25zKSB7Ci0gICAgICAgIEdSZWZQdHI8
R3RrR2VzdHVyZT4gZ2VzdHVyZSA9IGFkb3B0R1JlZihndGtfZ2VzdHVyZV9sb25nX3ByZXNzX25l
dyhib3gpKTsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChnZXN0dXJlLmdldCgpLCAicHJlc3Nl
ZCIsIEdfQ0FMTEJBQ0soZW1vamlMb25nUHJlc3NlZCksIGNob29zZXIpOwotICAgICAgICBjaG9v
c2VyLT5wcml2LT5nZXN0dXJlcy5hZGQoV1RGTW92ZShnZXN0dXJlKSk7Ci0gICAgICAgIEdSZWZQ
dHI8R3RrR2VzdHVyZT4gbXVsdGlHZXN0dXJlID0gYWRvcHRHUmVmKGd0a19nZXN0dXJlX211bHRp
X3ByZXNzX25ldyhib3gpKTsKLSAgICAgICAgZ3RrX2dlc3R1cmVfc2luZ2xlX3NldF9idXR0b24o
R1RLX0dFU1RVUkVfU0lOR0xFKG11bHRpR2VzdHVyZS5nZXQoKSksIEdES19CVVRUT05fU0VDT05E
QVJZKTsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChtdWx0aUdlc3R1cmUuZ2V0KCksICJwcmVz
c2VkIiwgR19DQUxMQkFDSyhlbW9qaVByZXNzZWQpLCBjaG9vc2VyKTsKLSAgICAgICAgY2hvb3Nl
ci0+cHJpdi0+Z2VzdHVyZXMuYWRkKFdURk1vdmUobXVsdGlHZXN0dXJlKSk7Ci0gICAgfQotCi0g
ICAgY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuYXBwZW5kKFdURk1vdmUoc2VjdGlvbikpOwotICAg
IHJldHVybiBib3g7Ci19Ci0KLXN0YXRpYyB2b2lkIHNjcm9sbFRvU2VjdGlvbihHdGtCdXR0b24q
IGJ1dHRvbiwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBhdXRvKiBjaG9vc2VyID0gV0VCS0lUX0VN
T0pJX0NIT09TRVIoZ3RrX3dpZGdldF9nZXRfYW5jZXN0b3IoR1RLX1dJREdFVChidXR0b24pLCBX
RUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VSKSk7Ci0gICAgYXV0byYgc2VjdGlvbiA9IGNob29zZXIt
PnByaXYtPnNlY3Rpb25zW0dQT0lOVEVSX1RPX1VJTlQoZGF0YSldOwotICAgIEd0a0FkanVzdG1l
bnQqIGFkanVzdG1lbnQgPSBndGtfc2Nyb2xsZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtf
U0NST0xMRURfV0lORE9XKGNob29zZXItPnByaXYtPnN3aW5kb3cpKTsKLSAgICBpZiAoc2VjdGlv
bi5oZWFkaW5nKSB7Ci0gICAgICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbiA9IHsgMCwgMCwg
MCwgMCB9OwotICAgICAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24uaGVhZGlu
ZywgJmFsbG9jYXRpb24pOwotICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUoYWRqdXN0
bWVudCwgYWxsb2NhdGlvbi55IC0gYm94U3BhY2UpOwotICAgIH0gZWxzZQotICAgICAgICBndGtf
YWRqdXN0bWVudF9zZXRfdmFsdWUoYWRqdXN0bWVudCwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdEVtb2ppQ2hvb3NlclNldHVwU2VjdGlvbkJ1dHRvbihXZWJLaXRFbW9qaUNob29zZXIqIGNo
b29zZXIsIEd0a0JveCogcGFyZW50LCBjb25zdCBjaGFyKiBpY29uTmFtZSwgY29uc3QgY2hhciog
dG9vbHRpcCkKLXsKLSAgICBHdGtXaWRnZXQqIGJ1dHRvbiA9IGd0a19idXR0b25fbmV3X2Zyb21f
aWNvbl9uYW1lKGljb25OYW1lLCBHVEtfSUNPTl9TSVpFX0JVVFRPTik7Ci0gICAgY2hvb3Nlci0+
cHJpdi0+c2VjdGlvbnMubGFzdCgpLmJ1dHRvbiA9IGJ1dHRvbjsKLSAgICBndGtfc3R5bGVfY29u
dGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChidXR0b24pLCAiZW1v
amktc2VjdGlvbiIpOwotICAgIGd0a193aWRnZXRfc2V0X3Rvb2x0aXBfdGV4dChidXR0b24sIHRv
b2x0aXApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJB
Q0soc2Nyb2xsVG9TZWN0aW9uKSwgR1VJTlRfVE9fUE9JTlRFUihjaG9vc2VyLT5wcml2LT5zZWN0
aW9ucy5zaXplKCkgLSAxKSk7Ci0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0KHBhcmVudCwgYnV0dG9u
LCBGQUxTRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyhidXR0b24pOwotfQotCi1z
dGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFJlY2VudChXZWJLaXRFbW9qaUNob29z
ZXIqIGNob29zZXIsIEd0a0JveCogZW1vamlCb3gsIEd0a0JveCogYnV0dG9uQm94LCBHdGtBZGp1
c3RtZW50KiBhZGp1c3RtZW50KQotewotICAgIEd0a1dpZGdldCogZmxvd0JveCA9IHdlYmtpdEVt
b2ppQ2hvb3NlclNldHVwU2VjdGlvbkJveChjaG9vc2VyLCBlbW9qaUJveCwgbnVsbHB0ciwgbnVs
bHB0ciwgYWRqdXN0bWVudCwgdHJ1ZSk7Ci0gICAgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0
aW9uQnV0dG9uKGNob29zZXIsIGJ1dHRvbkJveCwgImVtb2ppLXJlY2VudC1zeW1ib2xpYyIsIF8o
IlJlY2VudCIpKTsKLQotICAgIGJvb2wgaXNFbXB0eSA9IHRydWU7Ci0gICAgR1JlZlB0cjxHVmFy
aWFudD4gdmFyaWFudCA9IGFkb3B0R1JlZihnX3NldHRpbmdzX2dldF92YWx1ZShjaG9vc2VyLT5w
cml2LT5zZXR0aW5ncy5nZXQoKSwgInJlY2VudC1lbW9qaSIpKTsKLSAgICBHVmFyaWFudEl0ZXIg
aXRlcjsKLSAgICBnX3ZhcmlhbnRfaXRlcl9pbml0KCZpdGVyLCB2YXJpYW50LmdldCgpKTsKLSAg
ICB3aGlsZSAoR1JlZlB0cjxHVmFyaWFudD4gaXRlbSA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfaXRl
cl9uZXh0X3ZhbHVlKCZpdGVyKSkpIHsKLSAgICAgICAgR1JlZlB0cjxHVmFyaWFudD4gZW1vamlE
YXRhID0gYWRvcHRHUmVmKGdfdmFyaWFudF9nZXRfY2hpbGRfdmFsdWUoaXRlbS5nZXQoKSwgMCkp
OwotICAgICAgICBndW5pY2hhciBtb2RpZmllcjsKLSAgICAgICAgZ192YXJpYW50X2dldF9jaGls
ZChpdGVtLmdldCgpLCAxLCAidSIsICZtb2RpZmllcik7Ci0gICAgICAgIGlmIChhdXRvKiBjaGls
ZCA9IHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChmbG93
Qm94KSwgZW1vamlEYXRhLmdldCgpLCB0cnVlLCBtb2RpZmllcikpCi0gICAgICAgICAgICBnX3Np
Z25hbF9jb25uZWN0KGNoaWxkLCAicG9wdXAtbWVudSIsIEdfQ0FMTEJBQ0soZW1vamlQb3B1cE1l
bnUpLCBjaG9vc2VyKTsKLSAgICAgICAgaXNFbXB0eSA9IGZhbHNlOwotICAgIH0KLQotICAgIGlm
IChpc0VtcHR5KSB7Ci0gICAgICAgIGd0a193aWRnZXRfaGlkZShmbG93Qm94KTsKLSAgICAgICAg
Z3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKGNob29zZXItPnByaXYtPnNlY3Rpb25zLmZpcnN0KCku
YnV0dG9uLCBGQUxTRSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29z
ZXJFbnN1cmVFbXB0eVJlc3VsdChXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAg
aWYgKGd0a19zdGFja19nZXRfY2hpbGRfYnlfbmFtZShHVEtfU1RBQ0soY2hvb3Nlci0+cHJpdi0+
c3RhY2spLCAiZW1wdHkiKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR3RrV2lkZ2V0KiBncmlk
ID0gZ3RrX2dyaWRfbmV3KCk7Ci0gICAgZ3RrX2dyaWRfc2V0X3Jvd19zcGFjaW5nKEdUS19HUklE
KGdyaWQpLCAxMik7Ci0gICAgZ3RrX3dpZGdldF9zZXRfaGFsaWduKGdyaWQsIEdUS19BTElHTl9D
RU5URVIpOwotICAgIGd0a193aWRnZXRfc2V0X3ZhbGlnbihncmlkLCBHVEtfQUxJR05fQ0VOVEVS
KTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVf
Y29udGV4dChncmlkKSwgImRpbS1sYWJlbCIpOwotCi0gICAgR3RrV2lkZ2V0KiBpbWFnZSA9IGd0
a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoImVkaXQtZmluZC1zeW1ib2xpYyIsIEdUS19JQ09O
X1NJWkVfRElBTE9HKTsKLSAgICBndGtfaW1hZ2Vfc2V0X3BpeGVsX3NpemUoR1RLX0lNQUdFKGlt
YWdlKSwgNzIpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dl
dF9zdHlsZV9jb250ZXh0KGltYWdlKSwgImRpbS1sYWJlbCIpOwotICAgIGd0a19ncmlkX2F0dGFj
aChHVEtfR1JJRChncmlkKSwgaW1hZ2UsIDAsIDAsIDEsIDEpOwotICAgIGd0a193aWRnZXRfc2hv
dyhpbWFnZSk7Ci0KLSAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3RrX2xhYmVsX25ldyhfKCJObyBS
ZXN1bHRzIEZvdW5kIikpOwotICAgIFBhbmdvQXR0ckxpc3QqIGF0dHJpYnV0ZXMgPSBwYW5nb19h
dHRyX2xpc3RfbmV3KCk7Ci0gICAgcGFuZ29fYXR0cl9saXN0X2luc2VydChhdHRyaWJ1dGVzLCBw
YW5nb19hdHRyX3NjYWxlX25ldygxLjQ0KSk7Ci0gICAgcGFuZ29fYXR0cl9saXN0X2luc2VydChh
dHRyaWJ1dGVzLCBwYW5nb19hdHRyX3dlaWdodF9uZXcoUEFOR09fV0VJR0hUX0JPTEQpKTsKLSAg
ICBndGtfbGFiZWxfc2V0X2F0dHJpYnV0ZXMoR1RLX0xBQkVMKGxhYmVsKSwgYXR0cmlidXRlcyk7
Ci0gICAgcGFuZ29fYXR0cl9saXN0X3VucmVmKGF0dHJpYnV0ZXMpOwotICAgIGd0a19ncmlkX2F0
dGFjaChHVEtfR1JJRChncmlkKSwgbGFiZWwsIDAsIDEsIDEsIDEpOwotICAgIGd0a193aWRnZXRf
c2hvdyhsYWJlbCk7Ci0KLSAgICBsYWJlbCA9IGd0a19sYWJlbF9uZXcoXygiVHJ5IGEgZGlmZmVy
ZW50IHNlYXJjaCIpKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdl
dF9nZXRfc3R5bGVfY29udGV4dChsYWJlbCksICJkaW0tbGFiZWwiKTsKLSAgICBndGtfZ3JpZF9h
dHRhY2goR1RLX0dSSUQoZ3JpZCksIGxhYmVsLCAwLCAyLCAxLCAxKTsKLSAgICBndGtfd2lkZ2V0
X3Nob3cobGFiZWwpOwotCi0gICAgZ3RrX3N0YWNrX2FkZF9uYW1lZChHVEtfU1RBQ0soY2hvb3Nl
ci0+cHJpdi0+c3RhY2spLCBncmlkLCAiZW1wdHkiKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coZ3Jp
ZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNlYXJjaENoYW5nZWQoV2Vi
S2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIGZvciAoYXV0byYgc2VjdGlvbiA6IGNo
b29zZXItPnByaXYtPnNlY3Rpb25zKSB7Ci0gICAgICAgIHNlY3Rpb24uaXNFbXB0eSA9IHRydWU7
Ci0gICAgICAgIGd0a19mbG93X2JveF9pbnZhbGlkYXRlX2ZpbHRlcihHVEtfRkxPV19CT1goc2Vj
dGlvbi5ib3gpKTsKLSAgICB9Ci0KLSAgICBib29sIHJlc3VsdHNGb3VuZCA9IGZhbHNlOwotICAg
IGZvciAoYXV0byYgc2VjdGlvbiA6IGNob29zZXItPnByaXYtPnNlY3Rpb25zKSB7Ci0gICAgICAg
IGlmIChzZWN0aW9uLmhlYWRpbmcpIHsKLSAgICAgICAgICAgIGd0a193aWRnZXRfc2V0X3Zpc2li
bGUoc2VjdGlvbi5oZWFkaW5nLCAhc2VjdGlvbi5pc0VtcHR5KTsKLSAgICAgICAgICAgIGd0a193
aWRnZXRfc2V0X3Zpc2libGUoc2VjdGlvbi5ib3gsICFzZWN0aW9uLmlzRW1wdHkpOwotICAgICAg
ICB9Ci0gICAgICAgIHJlc3VsdHNGb3VuZCA9IHJlc3VsdHNGb3VuZCB8fCAhc2VjdGlvbi5pc0Vt
cHR5OwotICAgIH0KLQotICAgIGlmICghcmVzdWx0c0ZvdW5kKSB7Ci0gICAgICAgIHdlYmtpdEVt
b2ppQ2hvb3NlckVuc3VyZUVtcHR5UmVzdWx0KGNob29zZXIpOwotICAgICAgICBndGtfc3RhY2tf
c2V0X3Zpc2libGVfY2hpbGRfbmFtZShHVEtfU1RBQ0soY2hvb3Nlci0+cHJpdi0+c3RhY2spLCAi
ZW1wdHkiKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZ3RrX3N0YWNrX3NldF92aXNpYmxlX2NoaWxk
X25hbWUoR1RLX1NUQUNLKGNob29zZXItPnByaXYtPnN0YWNrKSwgImxpc3QiKTsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKFdlYktpdEVtb2ppQ2hvb3Nl
ciogY2hvb3NlcikKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNob29zZXItPnByaXYt
PnNlY3Rpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGd0a19mbG93X2JveF9zZXRfZmlsdGVy
X2Z1bmMoR1RLX0ZMT1dfQk9YKGNob29zZXItPnByaXYtPnNlY3Rpb25zW2ldLmJveCksIFtdKEd0
a0Zsb3dCb3hDaGlsZCogY2hpbGQsIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0g
ICAgICAgICAgICBhdXRvKiBjaG9vc2VyID0gV0VCS0lUX0VNT0pJX0NIT09TRVIoZ3RrX3dpZGdl
dF9nZXRfYW5jZXN0b3IoR1RLX1dJREdFVChjaGlsZCksIFdFQktJVF9UWVBFX0VNT0pJX0NIT09T
RVIpKTsKLSAgICAgICAgICAgIGF1dG8mIHNlY3Rpb24gPSBjaG9vc2VyLT5wcml2LT5zZWN0aW9u
c1tHUE9JTlRFUl9UT19VSU5UKHVzZXJEYXRhKV07Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiB0
ZXh0ID0gZ3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRSWShjaG9vc2VyLT5wcml2LT5zZWFyY2hF
bnRyeSkpOwotICAgICAgICAgICAgaWYgKCF0ZXh0IHx8ICEqdGV4dCkgewotICAgICAgICAgICAg
ICAgIHNlY3Rpb24uaXNFbXB0eSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiBUUlVF
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBhdXRvKiBlbW9qaURhdGEgPSBzdGF0aWNf
Y2FzdDxHVmFyaWFudCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2pp
LWRhdGEiKSk7Ci0gICAgICAgICAgICBpZiAoIWVtb2ppRGF0YSkgewotICAgICAgICAgICAgICAg
IHNlY3Rpb24uaXNFbXB0eSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiBUUlVFOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgICAgICAg
ICAgZ192YXJpYW50X2dldF9jaGlsZChlbW9qaURhdGEsIDEsICImcyIsICZuYW1lKTsKLSAgICAg
ICAgICAgIGlmIChnX3N0cl9tYXRjaF9zdHJpbmcodGV4dCwgbmFtZSwgVFJVRSkpIHsKLSAgICAg
ICAgICAgICAgICBzZWN0aW9uLmlzRW1wdHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gVFJVRTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAg
ICAgICB9LCBHVUlOVF9UT19QT0lOVEVSKGkpLCBudWxscHRyKTsKLSAgICB9Ci19Ci0KLXN0YXRp
YyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyhXZWJLaXRFbW9qaUNo
b29zZXIqIGNob29zZXIsIEd0a0JveCogZW1vamlCb3gsIEd0a0JveCogYnV0dG9uQm94KQotewot
ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewotICAgICAgICBjb25zdCBjaGFyKiBmaXJzdEVtb2pp
TmFtZTsKLSAgICAgICAgY29uc3QgY2hhciogdGl0bGU7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGlj
b25OYW1lOwotICAgICAgICBib29sIGNhbkhhdmVWYXJpYXRpb25zOwotICAgIH0gc2VjdGlvbnNb
XSA9IHsKLSAgICAgICAgeyAiZ3Jpbm5pbmcgZmFjZSIsIE5fKCJTbWlsZXlzICYgUGVvcGxlIiks
ICJlbW9qaS1wZW9wbGUtc3ltYm9saWMiLCB0cnVlIH0sCi0gICAgICAgIHsgInNlbGZpZSIsIE5f
KCJCb2R5ICYgQ2xvdGhpbmciKSwgImVtb2ppLWJvZHktc3ltYm9saWMiLCB0cnVlIH0sCi0gICAg
ICAgIHsgIm1vbmtleSIsIE5fKCJBbmltYWxzICYgTmF0dXJlIiksICJlbW9qaS1uYXR1cmUtc3lt
Ym9saWMiLCBmYWxzZSB9LAotICAgICAgICB7ICJncmFwZXMiLCBOXygiRm9vZCAmIERyaW5rIiks
ICJlbW9qaS1mb29kLXN5bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZ2xvYmUgc2hvd2lu
ZyBFdXJvcGUtQWZyaWNhIiwgTl8oIlRyYXZlbCAmIFBsYWNlcyIpLCAiZW1vamktdHJhdmVsLXN5
bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiamFjay1vLWxhbnRlcm4iLCBOXygiQWN0aXZp
dGllcyIpLCAiZW1vamktYWN0aXZpdGllcy1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsg
Im11dGVkIHNwZWFrZXIiLCBfKCJPYmplY3RzIiksICJlbW9qaS1vYmplY3RzLXN5bWJvbGljIiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiQVRNIHNpZ24iLCBOXygiU3ltYm9scyIpLCAiZW1vamktc3lt
Ym9scy1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImNoZXF1ZXJlZCBmbGFnIiwgXygi
RmxhZ3MiKSwgImVtb2ppLWZsYWdzLXN5bWJvbGljIiwgZmFsc2UgfQotICAgIH07Ci0KLSAgICBh
dXRvKiB2QWRqdXN0bWVudCA9IGd0a19zY3JvbGxlZF93aW5kb3dfZ2V0X3ZhZGp1c3RtZW50KEdU
S19TQ1JPTExFRF9XSU5ET1coY2hvb3Nlci0+cHJpdi0+c3dpbmRvdykpOwotCi0gICAgR3RrV2lk
Z2V0KiBmbG93Qm94ID0gbnVsbHB0cjsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR19O
X0VMRU1FTlRTKHNlY3Rpb25zKTsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGJveCA9IHdlYmtpdEVt
b2ppQ2hvb3NlclNldHVwU2VjdGlvbkJveChjaG9vc2VyLCBlbW9qaUJveCwgc2VjdGlvbnNbaV0u
Zmlyc3RFbW9qaU5hbWUsIHNlY3Rpb25zW2ldLnRpdGxlLCB2QWRqdXN0bWVudCwgc2VjdGlvbnNb
aV0uY2FuSGF2ZVZhcmlhdGlvbnMpOwotICAgICAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNl
Y3Rpb25CdXR0b24oY2hvb3NlciwgYnV0dG9uQm94LCBzZWN0aW9uc1tpXS5pY29uTmFtZSwgc2Vj
dGlvbnNbaV0udGl0bGUpOwotICAgICAgICBpZiAoIWkpCi0gICAgICAgICAgICBmbG93Qm94ID0g
Ym94OwotICAgIH0KLQotICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX3Jl
c291cmNlc19sb29rdXBfZGF0YSgiL29yZy9ndGsvbGliZ3RrL2Vtb2ppL2Vtb2ppLmRhdGEiLCBH
X1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCBudWxscHRyKSk7Ci0gICAgR1JlZlB0cjxHVmFy
aWFudD4gZGF0YSA9IGdfdmFyaWFudF9uZXdfZnJvbV9ieXRlcyhHX1ZBUklBTlRfVFlQRSgiYShh
dXNzKSIpLCBieXRlcy5nZXQoKSwgVFJVRSk7Ci0gICAgR1VuaXF1ZVB0cjxHVmFyaWFudEl0ZXI+
IGl0ZXIoZ192YXJpYW50X2l0ZXJfbmV3KGRhdGEuZ2V0KCkpKTsKLQotICAgIEZ1bmN0aW9uPHZv
aWQoKT4gcG9wdWxhdGVTZWN0aW9ucyA9IFtjaG9vc2VyLCBpdGVyID0gV1RGTW92ZShpdGVyKSwg
Zmxvd0JveF0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBzdGFydCA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwotICAgICAgICB3aGlsZSAoR1JlZlB0cjxHVmFyaWFudD4gaXRlbSA9IGFkb3B0R1Jl
ZihnX3ZhcmlhbnRfaXRlcl9uZXh0X3ZhbHVlKGl0ZXIuZ2V0KCkpKSkgewotICAgICAgICAgICAg
Y29uc3QgY2hhciogbmFtZTsKLSAgICAgICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoaXRlbS5n
ZXQoKSwgMSwgIiZzIiwgJm5hbWUpOwotCi0gICAgICAgICAgICBhdXRvIGluZGV4ID0gY2hvb3Nl
ci0+cHJpdi0+c2VjdGlvbnMuZmluZE1hdGNoaW5nKFsmbmFtZV0oY29uc3QgYXV0byYgc2VjdGlv
bikgewotICAgICAgICAgICAgICAgIHJldHVybiAhZ19zdHJjbXAwKG5hbWUsIHNlY3Rpb24uZmly
c3RFbW9qaU5hbWUpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBmbG93Qm94ID0gaW5k
ZXggPT0gbm90Rm91bmQgPyBmbG93Qm94IDogY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnNbaW5kZXhd
LmJveDsKLSAgICAgICAgICAgIGF1dG8qIGNoaWxkID0gd2Via2l0RW1vamlDaG9vc2VyQWRkRW1v
amkoY2hvb3NlciwgR1RLX0ZMT1dfQk9YKGZsb3dCb3gpLCBpdGVtLmdldCgpKTsKLSAgICAgICAg
ICAgIGlmIChjaGlsZCkKLSAgICAgICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0KGNoaWxkLCAi
cG9wdXAtbWVudSIsIEdfQ0FMTEJBQ0soZW1vamlQb3B1cE1lbnUpLCBjaG9vc2VyKTsKLQotICAg
ICAgICAgICAgaWYgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQgPj0gOF9tcykKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgY2hvb3Nlci0+cHJpdi0+cG9w
dWxhdGVTZWN0aW9uc1RpbWVyID0gbnVsbHB0cjsKLSAgICB9OwotCi0gICAgY2hvb3Nlci0+cHJp
di0+cG9wdWxhdGVTZWN0aW9uc1RpbWVyID0gbWFrZVVuaXF1ZTxDYWxsYmFja1RpbWVyPihXVEZN
b3ZlKHBvcHVsYXRlU2VjdGlvbnMpKTsKLSAgICBjaG9vc2VyLT5wcml2LT5wb3B1bGF0ZVNlY3Rp
b25zVGltZXItPnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKLSAgICBjaG9v
c2VyLT5wcml2LT5wb3B1bGF0ZVNlY3Rpb25zVGltZXItPnNldE5hbWUoIltXZWJLaXRFbW9qaUNo
b29zZXJdIHBvcHVsYXRlIHNlY3Rpb25zIHRpbWVyIik7Ci0gICAgY2hvb3Nlci0+cHJpdi0+cG9w
dWxhdGVTZWN0aW9uc1RpbWVyLT5zdGFydFJlcGVhdGluZyh7IH0pOwotfQotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRFbW9qaUNob29zZXJJbml0aWFsaXplRW1vamlNYXhXaWR0aChXZWJLaXRFbW9qaUNo
b29zZXIqIGNob29zZXIpCi17Ci0gICAgLy8gR2V0IGEgcmVhc29uYWJsZSBtYXhpbXVtIHdpZHRo
IGZvciBhbiBlbW9qaS4gV2UgZG8gdGhpcyB0byBza2lwIG92ZXJseSB3aWRlIGZhbGxiYWNrCi0g
ICAgLy8gcmVuZGVyaW5nIGZvciBjZXJ0YWluIGVtb2ppcyB0aGUgZm9udCBkb2VzIG5vdCBjb250
YWluIGFuZCB0aGVyZWZvcmUgZW5kIHVwIGJlaW5nCi0gICAgLy8gcmVuZGVyZWQgYXMgbXVsdGlw
bGUgZ2x5cGhzLgotICAgIEdSZWZQdHI8UGFuZ29MYXlvdXQ+IGxheW91dCA9IGFkb3B0R1JlZihn
dGtfd2lkZ2V0X2NyZWF0ZV9wYW5nb19sYXlvdXQoR1RLX1dJREdFVChjaG9vc2VyKSwgIvCfmYIi
KSk7Ci0gICAgYXV0byogYXR0cmlidXRlcyA9IHBhbmdvX2F0dHJfbGlzdF9uZXcoKTsKLSAgICBw
YW5nb19hdHRyX2xpc3RfaW5zZXJ0KGF0dHJpYnV0ZXMsIHBhbmdvX2F0dHJfc2NhbGVfbmV3KFBB
TkdPX1NDQUxFX1hfTEFSR0UpKTsKLSAgICBwYW5nb19sYXlvdXRfc2V0X2F0dHJpYnV0ZXMobGF5
b3V0LmdldCgpLCBhdHRyaWJ1dGVzKTsKLSAgICBwYW5nb19hdHRyX2xpc3RfdW5yZWYoYXR0cmli
dXRlcyk7Ci0KLSAgICBQYW5nb1JlY3RhbmdsZSByZWN0OwotICAgIHBhbmdvX2xheW91dF9nZXRf
ZXh0ZW50cyhsYXlvdXQuZ2V0KCksICZyZWN0LCBudWxscHRyKTsKLSAgICBjaG9vc2VyLT5wcml2
LT5lbW9qaU1heFdpZHRoID0gcmVjdC53aWR0aDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1v
amlDaG9vc2VyQ29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdEVtb2pp
Q2hvb3NlciogY2hvb3NlciA9IFdFQktJVF9FTU9KSV9DSE9PU0VSKG9iamVjdCk7Ci0gICAgY2hv
b3Nlci0+cHJpdi0+c2V0dGluZ3MgPSBhZG9wdEdSZWYoZ19zZXR0aW5nc19uZXcoIm9yZy5ndGsu
U2V0dGluZ3MuRW1vamlDaG9vc2VyIikpOwotCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2Vt
b2ppX2Nob29zZXJfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQob2JqZWN0KTsKLQotICAgIHdl
YmtpdEVtb2ppQ2hvb3NlckluaXRpYWxpemVFbW9qaU1heFdpZHRoKGNob29zZXIpOwotCi0gICAg
Z3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQo
R1RLX1dJREdFVChvYmplY3QpKSwgImVtb2ppLXBpY2tlciIpOwotCi0gICAgR3RrV2lkZ2V0KiBt
YWluQm94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCAwKTsKLSAgICBH
dGtXaWRnZXQqIHNlYXJjaEVudHJ5ID0gZ3RrX3NlYXJjaF9lbnRyeV9uZXcoKTsKLSAgICBjaG9v
c2VyLT5wcml2LT5zZWFyY2hFbnRyeSA9IHNlYXJjaEVudHJ5OwotICAgIGdfc2lnbmFsX2Nvbm5l
Y3Rfc3dhcHBlZChzZWFyY2hFbnRyeSwgInNlYXJjaC1jaGFuZ2VkIiwgR19DQUxMQkFDSyh3ZWJr
aXRFbW9qaUNob29zZXJTZWFyY2hDaGFuZ2VkKSwgY2hvb3Nlcik7Ci0gICAgZ3RrX2VudHJ5X3Nl
dF9pbnB1dF9oaW50cyhHVEtfRU5UUlkoc2VhcmNoRW50cnkpLCBHVEtfSU5QVVRfSElOVF9OT19F
TU9KSSk7Ci0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1gobWFpbkJveCksIHNlYXJjaEVu
dHJ5LCBUUlVFLCBGQUxTRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KHNlYXJjaEVudHJ5KTsK
LQotICAgIEd0a1dpZGdldCogc3RhY2sgPSBndGtfc3RhY2tfbmV3KCk7Ci0gICAgY2hvb3Nlci0+
cHJpdi0+c3RhY2sgPSBzdGFjazsKLSAgICBHdGtXaWRnZXQqIGJveCA9IGd0a19ib3hfbmV3KEdU
S19PUklFTlRBVElPTl9WRVJUSUNBTCwgMCk7Ci0gICAgR3RrV2lkZ2V0KiBzd2luZG93ID0gZ3Rr
X3Njcm9sbGVkX3dpbmRvd19uZXcobnVsbHB0ciwgbnVsbHB0cik7Ci0gICAgY2hvb3Nlci0+cHJp
di0+c3dpbmRvdyA9IHN3aW5kb3c7Ci0gICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19zZXRfcG9saWN5
KEdUS19TQ1JPTExFRF9XSU5ET1coc3dpbmRvdyksIEdUS19QT0xJQ1lfTkVWRVIsIEdUS19QT0xJ
Q1lfQVVUT01BVElDKTsKLSAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9taW5fY29udGVudF9o
ZWlnaHQoR1RLX1NDUk9MTEVEX1dJTkRPVyhzd2luZG93KSwgMjUwKTsKLSAgICBndGtfc3R5bGVf
Y29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChzd2luZG93KSwg
InZpZXciKTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChib3gpLCBzd2luZG93LCBU
UlVFLCBUUlVFLCAwKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coc3dpbmRvdyk7Ci0KLSAgICBHdGtX
aWRnZXQqIGVtb2ppQm94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCA2
KTsKLSAgICBnX29iamVjdF9zZXQoZW1vamlCb3gsICJtYXJnaW4iLCA2LCBudWxscHRyKTsKLSAg
ICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHN3aW5kb3cpLCBlbW9qaUJveCk7Ci0g
ICAgZ3RrX3dpZGdldF9zaG93KGVtb2ppQm94KTsKLQotICAgIEd0a1dpZGdldCogYnV0dG9uQm94
ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIDApOwotICAgIGd0a19i
b3hfcGFja19zdGFydChHVEtfQk9YKGJveCksIGJ1dHRvbkJveCwgVFJVRSwgRkFMU0UsIDApOwot
ICAgIGd0a193aWRnZXRfc2hvdyhidXR0b25Cb3gpOwotCi0gICAgR3RrQWRqdXN0bWVudCogdkFk
anVzdG1lbnQgPSBndGtfc2Nyb2xsZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xM
RURfV0lORE9XKHN3aW5kb3cpKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KHZBZGp1c3RtZW50LCAi
dmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sodmVydGljYWxBZGp1c3RtZW50Q2hhbmdlZCksIGNo
b29zZXIpOwotCi0gICAgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBSZWNlbnQoY2hvb3NlciwgR1RL
X0JPWChlbW9qaUJveCksIEdUS19CT1goYnV0dG9uQm94KSwgdkFkanVzdG1lbnQpOwotCi0gICAg
d2Via2l0RW1vamlDaG9vc2VyU2V0dXBFbW9qaVNlY3Rpb25zKGNob29zZXIsIEdUS19CT1goZW1v
amlCb3gpLCBHVEtfQk9YKGJ1dHRvbkJveCkpOwotCi0gICAgZ3RrX3dpZGdldF9zZXRfc3RhdGVf
ZmxhZ3MoY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuZmlyc3QoKS5idXR0b24sIEdUS19TVEFURV9G
TEFHX0NIRUNLRUQsIEZBTFNFKTsKLQotICAgIGd0a19zdGFja19hZGRfbmFtZWQoR1RLX1NUQUNL
KHN0YWNrKSwgYm94LCAibGlzdCIpOwotICAgIGd0a193aWRnZXRfc2hvdyhib3gpOwotCi0gICAg
Z3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1gobWFpbkJveCksIHN0YWNrLCBUUlVFLCBUUlVFLCAw
KTsKLSAgICBndGtfd2lkZ2V0X3Nob3coc3RhY2spOwotCi0gICAgZ3RrX2NvbnRhaW5lcl9hZGQo
R1RLX0NPTlRBSU5FUihvYmplY3QpLCBtYWluQm94KTsKLSAgICBndGtfd2lkZ2V0X3Nob3cobWFp
bkJveCk7Ci0KLSAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cEZpbHRlcnMoY2hvb3Nlcik7Ci19
Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNob3coR3RrV2lkZ2V0KiB3aWRnZXQp
Ci17Ci0gICAgR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfZW1vamlfY2hvb3Nlcl9wYXJlbnRfY2xh
c3MpLT5zaG93KHdpZGdldCk7Ci0KLSAgICBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIgPSBX
RUJLSVRfRU1PSklfQ0hPT1NFUih3aWRnZXQpOwotICAgIGF1dG8qIGFkanVzdG1lbnQgPSBndGtf
c2Nyb2xsZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xMRURfV0lORE9XKGNob29z
ZXItPnByaXYtPnN3aW5kb3cpKTsKLSAgICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUoYWRqdXN0
bWVudCwgMCk7Ci0KLSAgICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGNob29zZXItPnBy
aXYtPnNlYXJjaEVudHJ5KSwgIiIpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfZW1vamlfY2hv
b3Nlcl9jbGFzc19pbml0KFdlYktpdEVtb2ppQ2hvb3NlckNsYXNzKiBrbGFzcykKLXsKLSAgICBH
T2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwotICAgIG9i
amVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9IHdlYmtpdEVtb2ppQ2hvb3NlckNvbnN0cnVjdGVkOwot
Ci0gICAgR3RrV2lkZ2V0Q2xhc3MqIHdpZGdldENsYXNzID0gR1RLX1dJREdFVF9DTEFTUyhrbGFz
cyk7Ci0gICAgd2lkZ2V0Q2xhc3MtPnNob3cgPSB3ZWJraXRFbW9qaUNob29zZXJTaG93OwotCi0g
ICAgc2lnbmFsc1tFTU9KSV9QSUNLRURdID0gZ19zaWduYWxfbmV3KAotICAgICAgICAiZW1vamkt
cGlja2VkIiwKLSAgICAgICAgR19PQkpFQ1RfQ0xBU1NfVFlQRShvYmplY3RDbGFzcyksCi0gICAg
ICAgIEdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICBudWxscHRyLCBudWxs
cHRyLAotICAgICAgICBudWxscHRyLAotICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAg
R19UWVBFX1NUUklORyB8IEdfU0lHTkFMX1RZUEVfU1RBVElDX1NDT1BFKTsKLX0KIAogR3RrV2lk
Z2V0KiB3ZWJraXRFbW9qaUNob29zZXJOZXcoKQogewotICAgIFdlYktpdEVtb2ppQ2hvb3Nlciog
YXV0aERpYWxvZyA9IFdFQktJVF9FTU9KSV9DSE9PU0VSKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQ
RV9FTU9KSV9DSE9PU0VSLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIEdUS19XSURHRVQoYXV0aERp
YWxvZyk7CisgICAgc3RhdGljIEdUeXBlIGNob29zZXJUeXBlID0gKFtdIHsKKyAgICAgICAgR3Rr
V2lkZ2V0KiBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF9p
bnB1dF9oaW50cyhHVEtfRU5UUlkoZW50cnkpLCBHVEtfSU5QVVRfSElOVF9FTU9KSSk7CisgICAg
ICAgIGdfb2JqZWN0X3JlZl9zaW5rKGVudHJ5KTsKKworICAgICAgICBHdGtFbnRyeUNsYXNzKiBl
bnRyeUNsYXNzID0gR1RLX0VOVFJZX0dFVF9DTEFTUyhlbnRyeSk7CisgICAgICAgIGVudHJ5Q2xh
c3MtPmluc2VydF9lbW9qaShHVEtfRU5UUlkoZW50cnkpKTsKKworICAgICAgICAvLyBUaGUgZW1v
amkgZGF0YSBpcyBmZXRjaGVkIGluIGEgZGVsYXllZCBtYW5uZXIsIHNvIGEgZGlyZWN0IGNhbGwg
dG8KKyAgICAgICAgLy8gZ3RrX3dpZGdldF9kZXN0cm95KGVudHJ5KSByZXN1bHRzIGluIGNyaXRp
Y2FsIHdhcm5pbmcgZHVlIHRvIGFuCisgICAgICAgIC8vIGF0dGVtcHQgdG8gdW5yZWYgYSB5ZXQg
dW5wb3B1bGF0ZWQgdmFsdWUuIEFyZ3VhYmx5LCBHVEsgc2hvdWxkIGRvIGEKKyAgICAgICAgLy8g
bnVsbC1jaGVjaywgYnV0IHRoaXMgY29kZSBuZWVkcyB0byB3b3JrIGV2ZW4gZm9yIG9sZGVyIHZl
cnNpb25zIG9mCisgICAgICAgIC8vIEdUSyB3aGljaCBtYXkgYmUgdW5wYXRjaGVkLiBUaGVyZWZv
cmUsIGRlc3Ryb3kgdGhlIGR1bW15IGVudHJ5IGluCisgICAgICAgIC8vIGEgbG93IHByaW9yaXR5
IGlkbGUgc291cmNlLCBhZnRlciB0aGUgc291cmNlIHRoYXQgZmlsbHMgdGhlIGRhdGEKKyAgICAg
ICAgLy8gaGFzIGJlZW4gYWxyZWFkeSBkaXNwYXRjaGVkLgorICAgICAgICBHUmVmUHRyPEdTb3Vy
Y2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKKyAgICAgICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgW10odm9pZCogZGF0YSkgeworICAgICAg
ICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQoZGF0YSkpOworICAgICAgICAgICAg
cmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKyAgICAgICAgfSwgZW50cnksIG51bGxwdHIpOworICAg
ICAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0xPVyk7
CisgICAgICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIFJ1bkxvb3A6Om1haW4oKS5t
YWluQ29udGV4dCgpKTsKKworICAgICAgICByZXR1cm4gZ190eXBlX2Zyb21fbmFtZSgiR3RrRW1v
amlDaG9vc2VyIik7CisgICAgfSkoKTsKKworICAgIHJldHVybiBHVEtfV0lER0VUKGdfb2JqZWN0
X25ldyhjaG9vc2VyVHlwZSwgbnVsbHB0cikpOwogfQogCiAjZW5kaWYgLy8gR1RLX0NIRUNLX1ZF
UlNJT04oMywgMjQsIDApICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5oCmluZGV4IGU1ZTQwNzBlYjJmZDMy
ZjI4Mzg3Yzg4YjMzNmEzMmYxYzk3MWNmOWEuLmVmMDBhZjdlMjhmMWM5NzVmMzBkYTYyNjM3ZWVm
NGU1NjBkYjkzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RW1vamlDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRFbW9qaUNob29zZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxOSwgMjAyMSBJZ2FsaWEg
Uy5MLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSwyOCArMjUsNiBAQAogCiBHX0JFR0lOX0RF
Q0xTCiAKLSNkZWZpbmUgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUiAgICAgICAgICAgICh3ZWJr
aXRfZW1vamlfY2hvb3Nlcl9nZXRfdHlwZSgpKQotI2RlZmluZSBXRUJLSVRfRU1PSklfQ0hPT1NF
UihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9FTU9KSV9DSE9PU0VSLCBXZWJLaXRFbW9qaUNob29zZXIpKQotI2RlZmluZSBXRUJL
SVRfSVNfRU1PSklfQ0hPT1NFUihvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9U
WVBFKChvYmopLCBXRUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VSKSkKLSNkZWZpbmUgV0VCS0lUX0VN
T0pJX0NIT09TRVJfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUiwgV2ViS2l0RW1vamlDaG9vc2VyQ2xhc3Mp
KQotI2RlZmluZSBXRUJLSVRfSVNfRU1PSklfQ0hPT1NFUl9DTEFTUyhrbGFzcykgKEdfVFlQRV9D
SEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VSKSkKLSNk
ZWZpbmUgV0VCS0lUX0VNT0pJX0NIT09TRVJfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUiwgV2ViS2l0RW1v
amlDaG9vc2VyQ2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RW1vamlDaG9vc2VyICAg
ICAgICBXZWJLaXRFbW9qaUNob29zZXI7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RW1vamlDaG9v
c2VyQ2xhc3MgICBXZWJLaXRFbW9qaUNob29zZXJDbGFzczsKLXR5cGVkZWYgc3RydWN0IF9XZWJL
aXRFbW9qaUNob29zZXJQcml2YXRlIFdlYktpdEVtb2ppQ2hvb3NlclByaXZhdGU7Ci0KLXN0cnVj
dCBfV2ViS2l0RW1vamlDaG9vc2VyIHsKLSAgICBHdGtQb3BvdmVyIHBhcmVudDsKLQotICAgIFdl
YktpdEVtb2ppQ2hvb3NlclByaXZhdGUqIHByaXY7Ci19OwotCi1zdHJ1Y3QgX1dlYktpdEVtb2pp
Q2hvb3NlckNsYXNzIHsKLSAgICBHdGtQb3BvdmVyQ2xhc3MgcGFyZW50Q2xhc3M7Ci19OwotCi1H
VHlwZSB3ZWJraXRfZW1vamlfY2hvb3Nlcl9nZXRfdHlwZSgpOwogR3RrV2lkZ2V0KiB3ZWJraXRF
bW9qaUNob29zZXJOZXcoKTsKIAogR19FTkRfREVDTFMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441130</attachid>
            <date>2021-10-13 13:49:18 -0700</date>
            <delta_ts>2021-10-13 15:17:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228664-20211013224916.patch</filename>
            <type>text/plain</type>
            <size>33391</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMDczYjkzYWJjMzY3NTc1
OTY1NDU3NDZiNzc0NjU4YmIwYmIwY2EuLmFjN2NjNjM3NWExYTY5NzdjY2JlZWJmNjcyZDU4MGJm
Y2Y0MzA0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMTAtMTIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBPcGVu
aW5nIGVtb2ppIGNob29zZXIgY3Jhc2hlcyBVSSBwcm9jZXNzIHdpdGggR1RLIDMuMjQuMzAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODY2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIEluc3RlYWQg
b2YgcHJvdmlkaW5nIGEgY29weSBvZiB0aGUgZW1vamkgY2hvb3NlciB3aWRnZXQsIHVzZSBHTGli
J3MKKyAgICAgICAgaW50cm9zcGVjdGlvbiBmZWF0dXJlcyBhbmQgYSBsaXR0bGUgc3ByaW5rbGUg
b2Yga25vd2xlZGdlIGFib3V0IGhvdworICAgICAgICBHVEsgd29ya3MgaW4gb3JkZXIgdG8gb2J0
YWluIHRoZSB0eXBlIGNvZGUgb2YgdGhlIEd0a0Vtb2ppQ2hvb3NlcgorICAgICAgICB3aWRnZXQg
aW5jbHVkZWQgd2l0aCBHVEsuIFRoaXMgZW5zdXJlcyB0aGF0IGEgd29ya2luZyB3aWRnZXQgaXMK
KyAgICAgICAgYWx3YXlzIHVzZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgR1RLIHZlcnNp
b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICh3ZWJraXRFbW9qaUNo
b29zZXJOZXcpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hv
b3NlckFkZEVtb2ppKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJl
Y2VudEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoZW1vamlBY3RpdmF0ZWQpOiBEZWxldGVkLgor
ICAgICAgICAoZW1vamlEYXRhSGFzVmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJr
aXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChlbW9qaUxv
bmdQcmVzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGVtb2ppUHJlc3NlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChlbW9qaVBvcHVwTWVudSk6IERlbGV0ZWQuCisgICAgICAgICh2ZXJ0aWNhbEFkanVz
dG1lbnRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVw
U2VjdGlvbkJveCk6IERlbGV0ZWQuCisgICAgICAgIChzY3JvbGxUb1NlY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckVuc3VyZUVtcHR5UmVzdWx0KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNlYXJjaENoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKHdl
YmtpdEVtb2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3
ZWJraXRFbW9qaUNob29zZXJJbml0aWFsaXplRW1vamlNYXhXaWR0aCk6IERlbGV0ZWQuCisgICAg
ICAgICh3ZWJraXRFbW9qaUNob29zZXJDb25zdHJ1Y3RlZCk6IERlbGV0ZWQuCisgICAgICAgICh3
ZWJraXRFbW9qaUNob29zZXJTaG93KTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdF9lbW9qaV9j
aG9vc2VyX2NsYXNzX2luaXQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVtb2ppQ2hvb3Nlci5oOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFy
ZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
cG8vUE9URklMRVMuaW4KaW5kZXggODIxMmJmMmNjOTk2NzkxMDE5MmQyZGFiZDVhMTVkNjBlMjI2
MTM2My4uODVkYzczZGExNTA3OWMxYTkzNTM1NWRmNTJjMzVjYWE2ZGY5NTRkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgpAQCAtMzMsNyArMzMsNiBAQCBM
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAogLi4vLi4vLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmNwcAogLi4vLi4vLi4vV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcAogLi4vLi4vLi4vV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuY3BwCi0uLi8uLi8uLi9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcAogLi4vLi4vLi4v
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50Q3VzdG9tV2lkZ2V0LmNwcAogLi4v
Li4vLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcAog
Li4vLi4vLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0ltcGwu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVt
b2ppQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVt
b2ppQ2hvb3Nlci5jcHAKaW5kZXggY2JjYTBmMTI2NmFmYWZkZDAxYWFmYWQzZjM5ZDczM2YxMDZm
MzEyOC4uNmMwODg4MGYzMTg2MzRmZDAyNTY1MmUxMWE5NWExMGFmNTY2NWU3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2Vy
LmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMu
TC4KLSAqIENvcHlyaWdodCAoQykgMjAxNyBSZWQgSGF0LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsNjIzICsxNyw1NiBA
QAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotLy8gR3RrRW1vamlDaG9v
c2VyIGlzIHByaXZhdGUgaW4gR1RLIDMsIHNvIHRoaXMgaXMgYmFzZWQgaW4gdGhlIEdUSyBjb2Rl
LCBqdXN0IGFkYXB0ZWQgdG8KLS8vIFdlYktpdCBjb2Rpbmcgc3R5bGUsIHVzaW5nIHNvbWUgaW50
ZXJuYWwgdHlwZXMgZnJvbSBXVEYgdG8gc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uCi0vLyBh
bmQgbm90IHVzaW5nIEd0a0J1aWxkZXIgZm9yIHRoZSBVSS4KKy8vIEd0a0Vtb2ppQ2hvb3NlciBp
cyBwcml2YXRlIGluIEdUSyAzLCBzbyB0aGlzIGdvZXMgdGhyb3VnaCBzb21lIGhvb3BzIHRvCisv
LyBvYnRhaW4gaXRzIHR5cGUgY29kZSB2aWEgZ190eXBlX2Zyb21fbmFtZSgpLiBUaGUgbWFpbiBp
c3N1ZSBpcyB0aGF0IHRoZQorLy8gdHlwZSBuZWVkcyB0byBoYXZlIGJlZW4gcHJldmlvdXNseSBy
ZWdpc3RlcmVkLCB3aGljaCBpbiBwcmFjdGljZSBtZWFucworLy8gdHJpZ2dlcmluZyBhIGNhbGwg
dG8gZ3RrX2Vtb2ppX2Nob29zZXJfZ2V0X3R5cGUoKSwgYWxzbyBhIGhpZGRlbiBwcml2YXRlCisv
LyBmdW5jdGlvbi4KKy8vCisvLyBPbmUgcG9pbnQgaW4gdGhlIHB1YmxpYyBBUEkgd2hlcmUgYW4g
ZW1vamkgY2hvb3NlciBjYW4gYmUgZXhwbGljaXRseQorLy8gdHJpZ2dlcmVkIGlzIHRoZSBHdGtF
bnRyeS5pbnNlcnRfZW1vamkgdmZ1bmM6IGVpdGhlciBhdCB0aGF0IHBvaW50IHRoZQorLy8gR3Rr
RW1vamlDaG9vc2VyIHVzZWQgYnkgdGhlIGVudHJ5IGhhcyBiZWVuIGFscmVhZHkgY3JlYXRlZCwg
b3IgaXQgd2lsbAorLy8gYmUgY3JlYXRlZCBieSBjYWxsaW5nIGl0LiBPYmplY3QgaW5zdGFudGlh
dGlvbiBuZWVkcyB0aGUgdHlwZSB0byBiZQorLy8gcmVnaXN0ZXJlZCwgc28gYWZ0ZXIgbWFraW5n
IHN1cmUgYXQgbGVhc3Qgb25lIGluc3RhbmNlIGlzIGNyZWF0ZWQgaXQKKy8vIGlzIHNhZmUgdG8g
dXNlIGdfdHlwZV9mcm9tX25hbWUoKS4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldlYktpdEVtb2ppQ2hvb3Nlci5oIgogCiAjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDAp
ICYmICFVU0UoR1RLNCkKIAotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2ds
aWIvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1lbnVtIHsKLSAgICBFTU9KSV9QSUNLRUQsCi0KLSAg
ICBMQVNUX1NJR05BTAotfTsKLQotc3RydWN0IEVtb2ppU2VjdGlvbiB7Ci0gICAgR3RrV2lkZ2V0
KiBoZWFkaW5nIHsgbnVsbHB0ciB9OwotICAgIEd0a1dpZGdldCogYm94IHsgbnVsbHB0ciB9Owot
ICAgIEd0a1dpZGdldCogYnV0dG9uIHsgbnVsbHB0ciB9OwotICAgIGJvb2wgaXNFbXB0eSB7IGZh
bHNlIH07Ci0gICAgY29uc3QgY2hhciogZmlyc3RFbW9qaU5hbWUgeyBudWxscHRyIH07Ci19Owot
Ci11c2luZyBTZWN0aW9uTGlzdCA9IFZlY3RvcjxFbW9qaVNlY3Rpb24sIDk+OwotCi1jbGFzcyBD
YWxsYmFja1RpbWVyIGZpbmFsIDogcHVibGljIFJ1bkxvb3A6OlRpbWVyQmFzZSB7Ci1wdWJsaWM6
Ci0gICAgQ2FsbGJhY2tUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCi0gICAgICAg
IDogUnVuTG9vcDo6VGltZXJCYXNlKFJ1bkxvb3A6Om1haW4oKSkKLSAgICAgICAgLCBtX2NhbGxi
YWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAgICB9Ci0KLSAgICB+Q2FsbGJhY2tUaW1l
cigpID0gZGVmYXVsdDsKLQotcHJpdmF0ZToKLSAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUKLSAg
ICB7Ci0gICAgICAgIG1fY2FsbGJhY2soKTsKLSAgICB9Ci0KLSAgICBGdW5jdGlvbjx2b2lkKCk+
IG1fY2FsbGJhY2s7Ci19OwotCi1zdHJ1Y3QgX1dlYktpdEVtb2ppQ2hvb3NlclByaXZhdGUgewot
ICAgIEd0a1dpZGdldCogc3RhY2s7Ci0gICAgR3RrV2lkZ2V0KiBzd2luZG93OwotICAgIEd0a1dp
ZGdldCogc2VhcmNoRW50cnk7Ci0gICAgU2VjdGlvbkxpc3Qgc2VjdGlvbnM7Ci0gICAgR1JlZlB0
cjxHU2V0dGluZ3M+IHNldHRpbmdzOwotICAgIEhhc2hTZXQ8R1JlZlB0cjxHdGtHZXN0dXJlPj4g
Z2VzdHVyZXM7Ci0gICAgaW50IGVtb2ppTWF4V2lkdGg7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENh
bGxiYWNrVGltZXI+IHBvcHVsYXRlU2VjdGlvbnNUaW1lcjsKLX07Ci0KLXN0YXRpYyBndWludCBz
aWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKLQotV0VCS0lUX0RFRklORV9UWVBFKFdlYktp
dEVtb2ppQ2hvb3Nlciwgd2Via2l0X2Vtb2ppX2Nob29zZXIsIEdUS19UWVBFX1BPUE9WRVIpCi0K
LXN0YXRpYyB2b2lkIGVtb2ppUG9wdXBNZW51KEd0a1dpZGdldCosIFdlYktpdEVtb2ppQ2hvb3Nl
ciopOwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgYm94U3BhY2UgPSA2OwotCi1zdGF0aWMgdm9p
ZCBlbW9qaUhvdmVyZWQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50KiBldmVudCkKLXsKLSAg
ICBpZiAoZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KSA9PSBHREtfRU5URVJfTk9USUZZ
KQotICAgICAgICBndGtfd2lkZ2V0X3NldF9zdGF0ZV9mbGFncyh3aWRnZXQsIEdUS19TVEFURV9G
TEFHX1BSRUxJR0hULCBGQUxTRSk7Ci0gICAgZWxzZQotICAgICAgICBndGtfd2lkZ2V0X3Vuc2V0
X3N0YXRlX2ZsYWdzKHdpZGdldCwgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQpOwotfQotCi1zdGF0
aWMgR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShXZWJLaXRFbW9qaUNob29z
ZXIqIGNob29zZXIsIEd0a0Zsb3dCb3gqIHBhcmVudCwgR1ZhcmlhbnQqIGl0ZW0sIGJvb2wgcHJl
cGVuZCA9IGZhbHNlLCBndW5pY2hhciBtb2RpZmllciA9IDApCi17Ci0gICAgY2hhciB0ZXh0WzY0
XTsKLSAgICBjaGFyKiB0ZXh0UHRyID0gdGV4dDsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiBjb2Rl
cyA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfZ2V0X2NoaWxkX3ZhbHVlKGl0ZW0sIDApKTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZ192YXJpYW50X25fY2hpbGRyZW4oY29kZXMuZ2V0KCkp
OyArK2kpIHsKLSAgICAgICAgZ3VuaWNoYXIgY29kZTsKLSAgICAgICAgZ192YXJpYW50X2dldF9j
aGlsZChjb2Rlcy5nZXQoKSwgaSwgInUiLCAmY29kZSk7Ci0gICAgICAgIGlmICghY29kZSkKLSAg
ICAgICAgICAgIGNvZGUgPSBtb2RpZmllcjsKLSAgICAgICAgaWYgKGNvZGUpCi0gICAgICAgICAg
ICB0ZXh0UHRyICs9IGdfdW5pY2hhcl90b191dGY4KGNvZGUsIHRleHRQdHIpOwotICAgIH0KLSAg
ICAvLyBVK0ZFMEYgaXMgdGhlIEVtb2ppIHZhcmlhdGlvbiBzZWxlY3RvcgotICAgIHRleHRQdHIg
Kz0gZ191bmljaGFyX3RvX3V0ZjgoMHhGRTBGLCB0ZXh0UHRyKTsKLSAgICB0ZXh0UHRyWzBdID0g
J1wwJzsKLQotICAgIEd0a1dpZGdldCogbGFiZWwgPSBndGtfbGFiZWxfbmV3KHRleHQpOwotICAg
IFBhbmdvQXR0ckxpc3QqIGF0dHJpYnV0ZXMgPSBwYW5nb19hdHRyX2xpc3RfbmV3KCk7Ci0gICAg
cGFuZ29fYXR0cl9saXN0X2luc2VydChhdHRyaWJ1dGVzLCBwYW5nb19hdHRyX3NjYWxlX25ldyhQ
QU5HT19TQ0FMRV9YX0xBUkdFKSk7Ci0gICAgZ3RrX2xhYmVsX3NldF9hdHRyaWJ1dGVzKEdUS19M
QUJFTChsYWJlbCksIGF0dHJpYnV0ZXMpOwotICAgIHBhbmdvX2F0dHJfbGlzdF91bnJlZihhdHRy
aWJ1dGVzKTsKLQotICAgIFBhbmdvTGF5b3V0KiBsYXlvdXQgPSBndGtfbGFiZWxfZ2V0X2xheW91
dChHVEtfTEFCRUwobGFiZWwpKTsKLSAgICBQYW5nb1JlY3RhbmdsZSByZWN0OwotICAgIHBhbmdv
X2xheW91dF9nZXRfZXh0ZW50cyhsYXlvdXQsICZyZWN0LCBudWxscHRyKTsKLSAgICAvLyBDaGVj
ayBmb3IgZmFsbGJhY2sgcmVuZGVyaW5nIHRoYXQgZ2VuZXJhdGVzIHRvbyB3aWRlIGl0ZW1zLgot
ICAgIGlmIChwYW5nb19sYXlvdXRfZ2V0X3Vua25vd25fZ2x5cGhzX2NvdW50KGxheW91dCkgfHwg
cmVjdC53aWR0aCA+PSAxLjUgKiBjaG9vc2VyLT5wcml2LT5lbW9qaU1heFdpZHRoKSB7Ci0gICAg
ICAgIGd0a193aWRnZXRfZGVzdHJveShsYWJlbCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIH0KLQotICAgIEd0a1dpZGdldCogY2hpbGQgPSBndGtfZmxvd19ib3hfY2hpbGRfbmV3KCk7
Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0X3N0eWxlX2Nv
bnRleHQoY2hpbGQpLCAiZW1vamkiKTsKLSAgICBnX29iamVjdF9zZXRfZGF0YV9mdWxsKEdfT0JK
RUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiLCBnX3ZhcmlhbnRfcmVmKGl0ZW0pLCByZWludGVycHJl
dF9jYXN0PEdEZXN0cm95Tm90aWZ5PihnX3ZhcmlhbnRfdW5yZWYpKTsKLSAgICBpZiAobW9kaWZp
ZXIpCi0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgIm1vZGlmaWVy
IiwgR1VJTlRfVE9fUE9JTlRFUihtb2RpZmllcikpOwotCi0gICAgR3RrV2lkZ2V0KiBldmVudEJv
eCA9IGd0a19ldmVudF9ib3hfbmV3KCk7Ci0gICAgZ3RrX3dpZGdldF9hZGRfZXZlbnRzKGV2ZW50
Qm94LCBHREtfRU5URVJfTk9USUZZX01BU0sgfCBHREtfTEVBVkVfTk9USUZZX01BU0spOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3QoZXZlbnRCb3gsICJlbnRlci1ub3RpZnktZXZlbnQiLCBHX0NBTExC
QUNLKGVtb2ppSG92ZXJlZCksIG51bGxwdHIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZXZlbnRC
b3gsICJsZWF2ZS1ub3RpZnktZXZlbnQiLCBHX0NBTExCQUNLKGVtb2ppSG92ZXJlZCksIG51bGxw
dHIpOwotICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZXZlbnRCb3gpLCBsYWJl
bCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGxhYmVsKTsKLQotICAgIGd0a19jb250YWluZXJfYWRk
KEdUS19DT05UQUlORVIoY2hpbGQpLCBldmVudEJveCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGV2
ZW50Qm94KTsKLQotICAgIGd0a19mbG93X2JveF9pbnNlcnQocGFyZW50LCBjaGlsZCwgcHJlcGVu
ZCA/IDAgOiAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGNoaWxkKTsKLQotICAgIHJldHVybiBj
aGlsZDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyQWRkUmVjZW50SXRlbShX
ZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEdWYXJpYW50KiBpdGVtLCBndW5pY2hhciBtb2Rp
ZmllcikKLXsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiBwcm90ZWN0SXRlbShpdGVtKTsKLSAgICBH
VmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZidWls
ZGVyLCBHX1ZBUklBTlRfVFlQRSgiYSgoYXVzcyl1KSIpKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoJmJ1aWxkZXIsICIoQChhdXNzKXUpIiwgaXRlbSwgbW9kaWZpZXIpOwotCi0gICAgYXV0
byYgc2VjdGlvbiA9IGNob29zZXItPnByaXYtPnNlY3Rpb25zLmZpcnN0KCk7Ci0KLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbWF4UmVjZW50SXRlbXMgPSA3ICogMzsKLQotICAgIEdVbmlxdWVQ
dHI8R0xpc3Q+IGNoaWxkcmVuKGd0a19jb250YWluZXJfZ2V0X2NoaWxkcmVuKEdUS19DT05UQUlO
RVIoc2VjdGlvbi5ib3gpKSk7Ci0gICAgdW5zaWduZWQgaSA9IDE7Ci0gICAgZm9yIChhdXRvKiBs
ID0gY2hpbGRyZW4uZ2V0KCk7IGw7IGwgPSBnX2xpc3RfbmV4dChsKSwgKytpKSB7Ci0gICAgICAg
IGF1dG8qIGl0ZW0yID0gc3RhdGljX2Nhc3Q8R1ZhcmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShH
X09CSkVDVChsLT5kYXRhKSwgImVtb2ppLWRhdGEiKSk7Ci0gICAgICAgIGF1dG8gbW9kaWZpZXIy
ID0gc3RhdGljX2Nhc3Q8Z3VuaWNoYXI+KEdQT0lOVEVSX1RPX1VJTlQoZ19vYmplY3RfZ2V0X2Rh
dGEoR19PQkpFQ1QobC0+ZGF0YSksICJtb2RpZmllciIpKSk7Ci0gICAgICAgIGlmIChtb2RpZmll
ciA9PSBtb2RpZmllcjIgJiYgZ192YXJpYW50X2VxdWFsKGl0ZW0sIGl0ZW0yKSkgewotICAgICAg
ICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQobC0+ZGF0YSkpOwotICAgICAgICAg
ICAgLS1pOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
aSA+PSBtYXhSZWNlbnRJdGVtcykgewotICAgICAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdU
S19XSURHRVQobC0+ZGF0YSkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQot
ICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICIoQChhdXNzKXUpIiwgaXRl
bTIsIG1vZGlmaWVyMik7Ci0gICAgfQotCi0gICAgYXV0byogY2hpbGQgPSB3ZWJraXRFbW9qaUNo
b29zZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19CT1goc2VjdGlvbi5ib3gpLCBpdGVtLCB0
cnVlLCBtb2RpZmllcik7Ci0gICAgaWYgKGNoaWxkKQotICAgICAgICBnX3NpZ25hbF9jb25uZWN0
KGNoaWxkLCAicG9wdXAtbWVudSIsIEdfQ0FMTEJBQ0soZW1vamlQb3B1cE1lbnUpLCBjaG9vc2Vy
KTsKLQotICAgIGd0a193aWRnZXRfc2hvdyhzZWN0aW9uLmJveCk7Ci0gICAgZ3RrX3dpZGdldF9z
ZXRfc2Vuc2l0aXZlKHNlY3Rpb24uYnV0dG9uLCBUUlVFKTsKLQotICAgIGdfc2V0dGluZ3Nfc2V0
X3ZhbHVlKGNob29zZXItPnByaXYtPnNldHRpbmdzLmdldCgpLCAicmVjZW50LWVtb2ppIiwgZ192
YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGVtb2ppQWN0
aXZhdGVkKEd0a0Zsb3dCb3gqIGJveCwgR3RrRmxvd0JveENoaWxkKiBjaGlsZCwgV2ViS2l0RW1v
amlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIGd0a19wb3BvdmVyX3BvcGRvd24oR1RLX1BPUE9W
RVIoY2hvb3NlcikpOwotCi0gICAgR3RrV2lkZ2V0KiBsYWJlbCA9IGd0a19iaW5fZ2V0X2NoaWxk
KEdUS19CSU4oZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihjaGlsZCkpKSk7Ci0gICAgR1VuaXF1
ZVB0cjxjaGFyPiB0ZXh0KGdfc3RyZHVwKGd0a19sYWJlbF9nZXRfbGFiZWwoR1RLX0xBQkVMKGxh
YmVsKSkpKTsKLQotICAgIGF1dG8qIGl0ZW0gPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdfb2Jq
ZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiKSk7Ci0gICAgYXV0byBt
b2RpZmllciA9IHN0YXRpY19jYXN0PGd1bmljaGFyPihHUE9JTlRFUl9UT19VSU5UKGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgIm1vZGlmaWVyIikpKTsKLSAgICB3ZWJraXRFbW9q
aUNob29zZXJBZGRSZWNlbnRJdGVtKGNob29zZXIsIGl0ZW0sIG1vZGlmaWVyKTsKLSAgICBnX3Np
Z25hbF9lbWl0KGNob29zZXIsIHNpZ25hbHNbRU1PSklfUElDS0VEXSwgMCwgdGV4dC5nZXQoKSk7
Ci19Ci0KLXN0YXRpYyBib29sIGVtb2ppRGF0YUhhc1ZhcmlhdGlvbnMoR1ZhcmlhbnQqIGVtb2pp
RGF0YSkKLXsKLSAgICBHUmVmUHRyPEdWYXJpYW50PiBjb2RlcyA9IGFkb3B0R1JlZihnX3Zhcmlh
bnRfZ2V0X2NoaWxkX3ZhbHVlKGVtb2ppRGF0YSwgMCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZ192YXJpYW50X25fY2hpbGRyZW4oY29kZXMuZ2V0KCkpOyArK2kpIHsKLSAgICAgICAg
Z3VuaWNoYXIgY29kZTsKLSAgICAgICAgZ192YXJpYW50X2dldF9jaGlsZChjb2Rlcy5nZXQoKSwg
aSwgInUiLCAmY29kZSk7Ci0gICAgICAgIGlmICghY29kZSkKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVt
b2ppQ2hvb3NlclNob3dWYXJpYXRpb25zKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR3Rr
V2lkZ2V0KiBjaGlsZCkKLXsKLSAgICBpZiAoIWNoaWxkKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBhdXRvKiBlbW9qaURhdGEgPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdfb2JqZWN0X2dldF9k
YXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiKSk7Ci0gICAgaWYgKCFlbW9qaURhdGEp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZW1vamlEYXRhSGFzVmFyaWF0aW9ucyhlbW9q
aURhdGEpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtXaWRnZXQqIHBvcG92ZXIgPSBndGtf
cG9wb3Zlcl9uZXcoY2hpbGQpOwotICAgIEd0a1dpZGdldCogdmlldyA9IGd0a19ib3hfbmV3KEdU
S19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRf
Y2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dCh2aWV3KSwgInZpZXciKTsKLSAgICBH
dGtXaWRnZXQqIGJveCA9IGd0a19mbG93X2JveF9uZXcoKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0
KGJveCwgImNoaWxkLWFjdGl2YXRlZCIsIEdfQ0FMTEJBQ0soZW1vamlBY3RpdmF0ZWQpLCBjaG9v
c2VyKTsKLSAgICBndGtfZmxvd19ib3hfc2V0X2hvbW9nZW5lb3VzKEdUS19GTE9XX0JPWChib3gp
LCBUUlVFKTsKLSAgICBndGtfZmxvd19ib3hfc2V0X21pbl9jaGlsZHJlbl9wZXJfbGluZShHVEtf
RkxPV19CT1goYm94KSwgNik7Ci0gICAgZ3RrX2Zsb3dfYm94X3NldF9tYXhfY2hpbGRyZW5fcGVy
X2xpbmUoR1RLX0ZMT1dfQk9YKGJveCksIDYpOwotICAgIGd0a19mbG93X2JveF9zZXRfYWN0aXZh
dGVfb25fc2luZ2xlX2NsaWNrKEdUS19GTE9XX0JPWChib3gpLCBUUlVFKTsKLSAgICBndGtfZmxv
d19ib3hfc2V0X3NlbGVjdGlvbl9tb2RlKEdUS19GTE9XX0JPWChib3gpLCBHVEtfU0VMRUNUSU9O
X05PTkUpOwotICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIodmlldyksIGJveCk7
Ci0gICAgZ3RrX3dpZGdldF9zaG93KGJveCk7Ci0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NP
TlRBSU5FUihwb3BvdmVyKSwgdmlldyk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KHZpZXcpOwotCi0g
ICAgd2Via2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RLX0ZMT1dfQk9YKGJveCks
IGVtb2ppRGF0YSk7Ci0gICAgZm9yIChndW5pY2hhciBtb2RpZmllciA9IDB4MUYzRkI7IG1vZGlm
aWVyIDw9IDB4MUYzRkY7ICsrbW9kaWZpZXIpCi0gICAgICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFk
ZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gpLCBlbW9qaURhdGEsIGZhbHNlLCBtb2Rp
Zmllcik7Ci0KLSAgICBndGtfcG9wb3Zlcl9wb3B1cChHVEtfUE9QT1ZFUihwb3BvdmVyKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGVtb2ppTG9uZ1ByZXNzZWQoR3RrR2VzdHVyZSogZ2VzdHVyZSwgZG91
YmxlIHgsIGRvdWJsZSB5LCBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgYXV0
byogYm94ID0gR1RLX0ZMT1dfQk9YKGd0a19ldmVudF9jb250cm9sbGVyX2dldF93aWRnZXQoR1RL
X0VWRU5UX0NPTlRST0xMRVIoZ2VzdHVyZSkpKTsKLSAgICB3ZWJraXRFbW9qaUNob29zZXJTaG93
VmFyaWF0aW9ucyhjaG9vc2VyLCBHVEtfV0lER0VUKGd0a19mbG93X2JveF9nZXRfY2hpbGRfYXRf
cG9zKGJveCwgeCwgeSkpKTsKLX0KLQotc3RhdGljIHZvaWQgZW1vamlQcmVzc2VkKEd0a0dlc3R1
cmUqIGdlc3R1cmUsIGludCwgZG91YmxlIHgsIGRvdWJsZSB5LCBXZWJLaXRFbW9qaUNob29zZXIq
IGNob29zZXIpCi17Ci0gICAgZW1vamlMb25nUHJlc3NlZChnZXN0dXJlLCB4LCB5LCBjaG9vc2Vy
KTsKLX0KLQotc3RhdGljIHZvaWQgZW1vamlQb3B1cE1lbnUoR3RrV2lkZ2V0KiBjaGlsZCwgV2Vi
S2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNob3dW
YXJpYXRpb25zKGNob29zZXIsIGNoaWxkKTsKLX0KLQotc3RhdGljIHZvaWQgdmVydGljYWxBZGp1
c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50LCBXZWJLaXRFbW9qaUNob29z
ZXIqIGNob29zZXIpCi17Ci0gICAgZG91YmxlIHZhbHVlID0gZ3RrX2FkanVzdG1lbnRfZ2V0X3Zh
bHVlKGFkanVzdG1lbnQpOwotICAgIEVtb2ppU2VjdGlvbiogc2VjdGlvblRvU2VsZWN0ID0gbnVs
bHB0cjsKLSAgICBmb3IgKGF1dG8mIHNlY3Rpb24gOiBjaG9vc2VyLT5wcml2LT5zZWN0aW9ucykg
ewotICAgICAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb247Ci0gICAgICAgIGlmIChzZWN0aW9u
LmhlYWRpbmcpCi0gICAgICAgICAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24u
aGVhZGluZywgJmFsbG9jYXRpb24pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBndGtfd2lk
Z2V0X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24uYm94LCAmYWxsb2NhdGlvbik7Ci0KLSAgICAgICAg
aWYgKHZhbHVlIDwgYWxsb2NhdGlvbi55IC0gYm94U3BhY2UpCi0gICAgICAgICAgICBicmVhazsK
LQotICAgICAgICBzZWN0aW9uVG9TZWxlY3QgPSAmc2VjdGlvbjsKLSAgICB9Ci0KLSAgICBpZiAo
IXNlY3Rpb25Ub1NlbGVjdCkKLSAgICAgICAgc2VjdGlvblRvU2VsZWN0ID0gJmNob29zZXItPnBy
aXYtPnNlY3Rpb25zWzBdOwotCi0gICAgZm9yIChhdXRvJiBzZWN0aW9uIDogY2hvb3Nlci0+cHJp
di0+c2VjdGlvbnMpIHsKLSAgICAgICAgaWYgKCZzZWN0aW9uID09IHNlY3Rpb25Ub1NlbGVjdCkK
LSAgICAgICAgICAgIGd0a193aWRnZXRfc2V0X3N0YXRlX2ZsYWdzKHNlY3Rpb24uYnV0dG9uLCBH
VEtfU1RBVEVfRkxBR19DSEVDS0VELCBGQUxTRSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGd0a193aWRnZXRfdW5zZXRfc3RhdGVfZmxhZ3Moc2VjdGlvbi5idXR0b24sIEdUS19TVEFURV9G
TEFHX0NIRUNLRUQpOwotICAgIH0KLX0KLQotc3RhdGljIEd0a1dpZGdldCogd2Via2l0RW1vamlD
aG9vc2VyU2V0dXBTZWN0aW9uQm94KFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciwgR3RrQm94
KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGZpcnN0RW1vamlOYW1lLCBjb25zdCBjaGFyKiB0aXRsZSwg
R3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCwgZ2Jvb2xlYW4gY2FuSGF2ZVZhcmlhdGlvbnMgPSBG
QUxTRSkKLXsKLSAgICBFbW9qaVNlY3Rpb24gc2VjdGlvbjsKLSAgICBzZWN0aW9uLmZpcnN0RW1v
amlOYW1lID0gZmlyc3RFbW9qaU5hbWU7Ci0gICAgaWYgKHRpdGxlKSB7Ci0gICAgICAgIEd0a1dp
ZGdldCogbGFiZWwgPSBndGtfbGFiZWxfbmV3KHRpdGxlKTsKLSAgICAgICAgc2VjdGlvbi5oZWFk
aW5nID0gbGFiZWw7Ci0gICAgICAgIGd0a19sYWJlbF9zZXRfeGFsaWduKEdUS19MQUJFTChsYWJl
bCksIDApOwotICAgICAgICBndGtfYm94X3BhY2tfc3RhcnQocGFyZW50LCBsYWJlbCwgRkFMU0Us
IEZBTFNFLCAwKTsKLSAgICAgICAgZ3RrX3dpZGdldF9zaG93KGxhYmVsKTsKLSAgICB9Ci0KLSAg
ICBHdGtXaWRnZXQqIGJveCA9IGd0a19mbG93X2JveF9uZXcoKTsKLSAgICBzZWN0aW9uLmJveCA9
IGJveDsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGJveCwgImNoaWxkLWFjdGl2YXRlZCIsIEdfQ0FM
TEJBQ0soZW1vamlBY3RpdmF0ZWQpLCBjaG9vc2VyKTsKLSAgICBndGtfZmxvd19ib3hfc2V0X2hv
bW9nZW5lb3VzKEdUS19GTE9XX0JPWChib3gpLCBUUlVFKTsKLSAgICBndGtfZmxvd19ib3hfc2V0
X3NlbGVjdGlvbl9tb2RlKEdUS19GTE9XX0JPWChib3gpLCBHVEtfU0VMRUNUSU9OX05PTkUpOwot
ICAgIGd0a19jb250YWluZXJfc2V0X2ZvY3VzX3ZhZGp1c3RtZW50KEdUS19DT05UQUlORVIoYm94
KSwgYWRqdXN0bWVudCk7Ci0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0KHBhcmVudCwgYm94LCBGQUxT
RSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyhib3gpOwotCi0gICAgaWYgKGNhbkhh
dmVWYXJpYXRpb25zKSB7Ci0gICAgICAgIEdSZWZQdHI8R3RrR2VzdHVyZT4gZ2VzdHVyZSA9IGFk
b3B0R1JlZihndGtfZ2VzdHVyZV9sb25nX3ByZXNzX25ldyhib3gpKTsKLSAgICAgICAgZ19zaWdu
YWxfY29ubmVjdChnZXN0dXJlLmdldCgpLCAicHJlc3NlZCIsIEdfQ0FMTEJBQ0soZW1vamlMb25n
UHJlc3NlZCksIGNob29zZXIpOwotICAgICAgICBjaG9vc2VyLT5wcml2LT5nZXN0dXJlcy5hZGQo
V1RGTW92ZShnZXN0dXJlKSk7Ci0gICAgICAgIEdSZWZQdHI8R3RrR2VzdHVyZT4gbXVsdGlHZXN0
dXJlID0gYWRvcHRHUmVmKGd0a19nZXN0dXJlX211bHRpX3ByZXNzX25ldyhib3gpKTsKLSAgICAg
ICAgZ3RrX2dlc3R1cmVfc2luZ2xlX3NldF9idXR0b24oR1RLX0dFU1RVUkVfU0lOR0xFKG11bHRp
R2VzdHVyZS5nZXQoKSksIEdES19CVVRUT05fU0VDT05EQVJZKTsKLSAgICAgICAgZ19zaWduYWxf
Y29ubmVjdChtdWx0aUdlc3R1cmUuZ2V0KCksICJwcmVzc2VkIiwgR19DQUxMQkFDSyhlbW9qaVBy
ZXNzZWQpLCBjaG9vc2VyKTsKLSAgICAgICAgY2hvb3Nlci0+cHJpdi0+Z2VzdHVyZXMuYWRkKFdU
Rk1vdmUobXVsdGlHZXN0dXJlKSk7Ci0gICAgfQotCi0gICAgY2hvb3Nlci0+cHJpdi0+c2VjdGlv
bnMuYXBwZW5kKFdURk1vdmUoc2VjdGlvbikpOwotICAgIHJldHVybiBib3g7Ci19Ci0KLXN0YXRp
YyB2b2lkIHNjcm9sbFRvU2VjdGlvbihHdGtCdXR0b24qIGJ1dHRvbiwgZ3BvaW50ZXIgZGF0YSkK
LXsKLSAgICBhdXRvKiBjaG9vc2VyID0gV0VCS0lUX0VNT0pJX0NIT09TRVIoZ3RrX3dpZGdldF9n
ZXRfYW5jZXN0b3IoR1RLX1dJREdFVChidXR0b24pLCBXRUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VS
KSk7Ci0gICAgYXV0byYgc2VjdGlvbiA9IGNob29zZXItPnByaXYtPnNlY3Rpb25zW0dQT0lOVEVS
X1RPX1VJTlQoZGF0YSldOwotICAgIEd0a0FkanVzdG1lbnQqIGFkanVzdG1lbnQgPSBndGtfc2Ny
b2xsZWRfd2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xMRURfV0lORE9XKGNob29zZXIt
PnByaXYtPnN3aW5kb3cpKTsKLSAgICBpZiAoc2VjdGlvbi5oZWFkaW5nKSB7Ci0gICAgICAgIEd0
a0FsbG9jYXRpb24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgMCwgMCB9OwotICAgICAgICBndGtfd2lk
Z2V0X2dldF9hbGxvY2F0aW9uKHNlY3Rpb24uaGVhZGluZywgJmFsbG9jYXRpb24pOwotICAgICAg
ICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUoYWRqdXN0bWVudCwgYWxsb2NhdGlvbi55IC0gYm94
U3BhY2UpOwotICAgIH0gZWxzZQotICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUoYWRq
dXN0bWVudCwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2Vj
dGlvbkJ1dHRvbihXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a0JveCogcGFyZW50LCBj
b25zdCBjaGFyKiBpY29uTmFtZSwgY29uc3QgY2hhciogdG9vbHRpcCkKLXsKLSAgICBHdGtXaWRn
ZXQqIGJ1dHRvbiA9IGd0a19idXR0b25fbmV3X2Zyb21faWNvbl9uYW1lKGljb25OYW1lLCBHVEtf
SUNPTl9TSVpFX0JVVFRPTik7Ci0gICAgY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMubGFzdCgpLmJ1
dHRvbiA9IGJ1dHRvbjsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdl
dF9nZXRfc3R5bGVfY29udGV4dChidXR0b24pLCAiZW1vamktc2VjdGlvbiIpOwotICAgIGd0a193
aWRnZXRfc2V0X3Rvb2x0aXBfdGV4dChidXR0b24sIHRvb2x0aXApOwotICAgIGdfc2lnbmFsX2Nv
bm5lY3QoYnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soc2Nyb2xsVG9TZWN0aW9uKSwgR1VJ
TlRfVE9fUE9JTlRFUihjaG9vc2VyLT5wcml2LT5zZWN0aW9ucy5zaXplKCkgLSAxKSk7Ci0gICAg
Z3RrX2JveF9wYWNrX3N0YXJ0KHBhcmVudCwgYnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOwotICAg
IGd0a193aWRnZXRfc2hvdyhidXR0b24pOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNo
b29zZXJTZXR1cFJlY2VudChXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a0JveCogZW1v
amlCb3gsIEd0a0JveCogYnV0dG9uQm94LCBHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50KQotewot
ICAgIEd0a1dpZGdldCogZmxvd0JveCA9IHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2VjdGlvbkJv
eChjaG9vc2VyLCBlbW9qaUJveCwgbnVsbHB0ciwgbnVsbHB0ciwgYWRqdXN0bWVudCwgdHJ1ZSk7
Ci0gICAgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKGNob29zZXIsIGJ1dHRv
bkJveCwgImVtb2ppLXJlY2VudC1zeW1ib2xpYyIsIF8oIlJlY2VudCIpKTsKLQotICAgIGJvb2wg
aXNFbXB0eSA9IHRydWU7Ci0gICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9IGFkb3B0R1Jl
ZihnX3NldHRpbmdzX2dldF92YWx1ZShjaG9vc2VyLT5wcml2LT5zZXR0aW5ncy5nZXQoKSwgInJl
Y2VudC1lbW9qaSIpKTsKLSAgICBHVmFyaWFudEl0ZXIgaXRlcjsKLSAgICBnX3ZhcmlhbnRfaXRl
cl9pbml0KCZpdGVyLCB2YXJpYW50LmdldCgpKTsKLSAgICB3aGlsZSAoR1JlZlB0cjxHVmFyaWFu
dD4gaXRlbSA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfaXRlcl9uZXh0X3ZhbHVlKCZpdGVyKSkpIHsK
LSAgICAgICAgR1JlZlB0cjxHVmFyaWFudD4gZW1vamlEYXRhID0gYWRvcHRHUmVmKGdfdmFyaWFu
dF9nZXRfY2hpbGRfdmFsdWUoaXRlbS5nZXQoKSwgMCkpOwotICAgICAgICBndW5pY2hhciBtb2Rp
ZmllcjsKLSAgICAgICAgZ192YXJpYW50X2dldF9jaGlsZChpdGVtLmdldCgpLCAxLCAidSIsICZt
b2RpZmllcik7Ci0gICAgICAgIGlmIChhdXRvKiBjaGlsZCA9IHdlYmtpdEVtb2ppQ2hvb3NlckFk
ZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChmbG93Qm94KSwgZW1vamlEYXRhLmdldCgpLCB0
cnVlLCBtb2RpZmllcikpCi0gICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0KGNoaWxkLCAicG9w
dXAtbWVudSIsIEdfQ0FMTEJBQ0soZW1vamlQb3B1cE1lbnUpLCBjaG9vc2VyKTsKLSAgICAgICAg
aXNFbXB0eSA9IGZhbHNlOwotICAgIH0KLQotICAgIGlmIChpc0VtcHR5KSB7Ci0gICAgICAgIGd0
a193aWRnZXRfaGlkZShmbG93Qm94KTsKLSAgICAgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZl
KGNob29zZXItPnByaXYtPnNlY3Rpb25zLmZpcnN0KCkuYnV0dG9uLCBGQUxTRSk7Ci0gICAgfQot
fQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJFbnN1cmVFbXB0eVJlc3VsdChXZWJL
aXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgaWYgKGd0a19zdGFja19nZXRfY2hpbGRf
YnlfbmFtZShHVEtfU1RBQ0soY2hvb3Nlci0+cHJpdi0+c3RhY2spLCAiZW1wdHkiKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgR3RrV2lkZ2V0KiBncmlkID0gZ3RrX2dyaWRfbmV3KCk7Ci0gICAg
Z3RrX2dyaWRfc2V0X3Jvd19zcGFjaW5nKEdUS19HUklEKGdyaWQpLCAxMik7Ci0gICAgZ3RrX3dp
ZGdldF9zZXRfaGFsaWduKGdyaWQsIEdUS19BTElHTl9DRU5URVIpOwotICAgIGd0a193aWRnZXRf
c2V0X3ZhbGlnbihncmlkLCBHVEtfQUxJR05fQ0VOVEVSKTsKLSAgICBndGtfc3R5bGVfY29udGV4
dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChncmlkKSwgImRpbS1sYWJl
bCIpOwotCi0gICAgR3RrV2lkZ2V0KiBpbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25h
bWUoImVkaXQtZmluZC1zeW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfRElBTE9HKTsKLSAgICBndGtf
aW1hZ2Vfc2V0X3BpeGVsX3NpemUoR1RLX0lNQUdFKGltYWdlKSwgNzIpOwotICAgIGd0a19zdHls
ZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KGltYWdlKSwg
ImRpbS1sYWJlbCIpOwotICAgIGd0a19ncmlkX2F0dGFjaChHVEtfR1JJRChncmlkKSwgaW1hZ2Us
IDAsIDAsIDEsIDEpOwotICAgIGd0a193aWRnZXRfc2hvdyhpbWFnZSk7Ci0KLSAgICBHdGtXaWRn
ZXQqIGxhYmVsID0gZ3RrX2xhYmVsX25ldyhfKCJObyBSZXN1bHRzIEZvdW5kIikpOwotICAgIFBh
bmdvQXR0ckxpc3QqIGF0dHJpYnV0ZXMgPSBwYW5nb19hdHRyX2xpc3RfbmV3KCk7Ci0gICAgcGFu
Z29fYXR0cl9saXN0X2luc2VydChhdHRyaWJ1dGVzLCBwYW5nb19hdHRyX3NjYWxlX25ldygxLjQ0
KSk7Ci0gICAgcGFuZ29fYXR0cl9saXN0X2luc2VydChhdHRyaWJ1dGVzLCBwYW5nb19hdHRyX3dl
aWdodF9uZXcoUEFOR09fV0VJR0hUX0JPTEQpKTsKLSAgICBndGtfbGFiZWxfc2V0X2F0dHJpYnV0
ZXMoR1RLX0xBQkVMKGxhYmVsKSwgYXR0cmlidXRlcyk7Ci0gICAgcGFuZ29fYXR0cl9saXN0X3Vu
cmVmKGF0dHJpYnV0ZXMpOwotICAgIGd0a19ncmlkX2F0dGFjaChHVEtfR1JJRChncmlkKSwgbGFi
ZWwsIDAsIDEsIDEsIDEpOwotICAgIGd0a193aWRnZXRfc2hvdyhsYWJlbCk7Ci0KLSAgICBsYWJl
bCA9IGd0a19sYWJlbF9uZXcoXygiVHJ5IGEgZGlmZmVyZW50IHNlYXJjaCIpKTsKLSAgICBndGtf
c3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChsYWJl
bCksICJkaW0tbGFiZWwiKTsKLSAgICBndGtfZ3JpZF9hdHRhY2goR1RLX0dSSUQoZ3JpZCksIGxh
YmVsLCAwLCAyLCAxLCAxKTsKLSAgICBndGtfd2lkZ2V0X3Nob3cobGFiZWwpOwotCi0gICAgZ3Rr
X3N0YWNrX2FkZF9uYW1lZChHVEtfU1RBQ0soY2hvb3Nlci0+cHJpdi0+c3RhY2spLCBncmlkLCAi
ZW1wdHkiKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coZ3JpZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdEVtb2ppQ2hvb3NlclNlYXJjaENoYW5nZWQoV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2Vy
KQotewotICAgIGZvciAoYXV0byYgc2VjdGlvbiA6IGNob29zZXItPnByaXYtPnNlY3Rpb25zKSB7
Ci0gICAgICAgIHNlY3Rpb24uaXNFbXB0eSA9IHRydWU7Ci0gICAgICAgIGd0a19mbG93X2JveF9p
bnZhbGlkYXRlX2ZpbHRlcihHVEtfRkxPV19CT1goc2VjdGlvbi5ib3gpKTsKLSAgICB9Ci0KLSAg
ICBib29sIHJlc3VsdHNGb3VuZCA9IGZhbHNlOwotICAgIGZvciAoYXV0byYgc2VjdGlvbiA6IGNo
b29zZXItPnByaXYtPnNlY3Rpb25zKSB7Ci0gICAgICAgIGlmIChzZWN0aW9uLmhlYWRpbmcpIHsK
LSAgICAgICAgICAgIGd0a193aWRnZXRfc2V0X3Zpc2libGUoc2VjdGlvbi5oZWFkaW5nLCAhc2Vj
dGlvbi5pc0VtcHR5KTsKLSAgICAgICAgICAgIGd0a193aWRnZXRfc2V0X3Zpc2libGUoc2VjdGlv
bi5ib3gsICFzZWN0aW9uLmlzRW1wdHkpOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdHNGb3Vu
ZCA9IHJlc3VsdHNGb3VuZCB8fCAhc2VjdGlvbi5pc0VtcHR5OwotICAgIH0KLQotICAgIGlmICgh
cmVzdWx0c0ZvdW5kKSB7Ci0gICAgICAgIHdlYmtpdEVtb2ppQ2hvb3NlckVuc3VyZUVtcHR5UmVz
dWx0KGNob29zZXIpOwotICAgICAgICBndGtfc3RhY2tfc2V0X3Zpc2libGVfY2hpbGRfbmFtZShH
VEtfU1RBQ0soY2hvb3Nlci0+cHJpdi0+c3RhY2spLCAiZW1wdHkiKTsKLSAgICB9IGVsc2UKLSAg
ICAgICAgZ3RrX3N0YWNrX3NldF92aXNpYmxlX2NoaWxkX25hbWUoR1RLX1NUQUNLKGNob29zZXIt
PnByaXYtPnN0YWNrKSwgImxpc3QiKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9v
c2VyU2V0dXBGaWx0ZXJzKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKLXsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNob29zZXItPnByaXYtPnNlY3Rpb25zLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIGd0a19mbG93X2JveF9zZXRfZmlsdGVyX2Z1bmMoR1RLX0ZMT1dfQk9YKGNob29z
ZXItPnByaXYtPnNlY3Rpb25zW2ldLmJveCksIFtdKEd0a0Zsb3dCb3hDaGlsZCogY2hpbGQsIGdw
b2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0gICAgICAgICAgICBhdXRvKiBjaG9vc2Vy
ID0gV0VCS0lUX0VNT0pJX0NIT09TRVIoZ3RrX3dpZGdldF9nZXRfYW5jZXN0b3IoR1RLX1dJREdF
VChjaGlsZCksIFdFQktJVF9UWVBFX0VNT0pJX0NIT09TRVIpKTsKLSAgICAgICAgICAgIGF1dG8m
IHNlY3Rpb24gPSBjaG9vc2VyLT5wcml2LT5zZWN0aW9uc1tHUE9JTlRFUl9UT19VSU5UKHVzZXJE
YXRhKV07Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXh0ID0gZ3RrX2VudHJ5X2dldF90ZXh0
KEdUS19FTlRSWShjaG9vc2VyLT5wcml2LT5zZWFyY2hFbnRyeSkpOwotICAgICAgICAgICAgaWYg
KCF0ZXh0IHx8ICEqdGV4dCkgewotICAgICAgICAgICAgICAgIHNlY3Rpb24uaXNFbXB0eSA9IGZh
bHNlOwotICAgICAgICAgICAgICAgIHJldHVybiBUUlVFOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBhdXRvKiBlbW9qaURhdGEgPSBzdGF0aWNfY2FzdDxHVmFyaWFudCo+KGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImVtb2ppLWRhdGEiKSk7Ci0gICAgICAgICAgICBp
ZiAoIWVtb2ppRGF0YSkgewotICAgICAgICAgICAgICAgIHNlY3Rpb24uaXNFbXB0eSA9IGZhbHNl
OwotICAgICAgICAgICAgICAgIHJldHVybiBUUlVFOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgICAgICAgICAgZ192YXJpYW50X2dldF9jaGlsZChl
bW9qaURhdGEsIDEsICImcyIsICZuYW1lKTsKLSAgICAgICAgICAgIGlmIChnX3N0cl9tYXRjaF9z
dHJpbmcodGV4dCwgbmFtZSwgVFJVRSkpIHsKLSAgICAgICAgICAgICAgICBzZWN0aW9uLmlzRW1w
dHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICB9LCBHVUlOVF9UT19QT0lOVEVS
KGkpLCBudWxscHRyKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3Nl
clNldHVwRW1vamlTZWN0aW9ucyhXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a0JveCog
ZW1vamlCb3gsIEd0a0JveCogYnV0dG9uQm94KQotewotICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
ewotICAgICAgICBjb25zdCBjaGFyKiBmaXJzdEVtb2ppTmFtZTsKLSAgICAgICAgY29uc3QgY2hh
ciogdGl0bGU7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGljb25OYW1lOwotICAgICAgICBib29sIGNh
bkhhdmVWYXJpYXRpb25zOwotICAgIH0gc2VjdGlvbnNbXSA9IHsKLSAgICAgICAgeyAiZ3Jpbm5p
bmcgZmFjZSIsIE5fKCJTbWlsZXlzICYgUGVvcGxlIiksICJlbW9qaS1wZW9wbGUtc3ltYm9saWMi
LCB0cnVlIH0sCi0gICAgICAgIHsgInNlbGZpZSIsIE5fKCJCb2R5ICYgQ2xvdGhpbmciKSwgImVt
b2ppLWJvZHktc3ltYm9saWMiLCB0cnVlIH0sCi0gICAgICAgIHsgIm1vbmtleSIsIE5fKCJBbmlt
YWxzICYgTmF0dXJlIiksICJlbW9qaS1uYXR1cmUtc3ltYm9saWMiLCBmYWxzZSB9LAotICAgICAg
ICB7ICJncmFwZXMiLCBOXygiRm9vZCAmIERyaW5rIiksICJlbW9qaS1mb29kLXN5bWJvbGljIiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiZ2xvYmUgc2hvd2luZyBFdXJvcGUtQWZyaWNhIiwgTl8oIlRy
YXZlbCAmIFBsYWNlcyIpLCAiZW1vamktdHJhdmVsLXN5bWJvbGljIiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAiamFjay1vLWxhbnRlcm4iLCBOXygiQWN0aXZpdGllcyIpLCAiZW1vamktYWN0aXZpdGll
cy1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsgIm11dGVkIHNwZWFrZXIiLCBfKCJPYmpl
Y3RzIiksICJlbW9qaS1vYmplY3RzLXN5bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiQVRN
IHNpZ24iLCBOXygiU3ltYm9scyIpLCAiZW1vamktc3ltYm9scy1zeW1ib2xpYyIsIGZhbHNlIH0s
Ci0gICAgICAgIHsgImNoZXF1ZXJlZCBmbGFnIiwgXygiRmxhZ3MiKSwgImVtb2ppLWZsYWdzLXN5
bWJvbGljIiwgZmFsc2UgfQotICAgIH07Ci0KLSAgICBhdXRvKiB2QWRqdXN0bWVudCA9IGd0a19z
Y3JvbGxlZF93aW5kb3dfZ2V0X3ZhZGp1c3RtZW50KEdUS19TQ1JPTExFRF9XSU5ET1coY2hvb3Nl
ci0+cHJpdi0+c3dpbmRvdykpOwotCi0gICAgR3RrV2lkZ2V0KiBmbG93Qm94ID0gbnVsbHB0cjsK
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTKHNlY3Rpb25zKTsgKytp
KSB7Ci0gICAgICAgIGF1dG8qIGJveCA9IHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2VjdGlvbkJv
eChjaG9vc2VyLCBlbW9qaUJveCwgc2VjdGlvbnNbaV0uZmlyc3RFbW9qaU5hbWUsIHNlY3Rpb25z
W2ldLnRpdGxlLCB2QWRqdXN0bWVudCwgc2VjdGlvbnNbaV0uY2FuSGF2ZVZhcmlhdGlvbnMpOwot
ICAgICAgICB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25CdXR0b24oY2hvb3NlciwgYnV0
dG9uQm94LCBzZWN0aW9uc1tpXS5pY29uTmFtZSwgc2VjdGlvbnNbaV0udGl0bGUpOwotICAgICAg
ICBpZiAoIWkpCi0gICAgICAgICAgICBmbG93Qm94ID0gYm94OwotICAgIH0KLQotICAgIEdSZWZQ
dHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBfZGF0YSgiL29y
Zy9ndGsvbGliZ3RrL2Vtb2ppL2Vtb2ppLmRhdGEiLCBHX1JFU09VUkNFX0xPT0tVUF9GTEFHU19O
T05FLCBudWxscHRyKSk7Ci0gICAgR1JlZlB0cjxHVmFyaWFudD4gZGF0YSA9IGdfdmFyaWFudF9u
ZXdfZnJvbV9ieXRlcyhHX1ZBUklBTlRfVFlQRSgiYShhdXNzKSIpLCBieXRlcy5nZXQoKSwgVFJV
RSk7Ci0gICAgR1VuaXF1ZVB0cjxHVmFyaWFudEl0ZXI+IGl0ZXIoZ192YXJpYW50X2l0ZXJfbmV3
KGRhdGEuZ2V0KCkpKTsKLQotICAgIEZ1bmN0aW9uPHZvaWQoKT4gcG9wdWxhdGVTZWN0aW9ucyA9
IFtjaG9vc2VyLCBpdGVyID0gV1RGTW92ZShpdGVyKSwgZmxvd0JveF0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgYXV0byBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgICAgICB3aGlsZSAo
R1JlZlB0cjxHVmFyaWFudD4gaXRlbSA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfaXRlcl9uZXh0X3Zh
bHVlKGl0ZXIuZ2V0KCkpKSkgewotICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKLSAgICAg
ICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoaXRlbS5nZXQoKSwgMSwgIiZzIiwgJm5hbWUpOwot
Ci0gICAgICAgICAgICBhdXRvIGluZGV4ID0gY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMuZmluZE1h
dGNoaW5nKFsmbmFtZV0oY29uc3QgYXV0byYgc2VjdGlvbikgewotICAgICAgICAgICAgICAgIHJl
dHVybiAhZ19zdHJjbXAwKG5hbWUsIHNlY3Rpb24uZmlyc3RFbW9qaU5hbWUpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBmbG93Qm94ID0gaW5kZXggPT0gbm90Rm91bmQgPyBmbG93Qm94
IDogY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnNbaW5kZXhdLmJveDsKLSAgICAgICAgICAgIGF1dG8q
IGNoaWxkID0gd2Via2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RLX0ZMT1dfQk9Y
KGZsb3dCb3gpLCBpdGVtLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChjaGlsZCkKLSAgICAgICAg
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0KGNoaWxkLCAicG9wdXAtbWVudSIsIEdfQ0FMTEJBQ0so
ZW1vamlQb3B1cE1lbnUpLCBjaG9vc2VyKTsKLQotICAgICAgICAgICAgaWYgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gc3RhcnQgPj0gOF9tcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICAgICAgY2hvb3Nlci0+cHJpdi0+cG9wdWxhdGVTZWN0aW9uc1RpbWVyID0gbnVs
bHB0cjsKLSAgICB9OwotCi0gICAgY2hvb3Nlci0+cHJpdi0+cG9wdWxhdGVTZWN0aW9uc1RpbWVy
ID0gbWFrZVVuaXF1ZTxDYWxsYmFja1RpbWVyPihXVEZNb3ZlKHBvcHVsYXRlU2VjdGlvbnMpKTsK
LSAgICBjaG9vc2VyLT5wcml2LT5wb3B1bGF0ZVNlY3Rpb25zVGltZXItPnNldFByaW9yaXR5KEdf
UFJJT1JJVFlfREVGQVVMVF9JRExFKTsKLSAgICBjaG9vc2VyLT5wcml2LT5wb3B1bGF0ZVNlY3Rp
b25zVGltZXItPnNldE5hbWUoIltXZWJLaXRFbW9qaUNob29zZXJdIHBvcHVsYXRlIHNlY3Rpb25z
IHRpbWVyIik7Ci0gICAgY2hvb3Nlci0+cHJpdi0+cG9wdWxhdGVTZWN0aW9uc1RpbWVyLT5zdGFy
dFJlcGVhdGluZyh7IH0pOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJJbml0
aWFsaXplRW1vamlNYXhXaWR0aChXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIpCi17Ci0gICAg
Ly8gR2V0IGEgcmVhc29uYWJsZSBtYXhpbXVtIHdpZHRoIGZvciBhbiBlbW9qaS4gV2UgZG8gdGhp
cyB0byBza2lwIG92ZXJseSB3aWRlIGZhbGxiYWNrCi0gICAgLy8gcmVuZGVyaW5nIGZvciBjZXJ0
YWluIGVtb2ppcyB0aGUgZm9udCBkb2VzIG5vdCBjb250YWluIGFuZCB0aGVyZWZvcmUgZW5kIHVw
IGJlaW5nCi0gICAgLy8gcmVuZGVyZWQgYXMgbXVsdGlwbGUgZ2x5cGhzLgotICAgIEdSZWZQdHI8
UGFuZ29MYXlvdXQ+IGxheW91dCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X2NyZWF0ZV9wYW5nb19s
YXlvdXQoR1RLX1dJREdFVChjaG9vc2VyKSwgIvCfmYIiKSk7Ci0gICAgYXV0byogYXR0cmlidXRl
cyA9IHBhbmdvX2F0dHJfbGlzdF9uZXcoKTsKLSAgICBwYW5nb19hdHRyX2xpc3RfaW5zZXJ0KGF0
dHJpYnV0ZXMsIHBhbmdvX2F0dHJfc2NhbGVfbmV3KFBBTkdPX1NDQUxFX1hfTEFSR0UpKTsKLSAg
ICBwYW5nb19sYXlvdXRfc2V0X2F0dHJpYnV0ZXMobGF5b3V0LmdldCgpLCBhdHRyaWJ1dGVzKTsK
LSAgICBwYW5nb19hdHRyX2xpc3RfdW5yZWYoYXR0cmlidXRlcyk7Ci0KLSAgICBQYW5nb1JlY3Rh
bmdsZSByZWN0OwotICAgIHBhbmdvX2xheW91dF9nZXRfZXh0ZW50cyhsYXlvdXQuZ2V0KCksICZy
ZWN0LCBudWxscHRyKTsKLSAgICBjaG9vc2VyLT5wcml2LT5lbW9qaU1heFdpZHRoID0gcmVjdC53
aWR0aDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyQ29uc3RydWN0ZWQoR09i
amVjdCogb2JqZWN0KQotewotICAgIFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlciA9IFdFQktJ
VF9FTU9KSV9DSE9PU0VSKG9iamVjdCk7Ci0gICAgY2hvb3Nlci0+cHJpdi0+c2V0dGluZ3MgPSBh
ZG9wdEdSZWYoZ19zZXR0aW5nc19uZXcoIm9yZy5ndGsuU2V0dGluZ3MuRW1vamlDaG9vc2VyIikp
OwotCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2Vtb2ppX2Nob29zZXJfcGFyZW50X2NsYXNz
KS0+Y29uc3RydWN0ZWQob2JqZWN0KTsKLQotICAgIHdlYmtpdEVtb2ppQ2hvb3NlckluaXRpYWxp
emVFbW9qaU1heFdpZHRoKGNob29zZXIpOwotCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2Ns
YXNzKGd0a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQoR1RLX1dJREdFVChvYmplY3QpKSwgImVt
b2ppLXBpY2tlciIpOwotCi0gICAgR3RrV2lkZ2V0KiBtYWluQm94ID0gZ3RrX2JveF9uZXcoR1RL
X09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCAwKTsKLSAgICBHdGtXaWRnZXQqIHNlYXJjaEVudHJ5ID0g
Z3RrX3NlYXJjaF9lbnRyeV9uZXcoKTsKLSAgICBjaG9vc2VyLT5wcml2LT5zZWFyY2hFbnRyeSA9
IHNlYXJjaEVudHJ5OwotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChzZWFyY2hFbnRyeSwg
InNlYXJjaC1jaGFuZ2VkIiwgR19DQUxMQkFDSyh3ZWJraXRFbW9qaUNob29zZXJTZWFyY2hDaGFu
Z2VkKSwgY2hvb3Nlcik7Ci0gICAgZ3RrX2VudHJ5X3NldF9pbnB1dF9oaW50cyhHVEtfRU5UUlko
c2VhcmNoRW50cnkpLCBHVEtfSU5QVVRfSElOVF9OT19FTU9KSSk7Ci0gICAgZ3RrX2JveF9wYWNr
X3N0YXJ0KEdUS19CT1gobWFpbkJveCksIHNlYXJjaEVudHJ5LCBUUlVFLCBGQUxTRSwgMCk7Ci0g
ICAgZ3RrX3dpZGdldF9zaG93KHNlYXJjaEVudHJ5KTsKLQotICAgIEd0a1dpZGdldCogc3RhY2sg
PSBndGtfc3RhY2tfbmV3KCk7Ci0gICAgY2hvb3Nlci0+cHJpdi0+c3RhY2sgPSBzdGFjazsKLSAg
ICBHdGtXaWRnZXQqIGJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCwg
MCk7Ci0gICAgR3RrV2lkZ2V0KiBzd2luZG93ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcobnVs
bHB0ciwgbnVsbHB0cik7Ci0gICAgY2hvb3Nlci0+cHJpdi0+c3dpbmRvdyA9IHN3aW5kb3c7Ci0g
ICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19zZXRfcG9saWN5KEdUS19TQ1JPTExFRF9XSU5ET1coc3dp
bmRvdyksIEdUS19QT0xJQ1lfTkVWRVIsIEdUS19QT0xJQ1lfQVVUT01BVElDKTsKLSAgICBndGtf
c2Nyb2xsZWRfd2luZG93X3NldF9taW5fY29udGVudF9oZWlnaHQoR1RLX1NDUk9MTEVEX1dJTkRP
Vyhzd2luZG93KSwgMjUwKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dp
ZGdldF9nZXRfc3R5bGVfY29udGV4dChzd2luZG93KSwgInZpZXciKTsKLSAgICBndGtfYm94X3Bh
Y2tfc3RhcnQoR1RLX0JPWChib3gpLCBzd2luZG93LCBUUlVFLCBUUlVFLCAwKTsKLSAgICBndGtf
d2lkZ2V0X3Nob3coc3dpbmRvdyk7Ci0KLSAgICBHdGtXaWRnZXQqIGVtb2ppQm94ID0gZ3RrX2Jv
eF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCA2KTsKLSAgICBnX29iamVjdF9zZXQoZW1v
amlCb3gsICJtYXJnaW4iLCA2LCBudWxscHRyKTsKLSAgICBndGtfY29udGFpbmVyX2FkZChHVEtf
Q09OVEFJTkVSKHN3aW5kb3cpLCBlbW9qaUJveCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGVtb2pp
Qm94KTsKLQotICAgIEd0a1dpZGdldCogYnV0dG9uQm94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVO
VEFUSU9OX0hPUklaT05UQUwsIDApOwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGJv
eCksIGJ1dHRvbkJveCwgVFJVRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyhidXR0
b25Cb3gpOwotCi0gICAgR3RrQWRqdXN0bWVudCogdkFkanVzdG1lbnQgPSBndGtfc2Nyb2xsZWRf
d2luZG93X2dldF92YWRqdXN0bWVudChHVEtfU0NST0xMRURfV0lORE9XKHN3aW5kb3cpKTsKLSAg
ICBnX3NpZ25hbF9jb25uZWN0KHZBZGp1c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJB
Q0sodmVydGljYWxBZGp1c3RtZW50Q2hhbmdlZCksIGNob29zZXIpOwotCi0gICAgd2Via2l0RW1v
amlDaG9vc2VyU2V0dXBSZWNlbnQoY2hvb3NlciwgR1RLX0JPWChlbW9qaUJveCksIEdUS19CT1go
YnV0dG9uQm94KSwgdkFkanVzdG1lbnQpOwotCi0gICAgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBF
bW9qaVNlY3Rpb25zKGNob29zZXIsIEdUS19CT1goZW1vamlCb3gpLCBHVEtfQk9YKGJ1dHRvbkJv
eCkpOwotCi0gICAgZ3RrX3dpZGdldF9zZXRfc3RhdGVfZmxhZ3MoY2hvb3Nlci0+cHJpdi0+c2Vj
dGlvbnMuZmlyc3QoKS5idXR0b24sIEdUS19TVEFURV9GTEFHX0NIRUNLRUQsIEZBTFNFKTsKLQot
ICAgIGd0a19zdGFja19hZGRfbmFtZWQoR1RLX1NUQUNLKHN0YWNrKSwgYm94LCAibGlzdCIpOwot
ICAgIGd0a193aWRnZXRfc2hvdyhib3gpOwotCi0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19C
T1gobWFpbkJveCksIHN0YWNrLCBUUlVFLCBUUlVFLCAwKTsKLSAgICBndGtfd2lkZ2V0X3Nob3co
c3RhY2spOwotCi0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihvYmplY3QpLCBt
YWluQm94KTsKLSAgICBndGtfd2lkZ2V0X3Nob3cobWFpbkJveCk7Ci0KLSAgICB3ZWJraXRFbW9q
aUNob29zZXJTZXR1cEZpbHRlcnMoY2hvb3Nlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVt
b2ppQ2hvb3NlclNob3coR3RrV2lkZ2V0KiB3aWRnZXQpCi17Ci0gICAgR1RLX1dJREdFVF9DTEFT
Uyh3ZWJraXRfZW1vamlfY2hvb3Nlcl9wYXJlbnRfY2xhc3MpLT5zaG93KHdpZGdldCk7Ci0KLSAg
ICBXZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIgPSBXRUJLSVRfRU1PSklfQ0hPT1NFUih3aWRn
ZXQpOwotICAgIGF1dG8qIGFkanVzdG1lbnQgPSBndGtfc2Nyb2xsZWRfd2luZG93X2dldF92YWRq
dXN0bWVudChHVEtfU0NST0xMRURfV0lORE9XKGNob29zZXItPnByaXYtPnN3aW5kb3cpKTsKLSAg
ICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUoYWRqdXN0bWVudCwgMCk7Ci0KLSAgICBndGtfZW50
cnlfc2V0X3RleHQoR1RLX0VOVFJZKGNob29zZXItPnByaXYtPnNlYXJjaEVudHJ5KSwgIiIpOwot
fQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfZW1vamlfY2hvb3Nlcl9jbGFzc19pbml0KFdlYktpdEVt
b2ppQ2hvb3NlckNsYXNzKiBrbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNz
ID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwotICAgIG9iamVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9
IHdlYmtpdEVtb2ppQ2hvb3NlckNvbnN0cnVjdGVkOwotCi0gICAgR3RrV2lkZ2V0Q2xhc3MqIHdp
ZGdldENsYXNzID0gR1RLX1dJREdFVF9DTEFTUyhrbGFzcyk7Ci0gICAgd2lkZ2V0Q2xhc3MtPnNo
b3cgPSB3ZWJraXRFbW9qaUNob29zZXJTaG93OwotCi0gICAgc2lnbmFsc1tFTU9KSV9QSUNLRURd
ID0gZ19zaWduYWxfbmV3KAotICAgICAgICAiZW1vamktcGlja2VkIiwKLSAgICAgICAgR19PQkpF
Q1RfQ0xBU1NfVFlQRShvYmplY3RDbGFzcyksCi0gICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAot
ICAgICAgICAwLAotICAgICAgICBudWxscHRyLCBudWxscHRyLAotICAgICAgICBudWxscHRyLAot
ICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgR19UWVBFX1NUUklORyB8IEdfU0lHTkFM
X1RZUEVfU1RBVElDX1NDT1BFKTsKLX0KIAogR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJO
ZXcoKQogewotICAgIFdlYktpdEVtb2ppQ2hvb3NlciogYXV0aERpYWxvZyA9IFdFQktJVF9FTU9K
SV9DSE9PU0VSKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VSLCBudWxscHRy
KSk7Ci0gICAgcmV0dXJuIEdUS19XSURHRVQoYXV0aERpYWxvZyk7CisgICAgc3RhdGljIEdUeXBl
IGNob29zZXJUeXBlID0gKFtdIHsKKyAgICAgICAgR3RrV2lkZ2V0KiBlbnRyeSA9IGd0a19lbnRy
eV9uZXcoKTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF9pbnB1dF9oaW50cyhHVEtfRU5UUlkoZW50
cnkpLCBHVEtfSU5QVVRfSElOVF9FTU9KSSk7CisgICAgICAgIGdfb2JqZWN0X3JlZl9zaW5rKGVu
dHJ5KTsKKworICAgICAgICBHdGtFbnRyeUNsYXNzKiBlbnRyeUNsYXNzID0gR1RLX0VOVFJZX0dF
VF9DTEFTUyhlbnRyeSk7CisgICAgICAgIGVudHJ5Q2xhc3MtPmluc2VydF9lbW9qaShHVEtfRU5U
UlkoZW50cnkpKTsKKworICAgICAgICAvLyBUaGUgZW1vamkgZGF0YSBpcyBmZXRjaGVkIGluIGEg
ZGVsYXllZCBtYW5uZXIsIHNvIGEgZGlyZWN0IGNhbGwKKyAgICAgICAgLy8gdG8gZ19vYmplY3Rf
dW5yZWYoZW50cnkpIHJlc3VsdHMgaW4gY3JpdGljYWwgd2FybmluZyBkdWUgdG8gYW4KKyAgICAg
ICAgLy8gYXR0ZW1wdCB0byB1bnJlZiBhIHlldCB1bnBvcHVsYXRlZCB2YWx1ZS4gQXJndWFibHks
IEdUSyBzaG91bGQgZG8KKyAgICAgICAgLy8gYSBudWxsLWNoZWNrLCBidXQgdGhpcyBjb2RlIG5l
ZWRzIHRvIHdvcmsgZXZlbiBmb3Igb2xkZXIgdmVyc2lvbnMKKyAgICAgICAgLy8gb2YgR1RLIHdo
aWNoIG1heSBiZSB1bnBhdGNoZWQuIFRoZXJlZm9yZSwgZGVzdHJveSB0aGUgZHVtbXkgZW50cnkK
KyAgICAgICAgLy8gaW4gYSBsb3cgcHJpb3JpdHkgaWRsZSBzb3VyY2UsIGFmdGVyIHRoZSBzb3Vy
Y2UgdGhhdCBmaWxscyB0aGUgZGF0YQorICAgICAgICAvLyBoYXMgYmVlbiBhbHJlYWR5IGRpc3Bh
dGNoZWQuCisgICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRs
ZV9zb3VyY2VfbmV3KCkpOworICAgICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdl
dCgpLCBbXSh2b2lkKiBkYXRhKSB7CisgICAgICAgICAgICBnX29iamVjdF91bnJlZihkYXRhKTsK
KyAgICAgICAgICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CisgICAgICAgIH0sIGVudHJ5LCBu
dWxscHRyKTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19Q
UklPUklUWV9MT1cpOworICAgICAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBSdW5M
b29wOjptYWluKCkubWFpbkNvbnRleHQoKSk7CisKKyAgICAgICAgcmV0dXJuIGdfdHlwZV9mcm9t
X25hbWUoIkd0a0Vtb2ppQ2hvb3NlciIpOworICAgIH0pKCk7CisKKyAgICByZXR1cm4gR1RLX1dJ
REdFVChnX29iamVjdF9uZXcoY2hvb3NlclR5cGUsIG51bGxwdHIpKTsKIH0KIAogI2VuZGlmIC8v
IEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuaAppbmRleCBl
NWU0MDcwZWIyZmQzMmYyODM4N2M4OGIzMzZhMzJmMWM5NzFjZjlhLi5lZjAwYWY3ZTI4ZjFjOTc1
ZjMwZGE2MjYzN2VlZjRlNTYwZGI5MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTks
IDIwMjEgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMjggKzI1LDYgQEAK
IAogR19CRUdJTl9ERUNMUwogCi0jZGVmaW5lIFdFQktJVF9UWVBFX0VNT0pJX0NIT09TRVIgICAg
ICAgICAgICAod2Via2l0X2Vtb2ppX2Nob29zZXJfZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lU
X0VNT0pJX0NIT09TRVIob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FT
VCgob2JqKSwgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUiwgV2ViS2l0RW1vamlDaG9vc2VyKSkK
LSNkZWZpbmUgV0VCS0lUX0lTX0VNT0pJX0NIT09TRVIob2JqKSAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUikpCi0jZGVm
aW5lIFdFQktJVF9FTU9KSV9DSE9PU0VSX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NM
QVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0VNT0pJX0NIT09TRVIsIFdlYktpdEVtb2pp
Q2hvb3NlckNsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX0VNT0pJX0NIT09TRVJfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRU1PSklf
Q0hPT1NFUikpCi0jZGVmaW5lIFdFQktJVF9FTU9KSV9DSE9PU0VSX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0VNT0pJX0NIT09T
RVIsIFdlYktpdEVtb2ppQ2hvb3NlckNsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEVt
b2ppQ2hvb3NlciAgICAgICAgV2ViS2l0RW1vamlDaG9vc2VyOwotdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdEVtb2ppQ2hvb3NlckNsYXNzICAgV2ViS2l0RW1vamlDaG9vc2VyQ2xhc3M7Ci10eXBlZGVm
IHN0cnVjdCBfV2ViS2l0RW1vamlDaG9vc2VyUHJpdmF0ZSBXZWJLaXRFbW9qaUNob29zZXJQcml2
YXRlOwotCi1zdHJ1Y3QgX1dlYktpdEVtb2ppQ2hvb3NlciB7Ci0gICAgR3RrUG9wb3ZlciBwYXJl
bnQ7Ci0KLSAgICBXZWJLaXRFbW9qaUNob29zZXJQcml2YXRlKiBwcml2OwotfTsKLQotc3RydWN0
IF9XZWJLaXRFbW9qaUNob29zZXJDbGFzcyB7Ci0gICAgR3RrUG9wb3ZlckNsYXNzIHBhcmVudENs
YXNzOwotfTsKLQotR1R5cGUgd2Via2l0X2Vtb2ppX2Nob29zZXJfZ2V0X3R5cGUoKTsKIEd0a1dp
ZGdldCogd2Via2l0RW1vamlDaG9vc2VyTmV3KCk7CiAKIEdfRU5EX0RFQ0xTCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441143</attachid>
            <date>2021-10-13 15:17:59 -0700</date>
            <delta_ts>2021-10-13 15:52:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228664-20211014001757.patch</filename>
            <type>text/plain</type>
            <size>33366</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ZjQwOWY4N2I5N2U2MGQw
ZjM5YTFjZjg1OTMxZjBhNGNlOGJiZDguLjk0YmYwMDBjYzQwYWU0ODk3MTI5MDY5MmQxOTlhOWFl
ODVjZjRkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMTAtMTIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBPcGVu
aW5nIGVtb2ppIGNob29zZXIgY3Jhc2hlcyBVSSBwcm9jZXNzIHdpdGggR1RLIDMuMjQuMzAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODY2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIEluc3RlYWQg
b2YgcHJvdmlkaW5nIGEgY29weSBvZiB0aGUgZW1vamkgY2hvb3NlciB3aWRnZXQsIHVzZSBHTGli
J3MKKyAgICAgICAgaW50cm9zcGVjdGlvbiBmZWF0dXJlcyBhbmQgYSBsaXR0bGUgc3ByaW5rbGUg
b2Yga25vd2xlZGdlIGFib3V0IGhvdworICAgICAgICBHVEsgd29ya3MgaW4gb3JkZXIgdG8gb2J0
YWluIHRoZSB0eXBlIGNvZGUgb2YgdGhlIEd0a0Vtb2ppQ2hvb3NlcgorICAgICAgICB3aWRnZXQg
aW5jbHVkZWQgd2l0aCBHVEsuIFRoaXMgZW5zdXJlcyB0aGF0IGEgd29ya2luZyB3aWRnZXQgaXMK
KyAgICAgICAgYWx3YXlzIHVzZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgR1RLIHZlcnNp
b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHA6CisgICAgICAgICh3ZWJraXRFbW9qaUNo
b29zZXJOZXcpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hv
b3NlckFkZEVtb2ppKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckFkZFJl
Y2VudEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoZW1vamlBY3RpdmF0ZWQpOiBEZWxldGVkLgor
ICAgICAgICAoZW1vamlEYXRhSGFzVmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJr
aXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChlbW9qaUxv
bmdQcmVzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGVtb2ppUHJlc3NlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChlbW9qaVBvcHVwTWVudSk6IERlbGV0ZWQuCisgICAgICAgICh2ZXJ0aWNhbEFkanVz
dG1lbnRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVw
U2VjdGlvbkJveCk6IERlbGV0ZWQuCisgICAgICAgIChzY3JvbGxUb1NlY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBTZWN0aW9uQnV0dG9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlckVuc3VyZUVtcHR5UmVzdWx0KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdEVtb2ppQ2hvb3NlclNlYXJjaENoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAod2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKHdl
YmtpdEVtb2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICh3
ZWJraXRFbW9qaUNob29zZXJJbml0aWFsaXplRW1vamlNYXhXaWR0aCk6IERlbGV0ZWQuCisgICAg
ICAgICh3ZWJraXRFbW9qaUNob29zZXJDb25zdHJ1Y3RlZCk6IERlbGV0ZWQuCisgICAgICAgICh3
ZWJraXRFbW9qaUNob29zZXJTaG93KTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdF9lbW9qaV9j
aG9vc2VyX2NsYXNzX2luaXQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVtb2ppQ2hvb3Nlci5oOgorCiAyMDIxLTEwLTEzICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtSGFuZGxlIG1vdmUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmlu
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCmluZGV4IDgyMTJi
ZjJjYzk5Njc5MTAxOTJkMmRhYmQ1YTE1ZDYwZTIyNjEzNjMuLjg1ZGM3M2RhMTUwNzljMWE5MzUz
NTVkZjUyYzM1Y2FhNmRmOTU0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9wby9QT1RGSUxFUy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8v
UE9URklMRVMuaW4KQEAgLTMzLDcgKzMzLDYgQEAgTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKIC4u
Ly4uLy4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2luZG93UHJvcGVydGllcy5j
cHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlv
bkRpYWxvZy5jcHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xv
ckNob29zZXJSZXF1ZXN0LmNwcAotLi4vLi4vLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVtb2ppQ2hvb3Nlci5jcHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRQcmludEN1c3RvbVdpZGdldC5jcHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2dJbXBsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9qaUNob29zZXIuY3BwCmluZGV4IGNiY2Ew
ZjEyNjZhZmFmZGQwMWFhZmFkM2YzOWQ3MzNmMTA2ZjMxMjguLjYyNmNkNGY1OTQzZmE2NDczNjQ3
OTc0OTI4ZjU1ZGQzMmI1NzU0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5jcHAKQEAgLTEsNiArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
UmVkIEhhdCwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTE4LDYyMyArMTcsNTUgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgogICovCiAKLS8vIEd0a0Vtb2ppQ2hvb3NlciBpcyBwcml2YXRlIGluIEdUSyAzLCBz
byB0aGlzIGlzIGJhc2VkIGluIHRoZSBHVEsgY29kZSwganVzdCBhZGFwdGVkIHRvCi0vLyBXZWJL
aXQgY29kaW5nIHN0eWxlLCB1c2luZyBzb21lIGludGVybmFsIHR5cGVzIGZyb20gV1RGIHRvIHNp
bXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbgotLy8gYW5kIG5vdCB1c2luZyBHdGtCdWlsZGVyIGZv
ciB0aGUgVUkuCisvLyBHdGtFbW9qaUNob29zZXIgaXMgcHJpdmF0ZSBpbiBHVEsgMywgc28gdGhp
cyBnb2VzIHRocm91Z2ggc29tZSBob29wcyB0bworLy8gb2J0YWluIGl0cyB0eXBlIGNvZGUgdmlh
IGdfdHlwZV9mcm9tX25hbWUoKS4gVGhlIG1haW4gaXNzdWUgaXMgdGhhdCB0aGUKKy8vIHR5cGUg
bmVlZHMgdG8gaGF2ZSBiZWVuIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCwgd2hpY2ggaW4gcHJhY3Rp
Y2UgbWVhbnMKKy8vIHRyaWdnZXJpbmcgYSBjYWxsIHRvIGd0a19lbW9qaV9jaG9vc2VyX2dldF90
eXBlKCksIGFsc28gYSBoaWRkZW4gcHJpdmF0ZQorLy8gZnVuY3Rpb24uCisvLworLy8gT25lIHBv
aW50IGluIHRoZSBwdWJsaWMgQVBJIHdoZXJlIGFuIGVtb2ppIGNob29zZXIgY2FuIGJlIGV4cGxp
Y2l0bHkKKy8vIHRyaWdnZXJlZCBpcyB0aGUgR3RrRW50cnkuaW5zZXJ0X2Vtb2ppIHZmdW5jOiBl
aXRoZXIgYXQgdGhhdCBwb2ludCB0aGUKKy8vIEd0a0Vtb2ppQ2hvb3NlciB1c2VkIGJ5IHRoZSBl
bnRyeSBoYXMgYmVlbiBhbHJlYWR5IGNyZWF0ZWQsIG9yIGl0IHdpbGwKKy8vIGJlIGNyZWF0ZWQg
YnkgY2FsbGluZyBpdC4gT2JqZWN0IGluc3RhbnRpYXRpb24gbmVlZHMgdGhlIHR5cGUgdG8gYmUK
Ky8vIHJlZ2lzdGVyZWQsIHNvIGFmdGVyIG1ha2luZyBzdXJlIGF0IGxlYXN0IG9uZSBpbnN0YW5j
ZSBpcyBjcmVhdGVkIGl0CisvLyBpcyBzYWZlIHRvIHVzZSBnX3R5cGVfZnJvbV9uYW1lKCkuCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRFbW9qaUNob29zZXIuaCIKIAog
I2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDI0LCAwKSAmJiAhVVNFKEdUSzQpCiAKLSNpbmNsdWRl
IDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL2ds
aWIvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQot
ZW51bSB7Ci0gICAgRU1PSklfUElDS0VELAotCi0gICAgTEFTVF9TSUdOQUwKLX07Ci0KLXN0cnVj
dCBFbW9qaVNlY3Rpb24gewotICAgIEd0a1dpZGdldCogaGVhZGluZyB7IG51bGxwdHIgfTsKLSAg
ICBHdGtXaWRnZXQqIGJveCB7IG51bGxwdHIgfTsKLSAgICBHdGtXaWRnZXQqIGJ1dHRvbiB7IG51
bGxwdHIgfTsKLSAgICBib29sIGlzRW1wdHkgeyBmYWxzZSB9OwotICAgIGNvbnN0IGNoYXIqIGZp
cnN0RW1vamlOYW1lIHsgbnVsbHB0ciB9OwotfTsKLQotdXNpbmcgU2VjdGlvbkxpc3QgPSBWZWN0
b3I8RW1vamlTZWN0aW9uLCA5PjsKLQotY2xhc3MgQ2FsbGJhY2tUaW1lciBmaW5hbCA6IHB1Ymxp
YyBSdW5Mb29wOjpUaW1lckJhc2UgewotcHVibGljOgotICAgIENhbGxiYWNrVGltZXIoRnVuY3Rp
b248dm9pZCgpPiYmIGNhbGxiYWNrKQotICAgICAgICA6IFJ1bkxvb3A6OlRpbWVyQmFzZShSdW5M
b29wOjptYWluKCkpCi0gICAgICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgfkNhbGxiYWNrVGltZXIoKSA9IGRlZmF1bHQ7Ci0KLXByaXZhdGU6
Ci0gICAgdm9pZCBmaXJlZCgpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBtX2NhbGxiYWNrKCk7
Ci0gICAgfQotCi0gICAgRnVuY3Rpb248dm9pZCgpPiBtX2NhbGxiYWNrOwotfTsKLQotc3RydWN0
IF9XZWJLaXRFbW9qaUNob29zZXJQcml2YXRlIHsKLSAgICBHdGtXaWRnZXQqIHN0YWNrOwotICAg
IEd0a1dpZGdldCogc3dpbmRvdzsKLSAgICBHdGtXaWRnZXQqIHNlYXJjaEVudHJ5OwotICAgIFNl
Y3Rpb25MaXN0IHNlY3Rpb25zOwotICAgIEdSZWZQdHI8R1NldHRpbmdzPiBzZXR0aW5nczsKLSAg
ICBIYXNoU2V0PEdSZWZQdHI8R3RrR2VzdHVyZT4+IGdlc3R1cmVzOwotICAgIGludCBlbW9qaU1h
eFdpZHRoOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYmFja1RpbWVyPiBwb3B1bGF0ZVNlY3Rp
b25zVGltZXI7Ci19OwotCi1zdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAs
IH07Ci0KLVdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRFbW9qaUNob29zZXIsIHdlYmtpdF9lbW9q
aV9jaG9vc2VyLCBHVEtfVFlQRV9QT1BPVkVSKQotCi1zdGF0aWMgdm9pZCBlbW9qaVBvcHVwTWVu
dShHdGtXaWRnZXQqLCBXZWJLaXRFbW9qaUNob29zZXIqKTsKLQotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGJveFNwYWNlID0gNjsKLQotc3RhdGljIHZvaWQgZW1vamlIb3ZlcmVkKEd0a1dpZGdldCog
d2lkZ2V0LCBHZGtFdmVudCogZXZlbnQpCi17Ci0gICAgaWYgKGdka19ldmVudF9nZXRfZXZlbnRf
dHlwZShldmVudCkgPT0gR0RLX0VOVEVSX05PVElGWSkKLSAgICAgICAgZ3RrX3dpZGdldF9zZXRf
c3RhdGVfZmxhZ3Mod2lkZ2V0LCBHVEtfU1RBVEVfRkxBR19QUkVMSUdIVCwgRkFMU0UpOwotICAg
IGVsc2UKLSAgICAgICAgZ3RrX3dpZGdldF91bnNldF9zdGF0ZV9mbGFncyh3aWRnZXQsIEdUS19T
VEFURV9GTEFHX1BSRUxJR0hUKTsKLX0KLQotc3RhdGljIEd0a1dpZGdldCogd2Via2l0RW1vamlD
aG9vc2VyQWRkRW1vamkoV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBHdGtGbG93Qm94KiBw
YXJlbnQsIEdWYXJpYW50KiBpdGVtLCBib29sIHByZXBlbmQgPSBmYWxzZSwgZ3VuaWNoYXIgbW9k
aWZpZXIgPSAwKQotewotICAgIGNoYXIgdGV4dFs2NF07Ci0gICAgY2hhciogdGV4dFB0ciA9IHRl
eHQ7Ci0gICAgR1JlZlB0cjxHVmFyaWFudD4gY29kZXMgPSBhZG9wdEdSZWYoZ192YXJpYW50X2dl
dF9jaGlsZF92YWx1ZShpdGVtLCAwKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGdf
dmFyaWFudF9uX2NoaWxkcmVuKGNvZGVzLmdldCgpKTsgKytpKSB7Ci0gICAgICAgIGd1bmljaGFy
IGNvZGU7Ci0gICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoY29kZXMuZ2V0KCksIGksICJ1Iiwg
JmNvZGUpOwotICAgICAgICBpZiAoIWNvZGUpCi0gICAgICAgICAgICBjb2RlID0gbW9kaWZpZXI7
Ci0gICAgICAgIGlmIChjb2RlKQotICAgICAgICAgICAgdGV4dFB0ciArPSBnX3VuaWNoYXJfdG9f
dXRmOChjb2RlLCB0ZXh0UHRyKTsKLSAgICB9Ci0gICAgLy8gVStGRTBGIGlzIHRoZSBFbW9qaSB2
YXJpYXRpb24gc2VsZWN0b3IKLSAgICB0ZXh0UHRyICs9IGdfdW5pY2hhcl90b191dGY4KDB4RkUw
RiwgdGV4dFB0cik7Ci0gICAgdGV4dFB0clswXSA9ICdcMCc7Ci0KLSAgICBHdGtXaWRnZXQqIGxh
YmVsID0gZ3RrX2xhYmVsX25ldyh0ZXh0KTsKLSAgICBQYW5nb0F0dHJMaXN0KiBhdHRyaWJ1dGVz
ID0gcGFuZ29fYXR0cl9saXN0X25ldygpOwotICAgIHBhbmdvX2F0dHJfbGlzdF9pbnNlcnQoYXR0
cmlidXRlcywgcGFuZ29fYXR0cl9zY2FsZV9uZXcoUEFOR09fU0NBTEVfWF9MQVJHRSkpOwotICAg
IGd0a19sYWJlbF9zZXRfYXR0cmlidXRlcyhHVEtfTEFCRUwobGFiZWwpLCBhdHRyaWJ1dGVzKTsK
LSAgICBwYW5nb19hdHRyX2xpc3RfdW5yZWYoYXR0cmlidXRlcyk7Ci0KLSAgICBQYW5nb0xheW91
dCogbGF5b3V0ID0gZ3RrX2xhYmVsX2dldF9sYXlvdXQoR1RLX0xBQkVMKGxhYmVsKSk7Ci0gICAg
UGFuZ29SZWN0YW5nbGUgcmVjdDsKLSAgICBwYW5nb19sYXlvdXRfZ2V0X2V4dGVudHMobGF5b3V0
LCAmcmVjdCwgbnVsbHB0cik7Ci0gICAgLy8gQ2hlY2sgZm9yIGZhbGxiYWNrIHJlbmRlcmluZyB0
aGF0IGdlbmVyYXRlcyB0b28gd2lkZSBpdGVtcy4KLSAgICBpZiAocGFuZ29fbGF5b3V0X2dldF91
bmtub3duX2dseXBoc19jb3VudChsYXlvdXQpIHx8IHJlY3Qud2lkdGggPj0gMS41ICogY2hvb3Nl
ci0+cHJpdi0+ZW1vamlNYXhXaWR0aCkgewotICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3kobGFi
ZWwpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBHdGtXaWRnZXQqIGNo
aWxkID0gZ3RrX2Zsb3dfYm94X2NoaWxkX25ldygpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2Fk
ZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KGNoaWxkKSwgImVtb2ppIik7Ci0g
ICAgZ19vYmplY3Rfc2V0X2RhdGFfZnVsbChHX09CSkVDVChjaGlsZCksICJlbW9qaS1kYXRhIiwg
Z192YXJpYW50X3JlZihpdGVtKSwgcmVpbnRlcnByZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4oZ192
YXJpYW50X3VucmVmKSk7Ci0gICAgaWYgKG1vZGlmaWVyKQotICAgICAgICBnX29iamVjdF9zZXRf
ZGF0YShHX09CSkVDVChjaGlsZCksICJtb2RpZmllciIsIEdVSU5UX1RPX1BPSU5URVIobW9kaWZp
ZXIpKTsKLQotICAgIEd0a1dpZGdldCogZXZlbnRCb3ggPSBndGtfZXZlbnRfYm94X25ldygpOwot
ICAgIGd0a193aWRnZXRfYWRkX2V2ZW50cyhldmVudEJveCwgR0RLX0VOVEVSX05PVElGWV9NQVNL
IHwgR0RLX0xFQVZFX05PVElGWV9NQVNLKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGV2ZW50Qm94
LCAiZW50ZXItbm90aWZ5LWV2ZW50IiwgR19DQUxMQkFDSyhlbW9qaUhvdmVyZWQpLCBudWxscHRy
KTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGV2ZW50Qm94LCAibGVhdmUtbm90aWZ5LWV2ZW50Iiwg
R19DQUxMQkFDSyhlbW9qaUhvdmVyZWQpLCBudWxscHRyKTsKLSAgICBndGtfY29udGFpbmVyX2Fk
ZChHVEtfQ09OVEFJTkVSKGV2ZW50Qm94KSwgbGFiZWwpOwotICAgIGd0a193aWRnZXRfc2hvdyhs
YWJlbCk7Ci0KLSAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGNoaWxkKSwgZXZl
bnRCb3gpOwotICAgIGd0a193aWRnZXRfc2hvdyhldmVudEJveCk7Ci0KLSAgICBndGtfZmxvd19i
b3hfaW5zZXJ0KHBhcmVudCwgY2hpbGQsIHByZXBlbmQgPyAwIDogLTEpOwotICAgIGd0a193aWRn
ZXRfc2hvdyhjaGlsZCk7Ci0KLSAgICByZXR1cm4gY2hpbGQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdEVtb2ppQ2hvb3NlckFkZFJlY2VudEl0ZW0oV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2Vy
LCBHVmFyaWFudCogaXRlbSwgZ3VuaWNoYXIgbW9kaWZpZXIpCi17Ci0gICAgR1JlZlB0cjxHVmFy
aWFudD4gcHJvdGVjdEl0ZW0oaXRlbSk7Ci0gICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImEoKGF1
c3MpdSkiKSk7Ci0gICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAiKEAoYXVzcyl1
KSIsIGl0ZW0sIG1vZGlmaWVyKTsKLQotICAgIGF1dG8mIHNlY3Rpb24gPSBjaG9vc2VyLT5wcml2
LT5zZWN0aW9ucy5maXJzdCgpOwotCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFJlY2Vu
dEl0ZW1zID0gNyAqIDM7Ci0KLSAgICBHVW5pcXVlUHRyPEdMaXN0PiBjaGlsZHJlbihndGtfY29u
dGFpbmVyX2dldF9jaGlsZHJlbihHVEtfQ09OVEFJTkVSKHNlY3Rpb24uYm94KSkpOwotICAgIHVu
c2lnbmVkIGkgPSAxOwotICAgIGZvciAoYXV0byogbCA9IGNoaWxkcmVuLmdldCgpOyBsOyBsID0g
Z19saXN0X25leHQobCksICsraSkgewotICAgICAgICBhdXRvKiBpdGVtMiA9IHN0YXRpY19jYXN0
PEdWYXJpYW50Kj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QobC0+ZGF0YSksICJlbW9qaS1k
YXRhIikpOwotICAgICAgICBhdXRvIG1vZGlmaWVyMiA9IHN0YXRpY19jYXN0PGd1bmljaGFyPihH
UE9JTlRFUl9UT19VSU5UKGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGwtPmRhdGEpLCAibW9k
aWZpZXIiKSkpOwotICAgICAgICBpZiAobW9kaWZpZXIgPT0gbW9kaWZpZXIyICYmIGdfdmFyaWFu
dF9lcXVhbChpdGVtLCBpdGVtMikpIHsKLSAgICAgICAgICAgIGd0a193aWRnZXRfZGVzdHJveShH
VEtfV0lER0VUKGwtPmRhdGEpKTsKLSAgICAgICAgICAgIC0taTsKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGkgPj0gbWF4UmVjZW50SXRlbXMpIHsKLSAg
ICAgICAgICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKGwtPmRhdGEpKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgZ192YXJpYW50X2J1aWxkZXJf
YWRkKCZidWlsZGVyLCAiKEAoYXVzcyl1KSIsIGl0ZW0yLCBtb2RpZmllcjIpOwotICAgIH0KLQot
ICAgIGF1dG8qIGNoaWxkID0gd2Via2l0RW1vamlDaG9vc2VyQWRkRW1vamkoY2hvb3NlciwgR1RL
X0ZMT1dfQk9YKHNlY3Rpb24uYm94KSwgaXRlbSwgdHJ1ZSwgbW9kaWZpZXIpOwotICAgIGlmIChj
aGlsZCkKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChjaGlsZCwgInBvcHVwLW1lbnUiLCBHX0NB
TExCQUNLKGVtb2ppUG9wdXBNZW51KSwgY2hvb3Nlcik7Ci0KLSAgICBndGtfd2lkZ2V0X3Nob3co
c2VjdGlvbi5ib3gpOwotICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZShzZWN0aW9uLmJ1dHRv
biwgVFJVRSk7Ci0KLSAgICBnX3NldHRpbmdzX3NldF92YWx1ZShjaG9vc2VyLT5wcml2LT5zZXR0
aW5ncy5nZXQoKSwgInJlY2VudC1lbW9qaSIsIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRl
cikpOwotfQotCi1zdGF0aWMgdm9pZCBlbW9qaUFjdGl2YXRlZChHdGtGbG93Qm94KiBib3gsIEd0
a0Zsb3dCb3hDaGlsZCogY2hpbGQsIFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKLXsKLSAg
ICBndGtfcG9wb3Zlcl9wb3Bkb3duKEdUS19QT1BPVkVSKGNob29zZXIpKTsKLQotICAgIEd0a1dp
ZGdldCogbGFiZWwgPSBndGtfYmluX2dldF9jaGlsZChHVEtfQklOKGd0a19iaW5fZ2V0X2NoaWxk
KEdUS19CSU4oY2hpbGQpKSkpOwotICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGV4dChnX3N0cmR1cChn
dGtfbGFiZWxfZ2V0X2xhYmVsKEdUS19MQUJFTChsYWJlbCkpKSk7Ci0KLSAgICBhdXRvKiBpdGVt
ID0gc3RhdGljX2Nhc3Q8R1ZhcmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChjaGls
ZCksICJlbW9qaS1kYXRhIikpOwotICAgIGF1dG8gbW9kaWZpZXIgPSBzdGF0aWNfY2FzdDxndW5p
Y2hhcj4oR1BPSU5URVJfVE9fVUlOVChnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChjaGlsZCks
ICJtb2RpZmllciIpKSk7Ci0gICAgd2Via2l0RW1vamlDaG9vc2VyQWRkUmVjZW50SXRlbShjaG9v
c2VyLCBpdGVtLCBtb2RpZmllcik7Ci0gICAgZ19zaWduYWxfZW1pdChjaG9vc2VyLCBzaWduYWxz
W0VNT0pJX1BJQ0tFRF0sIDAsIHRleHQuZ2V0KCkpOwotfQotCi1zdGF0aWMgYm9vbCBlbW9qaURh
dGFIYXNWYXJpYXRpb25zKEdWYXJpYW50KiBlbW9qaURhdGEpCi17Ci0gICAgR1JlZlB0cjxHVmFy
aWFudD4gY29kZXMgPSBhZG9wdEdSZWYoZ192YXJpYW50X2dldF9jaGlsZF92YWx1ZShlbW9qaURh
dGEsIDApKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGdfdmFyaWFudF9uX2NoaWxkcmVu
KGNvZGVzLmdldCgpKTsgKytpKSB7Ci0gICAgICAgIGd1bmljaGFyIGNvZGU7Ci0gICAgICAgIGdf
dmFyaWFudF9nZXRfY2hpbGQoY29kZXMuZ2V0KCksIGksICJ1IiwgJmNvZGUpOwotICAgICAgICBp
ZiAoIWNvZGUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyhX
ZWJLaXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a1dpZGdldCogY2hpbGQpCi17Ci0gICAgaWYg
KCFjaGlsZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogZW1vamlEYXRhID0gc3RhdGlj
X2Nhc3Q8R1ZhcmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChjaGlsZCksICJlbW9q
aS1kYXRhIikpOwotICAgIGlmICghZW1vamlEYXRhKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoIWVtb2ppRGF0YUhhc1ZhcmlhdGlvbnMoZW1vamlEYXRhKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgR3RrV2lkZ2V0KiBwb3BvdmVyID0gZ3RrX3BvcG92ZXJfbmV3KGNoaWxkKTsKLSAgICBH
dGtXaWRnZXQqIHZpZXcgPSBndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwg
MCk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0X3N0eWxl
X2NvbnRleHQodmlldyksICJ2aWV3Iik7Ci0gICAgR3RrV2lkZ2V0KiBib3ggPSBndGtfZmxvd19i
b3hfbmV3KCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChib3gsICJjaGlsZC1hY3RpdmF0ZWQiLCBH
X0NBTExCQUNLKGVtb2ppQWN0aXZhdGVkKSwgY2hvb3Nlcik7Ci0gICAgZ3RrX2Zsb3dfYm94X3Nl
dF9ob21vZ2VuZW91cyhHVEtfRkxPV19CT1goYm94KSwgVFJVRSk7Ci0gICAgZ3RrX2Zsb3dfYm94
X3NldF9taW5fY2hpbGRyZW5fcGVyX2xpbmUoR1RLX0ZMT1dfQk9YKGJveCksIDYpOwotICAgIGd0
a19mbG93X2JveF9zZXRfbWF4X2NoaWxkcmVuX3Blcl9saW5lKEdUS19GTE9XX0JPWChib3gpLCA2
KTsKLSAgICBndGtfZmxvd19ib3hfc2V0X2FjdGl2YXRlX29uX3NpbmdsZV9jbGljayhHVEtfRkxP
V19CT1goYm94KSwgVFJVRSk7Ci0gICAgZ3RrX2Zsb3dfYm94X3NldF9zZWxlY3Rpb25fbW9kZShH
VEtfRkxPV19CT1goYm94KSwgR1RLX1NFTEVDVElPTl9OT05FKTsKLSAgICBndGtfY29udGFpbmVy
X2FkZChHVEtfQ09OVEFJTkVSKHZpZXcpLCBib3gpOwotICAgIGd0a193aWRnZXRfc2hvdyhib3gp
OwotICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIocG9wb3ZlciksIHZpZXcpOwot
ICAgIGd0a193aWRnZXRfc2hvdyh2aWV3KTsKLQotICAgIHdlYmtpdEVtb2ppQ2hvb3NlckFkZEVt
b2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChib3gpLCBlbW9qaURhdGEpOwotICAgIGZvciAoZ3Vu
aWNoYXIgbW9kaWZpZXIgPSAweDFGM0ZCOyBtb2RpZmllciA8PSAweDFGM0ZGOyArK21vZGlmaWVy
KQotICAgICAgICB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19C
T1goYm94KSwgZW1vamlEYXRhLCBmYWxzZSwgbW9kaWZpZXIpOwotCi0gICAgZ3RrX3BvcG92ZXJf
cG9wdXAoR1RLX1BPUE9WRVIocG9wb3ZlcikpOwotfQotCi1zdGF0aWMgdm9pZCBlbW9qaUxvbmdQ
cmVzc2VkKEd0a0dlc3R1cmUqIGdlc3R1cmUsIGRvdWJsZSB4LCBkb3VibGUgeSwgV2ViS2l0RW1v
amlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIGF1dG8qIGJveCA9IEdUS19GTE9XX0JPWChndGtf
ZXZlbnRfY29udHJvbGxlcl9nZXRfd2lkZ2V0KEdUS19FVkVOVF9DT05UUk9MTEVSKGdlc3R1cmUp
KSk7Ci0gICAgd2Via2l0RW1vamlDaG9vc2VyU2hvd1ZhcmlhdGlvbnMoY2hvb3NlciwgR1RLX1dJ
REdFVChndGtfZmxvd19ib3hfZ2V0X2NoaWxkX2F0X3Bvcyhib3gsIHgsIHkpKSk7Ci19Ci0KLXN0
YXRpYyB2b2lkIGVtb2ppUHJlc3NlZChHdGtHZXN0dXJlKiBnZXN0dXJlLCBpbnQsIGRvdWJsZSB4
LCBkb3VibGUgeSwgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIGVtb2ppTG9u
Z1ByZXNzZWQoZ2VzdHVyZSwgeCwgeSwgY2hvb3Nlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGVtb2pp
UG9wdXBNZW51KEd0a1dpZGdldCogY2hpbGQsIFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikK
LXsKLSAgICB3ZWJraXRFbW9qaUNob29zZXJTaG93VmFyaWF0aW9ucyhjaG9vc2VyLCBjaGlsZCk7
Ci19Ci0KLXN0YXRpYyB2b2lkIHZlcnRpY2FsQWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0bWVu
dCogYWRqdXN0bWVudCwgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIGRvdWJs
ZSB2YWx1ZSA9IGd0a19hZGp1c3RtZW50X2dldF92YWx1ZShhZGp1c3RtZW50KTsKLSAgICBFbW9q
aVNlY3Rpb24qIHNlY3Rpb25Ub1NlbGVjdCA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiBzZWN0
aW9uIDogY2hvb3Nlci0+cHJpdi0+c2VjdGlvbnMpIHsKLSAgICAgICAgR3RrQWxsb2NhdGlvbiBh
bGxvY2F0aW9uOwotICAgICAgICBpZiAoc2VjdGlvbi5oZWFkaW5nKQotICAgICAgICAgICAgZ3Rr
X3dpZGdldF9nZXRfYWxsb2NhdGlvbihzZWN0aW9uLmhlYWRpbmcsICZhbGxvY2F0aW9uKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbihzZWN0aW9u
LmJveCwgJmFsbG9jYXRpb24pOwotCi0gICAgICAgIGlmICh2YWx1ZSA8IGFsbG9jYXRpb24ueSAt
IGJveFNwYWNlKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgc2VjdGlvblRvU2VsZWN0
ID0gJnNlY3Rpb247Ci0gICAgfQotCi0gICAgaWYgKCFzZWN0aW9uVG9TZWxlY3QpCi0gICAgICAg
IHNlY3Rpb25Ub1NlbGVjdCA9ICZjaG9vc2VyLT5wcml2LT5zZWN0aW9uc1swXTsKLQotICAgIGZv
ciAoYXV0byYgc2VjdGlvbiA6IGNob29zZXItPnByaXYtPnNlY3Rpb25zKSB7Ci0gICAgICAgIGlm
ICgmc2VjdGlvbiA9PSBzZWN0aW9uVG9TZWxlY3QpCi0gICAgICAgICAgICBndGtfd2lkZ2V0X3Nl
dF9zdGF0ZV9mbGFncyhzZWN0aW9uLmJ1dHRvbiwgR1RLX1NUQVRFX0ZMQUdfQ0hFQ0tFRCwgRkFM
U0UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBndGtfd2lkZ2V0X3Vuc2V0X3N0YXRlX2Zs
YWdzKHNlY3Rpb24uYnV0dG9uLCBHVEtfU1RBVEVfRkxBR19DSEVDS0VEKTsKLSAgICB9Ci19Ci0K
LXN0YXRpYyBHdGtXaWRnZXQqIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwU2VjdGlvbkJveChXZWJL
aXRFbW9qaUNob29zZXIqIGNob29zZXIsIEd0a0JveCogcGFyZW50LCBjb25zdCBjaGFyKiBmaXJz
dEVtb2ppTmFtZSwgY29uc3QgY2hhciogdGl0bGUsIEd0a0FkanVzdG1lbnQqIGFkanVzdG1lbnQs
IGdib29sZWFuIGNhbkhhdmVWYXJpYXRpb25zID0gRkFMU0UpCi17Ci0gICAgRW1vamlTZWN0aW9u
IHNlY3Rpb247Ci0gICAgc2VjdGlvbi5maXJzdEVtb2ppTmFtZSA9IGZpcnN0RW1vamlOYW1lOwot
ICAgIGlmICh0aXRsZSkgewotICAgICAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3RrX2xhYmVsX25l
dyh0aXRsZSk7Ci0gICAgICAgIHNlY3Rpb24uaGVhZGluZyA9IGxhYmVsOwotICAgICAgICBndGtf
bGFiZWxfc2V0X3hhbGlnbihHVEtfTEFCRUwobGFiZWwpLCAwKTsKLSAgICAgICAgZ3RrX2JveF9w
YWNrX3N0YXJ0KHBhcmVudCwgbGFiZWwsIEZBTFNFLCBGQUxTRSwgMCk7Ci0gICAgICAgIGd0a193
aWRnZXRfc2hvdyhsYWJlbCk7Ci0gICAgfQotCi0gICAgR3RrV2lkZ2V0KiBib3ggPSBndGtfZmxv
d19ib3hfbmV3KCk7Ci0gICAgc2VjdGlvbi5ib3ggPSBib3g7Ci0gICAgZ19zaWduYWxfY29ubmVj
dChib3gsICJjaGlsZC1hY3RpdmF0ZWQiLCBHX0NBTExCQUNLKGVtb2ppQWN0aXZhdGVkKSwgY2hv
b3Nlcik7Ci0gICAgZ3RrX2Zsb3dfYm94X3NldF9ob21vZ2VuZW91cyhHVEtfRkxPV19CT1goYm94
KSwgVFJVRSk7Ci0gICAgZ3RrX2Zsb3dfYm94X3NldF9zZWxlY3Rpb25fbW9kZShHVEtfRkxPV19C
T1goYm94KSwgR1RLX1NFTEVDVElPTl9OT05FKTsKLSAgICBndGtfY29udGFpbmVyX3NldF9mb2N1
c192YWRqdXN0bWVudChHVEtfQ09OVEFJTkVSKGJveCksIGFkanVzdG1lbnQpOwotICAgIGd0a19i
b3hfcGFja19zdGFydChwYXJlbnQsIGJveCwgRkFMU0UsIEZBTFNFLCAwKTsKLSAgICBndGtfd2lk
Z2V0X3Nob3coYm94KTsKLQotICAgIGlmIChjYW5IYXZlVmFyaWF0aW9ucykgewotICAgICAgICBH
UmVmUHRyPEd0a0dlc3R1cmU+IGdlc3R1cmUgPSBhZG9wdEdSZWYoZ3RrX2dlc3R1cmVfbG9uZ19w
cmVzc19uZXcoYm94KSk7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QoZ2VzdHVyZS5nZXQoKSwg
InByZXNzZWQiLCBHX0NBTExCQUNLKGVtb2ppTG9uZ1ByZXNzZWQpLCBjaG9vc2VyKTsKLSAgICAg
ICAgY2hvb3Nlci0+cHJpdi0+Z2VzdHVyZXMuYWRkKFdURk1vdmUoZ2VzdHVyZSkpOwotICAgICAg
ICBHUmVmUHRyPEd0a0dlc3R1cmU+IG11bHRpR2VzdHVyZSA9IGFkb3B0R1JlZihndGtfZ2VzdHVy
ZV9tdWx0aV9wcmVzc19uZXcoYm94KSk7Ci0gICAgICAgIGd0a19nZXN0dXJlX3NpbmdsZV9zZXRf
YnV0dG9uKEdUS19HRVNUVVJFX1NJTkdMRShtdWx0aUdlc3R1cmUuZ2V0KCkpLCBHREtfQlVUVE9O
X1NFQ09OREFSWSk7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QobXVsdGlHZXN0dXJlLmdldCgp
LCAicHJlc3NlZCIsIEdfQ0FMTEJBQ0soZW1vamlQcmVzc2VkKSwgY2hvb3Nlcik7Ci0gICAgICAg
IGNob29zZXItPnByaXYtPmdlc3R1cmVzLmFkZChXVEZNb3ZlKG11bHRpR2VzdHVyZSkpOwotICAg
IH0KLQotICAgIGNob29zZXItPnByaXYtPnNlY3Rpb25zLmFwcGVuZChXVEZNb3ZlKHNlY3Rpb24p
KTsKLSAgICByZXR1cm4gYm94OwotfQotCi1zdGF0aWMgdm9pZCBzY3JvbGxUb1NlY3Rpb24oR3Rr
QnV0dG9uKiBidXR0b24sIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgYXV0byogY2hvb3NlciA9IFdF
QktJVF9FTU9KSV9DSE9PU0VSKGd0a193aWRnZXRfZ2V0X2FuY2VzdG9yKEdUS19XSURHRVQoYnV0
dG9uKSwgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUikpOwotICAgIGF1dG8mIHNlY3Rpb24gPSBj
aG9vc2VyLT5wcml2LT5zZWN0aW9uc1tHUE9JTlRFUl9UT19VSU5UKGRhdGEpXTsKLSAgICBHdGtB
ZGp1c3RtZW50KiBhZGp1c3RtZW50ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19nZXRfdmFkanVzdG1l
bnQoR1RLX1NDUk9MTEVEX1dJTkRPVyhjaG9vc2VyLT5wcml2LT5zd2luZG93KSk7Ci0gICAgaWYg
KHNlY3Rpb24uaGVhZGluZykgewotICAgICAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb24gPSB7
IDAsIDAsIDAsIDAgfTsKLSAgICAgICAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbihzZWN0aW9u
LmhlYWRpbmcsICZhbGxvY2F0aW9uKTsKLSAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVl
KGFkanVzdG1lbnQsIGFsbG9jYXRpb24ueSAtIGJveFNwYWNlKTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKGFkanVzdG1lbnQsIDApOwotfQotCi1zdGF0aWMg
dm9pZCB3ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25CdXR0b24oV2ViS2l0RW1vamlDaG9v
c2VyKiBjaG9vc2VyLCBHdGtCb3gqIHBhcmVudCwgY29uc3QgY2hhciogaWNvbk5hbWUsIGNvbnN0
IGNoYXIqIHRvb2x0aXApCi17Ci0gICAgR3RrV2lkZ2V0KiBidXR0b24gPSBndGtfYnV0dG9uX25l
d19mcm9tX2ljb25fbmFtZShpY29uTmFtZSwgR1RLX0lDT05fU0laRV9CVVRUT04pOwotICAgIGNo
b29zZXItPnByaXYtPnNlY3Rpb25zLmxhc3QoKS5idXR0b24gPSBidXR0b247Ci0gICAgZ3RrX3N0
eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQoYnV0dG9u
KSwgImVtb2ppLXNlY3Rpb24iKTsKLSAgICBndGtfd2lkZ2V0X3NldF90b29sdGlwX3RleHQoYnV0
dG9uLCB0b29sdGlwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGJ1dHRvbiwgImNsaWNrZWQiLCBH
X0NBTExCQUNLKHNjcm9sbFRvU2VjdGlvbiksIEdVSU5UX1RPX1BPSU5URVIoY2hvb3Nlci0+cHJp
di0+c2VjdGlvbnMuc2l6ZSgpIC0gMSkpOwotICAgIGd0a19ib3hfcGFja19zdGFydChwYXJlbnQs
IGJ1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coYnV0dG9uKTsK
LX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBSZWNlbnQoV2ViS2l0RW1v
amlDaG9vc2VyKiBjaG9vc2VyLCBHdGtCb3gqIGVtb2ppQm94LCBHdGtCb3gqIGJ1dHRvbkJveCwg
R3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCkKLXsKLSAgICBHdGtXaWRnZXQqIGZsb3dCb3ggPSB3
ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25Cb3goY2hvb3NlciwgZW1vamlCb3gsIG51bGxw
dHIsIG51bGxwdHIsIGFkanVzdG1lbnQsIHRydWUpOwotICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNl
dHVwU2VjdGlvbkJ1dHRvbihjaG9vc2VyLCBidXR0b25Cb3gsICJlbW9qaS1yZWNlbnQtc3ltYm9s
aWMiLCBfKCJSZWNlbnQiKSk7Ci0KLSAgICBib29sIGlzRW1wdHkgPSB0cnVlOwotICAgIEdSZWZQ
dHI8R1ZhcmlhbnQ+IHZhcmlhbnQgPSBhZG9wdEdSZWYoZ19zZXR0aW5nc19nZXRfdmFsdWUoY2hv
b3Nlci0+cHJpdi0+c2V0dGluZ3MuZ2V0KCksICJyZWNlbnQtZW1vamkiKSk7Ci0gICAgR1Zhcmlh
bnRJdGVyIGl0ZXI7Ci0gICAgZ192YXJpYW50X2l0ZXJfaW5pdCgmaXRlciwgdmFyaWFudC5nZXQo
KSk7Ci0gICAgd2hpbGUgKEdSZWZQdHI8R1ZhcmlhbnQ+IGl0ZW0gPSBhZG9wdEdSZWYoZ192YXJp
YW50X2l0ZXJfbmV4dF92YWx1ZSgmaXRlcikpKSB7Ci0gICAgICAgIEdSZWZQdHI8R1ZhcmlhbnQ+
IGVtb2ppRGF0YSA9IGFkb3B0R1JlZihnX3ZhcmlhbnRfZ2V0X2NoaWxkX3ZhbHVlKGl0ZW0uZ2V0
KCksIDApKTsKLSAgICAgICAgZ3VuaWNoYXIgbW9kaWZpZXI7Ci0gICAgICAgIGdfdmFyaWFudF9n
ZXRfY2hpbGQoaXRlbS5nZXQoKSwgMSwgInUiLCAmbW9kaWZpZXIpOwotICAgICAgICBpZiAoYXV0
byogY2hpbGQgPSB3ZWJraXRFbW9qaUNob29zZXJBZGRFbW9qaShjaG9vc2VyLCBHVEtfRkxPV19C
T1goZmxvd0JveCksIGVtb2ppRGF0YS5nZXQoKSwgdHJ1ZSwgbW9kaWZpZXIpKQotICAgICAgICAg
ICAgZ19zaWduYWxfY29ubmVjdChjaGlsZCwgInBvcHVwLW1lbnUiLCBHX0NBTExCQUNLKGVtb2pp
UG9wdXBNZW51KSwgY2hvb3Nlcik7Ci0gICAgICAgIGlzRW1wdHkgPSBmYWxzZTsKLSAgICB9Ci0K
LSAgICBpZiAoaXNFbXB0eSkgewotICAgICAgICBndGtfd2lkZ2V0X2hpZGUoZmxvd0JveCk7Ci0g
ICAgICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZShjaG9vc2VyLT5wcml2LT5zZWN0aW9ucy5m
aXJzdCgpLmJ1dHRvbiwgRkFMU0UpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RW1v
amlDaG9vc2VyRW5zdXJlRW1wdHlSZXN1bHQoV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9vc2VyKQot
ewotICAgIGlmIChndGtfc3RhY2tfZ2V0X2NoaWxkX2J5X25hbWUoR1RLX1NUQUNLKGNob29zZXIt
PnByaXYtPnN0YWNrKSwgImVtcHR5IikpCi0gICAgICAgIHJldHVybjsKLQotICAgIEd0a1dpZGdl
dCogZ3JpZCA9IGd0a19ncmlkX25ldygpOwotICAgIGd0a19ncmlkX3NldF9yb3dfc3BhY2luZyhH
VEtfR1JJRChncmlkKSwgMTIpOwotICAgIGd0a193aWRnZXRfc2V0X2hhbGlnbihncmlkLCBHVEtf
QUxJR05fQ0VOVEVSKTsKLSAgICBndGtfd2lkZ2V0X3NldF92YWxpZ24oZ3JpZCwgR1RLX0FMSUdO
X0NFTlRFUik7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0
X3N0eWxlX2NvbnRleHQoZ3JpZCksICJkaW0tbGFiZWwiKTsKLQotICAgIEd0a1dpZGdldCogaW1h
Z2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJlZGl0LWZpbmQtc3ltYm9saWMiLCBH
VEtfSUNPTl9TSVpFX0RJQUxPRyk7Ci0gICAgZ3RrX2ltYWdlX3NldF9waXhlbF9zaXplKEdUS19J
TUFHRShpbWFnZSksIDcyKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dp
ZGdldF9nZXRfc3R5bGVfY29udGV4dChpbWFnZSksICJkaW0tbGFiZWwiKTsKLSAgICBndGtfZ3Jp
ZF9hdHRhY2goR1RLX0dSSUQoZ3JpZCksIGltYWdlLCAwLCAwLCAxLCAxKTsKLSAgICBndGtfd2lk
Z2V0X3Nob3coaW1hZ2UpOwotCi0gICAgR3RrV2lkZ2V0KiBsYWJlbCA9IGd0a19sYWJlbF9uZXco
XygiTm8gUmVzdWx0cyBGb3VuZCIpKTsKLSAgICBQYW5nb0F0dHJMaXN0KiBhdHRyaWJ1dGVzID0g
cGFuZ29fYXR0cl9saXN0X25ldygpOwotICAgIHBhbmdvX2F0dHJfbGlzdF9pbnNlcnQoYXR0cmli
dXRlcywgcGFuZ29fYXR0cl9zY2FsZV9uZXcoMS40NCkpOwotICAgIHBhbmdvX2F0dHJfbGlzdF9p
bnNlcnQoYXR0cmlidXRlcywgcGFuZ29fYXR0cl93ZWlnaHRfbmV3KFBBTkdPX1dFSUdIVF9CT0xE
KSk7Ci0gICAgZ3RrX2xhYmVsX3NldF9hdHRyaWJ1dGVzKEdUS19MQUJFTChsYWJlbCksIGF0dHJp
YnV0ZXMpOwotICAgIHBhbmdvX2F0dHJfbGlzdF91bnJlZihhdHRyaWJ1dGVzKTsKLSAgICBndGtf
Z3JpZF9hdHRhY2goR1RLX0dSSUQoZ3JpZCksIGxhYmVsLCAwLCAxLCAxLCAxKTsKLSAgICBndGtf
d2lkZ2V0X3Nob3cobGFiZWwpOwotCi0gICAgbGFiZWwgPSBndGtfbGFiZWxfbmV3KF8oIlRyeSBh
IGRpZmZlcmVudCBzZWFyY2giKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0
a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQobGFiZWwpLCAiZGltLWxhYmVsIik7Ci0gICAgZ3Rr
X2dyaWRfYXR0YWNoKEdUS19HUklEKGdyaWQpLCBsYWJlbCwgMCwgMiwgMSwgMSk7Ci0gICAgZ3Rr
X3dpZGdldF9zaG93KGxhYmVsKTsKLQotICAgIGd0a19zdGFja19hZGRfbmFtZWQoR1RLX1NUQUNL
KGNob29zZXItPnByaXYtPnN0YWNrKSwgZ3JpZCwgImVtcHR5Iik7Ci0gICAgZ3RrX3dpZGdldF9z
aG93KGdyaWQpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJTZWFyY2hDaGFu
Z2VkKFdlYktpdEVtb2ppQ2hvb3NlciogY2hvb3NlcikKLXsKLSAgICBmb3IgKGF1dG8mIHNlY3Rp
b24gOiBjaG9vc2VyLT5wcml2LT5zZWN0aW9ucykgewotICAgICAgICBzZWN0aW9uLmlzRW1wdHkg
PSB0cnVlOwotICAgICAgICBndGtfZmxvd19ib3hfaW52YWxpZGF0ZV9maWx0ZXIoR1RLX0ZMT1df
Qk9YKHNlY3Rpb24uYm94KSk7Ci0gICAgfQotCi0gICAgYm9vbCByZXN1bHRzRm91bmQgPSBmYWxz
ZTsKLSAgICBmb3IgKGF1dG8mIHNlY3Rpb24gOiBjaG9vc2VyLT5wcml2LT5zZWN0aW9ucykgewot
ICAgICAgICBpZiAoc2VjdGlvbi5oZWFkaW5nKSB7Ci0gICAgICAgICAgICBndGtfd2lkZ2V0X3Nl
dF92aXNpYmxlKHNlY3Rpb24uaGVhZGluZywgIXNlY3Rpb24uaXNFbXB0eSk7Ci0gICAgICAgICAg
ICBndGtfd2lkZ2V0X3NldF92aXNpYmxlKHNlY3Rpb24uYm94LCAhc2VjdGlvbi5pc0VtcHR5KTsK
LSAgICAgICAgfQotICAgICAgICByZXN1bHRzRm91bmQgPSByZXN1bHRzRm91bmQgfHwgIXNlY3Rp
b24uaXNFbXB0eTsKLSAgICB9Ci0KLSAgICBpZiAoIXJlc3VsdHNGb3VuZCkgewotICAgICAgICB3
ZWJraXRFbW9qaUNob29zZXJFbnN1cmVFbXB0eVJlc3VsdChjaG9vc2VyKTsKLSAgICAgICAgZ3Rr
X3N0YWNrX3NldF92aXNpYmxlX2NoaWxkX25hbWUoR1RLX1NUQUNLKGNob29zZXItPnByaXYtPnN0
YWNrKSwgImVtcHR5Iik7Ci0gICAgfSBlbHNlCi0gICAgICAgIGd0a19zdGFja19zZXRfdmlzaWJs
ZV9jaGlsZF9uYW1lKEdUS19TVEFDSyhjaG9vc2VyLT5wcml2LT5zdGFjayksICJsaXN0Iik7Ci19
Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwRmlsdGVycyhXZWJLaXRFbW9q
aUNob29zZXIqIGNob29zZXIpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaG9vc2Vy
LT5wcml2LT5zZWN0aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBndGtfZmxvd19ib3hfc2V0
X2ZpbHRlcl9mdW5jKEdUS19GTE9XX0JPWChjaG9vc2VyLT5wcml2LT5zZWN0aW9uc1tpXS5ib3gp
LCBbXShHdGtGbG93Qm94Q2hpbGQqIGNoaWxkLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xl
YW4gewotICAgICAgICAgICAgYXV0byogY2hvb3NlciA9IFdFQktJVF9FTU9KSV9DSE9PU0VSKGd0
a193aWRnZXRfZ2V0X2FuY2VzdG9yKEdUS19XSURHRVQoY2hpbGQpLCBXRUJLSVRfVFlQRV9FTU9K
SV9DSE9PU0VSKSk7Ci0gICAgICAgICAgICBhdXRvJiBzZWN0aW9uID0gY2hvb3Nlci0+cHJpdi0+
c2VjdGlvbnNbR1BPSU5URVJfVE9fVUlOVCh1c2VyRGF0YSldOwotICAgICAgICAgICAgY29uc3Qg
Y2hhciogdGV4dCA9IGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkoY2hvb3Nlci0+cHJpdi0+
c2VhcmNoRW50cnkpKTsKLSAgICAgICAgICAgIGlmICghdGV4dCB8fCAhKnRleHQpIHsKLSAgICAg
ICAgICAgICAgICBzZWN0aW9uLmlzRW1wdHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gVFJVRTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYXV0byogZW1vamlEYXRhID0g
c3RhdGljX2Nhc3Q8R1ZhcmlhbnQqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChjaGlsZCks
ICJlbW9qaS1kYXRhIikpOwotICAgICAgICAgICAgaWYgKCFlbW9qaURhdGEpIHsKLSAgICAgICAg
ICAgICAgICBzZWN0aW9uLmlzRW1wdHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
VFJVRTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKLSAg
ICAgICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQoZW1vamlEYXRhLCAxLCAiJnMiLCAmbmFtZSk7
Ci0gICAgICAgICAgICBpZiAoZ19zdHJfbWF0Y2hfc3RyaW5nKHRleHQsIG5hbWUsIFRSVUUpKSB7
Ci0gICAgICAgICAgICAgICAgc2VjdGlvbi5pc0VtcHR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIFRSVUU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBGQUxT
RTsKLSAgICAgICAgfSwgR1VJTlRfVE9fUE9JTlRFUihpKSwgbnVsbHB0cik7Ci0gICAgfQotfQot
Ci1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJTZXR1cEVtb2ppU2VjdGlvbnMoV2ViS2l0
RW1vamlDaG9vc2VyKiBjaG9vc2VyLCBHdGtCb3gqIGVtb2ppQm94LCBHdGtCb3gqIGJ1dHRvbkJv
eCkKLXsKLSAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKLSAgICAgICAgY29uc3QgY2hhciogZmly
c3RFbW9qaU5hbWU7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHRpdGxlOwotICAgICAgICBjb25zdCBj
aGFyKiBpY29uTmFtZTsKLSAgICAgICAgYm9vbCBjYW5IYXZlVmFyaWF0aW9uczsKLSAgICB9IHNl
Y3Rpb25zW10gPSB7Ci0gICAgICAgIHsgImdyaW5uaW5nIGZhY2UiLCBOXygiU21pbGV5cyAmIFBl
b3BsZSIpLCAiZW1vamktcGVvcGxlLXN5bWJvbGljIiwgdHJ1ZSB9LAotICAgICAgICB7ICJzZWxm
aWUiLCBOXygiQm9keSAmIENsb3RoaW5nIiksICJlbW9qaS1ib2R5LXN5bWJvbGljIiwgdHJ1ZSB9
LAotICAgICAgICB7ICJtb25rZXkiLCBOXygiQW5pbWFscyAmIE5hdHVyZSIpLCAiZW1vamktbmF0
dXJlLXN5bWJvbGljIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZ3JhcGVzIiwgTl8oIkZvb2QgJiBE
cmluayIpLCAiZW1vamktZm9vZC1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImdsb2Jl
IHNob3dpbmcgRXVyb3BlLUFmcmljYSIsIE5fKCJUcmF2ZWwgJiBQbGFjZXMiKSwgImVtb2ppLXRy
YXZlbC1zeW1ib2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImphY2stby1sYW50ZXJuIiwgTl8o
IkFjdGl2aXRpZXMiKSwgImVtb2ppLWFjdGl2aXRpZXMtc3ltYm9saWMiLCBmYWxzZSB9LAotICAg
ICAgICB7ICJtdXRlZCBzcGVha2VyIiwgXygiT2JqZWN0cyIpLCAiZW1vamktb2JqZWN0cy1zeW1i
b2xpYyIsIGZhbHNlIH0sCi0gICAgICAgIHsgIkFUTSBzaWduIiwgTl8oIlN5bWJvbHMiKSwgImVt
b2ppLXN5bWJvbHMtc3ltYm9saWMiLCBmYWxzZSB9LAotICAgICAgICB7ICJjaGVxdWVyZWQgZmxh
ZyIsIF8oIkZsYWdzIiksICJlbW9qaS1mbGFncy1zeW1ib2xpYyIsIGZhbHNlIH0KLSAgICB9Owot
Ci0gICAgYXV0byogdkFkanVzdG1lbnQgPSBndGtfc2Nyb2xsZWRfd2luZG93X2dldF92YWRqdXN0
bWVudChHVEtfU0NST0xMRURfV0lORE9XKGNob29zZXItPnByaXYtPnN3aW5kb3cpKTsKLQotICAg
IEd0a1dpZGdldCogZmxvd0JveCA9IG51bGxwdHI7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IEdfTl9FTEVNRU5UUyhzZWN0aW9ucyk7ICsraSkgewotICAgICAgICBhdXRvKiBib3ggPSB3
ZWJraXRFbW9qaUNob29zZXJTZXR1cFNlY3Rpb25Cb3goY2hvb3NlciwgZW1vamlCb3gsIHNlY3Rp
b25zW2ldLmZpcnN0RW1vamlOYW1lLCBzZWN0aW9uc1tpXS50aXRsZSwgdkFkanVzdG1lbnQsIHNl
Y3Rpb25zW2ldLmNhbkhhdmVWYXJpYXRpb25zKTsKLSAgICAgICAgd2Via2l0RW1vamlDaG9vc2Vy
U2V0dXBTZWN0aW9uQnV0dG9uKGNob29zZXIsIGJ1dHRvbkJveCwgc2VjdGlvbnNbaV0uaWNvbk5h
bWUsIHNlY3Rpb25zW2ldLnRpdGxlKTsKLSAgICAgICAgaWYgKCFpKQotICAgICAgICAgICAgZmxv
d0JveCA9IGJveDsKLSAgICB9Ci0KLSAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdS
ZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEoIi9vcmcvZ3RrL2xpYmd0ay9lbW9qaS9lbW9qaS5k
YXRhIiwgR19SRVNPVVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOwotICAgIEdSZWZQ
dHI8R1ZhcmlhbnQ+IGRhdGEgPSBnX3ZhcmlhbnRfbmV3X2Zyb21fYnl0ZXMoR19WQVJJQU5UX1RZ
UEUoImEoYXVzcykiKSwgYnl0ZXMuZ2V0KCksIFRSVUUpOwotICAgIEdVbmlxdWVQdHI8R1Zhcmlh
bnRJdGVyPiBpdGVyKGdfdmFyaWFudF9pdGVyX25ldyhkYXRhLmdldCgpKSk7Ci0KLSAgICBGdW5j
dGlvbjx2b2lkKCk+IHBvcHVsYXRlU2VjdGlvbnMgPSBbY2hvb3NlciwgaXRlciA9IFdURk1vdmUo
aXRlciksIGZsb3dCb3hdKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gc3RhcnQgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKLSAgICAgICAgd2hpbGUgKEdSZWZQdHI8R1ZhcmlhbnQ+IGl0ZW0gPSBh
ZG9wdEdSZWYoZ192YXJpYW50X2l0ZXJfbmV4dF92YWx1ZShpdGVyLmdldCgpKSkpIHsKLSAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxk
KGl0ZW0uZ2V0KCksIDEsICImcyIsICZuYW1lKTsKLQotICAgICAgICAgICAgYXV0byBpbmRleCA9
IGNob29zZXItPnByaXYtPnNlY3Rpb25zLmZpbmRNYXRjaGluZyhbJm5hbWVdKGNvbnN0IGF1dG8m
IHNlY3Rpb24pIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gIWdfc3RyY21wMChuYW1lLCBzZWN0
aW9uLmZpcnN0RW1vamlOYW1lKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZmxvd0Jv
eCA9IGluZGV4ID09IG5vdEZvdW5kID8gZmxvd0JveCA6IGNob29zZXItPnByaXYtPnNlY3Rpb25z
W2luZGV4XS5ib3g7Ci0gICAgICAgICAgICBhdXRvKiBjaGlsZCA9IHdlYmtpdEVtb2ppQ2hvb3Nl
ckFkZEVtb2ppKGNob29zZXIsIEdUS19GTE9XX0JPWChmbG93Qm94KSwgaXRlbS5nZXQoKSk7Ci0g
ICAgICAgICAgICBpZiAoY2hpbGQpCi0gICAgICAgICAgICAgICAgZ19zaWduYWxfY29ubmVjdChj
aGlsZCwgInBvcHVwLW1lbnUiLCBHX0NBTExCQUNLKGVtb2ppUG9wdXBNZW51KSwgY2hvb3Nlcik7
Ci0KLSAgICAgICAgICAgIGlmIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0ID49IDhfbXMp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNob29zZXItPnBy
aXYtPnBvcHVsYXRlU2VjdGlvbnNUaW1lciA9IG51bGxwdHI7Ci0gICAgfTsKLQotICAgIGNob29z
ZXItPnByaXYtPnBvcHVsYXRlU2VjdGlvbnNUaW1lciA9IG1ha2VVbmlxdWU8Q2FsbGJhY2tUaW1l
cj4oV1RGTW92ZShwb3B1bGF0ZVNlY3Rpb25zKSk7Ci0gICAgY2hvb3Nlci0+cHJpdi0+cG9wdWxh
dGVTZWN0aW9uc1RpbWVyLT5zZXRQcmlvcml0eShHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSk7Ci0g
ICAgY2hvb3Nlci0+cHJpdi0+cG9wdWxhdGVTZWN0aW9uc1RpbWVyLT5zZXROYW1lKCJbV2ViS2l0
RW1vamlDaG9vc2VyXSBwb3B1bGF0ZSBzZWN0aW9ucyB0aW1lciIpOwotICAgIGNob29zZXItPnBy
aXYtPnBvcHVsYXRlU2VjdGlvbnNUaW1lci0+c3RhcnRSZXBlYXRpbmcoeyB9KTsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0RW1vamlDaG9vc2VySW5pdGlhbGl6ZUVtb2ppTWF4V2lkdGgoV2ViS2l0
RW1vamlDaG9vc2VyKiBjaG9vc2VyKQotewotICAgIC8vIEdldCBhIHJlYXNvbmFibGUgbWF4aW11
bSB3aWR0aCBmb3IgYW4gZW1vamkuIFdlIGRvIHRoaXMgdG8gc2tpcCBvdmVybHkgd2lkZSBmYWxs
YmFjawotICAgIC8vIHJlbmRlcmluZyBmb3IgY2VydGFpbiBlbW9qaXMgdGhlIGZvbnQgZG9lcyBu
b3QgY29udGFpbiBhbmQgdGhlcmVmb3JlIGVuZCB1cCBiZWluZwotICAgIC8vIHJlbmRlcmVkIGFz
IG11bHRpcGxlIGdseXBocy4KLSAgICBHUmVmUHRyPFBhbmdvTGF5b3V0PiBsYXlvdXQgPSBhZG9w
dEdSZWYoZ3RrX3dpZGdldF9jcmVhdGVfcGFuZ29fbGF5b3V0KEdUS19XSURHRVQoY2hvb3Nlciks
ICLwn5mCIikpOwotICAgIGF1dG8qIGF0dHJpYnV0ZXMgPSBwYW5nb19hdHRyX2xpc3RfbmV3KCk7
Ci0gICAgcGFuZ29fYXR0cl9saXN0X2luc2VydChhdHRyaWJ1dGVzLCBwYW5nb19hdHRyX3NjYWxl
X25ldyhQQU5HT19TQ0FMRV9YX0xBUkdFKSk7Ci0gICAgcGFuZ29fbGF5b3V0X3NldF9hdHRyaWJ1
dGVzKGxheW91dC5nZXQoKSwgYXR0cmlidXRlcyk7Ci0gICAgcGFuZ29fYXR0cl9saXN0X3VucmVm
KGF0dHJpYnV0ZXMpOwotCi0gICAgUGFuZ29SZWN0YW5nbGUgcmVjdDsKLSAgICBwYW5nb19sYXlv
dXRfZ2V0X2V4dGVudHMobGF5b3V0LmdldCgpLCAmcmVjdCwgbnVsbHB0cik7Ci0gICAgY2hvb3Nl
ci0+cHJpdi0+ZW1vamlNYXhXaWR0aCA9IHJlY3Qud2lkdGg7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdEVtb2ppQ2hvb3NlckNvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJL
aXRFbW9qaUNob29zZXIqIGNob29zZXIgPSBXRUJLSVRfRU1PSklfQ0hPT1NFUihvYmplY3QpOwot
ICAgIGNob29zZXItPnByaXYtPnNldHRpbmdzID0gYWRvcHRHUmVmKGdfc2V0dGluZ3NfbmV3KCJv
cmcuZ3RrLlNldHRpbmdzLkVtb2ppQ2hvb3NlciIpKTsKLQotICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9lbW9qaV9jaG9vc2VyX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVjdCk7Ci0K
LSAgICB3ZWJraXRFbW9qaUNob29zZXJJbml0aWFsaXplRW1vamlNYXhXaWR0aChjaG9vc2VyKTsK
LQotICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9j
b250ZXh0KEdUS19XSURHRVQob2JqZWN0KSksICJlbW9qaS1waWNrZXIiKTsKLQotICAgIEd0a1dp
ZGdldCogbWFpbkJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCwgMCk7
Ci0gICAgR3RrV2lkZ2V0KiBzZWFyY2hFbnRyeSA9IGd0a19zZWFyY2hfZW50cnlfbmV3KCk7Ci0g
ICAgY2hvb3Nlci0+cHJpdi0+c2VhcmNoRW50cnkgPSBzZWFyY2hFbnRyeTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0X3N3YXBwZWQoc2VhcmNoRW50cnksICJzZWFyY2gtY2hhbmdlZCIsIEdfQ0FMTEJB
Q0sod2Via2l0RW1vamlDaG9vc2VyU2VhcmNoQ2hhbmdlZCksIGNob29zZXIpOwotICAgIGd0a19l
bnRyeV9zZXRfaW5wdXRfaGludHMoR1RLX0VOVFJZKHNlYXJjaEVudHJ5KSwgR1RLX0lOUFVUX0hJ
TlRfTk9fRU1PSkkpOwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKG1haW5Cb3gpLCBz
ZWFyY2hFbnRyeSwgVFJVRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyhzZWFyY2hF
bnRyeSk7Ci0KLSAgICBHdGtXaWRnZXQqIHN0YWNrID0gZ3RrX3N0YWNrX25ldygpOwotICAgIGNo
b29zZXItPnByaXYtPnN0YWNrID0gc3RhY2s7Ci0gICAgR3RrV2lkZ2V0KiBib3ggPSBndGtfYm94
X25ldyhHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwsIDApOwotICAgIEd0a1dpZGdldCogc3dpbmRv
dyA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3KG51bGxwdHIsIG51bGxwdHIpOwotICAgIGNob29z
ZXItPnByaXYtPnN3aW5kb3cgPSBzd2luZG93OwotICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0
X3BvbGljeShHVEtfU0NST0xMRURfV0lORE9XKHN3aW5kb3cpLCBHVEtfUE9MSUNZX05FVkVSLCBH
VEtfUE9MSUNZX0FVVE9NQVRJQyk7Ci0gICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19zZXRfbWluX2Nv
bnRlbnRfaGVpZ2h0KEdUS19TQ1JPTExFRF9XSU5ET1coc3dpbmRvdyksIDI1MCk7Ci0gICAgZ3Rr
X3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQoc3dp
bmRvdyksICJ2aWV3Iik7Ci0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1goYm94KSwgc3dp
bmRvdywgVFJVRSwgVFJVRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KHN3aW5kb3cpOwotCi0g
ICAgR3RrV2lkZ2V0KiBlbW9qaUJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9WRVJU
SUNBTCwgNik7Ci0gICAgZ19vYmplY3Rfc2V0KGVtb2ppQm94LCAibWFyZ2luIiwgNiwgbnVsbHB0
cik7Ci0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihzd2luZG93KSwgZW1vamlC
b3gpOwotICAgIGd0a193aWRnZXRfc2hvdyhlbW9qaUJveCk7Ci0KLSAgICBHdGtXaWRnZXQqIGJ1
dHRvbkJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsKLSAg
ICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChib3gpLCBidXR0b25Cb3gsIFRSVUUsIEZBTFNF
LCAwKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coYnV0dG9uQm94KTsKLQotICAgIEd0a0FkanVzdG1l
bnQqIHZBZGp1c3RtZW50ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19nZXRfdmFkanVzdG1lbnQoR1RL
X1NDUk9MTEVEX1dJTkRPVyhzd2luZG93KSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdCh2QWRqdXN0
bWVudCwgInZhbHVlLWNoYW5nZWQiLCBHX0NBTExCQUNLKHZlcnRpY2FsQWRqdXN0bWVudENoYW5n
ZWQpLCBjaG9vc2VyKTsKLQotICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwUmVjZW50KGNob29z
ZXIsIEdUS19CT1goZW1vamlCb3gpLCBHVEtfQk9YKGJ1dHRvbkJveCksIHZBZGp1c3RtZW50KTsK
LQotICAgIHdlYmtpdEVtb2ppQ2hvb3NlclNldHVwRW1vamlTZWN0aW9ucyhjaG9vc2VyLCBHVEtf
Qk9YKGVtb2ppQm94KSwgR1RLX0JPWChidXR0b25Cb3gpKTsKLQotICAgIGd0a193aWRnZXRfc2V0
X3N0YXRlX2ZsYWdzKGNob29zZXItPnByaXYtPnNlY3Rpb25zLmZpcnN0KCkuYnV0dG9uLCBHVEtf
U1RBVEVfRkxBR19DSEVDS0VELCBGQUxTRSk7Ci0KLSAgICBndGtfc3RhY2tfYWRkX25hbWVkKEdU
S19TVEFDSyhzdGFjayksIGJveCwgImxpc3QiKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coYm94KTsK
LQotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKG1haW5Cb3gpLCBzdGFjaywgVFJVRSwg
VFJVRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KHN0YWNrKTsKLQotICAgIGd0a19jb250YWlu
ZXJfYWRkKEdUS19DT05UQUlORVIob2JqZWN0KSwgbWFpbkJveCk7Ci0gICAgZ3RrX3dpZGdldF9z
aG93KG1haW5Cb3gpOwotCi0gICAgd2Via2l0RW1vamlDaG9vc2VyU2V0dXBGaWx0ZXJzKGNob29z
ZXIpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRFbW9qaUNob29zZXJTaG93KEd0a1dpZGdldCog
d2lkZ2V0KQotewotICAgIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0X2Vtb2ppX2Nob29zZXJfcGFy
ZW50X2NsYXNzKS0+c2hvdyh3aWRnZXQpOwotCi0gICAgV2ViS2l0RW1vamlDaG9vc2VyKiBjaG9v
c2VyID0gV0VCS0lUX0VNT0pJX0NIT09TRVIod2lkZ2V0KTsKLSAgICBhdXRvKiBhZGp1c3RtZW50
ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19nZXRfdmFkanVzdG1lbnQoR1RLX1NDUk9MTEVEX1dJTkRP
VyhjaG9vc2VyLT5wcml2LT5zd2luZG93KSk7Ci0gICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVl
KGFkanVzdG1lbnQsIDApOwotCi0gICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShjaG9v
c2VyLT5wcml2LT5zZWFyY2hFbnRyeSksICIiKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2Vt
b2ppX2Nob29zZXJfY2xhc3NfaW5pdChXZWJLaXRFbW9qaUNob29zZXJDbGFzcyoga2xhc3MpCi17
Ci0gICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsK
LSAgICBvYmplY3RDbGFzcy0+Y29uc3RydWN0ZWQgPSB3ZWJraXRFbW9qaUNob29zZXJDb25zdHJ1
Y3RlZDsKLQotICAgIEd0a1dpZGdldENsYXNzKiB3aWRnZXRDbGFzcyA9IEdUS19XSURHRVRfQ0xB
U1Moa2xhc3MpOwotICAgIHdpZGdldENsYXNzLT5zaG93ID0gd2Via2l0RW1vamlDaG9vc2VyU2hv
dzsKLQotICAgIHNpZ25hbHNbRU1PSklfUElDS0VEXSA9IGdfc2lnbmFsX25ldygKLSAgICAgICAg
ImVtb2ppLXBpY2tlZCIsCi0gICAgICAgIEdfT0JKRUNUX0NMQVNTX1RZUEUob2JqZWN0Q2xhc3Mp
LAotICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgbnVsbHB0
ciwgbnVsbHB0ciwKLSAgICAgICAgbnVsbHB0ciwKLSAgICAgICAgR19UWVBFX05PTkUsIDEsCi0g
ICAgICAgIEdfVFlQRV9TVFJJTkcgfCBHX1NJR05BTF9UWVBFX1NUQVRJQ19TQ09QRSk7Ci19CiAK
IEd0a1dpZGdldCogd2Via2l0RW1vamlDaG9vc2VyTmV3KCkKIHsKLSAgICBXZWJLaXRFbW9qaUNo
b29zZXIqIGF1dGhEaWFsb2cgPSBXRUJLSVRfRU1PSklfQ0hPT1NFUihnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfRU1PSklfQ0hPT1NFUiwgbnVsbHB0cikpOwotICAgIHJldHVybiBHVEtfV0lER0VU
KGF1dGhEaWFsb2cpOworICAgIHN0YXRpYyBHVHlwZSBjaG9vc2VyVHlwZSA9IChbXSB7CisgICAg
ICAgIEdSZWZQdHI8R3RrV2lkZ2V0PiBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKKyAgICAgICAg
Z3RrX2VudHJ5X3NldF9pbnB1dF9oaW50cyhHVEtfRU5UUlkoZW50cnkuZ2V0KCkpLCBHVEtfSU5Q
VVRfSElOVF9FTU9KSSk7CisKKyAgICAgICAgR3RrRW50cnlDbGFzcyogZW50cnlDbGFzcyA9IEdU
S19FTlRSWV9HRVRfQ0xBU1MoZW50cnkuZ2V0KCkpOworICAgICAgICBlbnRyeUNsYXNzLT5pbnNl
cnRfZW1vamkoR1RLX0VOVFJZKGVudHJ5LmdldCgpKSk7CisKKyAgICAgICAgLy8gVGhlIGVtb2pp
IGRhdGEgaXMgZmV0Y2hlZCBpbiBhIGRlbGF5ZWQgbWFubmVyLCBzbyBhIGRpcmVjdCBjYWxsCisg
ICAgICAgIC8vIHRvIGdfb2JqZWN0X3VucmVmKGVudHJ5KSByZXN1bHRzIGluIGNyaXRpY2FsIHdh
cm5pbmcgZHVlIHRvIGFuCisgICAgICAgIC8vIGF0dGVtcHQgdG8gdW5yZWYgYSB5ZXQgdW5wb3B1
bGF0ZWQgdmFsdWUuIEFyZ3VhYmx5LCBHVEsgc2hvdWxkIGRvCisgICAgICAgIC8vIGEgbnVsbC1j
aGVjaywgYnV0IHRoaXMgY29kZSBuZWVkcyB0byB3b3JrIGV2ZW4gZm9yIG9sZGVyIHZlcnNpb25z
CisgICAgICAgIC8vIG9mIEdUSyB3aGljaCBtYXkgYmUgdW5wYXRjaGVkLiBUaGVyZWZvcmUsIGRl
c3Ryb3kgdGhlIGR1bW15IGVudHJ5CisgICAgICAgIC8vIGluIGEgbG93IHByaW9yaXR5IGlkbGUg
c291cmNlLCBhZnRlciB0aGUgc291cmNlIHRoYXQgZmlsbHMgdGhlIGRhdGEKKyAgICAgICAgLy8g
aGFzIGJlZW4gYWxyZWFkeSBkaXNwYXRjaGVkLgorICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IHNv
dXJjZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKKyAgICAgICAgZ19zb3VyY2Vf
c2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgW10odm9pZCogZGF0YSkgeworICAgICAgICAgICAg
Z19vYmplY3RfdW5yZWYoZGF0YSk7CisgICAgICAgICAgICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZF
OworICAgICAgICB9LCBlbnRyeS5sZWFrUmVmKCksIG51bGxwdHIpOworICAgICAgICBnX3NvdXJj
ZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0xPVyk7CisgICAgICAgIGdf
c291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIFJ1bkxvb3A6Om1haW4oKS5tYWluQ29udGV4dCgp
KTsKKworICAgICAgICByZXR1cm4gZ190eXBlX2Zyb21fbmFtZSgiR3RrRW1vamlDaG9vc2VyIik7
CisgICAgfSkoKTsKKworICAgIHJldHVybiBHVEtfV0lER0VUKGdfb2JqZWN0X25ldyhjaG9vc2Vy
VHlwZSwgbnVsbHB0cikpOwogfQogCiAjZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQs
IDApICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RW1vamlDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVtb2ppQ2hvb3Nlci5oCmluZGV4IGU1ZTQwNzBlYjJmZDMyZjI4Mzg3Yzg4YjMz
NmEzMmYxYzk3MWNmOWEuLmVmMDBhZjdlMjhmMWM5NzVmMzBkYTYyNjM3ZWVmNGU1NjBkYjkzMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RW1vamlD
aG9vc2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFbW9q
aUNob29zZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdh
bGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxOSwgMjAyMSBJZ2FsaWEgUy5MLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yNSwyOCArMjUsNiBAQAogCiBHX0JFR0lOX0RFQ0xTCiAKLSNkZWZp
bmUgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUiAgICAgICAgICAgICh3ZWJraXRfZW1vamlfY2hv
b3Nlcl9nZXRfdHlwZSgpKQotI2RlZmluZSBXRUJLSVRfRU1PSklfQ0hPT1NFUihvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9FTU9K
SV9DSE9PU0VSLCBXZWJLaXRFbW9qaUNob29zZXIpKQotI2RlZmluZSBXRUJLSVRfSVNfRU1PSklf
Q0hPT1NFUihvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBX
RUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VSKSkKLSNkZWZpbmUgV0VCS0lUX0VNT0pJX0NIT09TRVJf
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfRU1PSklfQ0hPT1NFUiwgV2ViS2l0RW1vamlDaG9vc2VyQ2xhc3MpKQotI2RlZmluZSBX
RUJLSVRfSVNfRU1PSklfQ0hPT1NFUl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19U
WVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9FTU9KSV9DSE9PU0VSKSkKLSNkZWZpbmUgV0VCS0lU
X0VNT0pJX0NIT09TRVJfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNT
KChvYmopLCAgV0VCS0lUX1RZUEVfRU1PSklfQ0hPT1NFUiwgV2ViS2l0RW1vamlDaG9vc2VyQ2xh
c3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RW1vamlDaG9vc2VyICAgICAgICBXZWJLaXRF
bW9qaUNob29zZXI7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RW1vamlDaG9vc2VyQ2xhc3MgICBX
ZWJLaXRFbW9qaUNob29zZXJDbGFzczsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRFbW9qaUNob29z
ZXJQcml2YXRlIFdlYktpdEVtb2ppQ2hvb3NlclByaXZhdGU7Ci0KLXN0cnVjdCBfV2ViS2l0RW1v
amlDaG9vc2VyIHsKLSAgICBHdGtQb3BvdmVyIHBhcmVudDsKLQotICAgIFdlYktpdEVtb2ppQ2hv
b3NlclByaXZhdGUqIHByaXY7Ci19OwotCi1zdHJ1Y3QgX1dlYktpdEVtb2ppQ2hvb3NlckNsYXNz
IHsKLSAgICBHdGtQb3BvdmVyQ2xhc3MgcGFyZW50Q2xhc3M7Ci19OwotCi1HVHlwZSB3ZWJraXRf
ZW1vamlfY2hvb3Nlcl9nZXRfdHlwZSgpOwogR3RrV2lkZ2V0KiB3ZWJraXRFbW9qaUNob29zZXJO
ZXcoKTsKIAogR19FTkRfREVDTFMK
</data>

          </attachment>
      

    </bug>

</bugzilla>