<?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>150550</bug_id>
          
          <creation_ts>2015-10-25 21:04:58 -0700</creation_ts>
          <short_desc>[GTK] Everything broken in GTK+ 3.19</short_desc>
          <delta_ts>2015-12-22 15:15:53 -0800</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>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=757122</see_also>
    
    <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=757164</see_also>
    
    <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=758442</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>151520</dependson>
    
    <dependson>152508</dependson>
          <blocked>152271</blocked>
    
    <blocked>152273</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>otte</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1136466</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-25 21:04:58 -0700</bug_when>
    <thetext>Text entries (e.g. on this Bugzilla) aren&apos;t drawn anymore, since this GTK+ commit:

c6a7ceedc988f84ca6acf9d0dffa12e8490281fb is the first bad commit
commit c6a7ceedc988f84ca6acf9d0dffa12e8490281fb
Author: Matthias Clasen &lt;mclasen@redhat.com&gt;
Date:   Fri Oct 23 14:52:27 2015 -0400

    Adwaita: Update entry styling
    
    Use the new element name instead of the style class.
    There is some minor fallout for vertical spin buttons that
    will need a second look.

:040000 040000 6ec7ab073c88946e96647a5b90dbc38b3cab5d14 b13d9ebcffe6d514ef53cb3cca419ca5d7fd3951 M	gtk


Also, selected text (both in and outside text entries) is invisible (might be caused by a different upstream commit?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136479</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-25 22:40:17 -0700</bug_when>
    <thetext>OK, so seems GTK+ is removing a ton of style classes from widgets. 408920d438af56d8d83e6a78065608723057c325 begins the migration to CSS names instead; it just so happens that GtkEntry is the first one to be problematic for us. (The style classes are not actually removed from the API; they are just not set by the widgets anymore, nor used in Adwaita.)

I am not completely sure how to handle this, but looking at our now-broken code in RenderThemeGtk.cpp, I guess we have to stop passing GtkStyleContexts around and use GtkCssNodes instead. I expect this is going to be painful for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136482</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-25 22:51:57 -0700</bug_when>
    <thetext>I guess the invisible selected text is a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136630</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-26 14:07:16 -0700</bug_when>
    <thetext>Company is planning to add some function that we can use to set a CSS name on a GtkStyleContext (or a GtkWidgetPath?).  GtkCssNode isn&apos;t public and hopefully we won&apos;t have to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136746</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-26 18:55:47 -0700</bug_when>
    <thetext>Company added gtk_widget_path_iter_set_object_name, but I&apos;m having no luck with it.

I was hoping something like this would be all that&apos;s needed:

--- a/Source/WebCore/rendering/RenderThemeGtk.cpp
+++ b/Source/WebCore/rendering/RenderThemeGtk.cpp
@@ -170,7 +170,7 @@ static GtkStyleContext* getStyleContext(GType widgetType)
     gtk_widget_path_append_type(path, widgetType);
 
     if (widgetType == GTK_TYPE_ENTRY)
-        gtk_widget_path_iter_add_class(path, 0, GTK_STYLE_CLASS_ENTRY);
+        gtk_widget_path_iter_set_object_name(path, 0, &quot;entry&quot;);
     else if (widgetType == GTK_TYPE_ARROW)
         gtk_widget_path_iter_add_class(path, 0, &quot;arrow&quot;);
     else if (widgetType == GTK_TYPE_BUTTON) {

But that doesn&apos;t make any difference in rendering, unfortunately.

(There are a couple more uses of GTK_STYLE_CLASS_ENTRY in that file, but the first one just adds the style class to a GtkStyleContext already guaranteed to have it, and the next one just removes it from one guaranteed to not have it, so they were both already useless.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136749</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-26 19:32:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I guess the invisible selected text is a separate bug.

Guessed wrong:

mcatanzaro:  mclasen: Also, any clue why selected text in WebKit is now invisible with latest GTK+? I don&apos;t spot any suspicious theme changes related to that, and I&apos;ll have to bisect it unless you have any guesses.
Company:  because you look at entries
Company:  and if your entries don&apos;t work when rendering entries, they don&apos;t work when rendering colors either
mclasennot sure he can parse that
Company:  the background color for selections in webkit is the selected entry background color
Company:  and webkit fails to match entries

(In reply to comment #4)
&gt; Company added gtk_widget_path_iter_set_object_name, but I&apos;m having no luck
&gt; with it.

It works fine when I use it in Epiphany, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143638</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-20 06:55:44 -0800</bug_when>
    <thetext>We can no longer render buttons or scrollbars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143639</commentid>
    <comment_count>7</comment_count>
      <attachid>265953</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-20 06:57:19 -0800</bug_when>
    <thetext>Created attachment 265953
Screenshot showing most everything broken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143642</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2015-11-20 07:03:16 -0800</bug_when>
    <thetext>https://wiki.gnome.org/Projects/GTK%2B/StyleClasses lists the changes we made.

https://blogs.gnome.org/mclasen/2015/11/20/a-gtk-update/ for the motivations behind these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143905</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-20 17:03:56 -0800</bug_when>
    <thetext>I have text entries fixed locally, but I had to rip out the GtkStyleContext cache we have in RenderThemeGtk.cpp to make it work, see GNOME #758442.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143949</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-21 08:49:55 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I have text entries fixed locally, but I had to rip out the GtkStyleContext
&gt; cache we have in RenderThemeGtk.cpp to make it work, see GNOME #758442.

OK, Benjamin fixed this bug (thanks), so now we should be good to go....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150649</commentid>
    <comment_count>11</comment_count>
      <attachid>267721</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 10:36:59 -0800</bug_when>
    <thetext>Created attachment 267721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150650</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 10:39:55 -0800</bug_when>
    <thetext>OK, I fixed *almost* everything. Reviews greatly appreciated.

I am stumped by three remaining bugs; help on these would be appreciated:

1) We&apos;re rendering scrollbar steppers because the scrollbar style context now has set has-backward-stepper and has-forward-stepper. That&apos;s really weird, since Adwaita turns these off. (I guess we can pretend this is a feature, though.)

2) I can&apos;t figure out how to render the trough of the GtkProgressBar. Seems like it should be simple. I don&apos;t know why my code for this does not work. I did fix rendering of the progress, but that&apos;s not very useful if you can&apos;t see how wide the progress bar is. (Also, our progress bar is much wider than Adwaita&apos;s, but that&apos;s a preexisting issue.)

3) The slider in GtkScale is now too wide, which causes the thumb to stretch into an ugly oval shape. Probably we are miscomputing margins or something.

Since almost everything is broken without this patch, we should commit it despite those issues unless someone finds immediate fixes.

Question: Anyone know an example of a combo box separator? I didn&apos;t test that, since I&apos;m frankly not sure what that is....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150651</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 10:42:44 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; I did fix rendering of the progress, but that&apos;s not very useful if you can&apos;t
&gt; see how wide the progress bar is. (Also, our progress bar is much wider than
&gt; Adwaita&apos;s, but that&apos;s a preexisting issue.)

Hm, I used &quot;width&quot; to refer to two different dimensions. We can&apos;t see how long horizontally the progress bar is without the trough. Our progress bars are much taller vertically than Adwaita&apos;s, since Adwaita switched to drawing skinny little progress bars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150661</commentid>
    <comment_count>14</comment_count>
      <attachid>267721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-20 13:07:33 -0800</bug_when>
    <thetext>Comment on attachment 267721
Patch

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

&gt; Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp:173
&gt; +    GRefPtr&lt;GtkStyleContext&gt; context = gtk_style_context_new();

Looks like this introduces a storage leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150663</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 13:44:23 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Looks like this introduces a storage leak.

Yup, thanks! You&apos;re awesome!

I&apos;ve fixed the leak, and added a bunch of extra #ifdefs to avoid adding style classes that aren&apos;t used anymore... to make it easier to remove obsolete code whenever we next bump our GTK+ dependency (hopefully not before GTK+ 4) and to stay as close as possible to the style classes used by GTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150665</commentid>
    <comment_count>16</comment_count>
      <attachid>267726</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 13:49:45 -0800</bug_when>
    <thetext>Created attachment 267726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150670</commentid>
    <comment_count>17</comment_count>
      <attachid>267726</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 16:30:59 -0800</bug_when>
    <thetext>Comment on attachment 267726
Patch

It broke scrollbars and progress bars with GTK+ 3.18....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150671</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-20 16:39:55 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Question: Anyone know an example of a combo box separator? I didn&apos;t test
&gt; that, since I&apos;m frankly not sure what that is....

Seems that context menu separators are broken....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150740</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-21 07:55:24 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; 2) I can&apos;t figure out how to render the trough of the GtkProgressBar. Seems
&gt; like it should be simple. I don&apos;t know why my code for this does not work. I
&gt; did fix rendering of the progress, but that&apos;s not very useful if you can&apos;t
&gt; see how wide the progress bar is. (Also, our progress bar is much wider than
&gt; Adwaita&apos;s, but that&apos;s a preexisting issue.)

Fixed locally.

&gt; 3) The slider in GtkScale is now too wide, which causes the thumb to stretch
&gt; into an ugly oval shape. Probably we are miscomputing margins or something.

Ben and Lapo say it&apos;s broken in GTK+; probably nothing we can do at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150840</commentid>
    <comment_count>20</comment_count>
      <attachid>267775</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-21 18:27:45 -0800</bug_when>
    <thetext>Created attachment 267775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150841</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-21 18:38:40 -0800</bug_when>
    <thetext>Darin, I changed enough of the code that I have set r? again rather than put your name as reviewer on code you didn&apos;t see, but it&apos;s pretty similar to what I had before.

(In reply to comment #17)
&gt; It broke scrollbars and progress bars with GTK+ 3.18....

Fixed.

(In reply to comment #18)
&gt; Seems that context menu separators are broken....

This is the only thing still (I&apos;m aware of) still broken. It&apos;s not a regression of this patch, and I&apos;m not going to fix it in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150863</commentid>
    <comment_count>22</comment_count>
      <attachid>267775</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-12-22 01:36:14 -0800</bug_when>
    <thetext>Comment on attachment 267775
Patch

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

&gt; Source/WebCore/rendering/RenderThemeGtk.cpp:164
&gt; -        gtk_widget_path_iter_add_class(path, 0, &quot;arrow&quot;);
&gt; +        gtk_widget_path_iter_set_object_name(path.get(), 0, &quot;button&quot;); // Note: not a typo.

It&apos;s good to know this is not a typo, but wy do we use button name for arrows? is that a workaround for a bug in GTK+? Are all the object names documented somewhere? Doesn&apos;t GTK+ provide #defines for those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150871</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-22 05:59:14 -0800</bug_when>
    <thetext>(In reply to comment #22) 
&gt; It&apos;s good to know this is not a typo, but wy do we use button name for
&gt; arrows?

Because GtkArrow has been deprecated for ages, it doesn&apos;t have its own CSS name. Whether by design or luck, if we use the name &quot;button&quot; and call gtk_render_arrow, we get an arrow. Maybe it would work for any node name, but the original code only ever draws arrows with the &quot;button&quot; style context, so I stuck with &quot;button.&quot;

&gt; is that a workaround for a bug in GTK+?

No.

&gt; Are all the object names
&gt; documented somewhere? Doesn&apos;t GTK+ provide #defines for those?

They&apos;re documented in the GTK+ documentation, e.g. https://developer.gnome.org/gtk3/unstable/GtkMenu.html shows you can pick from the following subnodes:

menu
├── arrow.top
├── ...
╰── arrow.bottom

Since a GtkButton has no subnodes itself, there&apos;s no such node diagram for it, but there&apos;s still some discussion of valid style contexts.

There are no #defines. I guess for the same reason #defines are no longer provided for new style classes -- providing API makes people think the style classes are API, but they can be changed or removed at any time. I really hope that CSS nodes will be stable, but frankly I&apos;m not sure what is planned.

P.S. Expect more pain this cycle; they&apos;ve started removing the style properties we rely on for margins and displacements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150876</commentid>
    <comment_count>24</comment_count>
      <attachid>267775</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 06:22:29 -0800</bug_when>
    <thetext>Comment on attachment 267775
Patch

Clearing flags on attachment: 267775

Committed r194362: &lt;http://trac.webkit.org/changeset/194362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150877</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 06:22:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150938</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 12:34:48 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 152508</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150973</commentid>
    <comment_count>27</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-22 14:24:17 -0800</bug_when>
    <thetext>The problem is that in release builds, ~GRefPtr&lt;_GtkWidgetPath&gt; gets generated using the default template:

// GRefPtr.cpp
template &lt;typename T&gt; inline void derefGPtr(T* ptr)
{
    if (ptr)
        g_object_unref(ptr);
}

Which is a crash because GtkWidgetPath is not a GObject.

In debug builds, there is no crash, so it must use the template that I intended:

// GRefPtrGtk.cpp
template &lt;&gt; void derefGPtr(GtkWidgetPath* ptr)
{
    if (ptr)
        gtk_widget_path_unref(ptr);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150978</commentid>
    <comment_count>28</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-22 15:13:00 -0800</bug_when>
    <thetext>Martin noticed I forgot to #include &quot;GRefPtrGtk.h&quot;. I suppose it was being pulled in somehow only in debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150980</commentid>
    <comment_count>29</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-22 15:15:53 -0800</bug_when>
    <thetext>Committed r194377: &lt;http://trac.webkit.org/changeset/194377&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>265953</attachid>
            <date>2015-11-20 06:57:19 -0800</date>
            <delta_ts>2015-11-20 06:57:19 -0800</delta_ts>
            <desc>Screenshot showing most everything broken</desc>
            <filename>everything-broken.png</filename>
            <type>image/png</type>
            <size>84665</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">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
3d2FENLtb+r5QW77yGkDU9JNyV9f+8vZf/W1v5TKPj74+6Bq/z6Qm7+xxxd/n+gndX409fMvVlG/
P0y5/pgyZYpYvXp1meWrVq1Sf+ZyPl9Tr7+o6ouPjzfpT+fRb25uLrKzszWWAShzwOk7AHft2iUa
NGggkpKSyqSnpaWJ2bNni1atWglra2vRrFkzMW/ePKFSqWTln56eLuzt7dV5Dx48WGzatElrHNp4
e3uLmzdvqt8nJSUJNzc39XsLC4sy9S/J3d1dXL9+Xf3+2rVrwsPDQ6PcuLg49XuVSiVsbW3LLT4h
hDh9+rRwcnISTk5O4syZM1rzKa8TfGZmpkHxF6fp6oSTUz995Xt4eJRp/5KxyN0/dPHy8hIRERHq
99evXzf4B6K++IvX19dJqW/7it6/pNKl2l8uXdtIHV9y8pXTPsVKt+/ly5fV9S0qKhINGjQQf//9
tzrd0P1XX5ympJcXQ/eviv78pco3tf3LI/+KPP+a+v1SXvtncVmGLvPw8BCffPKJ+P3338WdO3dE
YWGh7LwNicvY7xcAIicnR+Tl5Wm8trS0FEJIt7+p5we57SOnDUxJNyV/fe0vZ//V1/5SKvv44O+D
qv37QG7+pnQg8feJblLnR1M//2IV9fvDlOuPw4cPizfeeEMIIcSrr74qXn/9dSGEEK+//ro4fPiw
rPKL61Be119UNVVYB5Kjo6PWEUiGdCB169ZNtGjRQmzYsEFvJQoKCsSlS5fEm2++KV5++WVZ+Qsh
xOjRo8VXX30lUlJSRJ06dcp0PunbXqlUqjvEiv/MzMzU6VIjkKytrUVOTo76fXZ2trCxsdFbriE/
KqTiK9ahQwfRsWNHnXEae4I/f/686NWrl7C3t9eIwZD8AYiioiKtaVL1kyrfxsamTPuXjkXO/qFL
6fxzcnIM+oEop/30tY/U9hW9f0mly2l/OXRtI3V8GZOvoZ+Pt7e3OHPmjDh9+rTw8fHRSJN7fBoT
pyHpxjJ1/6roz1+qfFPbv7zyr6jzr6nfL+W1f8opS9uyq1evitGjR4vWrVsLpVIpHB0dxdatW2Xl
Y0hcxn6/6NrXi1/LOf+Ycn6Q2z5y2sCUdFPy19f+huy/UucdU/PXtszU44O/D6r27wO5+Rt7fPH3
iX5S50dTP/9iFfn7w9jrj7y8POHr6ysKCgqEo6OjcHZ2FoWFhaJly5YiLy9PdvmmfD/Ss8HUDiQz
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
RET0NGAHEhERERERERERqWl7CBlvYSMiIiIiIiIiIr04AomIiIiIiIiIiNQ4AomIiIiIiIiIiAzG
EUhERERERERERKTGEf7TfgoAACAASURBVEhERERERERERGQwjkAiIiIiIiIiIiI1jkAiIiIiIiIi
IiKDcQQSERERERERERGpaRuBxA4kIiIiIiIiIiJS4y1sRERERERERERkMI5AIiIiIiIiIiIiNd7C
RkRERERERET0DHp3RFeTtmcHEhERERERERFRFdemTRtZ650/f55zIBERERERERERkeE4AomIiIiI
iIiIiNQ4AomIiIiIiIiIiAzGEUhERERERERERKTGEUhERERERERERGQwjkAiIiIiIiIiIiI1jkAi
IiIiIiIiIiKDcQQSERERERERERGpcQQSEREREREREREZjB1IRERERERERESkF29hIyIiIiIiIiIi
NW23sGntQLp161aFB0NEREREREREBAANGzas7BBIAkcgERERERERERGR2lM5ibZ70MGnOn8iIiIi
IiKiysZrXzJVpY1Acg86iJjQvpVVPBEREREREVGlc3d3V7+OiYmptDiKyYmnZGeUvut6uevRk0f2
HEjGcg86iMYNqiFsaSeULEsIoPfkE7h5W6XeaZ6WnScyXoVFm27gzD8pUOUUoKl7DYwf7I4BHV1k
bc+Osod+//13rFq1CufPn0fNmjXx4osv4sMPP4S9vT0AQAiBL7/8Eps2bYJCocDw4cMxY8YMjZ1W
34msZJqudbTRl6ecmAytJwBcvXoVCxYswPnz51G9enVMmzYNQ4cONTo/Q75wjh49iu+++w6XLl1C
rVq10KVLF3z00UdwcHCQXZ4h8Wn7XKpVq4Z//vlHZ4yRkZFYtGgRzpw5A5VKhaZNm2L8+PEYMGCA
Rp4KhQJ2dnZwc3NDt27dMHbsWNSuXVtnuXLbiIiIiIg0mXpN9LSQc+2mbRRPeVzvPUm/UYtj0feb
GpBX7+J1OPqpaij3W9iU1uY4fO6uxrJDf92Frc3TN91S9B0VXp15Fm28a2Hff17AlZ97Yd6Ypth9
IrGyQ3vqrFmzBuPGjcOFCxewf/9+mJubY9q0aer0zZs348SJE9i7dy/27NmD48ePY+vWrRp5xMTE
6D2xFqdLrSc3TzkxGVrP6OhovP322wgKCsLp06exc+dOnDhxwuj8pOpQ2urVqzF69GicO3cOR48e
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
Mn3wwQeq5y+an9r9r4WW+n/ttddozpw50uPdu3dTSkqK6rG11o/oBCeqDyWPP/44vfHGG72e3759
Oz3++OPSWN7Mj9b6t5PLn2h7rftH1P8zzzwj1ff3339Ps2bNcus4dHf8a9euUWxsLL3//vtUXl5O
sbGx1NLSorp/rfG5en7pbsuWLZSVlUVERJGRkRQVFUVERP/93/9NW7ZsISJ162NqaipdunSJGhoa
KDU1ldauXevQfuDAAQoJCZH95U5pfmrbRdxdP9X0q5R/pfVXzfqgdX6i+HJzcx3Gys7OpvXr16vu
X23+lOJTqh/R9t5en0Xji9q1HJ9qx9dy/SrKn9b9K2IymRTXBVH/nlpfTp8+TcOGDaO3335bGIs7
/csRnb9E12+uXJ96I35RfTg7vruvL678fuIuX16fqslPT92f05pfpXGItF+fqalPLfNjzBMUbyBZ
rVbq7Ox0+DkgIICIiGJjY+n48eOqB2pra6Pg4GCn47izPQCqr6+XHlssFqf9ExHl5eVRbm6uy/EB
oNraWqevj46OppqaGunxuXPnKCYmRjgPT/HU/nE3/zExMbR27Vo6cuQIXbp0ibq6uhxeHx8fT99+
+630uKmpSfpFyj6u2v3nrt/97nf0yiuvEBHR1q1b6ZFHHun1Grn5i+bX1/vf1fpvaWmhkJAQ6X90
0tLSqKSkRPV4WutHdIIT1YeSw4cPS+9GmT9/Pi1atIiIfnrXyuHDh6WxvJkfrfVvJ5c/0fZa94+o
/5iYmF717ckbSGryU1lZKf0P3BdffOFS/1rj07I+VVRU0OTJk+ncuXMUGRlJt99+O1VXV9Nvf/tb
OnjwIBGpWx+757+mpoZiY2Md2seOHUtJSUlOf1kXzU9tu4i766eafpXyr7T+qlkfXInDnfjOnDkj
7c8bN25QZGQkffXVV6r7V5s/pfiU6ke0vbfXZ9H4onZPXT+4e/0j2l7N+qpl/4r87Gc/6/WOM2f/
GaeUX7n1Re7dK876Gjt2LJWWlro1B6X4RETnL9H1W1/XV0+i+nB2fI8cOVJ6rPb61FP/ud3X16dq
8tNT9+e05ldpHCLt12dq6lOpL63nX8bUULyBpPSzv7+/4kd2Tp48SVOmTKGQkBDFE4zcASTaXm1f
69ato7y8PLfiA0A3btxwGl9QUJDDWxo7OjpIr9c7fa03aN0/zrbtTpQf+x31pKQkMhgMZDQaqays
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
uvv4y8jIUEhIiNfHSH3FZ1XfLv6NGzfq3//+tzZs2KBjx46518kqdzL+vn37qm7duurbt69q166t
uLg4BQcHW0+Mn3K7fezOb3b1g4KClJyc7DG/gYGBfs0PAAAAAPgj14+wZcnNRUnx4sVVt25dffLJ
J2rSpIn+9re/6ZNPPlG9evVUvHhxSVJkZKTi4uLcdeLi4hQZGem1f1+++eYbffnll3ruuee0fft2
j7J69epp+vTp2rRpk06cOKFJkyZdUo94REVFKSkpyePxGKfJDSfzW5D9XwxBQUEeyYz9+/d7lNtt
34s1vsv5ov3C469ixYoXrX6PHj10zz33KCYmRsYYJSUl+dW3JPXr10/Tp0/XvHnz1KlTp3xPHkm5
37525ze7/bty5crau3ev+/O+ffv8jgEAAAAA/JHnBFLlypW1aNEivy++O3furJEjR+q+++7Tfffd
pxEjRni8n6d79+4aPny4EhISlJCQoGHDhql79+5+9REUFKQaNWpo5syZuu+++zwuyDp27KhvvvlG
KSkpysjIUGpqqkJDQ/1qvyD169dPffr00Z49e5SRkaHVq1erS5cujuvbzW9B91/QmjZtqtdff12p
qamKi4vTE0884VFut30v1vhye3xcCrKOv8TERA0fPlz33nvvRauflpam8PBwBQcHKzY2NlfJ3Vat
WikoKEgjR47UnXfe6XUdf19ufqHcbl+785vd/t2zZ089/vjj+uOPP3To0CE988wzuYo/r+MHAAAA
8Bfi69k2+Xg3yoVmzZplqlataooUKeLX+14OHz5sgoKCTHJysjl27JgJCgoyhw8fdpefPHnS9O3b
14SFhZmwsDDTt29fc/LkyRwxWsWf3dtvv2169+7t/vz111+b66+/3gQEBJjQ0FBz2223mW3btjmO
3y4Gu/nzVi/7sszMTDNhwgRTr149ExgYaJo1a2YWLFjgOC67+c1r/3b17Tjdv3zZtGmTad68uQkI
CDB16tQxCxYs8GjDbvvmdX4L+vjI6/6Tm/az9yPJvPrqqyY0NNSEhYWZxx57zJw6dcqv+OzqW8W/
ZMkS07BhQ1OiRAlTs2ZNM2fOnBzv+HEy/smTJ5ugoCCTlpaWoywpKclIMrVq1bKaKku+tq9dfHbn
N7v9OyMjwwwZMsRdf/LkyaZYsWKO+8++zN9jDwAAAMBfk+07kAD89RTUu5suttmzZ2vOnDn64osv
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
HMu3b9+u+vXrS5IyMzM1ZswY1axZUyEhIerVq5dSUlL86nzu3Llq1aqVypQpo6ioKL333nse5bNm
zVKdOnUUGBio9u3bKzY21l3mcrm0YMEC1a1bV0FBQWrRooU2b97suG+7+qmpqerfv78iIiIUERGh
AQMGKC0tza/xWbFr3y6+06dPa+jQoYqIiFB4eLgmTZrkcTeLk+3jcrk0fvx4VatWTSVLltTrr7/u
1xis6tv1bze+9PR0DRo0SBEREQoLC8sR28UY39SpUxUWFqbw8HANHDhQ6enpHm17m4/sv2d99vY+
HbvyvO4fmzZt0q233qoKFSooICBALVq00IIFCxyP3cn+n5f5dRKf3fnBqv+CPn4l6/1Dsj5/2cWf
1+0HAAAAAPnNawKpQYMG7juQqlWrpurVq0uSfv/9d3cCaeLEiVq+fLm+//57xcTEqFixYhoxYoTj
jt9880299NJLmjBhguLj47V48WL9/PPPHut8+umnWrhwoZKSknTTTTepf//+HuVz5szR0qVLdeTI
EXXp0kWPPfaY85Hb1B81apTi4+O1ZcsWbd68Wfv379fo0aP9at+Kk/at4hs7dqx27dqljRs3atu2
bVqxYoVHXafb59tvv9WyZcsUGxurxYsX+z0OX/Wd9G81vhdffFFxcXHasmWLtmzZouXLl1/08S1a
tEhbt27V1q1btX//fr300kuO62Z/h07W79nfqWNXntf9o1u3burZs6diY2N1/PhxTZw4UR9++KHj
+J3u/7mdX7v4nJwfrPov6ONXst8/7M5fVvHndfsBAAAAQL4zXixZssS0b9/e7Nixw1StWtVUqVLF
7Ny507Rr184sXbrUGGNM3bp1ze7du911EhMTTbVq1bw151XNmjXN2rVrHa+fkpJigoOD3Z8lmf37
97s/p6amepTbsasfFRVloqOj3Z937NhhatSo4bj97P14Y9e+XXy1atUyO3fudH+Ojo726MvJ9pFk
YmJi/B6Tk/p2/duNr0aNGjnm52KOT5JH/9HR0aZmzZoe5d7qOFnmpDyv+0eNGjXMs88+a3744Qdz
8OBBk5mZaRmHv/1nxZDb+bWLz8n5wap/p8dvbreP3f5xoQvPX3bx53X7AQAAAEB+cxmT86uG9u/f
r1atWunZZ5/Vxo0bZYxRixYt9NJLL2ndunWqUqWKgoODderUKY96RYoUUWZmpqPEVfHixXX8+HEF
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
kEqABAAAAEAqARIAAAAAqQRIAAAAAKQSIAEAAACQSoAEAAAAQCoBEgAAAACpBBVYPB0AACAASURB
VEgAAAAApBIgAQAAAJBKgAQAAABAKgESAAAAAKkESAAAAACkEiABAAAAkEqABAAAAEAqARIAAAAA
qQRIAAAAAKQSIAEAAACQSoAEAAAAQCoBEgAAAACpBEgAAAAApBIgAQAAAJBKgAQAAABAKgESAAAA
AKkESAAAAACkEiABAAAAkEqABAAAAEAqARIAAAAAqQRIAAAAAKQSIAEAAACQSoAEAAAAQCoBEgAA
AACpBEgAAAAApBIgAQAAAJBKgAQAAABAKgESAAAAAKkESAAAAACkEiABAAAAkEqABAAAAEAqARIA
AAAAqQRIAAAAAKQSIAEAAACQSoAEAAAAQCoBEgAAAACpBEgAAAAApBIgAQAAAJBKgAQAAABAKgES
AAAAAKkESAAAAACkEiABAAAAkEqABAAAAEAqARIAAAAAqQRIAAAAAKQSIAEAAACQSoAEAAAAQCoB
EgAAAACpBEgAAAAApBIgAQAAAJBKgAQAAABAKgESAAAAAKkESAAAAACkEiABAAAAkEqABAAAAEAq
ARIAAAAAqQRIAAAAAKQSIAEAAACQSoAEAAAAQCoBEgAAAACpBEgAAAAApBIgAQAAAJBKgAQAAABA
KgESAAAAAKkESAAAAACkEiABAAAAkEqABAAAAEAqARIAAAAAqQRIAAAAAKQSIAEAAACQSoAEAAAA
QCoBEgAAAACpBEgAAAAApBIgAQAAAJBKgAQAAABAKgESAAAAAKkESAAAAACkEiABAAAAkEqABAAA
AEAqARIAAAAAqQRIAAAAAKQSIAEAAACQSoAEAAAAQCoBEgAAAACpBEgAAAAApBIgAQAAAJBKgAQA
AABAKgESAAAAAKkESAAAAACkEiABAAAAkEqABAAAAEAqARIAAAAAqQRIAAAAAKQSIAEAAACQSoAE
AAAAQCoBEgAAm+yiiy7a0lMAADYjARIAAJvkoosuinvvvXdLTwMA2IwESAAAVJrwCAB+GgRIAABU
ivAIAH46BEgAAFTYxuGRZyABwH83ARIAABVSWnjkSiQA+O8mQAIAoNyERwDw05SVJEmypScBAAAA
wI+XK5AAAAAASCVAAgAAACCVAAkAAACAVAIkAAAAAFIJkAAAAABIJUACAAAAIJUACQAAAIBUAiQA
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
WqlzLat+RMTw0TOj0eGD4vq/vxfZHR6Icv7TsoRW2+TEKUfuFD2ufDmO67h97NC8fmHZ6jUFsWZt
QcxduCIiIhYuWRkrVq6Ngir8//cNRo37Ks7vvms0rF8r2rVuGsNuOqLUemnHqLR1eu7Nr6JFtyHR
6thhMfq9uRWeV/VqWfE/967vd8LHCwq3bzhGdz3xcdTp8ECcdvWrZfa1Zm1BbLd1vRJ9bPy+qo5t
mkzrmN3hgbiy//hofMTgeHPyN+Vu27n3yFiztiAaHzG4WN20Pkv73EZk3v9NPZbllpQiIpKiRStX
rkwiIqlbt26p5UW/nzlzZtKmTZukXr16yY033pg0bNgwiYhk3bp1qWNkKpswYULSqVOnJDc3N8nJ
yUmOOuqo5OOPPy5Wb+Ov0vTv3z+5+OKLS2zPy8tLWrduncyZM6fUeaSZPXt20rlz5yQnJyfp2LFj
8uWXXyZJkiQtWrRInUumcbOzs5OVK1cmSZIkq1atSrKzswvLevXqldx9992l9hX735s6z4q22VC2
es26pPHhg5Lr7p6QZHd4IEmSJHny1enJLic+mtQ++P5kz1OfSMZMnJskSZIcefGoJPa/N4n9702m
fLG43GO9NmFO0ua0J5M6B9+f7HbS48lL73xdWFaZsSq7z5Vp//2KNUm9Q9evS2lrNXdhXnL0r55L
6h7yQNK598hkybJVyZwFeUmdg+9P8vLXJEmSJPmr1iZ1D3kgmbMgr1jf1Q8YmIyfMj+5ZfDkjHMo
rf/leauTVscOTcZPmZ8kSZKMnzI/2f64oUn7856p1JqVR9HxNli1+t+f9+oHDEwGj/o02eqIwck2
XR5Jhr34eWHZ7PnfJ517j0xyOj6YdPzliOTLucuTbxavSLY6YnCyes36PiZ+sjCJ/e9NPpi2MEmS
JFmzdl3S7OiHk28Wr8i4NlV9XmVqkySlH4ey5lHa+fLx9G+TXXs8lmx99MPJyLGzyrV+G5T3/CvP
/mx8nhf9fsP7jdcqrT8AIN2Gn6kbvjbY5cRHk9ffn5OMmTg32eXERwu3Z7W7N5nw8YIkSZKk2gED
k+fenJX834wlSb1DH0hGjl3/vs7B95cY5/OvvksadHqo2LhVPZ9M/bQ6dmjy7JiZpbYpOkb1AwYm
o8at34cmRw4uda7lqd/8mEeScZPmJSPHzkqy2m3avwHmLMhLqh8wMJn25ZIS+zd/8Yrk2rsnJEmS
JNfdPSGZOWdZxrluiloH3ZesXLW21LLyHKNM67TbSY8nb334TTJ+yvzkgHOeTp1DaftSvcj5t8cp
j5eo2+TIwclns5am9rnhK7vDA8nL478uVlba+6o8thv3vUGmdYz9701ef39OMvaDeUnLbkNK7S+t
babx0/rc+HObaf8rciw3RZnPQEqSJJ5//vmIiDj66KPLDKT69u0bU6dOjQEDBkSTJk1i6dL1v6Wu
Vq1yj1s6/fTT44033oj33nsvXnnllXjrrbfi8ssvL5xb0XmmeeaZZ+KUU04psf3uu++OU089NZo3
b17hufXr1y/at28fc+fOjU6dOsXVV18dERGzZ88uc06ljXvYYYfFoEGDIi8vL4YNGxaHH354Ydkp
p5wSTz2V+TLTDQY8NjW6XfZCifeVUbNGtViWtyaysrJi8ehzIyLi4j+/GcNuOjKWj/1FXHfhvnHF
7e9ERMSrfz82ItZfodNm58blHuOyv70Vt1x2YCwdc370O2/vYpe2Vmasbpe9EHc+PrXw/d+f/L8y
51CZNVuxcm3cM/z/Yv89mkZE6Wv1m9vejn122yrmv3xOtG/TLK77+4Ro3rRu7Llzo3jjg3kRETH2
g3nReqdG0bxp8dsd1xUk0b5Ns/h+xZqYOv3bUudQWv85dWvGXX0PiV/f+nasK0jisr+9HXf3OzTG
DzqxStesqBsubhdH/+q5uOBPb8Tw0TNjxcq1Uavmvz/vWVlZMeWLb2PGP8+IO/t2iGvumlBY1u/O
d6N9m2Yx98We0Wm/5nH1ne/G1o2zY9/dtooxE9cn569OmBNNGtaJV99df0XfmInzYq9dGsfWjbMz
zqmqz6tMbSJKPw5lzaO086Xfne/G1efvE4/9+ci46o7x5Vq/Dcp7/pVnf8pj47Xa1P4A4KeutLsC
vvrm++jQdps4eK+t4+v5ef+um0Tsv3uTiFh/BcMxB28Xe+zYMPLy18bPD1n/fuXqdYX1H3t5emx1
xODY9aTH4rvvV2/W+WTqZ9aos+KETjuU2WZdQRLdOqzfh0VLV5Y5z0z1F3y7Mg7aq1kc1b5FmVeo
lPZokaKuumN8DLz+sLjqjpKPFGnWODu+/W5VfDl3eXw8Y0mxK5QqKm0eWzeuG3MW5pXSqrhMxyjT
On05b3kccsGIOOj8Z2Pq9CWldZlqXZHzr7THb/z1svZxzKUvxD3DM//7Inm/d6yd0CtG3N4lLv7z
myXKN76iqyqPbSaZ1jEi4pC9t4mD9moW87/Nr3DbTErrM9PnNtP+b+qxLK8aaYVFF7ply5Zx++23
l9nhG2+8ERERPXr0iIKCgujTp88mTXDlyvUn+IABA6JHjx6xZMmSqF27dql10wKbjz/+ONq2bVts
26pVq+L+++9Pfb5QmtGjR8ekSZOifv36cemll8a+++5brnaZxh0wYEAccsgh0adPn2jSpEm8+ea/
P0Bt27aNqVOnpvY7atxXMWjkZ/HGfd2Lvc9k42erlHbr2tp1BXHJaa0ju/b6U2Xrxtnx9OiZ0axR
dpzZdZc4s+suZe5vmqlPnFr4/uxuP4sL/vRG4feVGeuJvxwVh/3yn7FTi9x44i9HRadeI2P7bXPi
2ENblVq/smuWXbtGHNy2WTz4+06FZRuv1WsT5sa04adFTt2accXZe0X785+NiIjjD9shXh4/O7p1
2C5eHj87jj9s+4zjXXfBvtHrxrHx4P90ihrVi4ewmfrvftj28fBzn8eJv30pdmxRP+O+V3bNNnbu
sbvGoftsE6PGfRWDR30Wl/71rRj0h87R5aCWhety9fn7RG69WnFi5x3i9GteK2w7+r25MWnYyVG/
bs249PQ9Y9+zh0dExBldd45nXv8yjm7fMl6bMCf6nNw6XntvTlx17t7x9OiZcUaXnVPnVNXnVVqb
TMehrHlsfL68/eH8GHrjEZFbr1Z88tRpxeplWr+iynv+VXYNKrs+AEDltNomJ97+6JtIkvXvi6pW
LavM9xv0vePdePGun0f1allx+EWjYv63+YW/iFuybFU0yi3931aVnU95ZWqTaXumuZZWv3GD2jHx
k0WxZFnZjwBJ+zfkc29+FTVrVIsLjt8t3v5wfgwfPTNOPmLHYnXO775rXHjDG3HusbuWOVZl53Fi
5x3igRGfxpU928b8b/PjjwMnxqM3H1miXkWP0Y7N68fQG4+I/TIEgOWRdux/cfxucUyH7eJnPR6L
Pie3ztxHVlbUrFEtvl+xpnBbrZrV4rOvvovPv/ouqhcZo6qObZq0dRw/ZUFkZUWJCwDK0zaT0vrM
9LnNtP9VcSzLo1zPQHr00Udj9uzZcd5555XZ4ZIl69Ou3NzcaNSo0SZP8L777ouddtop7r777jjq
qKNi2223jWHDhlW4n6VLl0aDBg2KbXv++efjoIMOioYNG1ZqbosXL44mTdYfoK222ioWLVpURov0
cX/1q1/FTTfdFN9//3385S9/iYsuuqiwrHHjxoVXc2Xyiz+OiX9cc2jU5kmlCQAACdNJREFUr1uz
2PtMMj0DaWNbN/73iTyy/zGxaOnKOPC8Z2Lfs4bH2H9dSVNZYybOjQPOfSbqH/ZQZB/yQLGyyoxV
v27NuOfajnH+H8ZE/bo14x/XHJr6nKLKrtmKty6I1/5xXOzcMrdYedG1Wpa3Opoe9XBktRsYW3d5
JOYtWn9/9PGdto+Xx6+/Sq2sAKl2repx6Rlt4q+DPyxRlqn/iIhLTmsdo8Z9FX1O3iNj3xtUdM1K
s1OL3LjsjDbxz9u7xrO3dYlL//pWsfKtGtSJiIga1asV+y3C4u9WRpOG68u2alin8DciJx2+Y7zw
9texcvW6+PCzxdH3vL3jo8+/jZWr18Xzb31V4gf3xqr6vEprk3Yc0uYRsfH5siZysks/9zKtX3p/
medV1Z/jqu4PAIj4268PitOveS3Oum50/O3X7Svdz42/aheHXzQy3vlofvy/0/eMnY5/NCLWXx2y
47/e/5DzqYyKzvWWS9tHl0uej/FTF5RdOYPvV6yJK/uPj5svOTAi1q/j9X9/r1jIERHRvk2zSJKI
U47cqdR+quKvfN10yQHxycwl0fyYIXH6Na/GFT3bllqvoseo/287xIm/fTnqHfpgXNl/fJn1K+qs
60bHjsc/GtddsF/GOuv/CtvA+MUf34i7rz60cPuf+rSL/Xs+He9OXRD169UsvNqmKo5tWdLW8ZnX
Z8bxV7wUj95UMsArq20mpfWZ6XObaf8397EsVNp9bbHR83vy8/OTiEhq166dJEmS1KxZM4mIZOXK
lcmSJUuK1W/WrFkSEcnixYuTRYsWZXwWUKbtmco+++yz5IYbbkgiItl6663L1U9RTZo0SRYuXFhs
W8+ePZOnnnoqY5uy+m3RokUyf/76Z7/Mnz8/adGiRbnaZhq3Tp06SX5+fpIk69e86DOQ5s2blzRt
2rT0ef7rfsqnXpuRtDvn6WR53upi79PalFWWqV5BQZI88txnyXY/H1pm3bSxtunySDLk+c+TZXmr
k+V5q0utW5GxluetTvbvOTx56rUZhe+HvzYjY5uqWrPSylt2G5Isy9BXq2OHJhM/WZhsf9zQUss3
7ut/7n0/mfTpomLb0/rv3Htk8v9ueTPp1OufZc4/bc3KY/yU+YXPK0qSJFm0NL/w2VCljVv0+xbd
hiTz//Uso/mLVyQtitz32/3yF5MbH/ggObXfK0mSJMnp17ya3PzgpOTYX79Q6jyK9lvV51Vam7Tj
kDaPjcdqcuTgZPF3K1P3K22OFTn/0van2gEDC4/nN4tXZJxzedcUAOCHNuT5z5NZ85Ynz7/1VbJN
l0e29HSoQlvy2FbVM602pc8tfW5X6BlI++23Pjncddf1l+e9/PLLMXz48KhVq1Zh/Y4dO0ZExLPP
PluuZ/aUpXv37pGbmxvLli2LU09dfztI0St36tZd/xv3WbNmpd7fuOeee8aUKVOKbZs4cWLstdde
lZ7bUUcdFQMGDIi8vLy47bbb4sgjS08hN5Zp3F133TWGDBkS+fn5MWzYsNh9990Lyz766KNo06ZN
ar8nH7FjnH3MLnHa1a8We1+VDjr/2XjilRmxdl1B7NQyN9YVFBSWbdWgTnyzeEVK65J236Fh7LZ9
g1i9Zl3cMvjD2KpBnZg+e1mlxzrt6lfjzK67xMlH7BinXf1q9Oz2szgp5WqVzblmx3TYLm595MNY
sXJtPDBiWhx58b//7PlxHVvFDfd/EMd1zHz1UVHX/mLfuPWRD6NOrepl9j/sxS+idq1qcWffQyL5
1/cRVbdmG7uy//j4n3vfjyXLVsXS5avjmrsmxCF7b1Outkcd2CIGPDY18vLXxm1DPoojD2hRWHZm
153jr4M/LLxf/sTOO8QtgyeXeftaRNWfV2lt0o5z2jw21qHt1vHYS9Nj3KRvYreTHi9zH8uSNq+0
/dm2Sd0YOXZWLF+xJm4ZNLnErZMbFF2rtP4AAH5oX85bHnud/lSc/4cxP/jVUmxeP/Vju6X3PytJ
St4YuHEI07Bhw+jUqVMMGDAgWrVqFS+99FL06tUr8vPz49Zbb41+/frF/PnzY926dTFjxozo1q1b
zJ8/P/r16xfXX399RJS8/zBT0JMkSWFZkiTx3nvvxW9+85uYPHlyVKtWLfbff//o379/7LPPPhER
cfXVV0f//v0jNzc3Fi5cWOpYERF33HFHfP7553HXXXcVbsvNzY25c+dGTk7xexNLm1tpfc6dOzfO
OuusmDhxYrRv3z4efvjhwodiZ2VlZbznMtO4EydOjF69esW0adNi9913j/vuuy/233//iIi46KKL
om3btnHJJZeU6C+r3cDUW9BKk9amaNnG9V4ePzsu+9vbMXPusthh2/px+xUHFz4r59GXvoiL//xm
LB1zfon+Nrahz4mfLIqjL3kuGuTUioHXdYxxk76J24Z8FHlvXlCpsSq7z1XRfuPyhUtWxgV/GhNj
Js6LVtvkxD3XdIyO+64PVl56Z3Z0u+z5ePHOnxc+K6issT6Ytijan/dsrHn3lxn732e3rWLPU5+M
F+7sFnvu1CgmfLwgelz5ckwbfnqMGjerwmtWHrPmfR+/+sub8ebkb6J69azotN+2MeCqDrHd1jml
7kvR7+cuXBFnXfdaTJy2KNq3aRYP//Hwwnt/8/LXRotuQ+LLkWdFw/q1Ylne6mh17LD4+vmzS73N
sGi/VX1epbVJO85p89h4XaZ9uTSO/fWLsXzF6rjv+sMKg7O09cu0/2XNK21/Bo/6rPCy17/9+qC4
/Pa349vR50dWVvExiq5VWn8AQGYVfWwAlTfoD50rVH9zHZsfyzz+m1jT0lV0Xcqj1ACpqixbtiwa
NGgQ22yzTcybt2WfiZGfnx977bVXvPrqq7HDDjts0blU1PTp0+OYY46JqVOnlvoA8U0NRn4qrBMA
AABUTpm3sFVU165do379+vH666/HiBEjIiLimGOOqephKiw7OzsefvjhOOussyI/v/Q/ufdjlJ+f
Hz179oxHHnkk41+fAwAAANicqvwKpKK3nOXk5ES3bt3i9ttvj8aNG1flMBSR1W5gTBp2cvzm1re3
9FQiImLMwO6F7zv3HrkFZ/Jv/a/sEPueNbzEFUg/lvn9GNes6Jwy+bHMlR+n8pxDAADAf4bNegsb
AAAAAP/5qvwWNgAAAAD+uwiQAAAAAEglQAIAAAAglQAJAAAAgFQCJAAAAABSCZAAAAAASCVAAgAA
ACCVAAkAAACAVAIkAAAAAFIJkAAAAABIJUACAAAAIJUACQAAAIBUAiQAAAAAUgmQAAAAAEglQAIA
AAAglQAJAAAAgFQCJAAAAABSCZAAAAAASCVAAgAAACCVAAkAAACAVAIkAAAAAFIJkAAAAABI9f8B
0IlHTUNf0EYAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267721</attachid>
            <date>2015-12-20 10:36:59 -0800</date>
            <delta_ts>2015-12-20 13:49:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150550-20151220123621.patch</filename>
            <type>text/plain</type>
            <size>30401</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MWQ4ODhlY2IzY2M5
OGYxYzYwNjM1NmRhOTg3Y2MyZjA4YThkZC4uYTg4MWYzYzU3NDAxOWQ3ZDg4MzBjYjFhMzdhMzgy
ZDE2YmY2NTdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTEyLTIwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBF
dmVyeXRoaW5nIGJyb2tlbiBpbiBHVEsrIDMuMTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDU1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBvcnQgUmVuZGVyVGhlbWVHdGsgYW5kIFNjcm9sbGJhclRo
ZW1lR3RrIHRvIHVzZSBDU1Mgbm9kZXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gcmVuZGVy
CisgICAgICAgIHN0dWZmIHdpdGggbW9kZXJuIEdUSysuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBXZSBhbHJlYWR5IGhhdmUgdG9ucyBvZiB0ZXN0cyBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5LCBi
dXQgd2UncmUgcnVubmluZyB0aGVtCisgICAgICAgIHdpdGggR1RLKyAzLjE2LCBzbyB0aGV5IGNh
bm5vdCBoYXZlIGRldGVjdGVkIHRoaXMgYnJlYWthZ2UuIFRoZXNlIGZpeGVzIHJlcXVpcmUgdW5y
ZWxlYXNlZAorICAgICAgICBHVEsrLCBhbmQgR1RLKyByZW5kZXJpbmcgaXMgY3VycmVudGx5IGlu
IGEgc3RhdGUgb2YgZmx1eDsgb25jZSB0aGluZ3Mgc2V0dGxlIGRvd24sIHdlIGNhbgorICAgICAg
ICBjb25zaWRlciB1cGdyYWRpbmcgdGhlIEdUSysgdXNlZCBmb3Igb3VyIGxheW91dCB0ZXN0cy4K
KworICAgICAgICAqIHBsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcDoKKyAgICAgICAgKFdURjo6
cmVmR1B0cik6CisgICAgICAgIChXVEY6OmRlcmVmR1B0cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL0dSZWZQdHJHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2Nyb2xsYmFyU3R5bGVDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjp1cGRhdGVUaGVtZVByb3BlcnRp
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VHJhY2tCYWNr
Z3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludFNjcm9s
bGJhckJhY2tncm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBh
aW50VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0
dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxlQ29udGV4dDo6U2Nyb2xsYmFy
U3R5bGVDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxl
Q29udGV4dDo6flNjcm9sbGJhclN0eWxlQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXJTdHlsZUNvbnRleHQ6OmNvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Z3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjp0aGVtZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVTdHlsZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VG9nZ2xlU2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpwYWludFRvZ2dsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUd0azo6cGFpbnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
cGFpbnRTbGlkZXJUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFp
bnRTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRQ
cm9ncmVzc0Jhcik6CisgICAgICAgIChXZWJDb3JlOjpwYWludFNwaW5BcnJvd0J1dHRvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzdHlsZUNvbG9yKToKKwogMjAxNS0xMi0xOCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FjaGUgcmVkaXJlY3RzIGFzIHNlcGFy
YXRlIGVudHJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVm
UHRyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcApp
bmRleCAzYzI4ZWI3M2FlYzYwYmIzZDI1MjZjMWZiMWZhNTM3OWNiNWYzNGExLi43YjRkNjkyNTBh
NTAxYWM0ZGUyZDNlNTExMzdhNzg4MDAwOTQ1MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0dSZWZQdHJHdGsuY3BwCkBAIC03Miw2ICs3MiwyMiBAQCB0ZW1wbGF0ZSA8PiB2b2lk
IGRlcmVmR1B0cihHZGtDdXJzb3IqIHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBnZGtfY3Vy
c29yX3VucmVmKHB0cik7CiB9CisKKyNlbHNlCisKK3RlbXBsYXRlIDw+IEd0a1dpZGdldFBhdGgq
IHJlZkdQdHIoR3RrV2lkZ2V0UGF0aCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGd0
a193aWRnZXRfcGF0aF9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8
PiB2b2lkIGRlcmVmR1B0cihHdGtXaWRnZXRQYXRoKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAg
ICAgICAgZ3RrX3dpZGdldF9wYXRoX3VucmVmKHB0cik7Cit9CisKICNlbmRpZgogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAppbmRleCA4ZjA0MjZkYjUxZWQ2ODg3
ZTI0ZWEzOWMxMzJiNDc3OGZmYjg2MmE5Li5jNzM3ZTNkOTFmYzY3YjYxMWIwMzhjZDU4YzIzMTRl
MDM3NzBhN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0
ckd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmgKQEAg
LTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIAordHlwZWRl
ZiBzdHJ1Y3QgX0d0a1dpZGdldFBhdGggR3RrV2lkZ2V0UGF0aDsKIHR5cGVkZWYgc3RydWN0IF9T
ZWNyZXRWYWx1ZSBTZWNyZXRWYWx1ZTsKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0zOCw2ICszOSw5
IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBwdHIpOwogI2lmZGVm
IEdUS19BUElfVkVSU0lPTl8yCiB0ZW1wbGF0ZSA8PiBHZGtDdXJzb3IqIHJlZkdQdHIoR2RrQ3Vy
c29yKiBwdHIpOwogdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR2RrQ3Vyc29yKiBwdHIpOwor
I2Vsc2UKK3RlbXBsYXRlIDw+IEd0a1dpZGdldFBhdGgqIHJlZkdQdHIoR3RrV2lkZ2V0UGF0aCog
cHRyKTsKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cik7CiAj
ZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9s
bGJhclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5jcHAKaW5kZXggZWZhYWIzMDExY2QxYTMyMmIxN2NkZDAxNzFmNDRlYjRjYzMxNWVk
NS4uM2VkMGI4M2VjZGI5YTQ3ZDU5YWQxZjQ3M2I4ZDMzMTZmZDcyMDk3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCkBAIC0xNjMs
MzMgKzE2MywxNiBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjp0cmFja1JlY3QoU2Nyb2xs
YmFyJiBzY3JvbGxiYXIsIGJvb2wpCiB9CiAKICNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKLWNs
YXNzIFNjcm9sbGJhclN0eWxlQ29udGV4dCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Ny
b2xsYmFyU3R5bGVDb250ZXh0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0g
ICAgU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkKLSAgICAgICAgOiBtX2NvbnRleHQoYWRvcHRHUmVm
KGd0a19zdHlsZV9jb250ZXh0X25ldygpKSkKLSAgICB7Ci0gICAgICAgIEd0a1dpZGdldFBhdGgq
IHBhdGggPSBndGtfd2lkZ2V0X3BhdGhfbmV3KCk7Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9h
cHBlbmRfdHlwZShwYXRoLCBHVEtfVFlQRV9TQ1JPTExCQVIpOwotICAgICAgICBndGtfd2lkZ2V0
X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX1NDUk9MTEJBUik7
Ci0gICAgICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKG1fY29udGV4dC5nZXQoKSwgcGF0
aCk7Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9mcmVlKHBhdGgpOwotICAgIH0KLQotICAgIH5T
Y3JvbGxiYXJTdHlsZUNvbnRleHQoKQotICAgIHsKLSAgICB9CiAKLSAgICBHdGtTdHlsZUNvbnRl
eHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KLQotcHJpdmF0
ZToKLSAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gbV9jb250ZXh0OwotfTsKLQotc3RhdGlj
IEd0a1N0eWxlQ29udGV4dCogZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkKK0dSZWZQdHI8R3Rr
U3R5bGVDb250ZXh0PiBjcmVhdGVTY3JvbGxiYXJTdHlsZUNvbnRleHQoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTY3JvbGxiYXJTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dDsKLSAg
ICByZXR1cm4gc3R5bGVDb250ZXh0LmdldCgpLmNvbnRleHQoKTsKKyAgICBHUmVmUHRyPEd0a1dp
ZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKyAgICBn
dGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFS
KTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RL
X1NUWUxFX0NMQVNTX1NDUk9MTEJBUik7CisKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4g
Y29udGV4dCA9IGd0a19zdHlsZV9jb250ZXh0X25ldygpOworICAgIGd0a19zdHlsZV9jb250ZXh0
X3NldF9wYXRoKGNvbnRleHQuZ2V0KCksIHBhdGguZ2V0KCkpOworICAgIHJldHVybiBjb250ZXh0
OwogfQogCiBTY3JvbGxiYXJUaGVtZUd0azo6U2Nyb2xsYmFyVGhlbWVHdGsoKQpAQCAtMTk5LDE0
ICsxODIsMTMgQEAgU2Nyb2xsYmFyVGhlbWVHdGs6OlNjcm9sbGJhclRoZW1lR3RrKCkKIAogdm9p
ZCBTY3JvbGxiYXJUaGVtZUd0azo6dGhlbWVDaGFuZ2VkKCkKIHsKLSAgICBndGtfc3R5bGVfY29u
dGV4dF9pbnZhbGlkYXRlKGd0a1Njcm9sbGJhclN0eWxlQ29udGV4dCgpKTsKICAgICB1cGRhdGVU
aGVtZVByb3BlcnRpZXMoKTsKIH0KIAogdm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6dXBkYXRlVGhl
bWVQcm9wZXJ0aWVzKCkKIHsKICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoCi0gICAg
ICAgIGd0a1Njcm9sbGJhclN0eWxlQ29udGV4dCgpLAorICAgICAgICBjcmVhdGVTY3JvbGxiYXJT
dHlsZUNvbnRleHQoKS5nZXQoKSwKICAgICAgICAgIm1pbi1zbGlkZXItbGVuZ3RoIiwgJm1fbWlu
VGh1bWJMZW5ndGgsCiAgICAgICAgICJzbGlkZXItd2lkdGgiLCAmbV90aHVtYkZhdG5lc3MsCiAg
ICAgICAgICJ0cm91Z2gtYm9yZGVyIiwgJm1fdHJvdWdoQm9yZGVyV2lkdGgsCkBAIC0yOTYsNjIg
KzI3OCw5OCBAQCB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRyYWNrQmFja2dyb3VuZChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFNjcm9sbGJhcgogICAgIGlmIChtX3Ryb3VnaFVuZGVy
U3RlcHBlcnMpCiAgICAgICAgIGZ1bGxTY3JvbGxiYXJSZWN0ID0gSW50UmVjdChzY3JvbGxiYXIu
eCgpLCBzY3JvbGxiYXIueSgpLCBzY3JvbGxiYXIud2lkdGgoKSwgc2Nyb2xsYmFyLmhlaWdodCgp
KTsKIAotICAgIEd0a1N0eWxlQ29udGV4dCogc3R5bGVDb250ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5
bGVDb250ZXh0KCk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2F2ZShzdHlsZUNvbnRleHQpOwor
ICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBzdHlsZUNvbnRleHQgPSBjcmVhdGVTY3JvbGxi
YXJTdHlsZUNvbnRleHQoKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMSkKKyAgICBH
UmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25l
dygpKTsKIAotICAgIGFwcGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRl
eHQsIHNjcm9sbGJhci5vcmllbnRhdGlvbigpKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRf
Y2xhc3Moc3R5bGVDb250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfVFJPVUdIKTsKKyAgICBndGtfd2lk
Z2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKKyAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInNj
cm9sbGJhciIpOwogCi0gICAgYWRqdXN0UmVjdEFjY29yZGluZ1RvTWFyZ2luKHN0eWxlQ29udGV4
dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oMCksIGZ1bGxTY3JvbGxiYXJSZWN0KTsKLSAg
ICBndGtfcmVuZGVyX2JhY2tncm91bmQoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpLCBmdWxsU2Nyb2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxiYXJSZWN0Lnko
KSwgZnVsbFNjcm9sbGJhclJlY3Qud2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkp
OwotICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpLCBmdWxsU2Nyb2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxiYXJSZWN0Lnko
KSwgZnVsbFNjcm9sbGJhclJlY3Qud2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkp
OworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9T
Q1JPTExCQVIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRo
LmdldCgpLCAxLCAidHJvdWdoIik7CiAKLSAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0
eWxlQ29udGV4dCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoc3R5bGVDb250ZXh0
LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbmRpZgorCisgICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNv
bnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dC5nZXQoKSwgc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkp
OworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0KCksIEdU
S19TVFlMRV9DTEFTU19UUk9VR0gpOworCisgICAgYWRqdXN0UmVjdEFjY29yZGluZ1RvTWFyZ2lu
KHN0eWxlQ29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oMCksIGZ1bGxT
Y3JvbGxiYXJSZWN0KTsKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoc3R5bGVDb250ZXh0Lmdl
dCgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBmdWxsU2Nyb2xsYmFyUmVjdC54
KCksIGZ1bGxTY3JvbGxiYXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJlY3Qud2lkdGgoKSwgZnVs
bFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkpOworICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250
ZXh0LmdldCgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBmdWxsU2Nyb2xsYmFy
UmVjdC54KCksIGZ1bGxTY3JvbGxiYXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJlY3Qud2lkdGgo
KSwgZnVsbFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkpOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1l
R3RrOjpwYWludFNjcm9sbGJhckJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBT
Y3JvbGxiYXImIHNjcm9sbGJhcikKIHsKLSAgICBHdGtTdHlsZUNvbnRleHQqIHN0eWxlQ29udGV4
dCA9IGd0a1Njcm9sbGJhclN0eWxlQ29udGV4dCgpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3Nh
dmUoc3R5bGVDb250ZXh0KTsKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250
ZXh0ID0gY3JlYXRlU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJ
T04oMywgMTksIDEpCisgICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVm
KGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CiAKLSAgICBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4
dENsYXNzZXMoc3R5bGVDb250ZXh0LCBzY3JvbGxiYXIub3JpZW50YXRpb24oKSk7Ci0gICAgZ3Rr
X3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0eWxlQ29udGV4dCwgInNjcm9sbGVkLXdpbmRvdyIp
OwotICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpLCBzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCBzY3JvbGxiYXIud2lk
dGgoKSwgc2Nyb2xsYmFyLmhlaWdodCgpKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5
cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInNjcm9sbGJhciIpOworCisgICAg
Z3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgp
KTsKKyNlbmRpZgogCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfcmVzdG9yZShzdHlsZUNvbnRleHQp
OworICAgIGFwcGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQuZ2V0
KCksIHNjcm9sbGJhci5vcmllbnRhdGlvbigpKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRf
Y2xhc3Moc3R5bGVDb250ZXh0LmdldCgpLCAic2Nyb2xsZWQtd2luZG93Iik7CisgICAgZ3RrX3Jl
bmRlcl9mcmFtZShzdHlsZUNvbnRleHQuZ2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkt
PmNyKCksIHNjcm9sbGJhci54KCksIHNjcm9sbGJhci55KCksIHNjcm9sbGJhci53aWR0aCgpLCBz
Y3JvbGxiYXIuaGVpZ2h0KCkpOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRo
dW1iKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgR3RrU3R5bGVDb250ZXh0KiBzdHlsZUNvbnRleHQgPSBn
dGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9zYXZlKHN0
eWxlQ29udGV4dCk7CisgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9
IGNyZWF0ZVNjcm9sbGJhclN0eWxlQ29udGV4dCgpOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMs
IDE5LCAxKQorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtf
d2lkZ2V0X3BhdGhfbmV3KCkpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBh
dGguZ2V0KCksIEdUS19UWVBFX1NDUk9MTEJBUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJf
c2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY3JvbGxiYXIiKTsKKworICAgIGd0a193
aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOwor
ICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAi
dHJvdWdoIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwg
R1RLX1RZUEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0
X25hbWUocGF0aC5nZXQoKSwgMiwgInNsaWRlciIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2V0X3BhdGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbmRpZgogCiAgICAg
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBzY3JvbGxiYXIub3JpZW50YXRpb24o
KTsKLSAgICBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LCBv
cmllbnRhdGlvbik7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0eWxlQ29udGV4
dCwgR1RLX1NUWUxFX0NMQVNTX1NMSURFUik7CisgICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRl
eHRDbGFzc2VzKHN0eWxlQ29udGV4dC5nZXQoKSwgb3JpZW50YXRpb24pOworICAgIGd0a19zdHls
ZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19T
TElERVIpOwogCiAgICAgZ3VpbnQgZmxhZ3MgPSAwOwogICAgIGlmIChzY3JvbGxiYXIucHJlc3Nl
ZFBhcnQoKSA9PSBUaHVtYlBhcnQpCiAgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX0FD
VElWRTsKICAgICBpZiAoc2Nyb2xsYmFyLmhvdmVyZWRQYXJ0KCkgPT0gVGh1bWJQYXJ0KQogICAg
ICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19QUkVMSUdIVDsKLSAgICBndGtfc3R5bGVfY29u
dGV4dF9zZXRfc3RhdGUoc3R5bGVDb250ZXh0LCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihm
bGFncykpOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShzdHlsZUNvbnRleHQuZ2V0
KCksIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSk7CiAKICAgICBJbnRSZWN0IHRo
dW1iUmVjdChyZWN0KTsKLSAgICBhZGp1c3RSZWN0QWNjb3JkaW5nVG9NYXJnaW4oc3R5bGVDb250
ZXh0LCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncyksIHRodW1iUmVjdCk7Ci0gICAg
Z3RrX3JlbmRlcl9zbGlkZXIoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
LT5jcigpLCB0aHVtYlJlY3QueCgpLCB0aHVtYlJlY3QueSgpLCB0aHVtYlJlY3Qud2lkdGgoKSwg
dGh1bWJSZWN0LmhlaWdodCgpLAorICAgIGFkanVzdFJlY3RBY2NvcmRpbmdUb01hcmdpbihzdHls
ZUNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSwgdGh1bWJS
ZWN0KTsKKyAgICBndGtfcmVuZGVyX3NsaWRlcihzdHlsZUNvbnRleHQuZ2V0KCksIGNvbnRleHQu
cGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHRodW1iUmVjdC54KCksIHRodW1iUmVjdC55KCksIHRo
dW1iUmVjdC53aWR0aCgpLCB0aHVtYlJlY3QuaGVpZ2h0KCksCiAgICAgICAgIG9yaWVudGF0aW9u
ID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDogR1RLX09S
SUVOVEFUSU9OX0hPUklaT05UQUwpOwotCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfcmVzdG9yZShz
dHlsZUNvbnRleHQpOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1dHRvbihH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRS
ZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnQpCiB7Ci0gICAgR3RrU3R5bGVDb250ZXh0KiBz
dHlsZUNvbnRleHQgPSBndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKLSAgICBndGtfc3R5bGVf
Y29udGV4dF9zYXZlKHN0eWxlQ29udGV4dCk7CisgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+
IHN0eWxlQ29udGV4dCA9IGNyZWF0ZVNjcm9sbGJhclN0eWxlQ29udGV4dCgpOworI2lmIEdUS19D
SEVDS19WRVJTSU9OKDMsIDE5LCAxKQorICAgIC8vIEZJWE1FOiBXaXRoIEFkd2FpdGEsIHRoZSBz
dHlsZSBjb250ZXh0IGlzIHJlcXVlc3RpbmcgdGhlIHByaW1hcnkgYmFja3dhcmQgYW5kIGZvcndh
cmQgc3RlcHBlcnMuCisgICAgLy8gQnV0IHRoaXMgaXMgYSBidWc6IEFkd2FpdGEgZXhwbGljaXRs
eSBkaXNhYmxlcyB0aG9zZSBzdGVwcGVycy4gV2h5IGFyZSB3ZSBnZXR0aW5nIHRoZW0/CisgICAg
R1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9u
ZXcoKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RL
X1RZUEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25h
bWUocGF0aC5nZXQoKSwgMCwgInNjcm9sbGJhciIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2Fw
cGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NDUk9MTEJBUik7CisgICAgZ3RrX3dpZGdl
dF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDEsICJidXR0b24iKTsKKwor
ICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKHN0eWxlQ29udGV4dC5nZXQoKSwgcGF0aC5n
ZXQoKSk7CisjZW5kaWYKIAogICAgIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0g
c2Nyb2xsYmFyLm9yaWVudGF0aW9uKCk7Ci0gICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRleHRD
bGFzc2VzKHN0eWxlQ29udGV4dCwgb3JpZW50YXRpb24pOworICAgIGFwcGx5U2Nyb2xsYmFyU3R5
bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQuZ2V0KCksIG9yaWVudGF0aW9uKTsKIAogICAg
IGd1aW50IGZsYWdzID0gMDsKICAgICBpZiAoKEJhY2tCdXR0b25TdGFydFBhcnQgPT0gcGFydCAm
JiBzY3JvbGxiYXIuY3VycmVudFBvcygpKQpAQCAtMzY0LDE0ICszODIsMTQgQEAgdm9pZCBTY3Jv
bGxiYXJUaGVtZUd0azo6cGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3Jv
bGxiYXImIHNjcm9sbGIKICAgICAgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX1BSRUxJ
R0hUOwogICAgIH0gZWxzZQogICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19JTlNFTlNJ
VElWRTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUoc3R5bGVDb250ZXh0LCBzdGF0
aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncykpOworICAgIGd0a19zdHlsZV9jb250ZXh0X3Nl
dF9zdGF0ZShzdHlsZUNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZs
YWdzKSk7CiAKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0LCBH
VEtfU1RZTEVfQ0xBU1NfQlVUVE9OKTsKLSAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoc3R5bGVD
b250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgZ3RrX3JlbmRlcl9mcmFtZShz
dHlsZUNvbnRleHQsIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHJlY3QueCgpLCBy
ZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBndGtfc3R5bGVfY29u
dGV4dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfQlVUVE9O
KTsKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoc3R5bGVDb250ZXh0LmdldCgpLCBjb250ZXh0
LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgo
KSwgcmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3JlbmRlcl9mcmFtZShzdHlsZUNvbnRleHQuZ2V0
KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHJlY3QueCgpLCByZWN0LnkoKSwg
cmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKIAogICAgIGdmbG9hdCBhcnJvd1NjYWxpbmc7
Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKHN0eWxlQ29udGV4dCwgImFycm93LXNj
YWxpbmciLCAmYXJyb3dTY2FsaW5nLCBudWxscHRyKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9n
ZXRfc3R5bGUoc3R5bGVDb250ZXh0LmdldCgpLCAiYXJyb3ctc2NhbGluZyIsICZhcnJvd1NjYWxp
bmcsIG51bGxwdHIpOwogCiAgICAgZG91YmxlIGFycm93U2l6ZSA9IHN0ZDo6bWluKHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSkgKiBhcnJvd1NjYWxpbmc7CiAgICAgRmxvYXRQb2ludCBhcnJv
d1BvaW50KApAQCAtMzgwLDcgKzM5OCw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50
QnV0dG9uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBzY3JvbGxiCiAKICAg
ICBpZiAoZmxhZ3MgJiBHVEtfU1RBVEVfRkxBR19BQ1RJVkUpIHsKICAgICAgICAgZ2ludCBhcnJv
d0Rpc3BsYWNlbWVudFgsIGFycm93RGlzcGxhY2VtZW50WTsKLSAgICAgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfZ2V0X3N0eWxlKHN0eWxlQ29udGV4dCwgImFycm93LWRpc3BsYWNlbWVudC14IiwgJmFy
cm93RGlzcGxhY2VtZW50WCwgImFycm93LWRpc3BsYWNlbWVudC15IiwgJmFycm93RGlzcGxhY2Vt
ZW50WSwgbnVsbHB0cik7CisgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShzdHls
ZUNvbnRleHQuZ2V0KCksICJhcnJvdy1kaXNwbGFjZW1lbnQteCIsICZhcnJvd0Rpc3BsYWNlbWVu
dFgsICJhcnJvdy1kaXNwbGFjZW1lbnQteSIsICZhcnJvd0Rpc3BsYWNlbWVudFksIG51bGxwdHIp
OwogICAgICAgICBhcnJvd1BvaW50Lm1vdmUoYXJyb3dEaXNwbGFjZW1lbnRYLCBhcnJvd0Rpc3Bs
YWNlbWVudFkpOwogICAgIH0KIApAQCAtMzkwLDkgKzQwOCw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhl
bWVHdGs6OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBz
Y3JvbGxiCiAgICAgZWxzZQogICAgICAgICBhbmdsZSA9IChwYXJ0ID09IEZvcndhcmRCdXR0b25F
bmRQYXJ0IHx8IHBhcnQgPT0gRm9yd2FyZEJ1dHRvblN0YXJ0UGFydCkgPyBHX1BJIC8gMiA6IDMg
KiAoR19QSSAvIDIpOwogCi0gICAgZ3RrX3JlbmRlcl9hcnJvdyhzdHlsZUNvbnRleHQsIGNvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGFuZ2xlLCBhcnJvd1BvaW50LngoKSwgYXJyb3dQ
b2ludC55KCksIGFycm93U2l6ZSk7Ci0KLSAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0
eWxlQ29udGV4dCk7CisgICAgZ3RrX3JlbmRlcl9hcnJvdyhzdHlsZUNvbnRleHQuZ2V0KCksIGNv
bnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGFuZ2xlLCBhcnJvd1BvaW50LngoKSwgYXJy
b3dQb2ludC55KCksIGFycm93U2l6ZSk7CiB9CiAKIGJvb2wgU2Nyb2xsYmFyVGhlbWVHdGs6OnBh
aW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4
dCwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDgyOGYyNzdjYjkyMmMwYzUzZDg5NGE5NTllYTQ4YzBm
YWE2NmExZmMuLjNmOWZhMGU0Y2ZjMzFjYTllNTMxMDE2ZTY1MDczN2UwNTg0YmU5YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtMTUyLDM0ICsx
NTIsNTQgQEAgc3RhdGljIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjcmVhdGVTdHlsZUNvbnRl
eHQoR1R5cGUgd2lkZ2V0VHlwZSkKICAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIH0K
IAotICAgIEd0a1dpZGdldFBhdGgqIHBhdGggPSBndGtfd2lkZ2V0X3BhdGhfbmV3KCk7Ci0gICAg
Z3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGgsIHdpZGdldFR5cGUpOworICAgIEdSZWZQ
dHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkp
OworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCB3aWRnZXRUeXBl
KTsKIAogICAgIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0VOVFJZKQotICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX0VOVFJZ
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAs
IEdUS19TVFlMRV9DTEFTU19FTlRSWSk7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtf
VFlQRV9BUlJPVykKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgs
IDAsICJhcnJvdyIpOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0
aC5nZXQoKSwgMCwgImFycm93Iik7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQ
RV9CVVRUT04pIHsKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgs
IDAsIEdUS19TVFlMRV9DTEFTU19CVVRUT04pOwotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRl
cl9hZGRfY2xhc3MocGF0aCwgMCwgInRleHQtYnV0dG9uIik7CisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfQlVUVE9O
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAs
ICJ0ZXh0LWJ1dHRvbiIpOwogICAgIH0gZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9T
Q0FMRSkKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgsIDAsIEdU
S19TVFlMRV9DTEFTU19TQ0FMRSk7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9j
bGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfU0NBTEUpOwogICAgIGVsc2UgaWYg
KHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU0VQQVJBVE9SKQotICAgICAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX1NFUEFSQVRPUik7Cisg
ICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtf
U1RZTEVfQ0xBU1NfU0VQQVJBVE9SKTsKICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19U
WVBFX1BST0dSRVNTX0JBUikKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNz
KHBhdGgsIDAsIEdUS19TVFlMRV9DTEFTU19QUk9HUkVTU0JBUik7CisgICAgICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUFJP
R1JFU1NCQVIpOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU1BJTl9CVVRU
T04pCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtf
U1RZTEVfQ0xBU1NfU1BJTkJVVFRPTik7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2Fk
ZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfU1BJTkJVVFRPTik7CiAgICAg
ZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9UUkVFX1ZJRVcpCi0gICAgICAgIGd0a193
aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xBU1NfVklFVyk7
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBH
VEtfU1RZTEVfQ0xBU1NfVklFVyk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAxKQog
ICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKQotICAgICAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNT
X0NIRUNLKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0
KCksIDAsIEdUS19TVFlMRV9DTEFTU19DSEVDSyk7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9
PSBHVEtfVFlQRV9SQURJT19CVVRUT04pCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2Fk
ZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUkFESU8pOworICAgICAgICBndGtfd2lk
Z2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX1JB
RElPKTsKKyNlbmRpZgorCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDEpCisgICAgaWYg
KHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9p
dGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiZW50cnkiKTsKKyAgICBlbHNlIGlm
ICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0FSUk9XKQorICAgICAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgImJ1dHRvbiIpOyAvLyBOb3RlOiBu
b3QgYSB0eXBvLgorICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQlVUVE9OKQor
ICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwg
MCwgImJ1dHRvbiIpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU0NBTEUp
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgp
LCAwLCAic2NhbGUiKTsKKyAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1NFUEFS
QVRPUikKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGgu
Z2V0KCksIDAsICJzZXBhcmF0b3IiKTsKKyAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19U
WVBFX1BST0dSRVNTX0JBUikKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVj
dF9uYW1lKHBhdGguZ2V0KCksIDAsICJwcm9ncmVzc2JhciIpOworICAgIGVsc2UgaWYgKHdpZGdl
dFR5cGUgPT0gR1RLX1RZUEVfU1BJTl9CVVRUT04pCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9p
dGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic3BpbmJ1dHRvbiIpOworICAgIGVs
c2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfVFJFRV9WSUVXKQorICAgICAgICBndGtfd2lk
Z2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInRyZWV2aWV3Iik7
CisjZW5kaWYKIAogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRH
UmVmKGd0a19zdHlsZV9jb250ZXh0X25ldygpKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9zZXRf
cGF0aChjb250ZXh0LmdldCgpLCBwYXRoKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfZnJlZShwYXRo
KTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoLmdl
dCgpKTsKIAogICAgIHJldHVybiBjb250ZXh0OwogfQpAQCAtNDUyLDkgKzQ3Miw3IEBAIHN0YXRp
YyB2b2lkIHNldFRvZ2dsZVNpemUoR1R5cGUgd2lkZ2V0VHlwZSwgUmVuZGVyU3R5bGUmIHN0eWxl
KQogICAgIGlmICghc3R5bGUud2lkdGgoKS5pc0ludHJpbnNpY09yQXV0bygpICYmICFzdHlsZS5o
ZWlnaHQoKS5pc0F1dG8oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gT3RoZXIgcG9ydHMg
aGFyZC1jb2RlIHRoaXMgdG8gMTMgd2hpY2ggaXMgYWxzbyB0aGUgZGVmYXVsdCB2YWx1ZSBkZWZp
bmVkIGJ5IEdUSysuCi0gICAgLy8gR1RLKyB1c2VycyB0ZW5kIHRvIGRlbWFuZCB0aGUgbmF0aXZl
IGxvb2suCi0gICAgLy8gSXQgY291bGQgYmUgbWFkZSBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHZh
bHVlcyBvdGhlciB0aGFuIDEzIGFjdHVhbGx5IGJyZWFrIHNpdGUgY29tcGF0aWJpbGl0eS4KKyAg
ICAvLyBPdGhlciBwb3J0cyBoYXJkLWNvZGUgdGhpcyB0byAxMy4gR1RLKyB1c2VycyB0ZW5kIHRv
IGRlbWFuZCB0aGUgbmF0aXZlIGxvb2suCiAgICAgZ2ludCBpbmRpY2F0b3JTaXplOwogICAgIGd0
a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShjb250ZXh0LmdldCgpLCAiaW5kaWNhdG9yLXNpemUi
LCAmaW5kaWNhdG9yU2l6ZSwgbnVsbHB0cik7CiAKQEAgLTQ2OCw2ICs0ODYsMzcgQEAgc3RhdGlj
IHZvaWQgc2V0VG9nZ2xlU2l6ZShHVHlwZSB3aWRnZXRUeXBlLCBSZW5kZXJTdHlsZSYgc3R5bGUp
CiBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZShjb25zdCBSZW5kZXJUaGVtZUd0ayogdGhlbWUsIEdU
eXBlIHdpZGdldFR5cGUsIGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgZnVsbFJlY3QpCiB7CiAgICAgR1Jl
ZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQod2lkZ2V0
VHlwZSk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDEpCisgICAgR1JlZlB0cjxHdGtX
aWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAg
ICBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9DSEVDS19CVVRUT04pIHsKKyAgICAgICAgaWYg
KHRoZW1lLT5pc0NoZWNrZWQocmVuZGVyT2JqZWN0KSB8fCB0aGVtZS0+aXNJbmRldGVybWluYXRl
KHJlbmRlck9iamVjdCkpIHsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlw
ZShwYXRoLmdldCgpLCBHVEtfVFlQRV9DSEVDS19CVVRUT04pOworICAgICAgICAgICAgZ3RrX3dp
ZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJjaGVja2J1dHRv
biIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVu
ZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX0NIRUNLX0JVVFRPTik7CisgICAgICAgICAgICBn
dGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgImJ1dHRv
biIpOworICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0
KCksIDAsICJjaGVjayIpOworICAgICAgICB9CisKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2Fw
cGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX0NIRUNLX0JVVFRPTik7CisgICAgICAgIGd0
a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAiY2hlY2si
KTsKKyAgICB9IGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfUkFESU9fQlVUVE9OKSB7
CisgICAgICAgIGlmICh0aGVtZS0+aXNDaGVja2VkKHJlbmRlck9iamVjdCkgfHwgdGhlbWUtPmlz
SW5kZXRlcm1pbmF0ZShyZW5kZXJPYmplY3QpKSB7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3Bh
dGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUkFESU9fQlVUVE9OKTsKKyAgICAg
ICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAw
LCAicmFkaW9idXR0b24iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGd0a193aWRn
ZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9SQURJT19CVVRUT04pOwor
ICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0
KCksIDAsICJidXR0b24iKTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9j
bGFzcyhwYXRoLmdldCgpLCAwLCAicmFkaW8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGd0a193
aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9SQURJT19CVVRUT04p
OworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQo
KSwgMSwgInJhZGlvIik7CisgICAgfQorCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgo
Y29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYKIAogICAgIC8vIFNvbWUgdGhlbWVz
IGRvIG5vdCByZW5kZXIgbGFyZ2UgdG9nZ2xlIGJ1dHRvbnMgcHJvcGVybHksIHNvIHdlIHNpbXBs
eQogICAgIC8vIHNocmluayB0aGUgcmVjdGFuZ2xlIGJhY2sgZG93biB0byB0aGUgZGVmYXVsdCBz
aXplIGFuZCB0aGVuIGNlbnRlciBpdApAQCAtNDg3LDcgKzUzNiwxMiBAQCBzdGF0aWMgdm9pZCBw
YWludFRvZ2dsZShjb25zdCBSZW5kZXJUaGVtZUd0ayogdGhlbWUsIEdUeXBlIHdpZGdldFR5cGUs
IGNvbnN0IFJlbgogICAgIH0KIAogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24o
Y29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZ3RrVGV4dERpcmVj
dGlvbihyZW5kZXJPYmplY3Quc3R5bGUoKS5kaXJlY3Rpb24oKSkpKTsKKworI2lmIEdUS19DSEVD
S19WRVJTSU9OKDMsIDE5LCAxKQorICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhjb250
ZXh0LmdldCgpLCAidG9nZ2xlIik7CisjZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9j
bGFzcyhjb250ZXh0LmdldCgpLCB3aWRnZXRUeXBlID09IEdUS19UWVBFX0NIRUNLX0JVVFRPTiA/
IEdUS19TVFlMRV9DTEFTU19DSEVDSyA6IEdUS19TVFlMRV9DTEFTU19SQURJTyk7CisjZW5kaWYK
IAogICAgIGd1aW50IGZsYWdzID0gMDsKICAgICBpZiAoIXRoZW1lLT5pc0VuYWJsZWQocmVuZGVy
T2JqZWN0KSkKQEAgLTc3OSw2ICs4MzMsMTcgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRN
ZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnQKIAog
ICAgIC8vIFBhaW50IHRoZSBzZXBhcmF0b3IgaWYgbmVlZGVkLgogICAgIEdSZWZQdHI8R3RrU3R5
bGVDb250ZXh0PiBzZXBhcmF0b3JTdHlsZUNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQoR1RL
X1RZUEVfQ09NQk9fQk9YKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMSkKKyAgICBH
UmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25l
dygpKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtf
VFlQRV9DT01CT19CT1gpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFt
ZShwYXRoLmdldCgpLCAwLCAiY29tYm9ib3giKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBl
bmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TRVBBUkFUT1IpOworICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAic2VwYXJhdG9yIik7CisK
KyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChzZXBhcmF0b3JTdHlsZUNvbnRleHQuZ2V0
KCksIHBhdGguZ2V0KCkpOworI2VuZGlmCiAKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfZGly
ZWN0aW9uKHNlcGFyYXRvclN0eWxlQ29udGV4dC5nZXQoKSwgZGlyZWN0aW9uKTsKICAgICBndGtf
c3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc2VwYXJhdG9yU3R5bGVDb250ZXh0LmdldCgpLCAic2Vw
YXJhdG9yIik7CkBAIC0xMDU0LDYgKzExMTksMTcgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFp
bnRTbGlkZXJUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEK
ICAgICBBU1NFUlRfVU5VU0VEKHBhcnQsIHBhcnQgPT0gU2xpZGVySG9yaXpvbnRhbFBhcnQgfHwg
cGFydCA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgcGFydCA9PSBNZWRpYVZvbHVtZVNsaWRlclBh
cnQpOwogCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHls
ZUNvbnRleHQoR1RLX1RZUEVfU0NBTEUpOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAx
KQorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0
X3BhdGhfbmV3KCkpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0
KCksIEdUS19UWVBFX1NDQUxFKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0
X25hbWUocGF0aC5nZXQoKSwgMCwgInNjYWxlIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBw
ZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NBTEUpOworICAgIGd0a193aWRnZXRfcGF0
aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAidHJvdWdoIik7CisKKyAgICBn
dGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNl
bmRpZgogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0LmdldCgp
LCBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSk7CiAg
ICAgYXBwbHlTbGlkZXJTdHlsZUNvbnRleHRDbGFzc2VzKGNvbnRleHQuZ2V0KCksIHBhcnQpOwpA
QCAtMTA4Miw2ICsxMTU4LDIxIEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2xpZGVyVGh1
bWIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgQVNTRVJU
KHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBwYXJ0ID09IFNsaWRlclRodW1i
VmVydGljYWxQYXJ0IHx8IHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpOwogCiAg
ICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQo
R1RLX1RZUEVfU0NBTEUpOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAxKQorICAgIC8v
IEZJWE1FOiBUaGUgZW50aXJlIHNsaWRlciBpcyB0b28gd2lkZSwgc3RyZXRjaGluZyB0aGUgdGh1
bWIgaW50byBhbiBvdmFsIHJhdGhlciB0aGFuIGEgY2lyY2xlLgorICAgIEdSZWZQdHI8R3RrV2lk
Z2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkpOworCisgICAg
Z3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NDQUxFKTsK
KyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwg
InNjYWxlIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwg
R1RLX1RZUEVfU0NBTEUpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFt
ZShwYXRoLmdldCgpLCAxLCAidHJvdWdoIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NBTEUpOworICAgIGd0a193aWRnZXRfcGF0aF9p
dGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAyLCAic2xpZGVyIik7CisKKyAgICBndGtf
c3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbmRp
ZgogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0LmdldCgpLCBn
dGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSk7CiAgICAg
YXBwbHlTbGlkZXJTdHlsZUNvbnRleHRDbGFzc2VzKGNvbnRleHQuZ2V0KCksIHBhcnQpOwpAQCAt
MTEyNywxNCArMTIxOCw0NCBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFByb2dyZXNzQmFy
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRl
U3R5bGVDb250ZXh0KEdUS19UWVBFX1BST0dSRVNTX0JBUik7Ci0gICAgZ3RrX3N0eWxlX2NvbnRl
eHRfc2F2ZShjb250ZXh0LmdldCgpKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMSkK
KyAgICAvLyBGSVhNRTogVGhlIHByb2dyZXNzIGlzIHJlbmRlcmVkIGJ1dCB0aGUgYmFja2dyb3Vu
ZCBpcyBub3QuCisgICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0
a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUo
cGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInByb2dyZXNzYmFyIik7CisKKyAg
ICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JF
U1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMSwgInRyb3VnaCIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29u
dGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYKIAogICAgIGd0a19zdHlsZV9jb250ZXh0
X2FkZF9jbGFzcyhjb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfVFJPVUdIKTsKIAogICAg
IGd0a19yZW5kZXJfYmFja2dyb3VuZChjb250ZXh0LmdldCgpLCBwYWludEluZm8uY29udGV4dCgp
LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgo
KSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgZ3RrX3JlbmRlcl9mcmFtZShjb250ZXh0LmdldCgpLCBw
YWludEluZm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVj
dC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAKLSAgICBndGtfc3R5bGVfY29u
dGV4dF9yZXN0b3JlKGNvbnRleHQuZ2V0KCkpOworICAgIGNvbnRleHQgPSBjcmVhdGVTdHlsZUNv
bnRleHQoR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAx
OSwgMSkKKyAgICBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAg
ICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JF
U1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMCwgInByb2dyZXNzYmFyIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5
cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOworCisgICAg
Ly8gVE9ETzogQWRkIHRoZSBzdHlsZSBjbGFzc2VzIC5sZWZ0LCAucmlnaHQsIC50b3Agb3IgLmJv
dHRvbSB3aGVuIHRoZQorICAgIC8vIHByb2dyZXNzICd0b3VjaGVzJyB0aGUgY29ycmVzcG9uZGlu
ZyBlbmQgb2YgdGhlIEd0a1Byb2dyZXNzQmFyLgorICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRf
dHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9QUk9HUkVTU19CQVIpOworICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAyLCAicHJvZ3Jlc3MiKTsKKwor
ICAgIGlmICghZG93bmNhc3Q8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRlck9iamVjdCkuaXNEZXRlcm1p
bmF0ZSgpKQorICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQo
KSwgMiwgInB1bHNlIik7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0
LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbmRpZgogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRk
X2NsYXNzKGNvbnRleHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19QUk9HUkVTU0JBUik7CiAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKGNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0
a1N0YXRlRmxhZ3M+KDApKTsKQEAgLTExOTAsNiArMTMxMSwxOSBAQCBzdGF0aWMgdm9pZCBwYWlu
dFNwaW5BcnJvd0J1dHRvbihSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1N0eWxlQ29udGV4dCogY29u
dGV4dCwgYwogICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoY29udGV4dCk7CiAgICAgZ3RrX3N0
eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlMRV9DTEFTU19CVVRUT04pOwog
CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDEpCisgICAgR1JlZlB0cjxHdGtXaWRnZXRQ
YXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICBndGtf
d2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU1BJTl9CVVRUT04p
OworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAw
LCAic3BpbmJ1dHRvbiIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGgu
Z2V0KCksIEdUS19UWVBFX1NQSU5fQlVUVE9OKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9z
ZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgImJ1dHRvbiIpOworICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAxLCBhcnJvd1R5cGUgPT0gR1RLX0FSUk9X
X1VQID8gInVwIiA6ICJkb3duIik7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChj
b250ZXh0LCBwYXRoLmdldCgpKTsKKyNlbmRpZgorCiAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24gPSBndGtfc3R5bGVfY29udGV4dF9nZXRfZGlyZWN0aW9uKGNvbnRleHQpOwogICAgIGd1
aW50IHN0YXRlID0gc3RhdGljX2Nhc3Q8Z3VpbnQ+KGd0a19zdHlsZV9jb250ZXh0X2dldF9zdGF0
ZShjb250ZXh0KSk7CiAgICAgaWYgKCEoc3RhdGUgJiBHVEtfU1RBVEVfRkxBR19JTlNFTlNJVElW
RSkpIHsKQEAgLTEyODksMTYgKzE0MjMsMjggQEAgZW51bSBTdHlsZUNvbG9yVHlwZSB7IFN0eWxl
Q29sb3JCYWNrZ3JvdW5kLCBTdHlsZUNvbG9yRm9yZWdyb3VuZCB9OwogCiBzdGF0aWMgQ29sb3Ig
c3R5bGVDb2xvcihHVHlwZSB3aWRnZXRUeXBlLCBHdGtTdGF0ZUZsYWdzIHN0YXRlLCBTdHlsZUNv
bG9yVHlwZSBjb2xvclR5cGUpCiB7Ci0KICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29u
dGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dCh3aWRnZXRUeXBlKTsKLSAgICAvLyBSZWNlbnQgR1RL
KyB2ZXJzaW9ucyAoPiAzLjE0KSByZXF1aXJlIHRvIGV4cGxpY2l0bHkgc2V0IHRoZSBzdGF0ZSBi
ZWZvcmUgZ2V0dGluZyB0aGUgY29sb3IuCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDEp
CisgICAgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpIHsKKyAgICAgICAgR1JlZlB0
cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7
CisKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19U
WVBFX0VOVFJZKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1l
KHBhdGguZ2V0KCksIDAsICJlbnRyeSIpOworCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9hcHBl
bmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9FTlRSWSk7CisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAic2VsZWN0aW9uIik7CisK
KyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5n
ZXQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUo
Y29udGV4dC5nZXQoKSwgc3RhdGUpOwogCiAgICAgR2RrUkdCQSBnZGtSR0JBQ29sb3I7CiAgICAg
aWYgKGNvbG9yVHlwZSA9PSBTdHlsZUNvbG9yQmFja2dyb3VuZCkKLSAgICAgICAgZ3RrX3N0eWxl
X2NvbnRleHRfZ2V0X2JhY2tncm91bmRfY29sb3IoY29udGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2Nv
bnRleHRfZ2V0X3N0YXRlKGNvbnRleHQuZ2V0KCkpLCAmZ2RrUkdCQUNvbG9yKTsKKyAgICAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JhY2tncm91bmRfY29sb3IoY29udGV4dC5nZXQoKSwgc3Rh
dGUsICZnZGtSR0JBQ29sb3IpOwogICAgIGVsc2UKLSAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRf
Z2V0X2NvbG9yKGNvbnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdGF0ZShjb250
ZXh0LmdldCgpKSwgJmdka1JHQkFDb2xvcik7CisgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dl
dF9jb2xvcihjb250ZXh0LmdldCgpLCBzdGF0ZSwgJmdka1JHQkFDb2xvcik7CiAgICAgcmV0dXJu
IGdka1JHQkFDb2xvcjsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267726</attachid>
            <date>2015-12-20 13:49:45 -0800</date>
            <delta_ts>2015-12-21 18:27:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150550-20151220154907.patch</filename>
            <type>text/plain</type>
            <size>36452</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdiODMxODEwNjhiN2Qw
NDVlN2MyNWY1OWRlOGFhOTYxMjUxMDJhNi4uMWQxNzhkYzc5NDQxYjMxNjUyNTU1NzkxZDdlODli
MmY1MDNkNTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTEyLTIwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBF
dmVyeXRoaW5nIGJyb2tlbiBpbiBHVEsrIDMuMTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDU1MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFBvcnQgUmVuZGVyVGhlbWVHdGsgYW5kIFNjcm9sbGJhclRoZW1l
R3RrIHRvIHVzZSBDU1Mgbm9kZXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gcmVuZGVyCisg
ICAgICAgIHN0dWZmIHdpdGggbW9kZXJuIEdUSysuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBX
ZSBhbHJlYWR5IGhhdmUgdG9ucyBvZiB0ZXN0cyBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5LCBidXQg
d2UncmUgcnVubmluZyB0aGVtCisgICAgICAgIHdpdGggR1RLKyAzLjE2LCBzbyB0aGV5IGNhbm5v
dCBoYXZlIGRldGVjdGVkIHRoaXMgYnJlYWthZ2UuIFRoZXNlIGZpeGVzIHJlcXVpcmUgdW5yZWxl
YXNlZAorICAgICAgICBHVEsrLCBhbmQgR1RLKyByZW5kZXJpbmcgaXMgY3VycmVudGx5IGluIGEg
c3RhdGUgb2YgZmx1eDsgb25jZSB0aGluZ3Mgc2V0dGxlIGRvd24sIHdlIGNhbgorICAgICAgICBj
b25zaWRlciB1cGdyYWRpbmcgdGhlIEdUSysgdXNlZCBmb3Igb3VyIGxheW91dCB0ZXN0cy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcDoKKyAgICAgICAgKFdURjo6cmVm
R1B0cik6CisgICAgICAgIChXVEY6OmRlcmVmR1B0cik6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L0dSZWZQdHJHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2Nyb2xsYmFyU3R5bGVDb250ZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjp1cGRhdGVUaGVtZVByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VHJhY2tCYWNrZ3Jv
dW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludFNjcm9sbGJh
ckJhY2tncm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50
VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0dG9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxlQ29udGV4dDo6U2Nyb2xsYmFyU3R5
bGVDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxlQ29u
dGV4dDo6flNjcm9sbGJhclN0eWxlQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXJTdHlsZUNvbnRleHQ6OmNvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Z3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGJhclRoZW1lR3RrOjp0aGVtZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVT
dHlsZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VG9nZ2xlU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpwYWludFRvZ2dsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0
azo6cGFpbnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFp
bnRTbGlkZXJUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRT
bGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRQcm9n
cmVzc0Jhcik6CisgICAgICAgIChXZWJDb3JlOjpwYWludFNwaW5BcnJvd0J1dHRvbik6CisgICAg
ICAgIChXZWJDb3JlOjpzdHlsZUNvbG9yKToKKwogMjAxNS0xMi0yMCAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE5NDAzMyBhbmQgcjE5NDI2Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HUmVmUHRyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVm
UHRyR3RrLmNwcAppbmRleCAzYzI4ZWI3M2FlYzYwYmIzZDI1MjZjMWZiMWZhNTM3OWNiNWYzNGEx
Li43YjRkNjkyNTBhNTAxYWM0ZGUyZDNlNTExMzdhNzg4MDAwOTQ1MzU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwCkBAIC03Miw2ICs3MiwyMiBAQCB0ZW1w
bGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHZGtDdXJzb3IqIHB0cikKICAgICBpZiAocHRyKQogICAg
ICAgICBnZGtfY3Vyc29yX3VucmVmKHB0cik7CiB9CisKKyNlbHNlCisKK3RlbXBsYXRlIDw+IEd0
a1dpZGdldFBhdGgqIHJlZkdQdHIoR3RrV2lkZ2V0UGF0aCogcHRyKQoreworICAgIGlmIChwdHIp
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQor
Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHdGtXaWRnZXRQYXRoKiBwdHIpCit7CisgICAg
aWYgKHB0cikKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX3VucmVmKHB0cik7Cit9CisKICNlbmRp
ZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0
ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAppbmRleCA4ZjA0
MjZkYjUxZWQ2ODg3ZTI0ZWEzOWMxMzJiNDc3OGZmYjg2MmE5Li5jNzM3ZTNkOTFmYzY3YjYxMWIw
MzhjZDU4YzIzMTRlMDM3NzBhN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR1JlZlB0ckd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVm
UHRyR3RrLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIu
aD4KIAordHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldFBhdGggR3RrV2lkZ2V0UGF0aDsKIHR5cGVk
ZWYgc3RydWN0IF9TZWNyZXRWYWx1ZSBTZWNyZXRWYWx1ZTsKIAogbmFtZXNwYWNlIFdURiB7CkBA
IC0zOCw2ICszOSw5IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBw
dHIpOwogI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiB0ZW1wbGF0ZSA8PiBHZGtDdXJzb3IqIHJl
ZkdQdHIoR2RrQ3Vyc29yKiBwdHIpOwogdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR2RrQ3Vy
c29yKiBwdHIpOworI2Vsc2UKK3RlbXBsYXRlIDw+IEd0a1dpZGdldFBhdGgqIHJlZkdQdHIoR3Rr
V2lkZ2V0UGF0aCogcHRyKTsKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0a1dpZGdldFBh
dGgqIHB0cik7CiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKaW5kZXggZWZhYWIzMDExY2QxYTMyMmIxN2NkZDAxNzFm
NDRlYjRjYzMxNWVkNS4uMzc1MTE5NjAzMWI0MzRjZWM5YmNiNzAwYThjMDY2NjljZjYxZjMwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsu
Y3BwCkBAIC0xNjMsMzMgKzE2MywxOCBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjp0cmFj
a1JlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGJvb2wpCiB9CiAKICNpZm5kZWYgR1RLX0FQSV9W
RVJTSU9OXzIKLWNsYXNzIFNjcm9sbGJhclN0eWxlQ29udGV4dCB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoU2Nyb2xsYmFyU3R5bGVDb250ZXh0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wdWJsaWM6Ci0gICAgU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkKLSAgICAgICAgOiBtX2NvbnRl
eHQoYWRvcHRHUmVmKGd0a19zdHlsZV9jb250ZXh0X25ldygpKSkKLSAgICB7Ci0gICAgICAgIEd0
a1dpZGdldFBhdGgqIHBhdGggPSBndGtfd2lkZ2V0X3BhdGhfbmV3KCk7Ci0gICAgICAgIGd0a193
aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLCBHVEtfVFlQRV9TQ1JPTExCQVIpOwotICAgICAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNT
X1NDUk9MTEJBUik7Ci0gICAgICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKG1fY29udGV4
dC5nZXQoKSwgcGF0aCk7Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9mcmVlKHBhdGgpOwotICAg
IH0KLQotICAgIH5TY3JvbGxiYXJTdHlsZUNvbnRleHQoKQotICAgIHsKLSAgICB9Ci0KLSAgICBH
dGtTdHlsZUNvbnRleHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7
IH0KIAotcHJpdmF0ZToKLSAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gbV9jb250ZXh0Owot
fTsKLQotc3RhdGljIEd0a1N0eWxlQ29udGV4dCogZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkK
K0dSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjcmVhdGVTY3JvbGxiYXJTdHlsZUNvbnRleHQoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxiYXJTdHlsZUNvbnRleHQ+IHN0eWxl
Q29udGV4dDsKLSAgICByZXR1cm4gc3R5bGVDb250ZXh0LmdldCgpLmNvbnRleHQoKTsKKyAgICBH
UmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25l
dygpKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZ
UEVfU0NST0xMQkFSKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAgZ3Rr
X3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsIEdUS19TVFlMRV9DTEFT
U19TQ1JPTExCQVIpOworI2VuZGlmCisKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29u
dGV4dCA9IGFkb3B0R1JlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisgICAgcmV0dXJu
IGNvbnRleHQ7CiB9CiAKIFNjcm9sbGJhclRoZW1lR3RrOjpTY3JvbGxiYXJUaGVtZUd0aygpCkBA
IC0xOTksMTQgKzE4NCwxMyBAQCBTY3JvbGxiYXJUaGVtZUd0azo6U2Nyb2xsYmFyVGhlbWVHdGso
KQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjp0aGVtZUNoYW5nZWQoKQogewotICAgIGd0a19z
dHlsZV9jb250ZXh0X2ludmFsaWRhdGUoZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkpOwogICAg
IHVwZGF0ZVRoZW1lUHJvcGVydGllcygpOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjp1
cGRhdGVUaGVtZVByb3BlcnRpZXMoKQogewogICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHls
ZSgKLSAgICAgICAgZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCksCisgICAgICAgIGNyZWF0ZVNj
cm9sbGJhclN0eWxlQ29udGV4dCgpLmdldCgpLAogICAgICAgICAibWluLXNsaWRlci1sZW5ndGgi
LCAmbV9taW5UaHVtYkxlbmd0aCwKICAgICAgICAgInNsaWRlci13aWR0aCIsICZtX3RodW1iRmF0
bmVzcywKICAgICAgICAgInRyb3VnaC1ib3JkZXIiLCAmbV90cm91Z2hCb3JkZXJXaWR0aCwKQEAg
LTI3NCw3ICsyNTgsOSBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjp0aHVtYlJlY3QoU2Ny
b2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHVuY29ucwogCiBzdGF0aWMgdm9pZCBh
cHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoR3RrU3R5bGVDb250ZXh0KiBjb250ZXh0
LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKKyNpZiAhR1RLX0NIRUNLX1ZF
UlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQs
IEdUS19TVFlMRV9DTEFTU19TQ1JPTExCQVIpOworI2VuZGlmCiAgICAgZ3RrX3N0eWxlX2NvbnRl
eHRfYWRkX2NsYXNzKGNvbnRleHQsIG9yaWVudGF0aW9uID09IFZlcnRpY2FsU2Nyb2xsYmFyID8g
IEdUS19TVFlMRV9DTEFTU19WRVJUSUNBTCA6IEdUS19TVFlMRV9DTEFTU19IT1JJWk9OVEFMKTsK
IH0KIApAQCAtMjk2LDYyICsyODIsMTA0IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50
VHJhY2tCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyCiAgICAg
aWYgKG1fdHJvdWdoVW5kZXJTdGVwcGVycykKICAgICAgICAgZnVsbFNjcm9sbGJhclJlY3QgPSBJ
bnRSZWN0KHNjcm9sbGJhci54KCksIHNjcm9sbGJhci55KCksIHNjcm9sbGJhci53aWR0aCgpLCBz
Y3JvbGxiYXIuaGVpZ2h0KCkpOwogCi0gICAgR3RrU3R5bGVDb250ZXh0KiBzdHlsZUNvbnRleHQg
PSBndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9zYXZl
KHN0eWxlQ29udGV4dCk7CisgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4
dCA9IGNyZWF0ZVNjcm9sbGJhclN0eWxlQ29udGV4dCgpOworI2lmIEdUS19DSEVDS19WRVJTSU9O
KDMsIDE5LCAyKQorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihn
dGtfd2lkZ2V0X3BhdGhfbmV3KCkpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBl
KHBhdGguZ2V0KCksIEdUS19UWVBFX1NDUk9MTEJBUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0
ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY3JvbGxiYXIiKTsKIAotICAgIGFw
cGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQsIHNjcm9sbGJhci5v
cmllbnRhdGlvbigpKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVDb250
ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfVFJPVUdIKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOwogCi0gICAg
YWRqdXN0UmVjdEFjY29yZGluZ1RvTWFyZ2luKHN0eWxlQ29udGV4dCwgc3RhdGljX2Nhc3Q8R3Rr
U3RhdGVGbGFncz4oMCksIGZ1bGxTY3JvbGxiYXJSZWN0KTsKLSAgICBndGtfcmVuZGVyX2JhY2tn
cm91bmQoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBmdWxs
U2Nyb2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxiYXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJl
Y3Qud2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkpOwotICAgIGd0a19yZW5kZXJf
ZnJhbWUoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBmdWxs
U2Nyb2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxiYXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJl
Y3Qud2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkpOworICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9wYXRoKHN0eWxlQ29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYK
IAotICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250ZXh0KTsKKyAgICBhcHBs
eVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LmdldCgpLCBzY3JvbGxi
YXIub3JpZW50YXRpb24oKSk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQorICAg
IGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0KCksIEdUS19TVFlM
RV9DTEFTU19UUk9VR0gpOworI2VuZGlmCisKKyAgICBhZGp1c3RSZWN0QWNjb3JkaW5nVG9NYXJn
aW4oc3R5bGVDb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPigwKSwgZnVs
bFNjcm9sbGJhclJlY3QpOworICAgIGd0a19yZW5kZXJfYmFja2dyb3VuZChzdHlsZUNvbnRleHQu
Z2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGZ1bGxTY3JvbGxiYXJSZWN0
LngoKSwgZnVsbFNjcm9sbGJhclJlY3QueSgpLCBmdWxsU2Nyb2xsYmFyUmVjdC53aWR0aCgpLCBm
dWxsU2Nyb2xsYmFyUmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3JlbmRlcl9mcmFtZShzdHlsZUNv
bnRleHQuZ2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGZ1bGxTY3JvbGxi
YXJSZWN0LngoKSwgZnVsbFNjcm9sbGJhclJlY3QueSgpLCBmdWxsU2Nyb2xsYmFyUmVjdC53aWR0
aCgpLCBmdWxsU2Nyb2xsYmFyUmVjdC5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhl
bWVHdGs6OnBhaW50U2Nyb2xsYmFyQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IFNjcm9sbGJhciYgc2Nyb2xsYmFyKQogewotICAgIEd0a1N0eWxlQ29udGV4dCogc3R5bGVDb250
ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2F2ZShzdHlsZUNvbnRleHQpOworICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBzdHlsZUNv
bnRleHQgPSBjcmVhdGVTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKKyNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTigzLCAxOSwgMikKKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdS
ZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRf
dHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOworICAgIGd0a193aWRnZXRfcGF0
aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2Nyb2xsYmFyIik7CiAKLSAg
ICBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LCBzY3JvbGxi
YXIub3JpZW50YXRpb24oKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0eWxl
Q29udGV4dCwgInNjcm9sbGVkLXdpbmRvdyIpOwotICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVD
b250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBzY3JvbGxiYXIueCgpLCBz
Y3JvbGxiYXIueSgpLCBzY3JvbGxiYXIud2lkdGgoKSwgc2Nyb2xsYmFyLmhlaWdodCgpKTsKKyAg
ICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChzdHlsZUNvbnRleHQuZ2V0KCksIHBhdGguZ2V0
KCkpOworI2VuZGlmCiAKLSAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4
dCk7CisgICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dC5n
ZXQoKSwgc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigz
LCAxOSwgMikKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0Lmdl
dCgpLCAic2Nyb2xsZWQtd2luZG93Iik7CisjZW5kaWYKKyAgICBndGtfcmVuZGVyX2ZyYW1lKHN0
eWxlQ29udGV4dC5nZXQoKSwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgc2Nyb2xs
YmFyLngoKSwgc2Nyb2xsYmFyLnkoKSwgc2Nyb2xsYmFyLndpZHRoKCksIHNjcm9sbGJhci5oZWln
aHQoKSk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VGh1bWIoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKLSAgICBHdGtTdHlsZUNvbnRleHQqIHN0eWxlQ29udGV4dCA9IGd0a1Njcm9sbGJhclN0
eWxlQ29udGV4dCgpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250ZXh0KTsK
KyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250ZXh0ID0gY3JlYXRlU2Nyb2xs
YmFyU3R5bGVDb250ZXh0KCk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAg
R1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9u
ZXcoKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RL
X1RZUEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25h
bWUocGF0aC5nZXQoKSwgMCwgInNjcm9sbGJhciIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2Fw
cGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NDUk9MTEJBUik7CisgICAgZ3RrX3dpZGdl
dF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDEsICJ0cm91Z2giKTsKKwor
ICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JP
TExCQVIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdl
dCgpLCAyLCAic2xpZGVyIik7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChzdHls
ZUNvbnRleHQuZ2V0KCksIHBhdGguZ2V0KCkpOworI2VuZGlmCiAKICAgICBTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiA9IHNjcm9sbGJhci5vcmllbnRhdGlvbigpOwotICAgIGFwcGx5
U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQsIG9yaWVudGF0aW9uKTsK
LSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0LCBHVEtfU1RZTEVf
Q0xBU1NfU0xJREVSKTsKKyAgICBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoc3R5
bGVDb250ZXh0LmdldCgpLCBvcmllbnRhdGlvbik7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMs
IDE5LCAyKQorICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0
KCksIEdUS19TVFlMRV9DTEFTU19TTElERVIpOworI2VuZGlmCiAKICAgICBndWludCBmbGFncyA9
IDA7CiAgICAgaWYgKHNjcm9sbGJhci5wcmVzc2VkUGFydCgpID09IFRodW1iUGFydCkKICAgICAg
ICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfQUNUSVZFOwogICAgIGlmIChzY3JvbGxiYXIuaG92
ZXJlZFBhcnQoKSA9PSBUaHVtYlBhcnQpCiAgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFH
X1BSRUxJR0hUOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShzdHlsZUNvbnRleHQs
IHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRl
eHRfc2V0X3N0YXRlKHN0eWxlQ29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFn
cz4oZmxhZ3MpKTsKIAogICAgIEludFJlY3QgdGh1bWJSZWN0KHJlY3QpOwotICAgIGFkanVzdFJl
Y3RBY2NvcmRpbmdUb01hcmdpbihzdHlsZUNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxh
Z3M+KGZsYWdzKSwgdGh1bWJSZWN0KTsKLSAgICBndGtfcmVuZGVyX3NsaWRlcihzdHlsZUNvbnRl
eHQsIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHRodW1iUmVjdC54KCksIHRodW1i
UmVjdC55KCksIHRodW1iUmVjdC53aWR0aCgpLCB0aHVtYlJlY3QuaGVpZ2h0KCksCisgICAgYWRq
dXN0UmVjdEFjY29yZGluZ1RvTWFyZ2luKHN0eWxlQ29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8
R3RrU3RhdGVGbGFncz4oZmxhZ3MpLCB0aHVtYlJlY3QpOworICAgIGd0a19yZW5kZXJfc2xpZGVy
KHN0eWxlQ29udGV4dC5nZXQoKSwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgdGh1
bWJSZWN0LngoKSwgdGh1bWJSZWN0LnkoKSwgdGh1bWJSZWN0LndpZHRoKCksIHRodW1iUmVjdC5o
ZWlnaHQoKSwKICAgICAgICAgb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIgPyBHVEtf
T1JJRU5UQVRJT05fVkVSVElDQUwgOiBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7Ci0KLSAg
ICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4dCk7CiB9CiAKIHZvaWQgU2Ny
b2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Ny
b2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9sbGJhclBhcnQgcGFy
dCkKIHsKLSAgICBHdGtTdHlsZUNvbnRleHQqIHN0eWxlQ29udGV4dCA9IGd0a1Njcm9sbGJhclN0
eWxlQ29udGV4dCgpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250ZXh0KTsK
KyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250ZXh0ID0gY3JlYXRlU2Nyb2xs
YmFyU3R5bGVDb250ZXh0KCk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAg
Ly8gRklYTUU6IFdpdGggQWR3YWl0YSwgdGhlIHN0eWxlIGNvbnRleHQgaXMgcmVxdWVzdGluZyB0
aGUgcHJpbWFyeSBiYWNrd2FyZCBhbmQgZm9yd2FyZCBzdGVwcGVycy4KKyAgICAvLyBCdXQgdGhp
cyBpcyBhIGJ1ZzogQWR3YWl0YSBleHBsaWNpdGx5IGRpc2FibGVzIHRob3NlIHN0ZXBwZXJzLiBX
aHkgYXJlIHdlIGdldHRpbmcgdGhlbT8KKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGgg
PSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRnZXRfcGF0
aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOworICAgIGd0a193
aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2Nyb2xsYmFy
Iik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZ
UEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMSwgImJ1dHRvbiIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3Bh
dGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbmRpZgogCiAgICAgU2Nyb2xs
YmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBzY3JvbGxiYXIub3JpZW50YXRpb24oKTsKLSAg
ICBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LCBvcmllbnRh
dGlvbik7CisgICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4
dC5nZXQoKSwgb3JpZW50YXRpb24pOwogCiAgICAgZ3VpbnQgZmxhZ3MgPSAwOwogICAgIGlmICgo
QmFja0J1dHRvblN0YXJ0UGFydCA9PSBwYXJ0ICYmIHNjcm9sbGJhci5jdXJyZW50UG9zKCkpCkBA
IC0zNjQsMTQgKzM5MiwxNiBAQCB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1dHRvbihH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFNjcm9sbGJhciYgc2Nyb2xsYgogICAgICAgICAgICAg
ZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CiAgICAgfSBlbHNlCiAgICAgICAgIGZs
YWdzIHw9IEdUS19TVEFURV9GTEFHX0lOU0VOU0lUSVZFOwotICAgIGd0a19zdHlsZV9jb250ZXh0
X3NldF9zdGF0ZShzdHlsZUNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdz
KSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKHN0eWxlQ29udGV4dC5nZXQoKSwg
c3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsKIAotICAgIGd0a19zdHlsZV9jb250
ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQsIEdUS19TVFlMRV9DTEFTU19CVVRUT04pOwotICAg
IGd0a19yZW5kZXJfYmFja2dyb3VuZChzdHlsZUNvbnRleHQsIGNvbnRleHQucGxhdGZvcm1Db250
ZXh0KCktPmNyKCksIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdo
dCgpKTsKLSAgICBndGtfcmVuZGVyX2ZyYW1lKHN0eWxlQ29udGV4dCwgY29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKS0+Y3IoKSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3Qu
aGVpZ2h0KCkpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBndGtfc3R5
bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1Nf
QlVUVE9OKTsKKyNlbmRpZgorICAgIGd0a19yZW5kZXJfYmFja2dyb3VuZChzdHlsZUNvbnRleHQu
Z2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHJlY3QueCgpLCByZWN0Lnko
KSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBndGtfcmVuZGVyX2ZyYW1lKHN0
eWxlQ29udGV4dC5nZXQoKSwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgcmVjdC54
KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogCiAgICAgZ2Zsb2F0
IGFycm93U2NhbGluZzsKLSAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoc3R5bGVDb250
ZXh0LCAiYXJyb3ctc2NhbGluZyIsICZhcnJvd1NjYWxpbmcsIG51bGxwdHIpOworICAgIGd0a19z
dHlsZV9jb250ZXh0X2dldF9zdHlsZShzdHlsZUNvbnRleHQuZ2V0KCksICJhcnJvdy1zY2FsaW5n
IiwgJmFycm93U2NhbGluZywgbnVsbHB0cik7CiAKICAgICBkb3VibGUgYXJyb3dTaXplID0gc3Rk
OjptaW4ocmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSAqIGFycm93U2NhbGluZzsKICAgICBG
bG9hdFBvaW50IGFycm93UG9pbnQoCkBAIC0zODAsNyArNDEwLDcgQEAgdm9pZCBTY3JvbGxiYXJU
aGVtZUd0azo6cGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXIm
IHNjcm9sbGIKIAogICAgIGlmIChmbGFncyAmIEdUS19TVEFURV9GTEFHX0FDVElWRSkgewogICAg
ICAgICBnaW50IGFycm93RGlzcGxhY2VtZW50WCwgYXJyb3dEaXNwbGFjZW1lbnRZOwotICAgICAg
ICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoc3R5bGVDb250ZXh0LCAiYXJyb3ctZGlzcGxh
Y2VtZW50LXgiLCAmYXJyb3dEaXNwbGFjZW1lbnRYLCAiYXJyb3ctZGlzcGxhY2VtZW50LXkiLCAm
YXJyb3dEaXNwbGFjZW1lbnRZLCBudWxscHRyKTsKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRf
Z2V0X3N0eWxlKHN0eWxlQ29udGV4dC5nZXQoKSwgImFycm93LWRpc3BsYWNlbWVudC14IiwgJmFy
cm93RGlzcGxhY2VtZW50WCwgImFycm93LWRpc3BsYWNlbWVudC15IiwgJmFycm93RGlzcGxhY2Vt
ZW50WSwgbnVsbHB0cik7CiAgICAgICAgIGFycm93UG9pbnQubW92ZShhcnJvd0Rpc3BsYWNlbWVu
dFgsIGFycm93RGlzcGxhY2VtZW50WSk7CiAgICAgfQogCkBAIC0zOTAsOSArNDIwLDcgQEAgdm9p
ZCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBTY3JvbGxiYXImIHNjcm9sbGIKICAgICBlbHNlCiAgICAgICAgIGFuZ2xlID0gKHBhcnQgPT0g
Rm9yd2FyZEJ1dHRvbkVuZFBhcnQgfHwgcGFydCA9PSBGb3J3YXJkQnV0dG9uU3RhcnRQYXJ0KSA/
IEdfUEkgLyAyIDogMyAqIChHX1BJIC8gMik7CiAKLSAgICBndGtfcmVuZGVyX2Fycm93KHN0eWxl
Q29udGV4dCwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgYW5nbGUsIGFycm93UG9p
bnQueCgpLCBhcnJvd1BvaW50LnkoKSwgYXJyb3dTaXplKTsKLQotICAgIGd0a19zdHlsZV9jb250
ZXh0X3Jlc3RvcmUoc3R5bGVDb250ZXh0KTsKKyAgICBndGtfcmVuZGVyX2Fycm93KHN0eWxlQ29u
dGV4dC5nZXQoKSwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgYW5nbGUsIGFycm93
UG9pbnQueCgpLCBhcnJvd1BvaW50LnkoKSwgYXJyb3dTaXplKTsKIH0KIAogYm9vbCBTY3JvbGxi
YXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggODI4ZjI3N2NiOTIyYzBjNTNk
ODk0YTk1OWVhNDhjMGZhYTY2YTFmYy4uNTE1YTAyYmM2ZjliYjNiMDY0NDM1NmM2NjFjYzE3ZjY4
M2IxOTk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3Bw
CkBAIC0xNTIsMzQgKzE1Miw2MiBAQCBzdGF0aWMgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNy
ZWF0ZVN0eWxlQ29udGV4dChHVHlwZSB3aWRnZXRUeXBlKQogICAgICAgICBpbml0aWFsaXplZCA9
IHRydWU7CiAgICAgfQogCi0gICAgR3RrV2lkZ2V0UGF0aCogcGF0aCA9IGd0a193aWRnZXRfcGF0
aF9uZXcoKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aCwgd2lkZ2V0VHlw
ZSk7CisgICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRn
ZXRfcGF0aF9uZXcoKSk7CisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0
KCksIHdpZGdldFR5cGUpOwogCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAg
Ly8gUGljayBhIGdvb2QgZGVmYXVsdCBvYmplY3QgcGF0aCBmb3IgdGhlIHN0eWxlIGNvbnRleHQg
YmFzZWQgb24gdGhlIHdpZGdldCB0eXBlLiBUaGlzIHdpbGwKKyAgICAvLyB1c3VhbGx5IG5lZWQg
dG8gYmUgb3ZlcnJpZGRlbiBtYW51YWxseSwgYnV0IGl0IGRvZXNuJ3QgaHVydCB0byBoYXZlIGEg
Z29vZCBkZWZhdWx0LgogICAgIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0VOVFJZKQotICAg
ICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NM
QVNTX0VOVFJZKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1l
KHBhdGguZ2V0KCksIDAsICJlbnRyeSIpOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RL
X1RZUEVfQVJST1cpCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRo
LCAwLCAiYXJyb3ciKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9u
YW1lKHBhdGguZ2V0KCksIDAsICJidXR0b24iKTsgLy8gTm90ZTogbm90IGEgdHlwby4KICAgICBl
bHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0JVVFRPTikgewotICAgICAgICBndGtfd2lk
Z2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7
Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCAidGV4dC1i
dXR0b24iKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBh
dGguZ2V0KCksIDAsICJidXR0b24iKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRk
X2NsYXNzKHBhdGguZ2V0KCksIDAsICJ0ZXh0LWJ1dHRvbiIpOwogICAgIH0gZWxzZSBpZiAod2lk
Z2V0VHlwZSA9PSBHVEtfVFlQRV9TQ0FMRSkKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJf
YWRkX2NsYXNzKHBhdGgsIDAsIEdUS19TVFlMRV9DTEFTU19TQ0FMRSk7CisgICAgICAgIGd0a193
aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2NhbGUiKTsK
ICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1NFUEFSQVRPUikKLSAgICAgICAg
Z3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgsIDAsIEdUS19TVFlMRV9DTEFTU19T
RVBBUkFUT1IpOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMCwgInNlcGFyYXRvciIpOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0g
R1RLX1RZUEVfUFJPR1JFU1NfQkFSKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRf
Y2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX1BST0dSRVNTQkFSKTsKKyAgICAgICAgZ3Rr
X3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJwcm9ncmVz
c2JhciIpOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU1BJTl9CVVRUT04p
Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZ
TEVfQ0xBU1NfU1BJTkJVVFRPTik7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9v
YmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic3BpbmJ1dHRvbiIpOworICAgIGVsc2UgaWYgKHdp
ZGdldFR5cGUgPT0gR1RLX1RZUEVfVFJFRV9WSUVXKSB7CisgICAgICAgIGd0a193aWRnZXRfcGF0
aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAidHJlZXZpZXciKTsKKyAgICAg
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsICJ2aWV3Iik7
CisgICAgfSBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0NIRUNLX0JVVFRPTikKKyAg
ICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAs
ICJjaGVja2J1dHRvbiIpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfUkFE
SU9fQlVUVE9OKQorICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMCwgInJhZGlvYnV0dG9uIik7CisgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9
PSBHVEtfVFlQRV9DT01CT19CT1gpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9v
YmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiY29tYm9ib3giKTsKKyNlbHNlCisgICAgaWYgKHdp
ZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVy
X2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfRU5UUlkpOworICAgIGVs
c2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQVJST1cpCisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCAiYXJyb3ciKTsKKyAgICBlbHNlIGlm
ICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0JVVFRPTikgeworICAgICAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCAi
dGV4dC1idXR0b24iKTsKKyAgICB9IGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU0NB
TEUpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAw
LCBHVEtfU1RZTEVfQ0xBU1NfU0NBTEUpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RL
X1RZUEVfU0VQQVJBVE9SKQorICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3Mo
cGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX1NFUEFSQVRPUik7CisgICAgZWxzZSBpZiAo
d2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9QUk9HUkVTU19CQVIpCisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUFJPR1JF
U1NCQVIpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU1BJTl9CVVRUT04p
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBH
VEtfU1RZTEVfQ0xBU1NfU1BJTkJVVFRPTik7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBH
VEtfVFlQRV9UUkVFX1ZJRVcpCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFz
cyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xBU1NfVklFVyk7CisgICAgICAgIGd0a193aWRnZXRfcGF0
aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfVklFVyk7CiAg
ICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9DSEVDS19CVVRUT04pCi0gICAgICAg
IGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xBU1Nf
Q0hFQ0spOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQo
KSwgMCwgR1RLX1NUWUxFX0NMQVNTX0NIRUNLKTsKICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09
IEdUS19UWVBFX1JBRElPX0JVVFRPTikKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRk
X2NsYXNzKHBhdGgsIDAsIEdUS19TVFlMRV9DTEFTU19SQURJTyk7CisgICAgICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUkFE
SU8pOworI2VuZGlmCiAKICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGFk
b3B0R1JlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aCk7Ci0gICAgZ3RrX3dpZGdldF9wYXRoX2ZyZWUo
cGF0aCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0
aC5nZXQoKSk7CiAKICAgICByZXR1cm4gY29udGV4dDsKIH0KQEAgLTQ1Miw5ICs0ODAsNyBAQCBz
dGF0aWMgdm9pZCBzZXRUb2dnbGVTaXplKEdUeXBlIHdpZGdldFR5cGUsIFJlbmRlclN0eWxlJiBz
dHlsZSkKICAgICBpZiAoIXN0eWxlLndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhc3R5
bGUuaGVpZ2h0KCkuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIE90aGVyIHBv
cnRzIGhhcmQtY29kZSB0aGlzIHRvIDEzIHdoaWNoIGlzIGFsc28gdGhlIGRlZmF1bHQgdmFsdWUg
ZGVmaW5lZCBieSBHVEsrLgotICAgIC8vIEdUSysgdXNlcnMgdGVuZCB0byBkZW1hbmQgdGhlIG5h
dGl2ZSBsb29rLgotICAgIC8vIEl0IGNvdWxkIGJlIG1hZGUgYSBjb25maWd1cmF0aW9uIG9wdGlv
biB2YWx1ZXMgb3RoZXIgdGhhbiAxMyBhY3R1YWxseSBicmVhayBzaXRlIGNvbXBhdGliaWxpdHku
CisgICAgLy8gT3RoZXIgcG9ydHMgaGFyZC1jb2RlIHRoaXMgdG8gMTMuIEdUSysgdXNlcnMgdGVu
ZCB0byBkZW1hbmQgdGhlIG5hdGl2ZSBsb29rLgogICAgIGdpbnQgaW5kaWNhdG9yU2l6ZTsKICAg
ICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoY29udGV4dC5nZXQoKSwgImluZGljYXRvci1z
aXplIiwgJmluZGljYXRvclNpemUsIG51bGxwdHIpOwogCkBAIC00NjgsNiArNDk0LDM3IEBAIHN0
YXRpYyB2b2lkIHNldFRvZ2dsZVNpemUoR1R5cGUgd2lkZ2V0VHlwZSwgUmVuZGVyU3R5bGUmIHN0
eWxlKQogc3RhdGljIHZvaWQgcGFpbnRUb2dnbGUoY29uc3QgUmVuZGVyVGhlbWVHdGsqIHRoZW1l
LCBHVHlwZSB3aWRnZXRUeXBlLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIGZ1bGxSZWN0KQogewogICAg
IEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KHdp
ZGdldFR5cGUpOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQorICAgIEdSZWZQdHI8
R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkpOwor
CisgICAgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKSB7CisgICAgICAg
IGlmICh0aGVtZS0+aXNDaGVja2VkKHJlbmRlck9iamVjdCkgfHwgdGhlbWUtPmlzSW5kZXRlcm1p
bmF0ZShyZW5kZXJPYmplY3QpKSB7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKTsKKyAgICAgICAgICAgIGd0
a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiY2hlY2ti
dXR0b24iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9h
cHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9DSEVDS19CVVRUT04pOworICAgICAgICAg
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJi
dXR0b24iKTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRo
LmdldCgpLCAwLCAiY2hlY2siKTsKKyAgICAgICAgfQorCisgICAgICAgIGd0a193aWRnZXRfcGF0
aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9DSEVDS19CVVRUT04pOworICAgICAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgImNo
ZWNrIik7CisgICAgfSBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1JBRElPX0JVVFRP
TikgeworICAgICAgICBpZiAodGhlbWUtPmlzQ2hlY2tlZChyZW5kZXJPYmplY3QpIHx8IHRoZW1l
LT5pc0luZGV0ZXJtaW5hdGUocmVuZGVyT2JqZWN0KSkgeworICAgICAgICAgICAgZ3RrX3dpZGdl
dF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1JBRElPX0JVVFRPTik7Cisg
ICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQo
KSwgMCwgInJhZGlvYnV0dG9uIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUkFESU9fQlVUVE9O
KTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRo
LmdldCgpLCAwLCAiYnV0dG9uIik7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9h
ZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgInJhZGlvIik7CisgICAgICAgIH0KKworICAgICAgICBn
dGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUkFESU9fQlVU
VE9OKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGgu
Z2V0KCksIDEsICJyYWRpbyIpOworICAgIH0KKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9w
YXRoKGNvbnRleHQuZ2V0KCksIHBhdGguZ2V0KCkpOworI2VuZGlmCiAKICAgICAvLyBTb21lIHRo
ZW1lcyBkbyBub3QgcmVuZGVyIGxhcmdlIHRvZ2dsZSBidXR0b25zIHByb3Blcmx5LCBzbyB3ZSBz
aW1wbHkKICAgICAvLyBzaHJpbmsgdGhlIHJlY3RhbmdsZSBiYWNrIGRvd24gdG8gdGhlIGRlZmF1
bHQgc2l6ZSBhbmQgdGhlbiBjZW50ZXIgaXQKQEAgLTQ4Nyw3ICs1NDQsMTIgQEAgc3RhdGljIHZv
aWQgcGFpbnRUb2dnbGUoY29uc3QgUmVuZGVyVGhlbWVHdGsqIHRoZW1lLCBHVHlwZSB3aWRnZXRU
eXBlLCBjb25zdCBSZW4KICAgICB9CiAKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfZGlyZWN0
aW9uKGNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0a1RleHREaXJlY3Rpb24+KGd0a1RleHRE
aXJlY3Rpb24ocmVuZGVyT2JqZWN0LnN0eWxlKCkuZGlyZWN0aW9uKCkpKSk7CisKKyNpZiBHVEtf
Q0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Mo
Y29udGV4dC5nZXQoKSwgInRvZ2dsZSIpOworI2Vsc2UKICAgICBndGtfc3R5bGVfY29udGV4dF9h
ZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgd2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9DSEVDS19CVVRU
T04gPyBHVEtfU1RZTEVfQ0xBU1NfQ0hFQ0sgOiBHVEtfU1RZTEVfQ0xBU1NfUkFESU8pOworI2Vu
ZGlmCiAKICAgICBndWludCBmbGFncyA9IDA7CiAgICAgaWYgKCF0aGVtZS0+aXNFbmFibGVkKHJl
bmRlck9iamVjdCkpCkBAIC02MTQsNyArNjc2LDkgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFp
bnRCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW4K
ICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4
dChHVEtfVFlQRV9CVVRUT04pOwogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlv
bihjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihndGtUZXh0RGly
ZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSkpOworI2lmICFHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29u
dGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7CisjZW5kaWYKIAogICAgIHJlbmRl
ckJ1dHRvbih0aGlzLCBjb250ZXh0LmdldCgpLCByZW5kZXJPYmplY3QsIHBhaW50SW5mbywgcmVj
dCk7CiAKQEAgLTY0Myw4ICs3MDcsMjAgQEAgc3RhdGljIHZvaWQgZ2V0Q29tYm9Cb3hNZXRyaWNz
KFJlbmRlclN0eWxlJiBzdHlsZSwgR3RrQm9yZGVyJiBib3JkZXIsIGludCYgZm9jdXMKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVh
dGVTdHlsZUNvbnRleHQoR1RLX1RZUEVfQ09NQk9fQk9YKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lP
TigzLCAxOSwgMikKKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYo
Z3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlw
ZShwYXRoLmdldCgpLCBHVEtfVFlQRV9DT01CT19CT1gpOworICAgIGd0a193aWRnZXRfcGF0aF9p
dGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiY29tYm9ib3giKTsKKworICAgIGd0
a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9DT01CT19CT1gp
OworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAx
LCAiYnV0dG9uIik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0
KCksIDEsICJjb21ibyIpOwogCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4
dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9j
bGFzcyhjb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfQlVUVE9OKTsKKyNlbmRpZgogICAg
IGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgc3RhdGljX2Nh
c3Q8R3RrVGV4dERpcmVjdGlvbj4oZ3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24oKSkp
KTsKIAogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBzdGF0
aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPigwKSk7CkBAIC02NTksNyArNzM1LDkgQEAgc3RhdGljIHZv
aWQgZ2V0Q29tYm9Cb3hNZXRyaWNzKFJlbmRlclN0eWxlJiBzdHlsZSwgR3RrQm9yZGVyJiBib3Jk
ZXIsIGludCYgZm9jdXMKIAogICAgIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gc3RhdGlj
X2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZ3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24o
KSkpOwogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwg
ZGlyZWN0aW9uKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0
eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQuZ2V0KCksICJzZXBhcmF0b3IiKTsKKyNlbmRp
ZgogCiAgICAgZ2Jvb2xlYW4gd2lkZVNlcGFyYXRvcnM7CiAgICAgZ2ludCBzZXBhcmF0b3JXaWR0
aDsKQEAgLTcyMSw3ICs3OTksOSBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludAogICAgIC8vIFBh
aW50IHRoZSBidXR0b24uCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGJ1dHRvblN0eWxl
Q29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChHVEtfVFlQRV9CVVRUT04pOwogICAgIGd0a19z
dHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oYnV0dG9uU3R5bGVDb250ZXh0LmdldCgpLCBkaXJl
Y3Rpb24pOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVf
Y29udGV4dF9hZGRfY2xhc3MoYnV0dG9uU3R5bGVDb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xB
U1NfQlVUVE9OKTsKKyNlbmRpZgogICAgIHJlbmRlckJ1dHRvbih0aGlzLCBidXR0b25TdHlsZUNv
bnRleHQuZ2V0KCksIHJlbmRlck9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKIAogICAgIC8vIEdl
dCB0aGUgaW5uZXIgcmVjdGFuZ2xlLgpAQCAtNzU4LDggKzgzOCwxMCBAQCBib29sIFJlbmRlclRo
ZW1lR3RrOjpwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBj
b25zdCBQYWludAogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBhcnJvd1N0eWxlQ29udGV4
dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChHVEtfVFlQRV9BUlJPVyk7CiAKICAgICBndGtfc3R5bGVf
Y29udGV4dF9zZXRfZGlyZWN0aW9uKGFycm93U3R5bGVDb250ZXh0LmdldCgpLCBkaXJlY3Rpb24p
OworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4
dF9hZGRfY2xhc3MoYXJyb3dTdHlsZUNvbnRleHQuZ2V0KCksICJhcnJvdyIpOwogICAgIGd0a19z
dHlsZV9jb250ZXh0X2FkZF9jbGFzcyhhcnJvd1N0eWxlQ29udGV4dC5nZXQoKSwgR1RLX1NUWUxF
X0NMQVNTX0JVVFRPTik7CisjZW5kaWYKIAogICAgIGdmbG9hdCBhcnJvd1NjYWxpbmc7CiAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGFycm93U3R5bGVDb250ZXh0LmdldCgpLCAiYXJy
b3ctc2NhbGluZyIsICZhcnJvd1NjYWxpbmcsIG51bGxwdHIpOwpAQCAtNzc5LDkgKzg2MSwyMSBA
QCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRlck9iamVjdCYg
cmVuZGVyT2JqZWN0LCBjb25zdCBQYWludAogCiAgICAgLy8gUGFpbnQgdGhlIHNlcGFyYXRvciBp
ZiBuZWVkZWQuCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHNlcGFyYXRvclN0eWxlQ29u
dGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChHVEtfVFlQRV9DT01CT19CT1gpOworI2lmIEdUS19D
SEVDS19WRVJTSU9OKDMsIDE5LCAyKQorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9
IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkpOwogCi0gICAgZ3RrX3N0eWxlX2NvbnRl
eHRfc2V0X2RpcmVjdGlvbihzZXBhcmF0b3JTdHlsZUNvbnRleHQuZ2V0KCksIGRpcmVjdGlvbik7
CisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX0NP
TUJPX0JPWCk7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGgu
Z2V0KCksIDAsICJjb21ib2JveCIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBl
KHBhdGguZ2V0KCksIEdUS19UWVBFX1NFUEFSQVRPUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0
ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDEsICJzZXBhcmF0b3IiKTsKKworICAgIGd0
a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKHNlcGFyYXRvclN0eWxlQ29udGV4dC5nZXQoKSwgcGF0
aC5nZXQoKSk7CisjZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzZXBhcmF0
b3JTdHlsZUNvbnRleHQuZ2V0KCksICJzZXBhcmF0b3IiKTsKKyNlbmRpZgorCisgICAgZ3RrX3N0
eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihzZXBhcmF0b3JTdHlsZUNvbnRleHQuZ2V0KCksIGRp
cmVjdGlvbik7CiAKICAgICBnYm9vbGVhbiB3aWRlU2VwYXJhdG9yczsKICAgICBnaW50IHNlcGFy
YXRvcldpZHRoOwpAQCAtODMxLDcgKzkyNSw5IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50
VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWluCiAg
ICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQo
R1RLX1RZUEVfRU5UUlkpOwogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihj
b250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihndGtUZXh0RGlyZWN0
aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSkpOworI2lmICFHVEtfQ0hFQ0tf
VkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4
dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX0VOVFJZKTsKKyNlbmRpZgogCiAgICAgZ3VpbnQgZmxh
Z3MgPSAwOwogICAgIGlmICghaXNFbmFibGVkKHJlbmRlck9iamVjdCkgfHwgaXNSZWFkT25seUNv
bnRyb2wocmVuZGVyT2JqZWN0KSkKQEAgLTEwNDEsNyArMTEzNyw5IEBAIHZvaWQgUmVuZGVyVGhl
bWVHdGs6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZl
ciwgUmVuZGVyCiAKIHN0YXRpYyB2b2lkIGFwcGx5U2xpZGVyU3R5bGVDb250ZXh0Q2xhc3NlcyhH
dGtTdHlsZUNvbnRleHQqIGNvbnRleHQsIENvbnRyb2xQYXJ0IHBhcnQpCiB7CisjaWYgIUdUS19D
SEVDS19WRVJTSU9OKDMsIDE5LCAyKQogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhj
b250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfU0NBTEUpOworI2VuZGlmCiAgICAgaWYgKHBhcnQgPT0g
U2xpZGVySG9yaXpvbnRhbFBhcnQgfHwgcGFydCA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0
KQogICAgICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dCwgR1RLX1NUWUxF
X0NMQVNTX0hPUklaT05UQUwpOwogICAgIGVsc2UgaWYgKHBhcnQgPT0gU2xpZGVyVmVydGljYWxQ
YXJ0IHx8IHBhcnQgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCkBAIC0xMDU0LDEwICsxMTUy
LDIzIEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2xpZGVyVHJhY2soY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgQVNTRVJUX1VOVVNFRChwYXJ0LCBw
YXJ0ID09IFNsaWRlckhvcml6b250YWxQYXJ0IHx8IHBhcnQgPT0gU2xpZGVyVmVydGljYWxQYXJ0
IHx8IHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KTsKIAogICAgIEdSZWZQdHI8R3RrU3R5
bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KEdUS19UWVBFX1NDQUxFKTsK
KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBHUmVmUHRyPEd0a1dpZGdldFBh
dGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193
aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ0FMRSk7CisgICAg
Z3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY2Fs
ZSIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19U
WVBFX1NDQUxFKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0
aC5nZXQoKSwgMSwgInRyb3VnaCIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgo
Y29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYKIAogICAgIGd0a19zdHlsZV9jb250
ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJP
YmplY3Quc3R5bGUoKS5kaXJlY3Rpb24oKSkpOwogICAgIGFwcGx5U2xpZGVyU3R5bGVDb250ZXh0
Q2xhc3Nlcyhjb250ZXh0LmdldCgpLCBwYXJ0KTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywg
MTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQuZ2V0KCksIEdU
S19TVFlMRV9DTEFTU19UUk9VR0gpOworI2VuZGlmCiAKICAgICBpZiAoIWlzRW5hYmxlZChyZW5k
ZXJPYmplY3QpKQogICAgICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUoY29udGV4dC5n
ZXQoKSwgR1RLX1NUQVRFX0ZMQUdfSU5TRU5TSVRJVkUpOwpAQCAtMTA4MiwxMCArMTE5MywyNCBA
QCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNsaWRlclRodW1iKGNvbnN0IFJlbmRlck9iamVj
dCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgIEFTU0VSVChwYXJ0ID09IFNsaWRlclRodW1i
SG9yaXpvbnRhbFBhcnQgfHwgcGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCB8fCBwYXJ0
ID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KTsKIAogICAgIEdSZWZQdHI8R3RrU3R5bGVD
b250ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KEdUS19UWVBFX1NDQUxFKTsKKyNp
ZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICAvLyBGSVhNRTogVGhlIGVudGlyZSBz
bGlkZXIgaXMgdG9vIHdpZGUsIHN0cmV0Y2hpbmcgdGhlIHRodW1iIGludG8gYW4gb3ZhbCByYXRo
ZXIgdGhhbiBhIGNpcmNsZS4KKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9w
dEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBl
bmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ0FMRSk7CisgICAgZ3RrX3dpZGdldF9wYXRo
X2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY2FsZSIpOworCisgICAgZ3Rr
X3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NDQUxFKTsKKyAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRy
b3VnaCIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdU
S19UWVBFX1NDQUxFKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMiwgInNsaWRlciIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3Bh
dGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYKIAogICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgZ3RrVGV4dERpcmVjdGlvbihyZW5k
ZXJPYmplY3Quc3R5bGUoKS5kaXJlY3Rpb24oKSkpOwogICAgIGFwcGx5U2xpZGVyU3R5bGVDb250
ZXh0Q2xhc3Nlcyhjb250ZXh0LmdldCgpLCBwYXJ0KTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9h
ZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX1NMSURFUik7CiAKICAgICBn
dWludCBmbGFncyA9IDA7CiAgICAgaWYgKCFpc0VuYWJsZWQocmVuZGVyT2JqZWN0KSkKQEAgLTEx
MjcsMTYgKzEyNTIsNDcgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRQcm9ncmVzc0Jhcihj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0
eWxlQ29udGV4dChHVEtfVFlQRV9QUk9HUkVTU19CQVIpOwotICAgIGd0a19zdHlsZV9jb250ZXh0
X3NhdmUoY29udGV4dC5nZXQoKSk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisg
ICAgLy8gRklYTUU6IFRoZSBwcm9ncmVzcyBpcyByZW5kZXJlZCBidXQgdGhlIGJhY2tncm91bmQg
aXMgbm90LgorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtf
d2lkZ2V0X3BhdGhfbmV3KCkpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBh
dGguZ2V0KCksIEdUS19UWVBFX1BST0dSRVNTX0JBUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0
ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJwcm9ncmVzc2JhciIpOwogCisgICAg
Z3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1BST0dSRVNT
X0JBUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0
KCksIDEsICJ0cm91Z2giKTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKGNvbnRl
eHQuZ2V0KCksIHBhdGguZ2V0KCkpOworI2Vsc2UKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRf
Y2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX1RST1VHSCk7CisjZW5kaWYKIAog
ICAgIGd0a19yZW5kZXJfYmFja2dyb3VuZChjb250ZXh0LmdldCgpLCBwYWludEluZm8uY29udGV4
dCgpLnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgZ3RrX3JlbmRlcl9mcmFtZShjb250ZXh0LmdldCgp
LCBwYWludEluZm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwg
cmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAKLSAgICBndGtfc3R5bGVf
Y29udGV4dF9yZXN0b3JlKGNvbnRleHQuZ2V0KCkpOworICAgIGNvbnRleHQgPSBjcmVhdGVTdHls
ZUNvbnRleHQoR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigz
LCAxOSwgMikKKyAgICBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisK
KyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJP
R1JFU1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0
aC5nZXQoKSwgMCwgInByb2dyZXNzYmFyIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0
X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOworCisg
ICAgLy8gVE9ETzogQWRkIHRoZSBzdHlsZSBjbGFzc2VzIC5sZWZ0LCAucmlnaHQsIC50b3Agb3Ig
LmJvdHRvbSB3aGVuIHRoZQorICAgIC8vIHByb2dyZXNzICd0b3VjaGVzJyB0aGUgY29ycmVzcG9u
ZGluZyBlbmQgb2YgdGhlIEd0a1Byb2dyZXNzQmFyLgorICAgIGd0a193aWRnZXRfcGF0aF9hcHBl
bmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9QUk9HUkVTU19CQVIpOworICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAyLCAicHJvZ3Jlc3MiKTsK
IAorICAgIGlmICghZG93bmNhc3Q8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRlck9iamVjdCkuaXNEZXRl
cm1pbmF0ZSgpKQorICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5n
ZXQoKSwgMiwgInB1bHNlIik7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250
ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbHNlCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRk
X2NsYXNzKGNvbnRleHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19QUk9HUkVTU0JBUik7CisjZW5k
aWYKKwogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBzdGF0
aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPigwKSk7CiAKICAgICBHdGtCb3JkZXIgcGFkZGluZzsKQEAg
LTExODgsNyArMTM0NCwyMSBAQCBzdGF0aWMgdm9pZCBwYWludFNwaW5BcnJvd0J1dHRvbihSZW5k
ZXJUaGVtZSogdGhlbWUsIEd0a1N0eWxlQ29udGV4dCogY29udGV4dCwgYwogICAgIEFTU0VSVChh
cnJvd1R5cGUgPT0gR1RLX0FSUk9XX1VQIHx8IGFycm93VHlwZSA9PSBHVEtfQVJST1dfRE9XTik7
CiAKICAgICBndGtfc3R5bGVfY29udGV4dF9zYXZlKGNvbnRleHQpOworCisjaWYgR1RLX0NIRUNL
X1ZFUlNJT04oMywgMTksIDIpCisgICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRv
cHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBw
ZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU1BJTl9CVVRUT04pOworICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic3BpbmJ1dHRvbiIp
OworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBF
X1NQSU5fQlVUVE9OKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMSwgImJ1dHRvbiIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9j
bGFzcyhwYXRoLmdldCgpLCAxLCBhcnJvd1R5cGUgPT0gR1RLX0FSUk9XX1VQID8gInVwIiA6ICJk
b3duIik7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LCBwYXRoLmdl
dCgpKTsKKyNlbHNlCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdU
S19TVFlMRV9DTEFTU19CVVRUT04pOworI2VuZGlmCiAKICAgICBHdGtUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbiA9IGd0a19zdHlsZV9jb250ZXh0X2dldF9kaXJlY3Rpb24oY29udGV4dCk7CiAgICAg
Z3VpbnQgc3RhdGUgPSBzdGF0aWNfY2FzdDxndWludD4oZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0
YXRlKGNvbnRleHQpKTsKQEAgLTEyODksMTYgKzE0NTksMjggQEAgZW51bSBTdHlsZUNvbG9yVHlw
ZSB7IFN0eWxlQ29sb3JCYWNrZ3JvdW5kLCBTdHlsZUNvbG9yRm9yZWdyb3VuZCB9OwogCiBzdGF0
aWMgQ29sb3Igc3R5bGVDb2xvcihHVHlwZSB3aWRnZXRUeXBlLCBHdGtTdGF0ZUZsYWdzIHN0YXRl
LCBTdHlsZUNvbG9yVHlwZSBjb2xvclR5cGUpCiB7Ci0KICAgICBHUmVmUHRyPEd0a1N0eWxlQ29u
dGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dCh3aWRnZXRUeXBlKTsKLSAgICAvLyBS
ZWNlbnQgR1RLKyB2ZXJzaW9ucyAoPiAzLjE0KSByZXF1aXJlIHRvIGV4cGxpY2l0bHkgc2V0IHRo
ZSBzdGF0ZSBiZWZvcmUgZ2V0dGluZyB0aGUgY29sb3IuCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MywgMTksIDIpCisgICAgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpIHsKKyAgICAg
ICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0
aF9uZXcoKSk7CisKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0
KCksIEdUS19UWVBFX0VOVFJZKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29i
amVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJlbnRyeSIpOworCisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9FTlRSWSk7CisgICAgICAgIGd0
a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAic2VsZWN0
aW9uIik7CisKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQo
KSwgcGF0aC5nZXQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBndGtfc3R5bGVfY29udGV4dF9z
ZXRfc3RhdGUoY29udGV4dC5nZXQoKSwgc3RhdGUpOwogCiAgICAgR2RrUkdCQSBnZGtSR0JBQ29s
b3I7CiAgICAgaWYgKGNvbG9yVHlwZSA9PSBTdHlsZUNvbG9yQmFja2dyb3VuZCkKLSAgICAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JhY2tncm91bmRfY29sb3IoY29udGV4dC5nZXQoKSwgZ3Rr
X3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNvbnRleHQuZ2V0KCkpLCAmZ2RrUkdCQUNvbG9yKTsK
KyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JhY2tncm91bmRfY29sb3IoY29udGV4dC5n
ZXQoKSwgc3RhdGUsICZnZGtSR0JBQ29sb3IpOwogICAgIGVsc2UKLSAgICAgICAgZ3RrX3N0eWxl
X2NvbnRleHRfZ2V0X2NvbG9yKGNvbnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0X2dldF9z
dGF0ZShjb250ZXh0LmdldCgpKSwgJmdka1JHQkFDb2xvcik7CisgICAgICAgIGd0a19zdHlsZV9j
b250ZXh0X2dldF9jb2xvcihjb250ZXh0LmdldCgpLCBzdGF0ZSwgJmdka1JHQkFDb2xvcik7CiAg
ICAgcmV0dXJuIGdka1JHQkFDb2xvcjsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267775</attachid>
            <date>2015-12-21 18:27:45 -0800</date>
            <delta_ts>2015-12-22 06:22:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150550-20151221202707.patch</filename>
            <type>text/plain</type>
            <size>37403</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxNDAxOTUzNzMwMWVh
YjFmMWFmMjUyYzU5MzUxZDljMTY1MDk2NS4uODk5ZWM5ZDQyNjk2YmIxNWZmNmI0NmJjNGU5NjQ1
MTdhMDFhM2VlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTEyLTIxICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBF
dmVyeXRoaW5nIGJyb2tlbiBpbiBHVEsrIDMuMTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDU1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBvcnQgUmVuZGVyVGhlbWVHdGsgYW5kIFNjcm9sbGJhclRo
ZW1lR3RrIHRvIHVzZSBDU1Mgbm9kZXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gcmVuZGVy
CisgICAgICAgIHN0dWZmIHdpdGggbW9kZXJuIEdUSysuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBXZSBhbHJlYWR5IGhhdmUgdG9ucyBvZiB0ZXN0cyBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5LCBi
dXQgd2UncmUgcnVubmluZyB0aGVtCisgICAgICAgIHdpdGggR1RLKyAzLjE2LCBzbyB0aGV5IGNh
bm5vdCBoYXZlIGRldGVjdGVkIHRoaXMgYnJlYWthZ2UuIFRoZXNlIGZpeGVzIHJlcXVpcmUgdW5y
ZWxlYXNlZAorICAgICAgICBHVEsrLCBhbmQgR1RLKyByZW5kZXJpbmcgaXMgY3VycmVudGx5IGlu
IGEgc3RhdGUgb2YgZmx1eDsgb25jZSB0aGluZ3Mgc2V0dGxlIGRvd24sIHdlIGNhbgorICAgICAg
ICBjb25zaWRlciB1cGdyYWRpbmcgdGhlIEdUSysgdXNlZCBmb3Igb3VyIGxheW91dCB0ZXN0cy4K
KworICAgICAgICAqIHBsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcDoKKyAgICAgICAgKFdURjo6
cmVmR1B0cik6CisgICAgICAgIChXVEY6OmRlcmVmR1B0cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL0dSZWZQdHJHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnRoZW1lQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6dXBkYXRlVGhlbWVQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Om9yaWVudGF0aW9uU3R5bGVDbGFzcyk6CisgICAg
ICAgIChXZWJDb3JlOjphcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VHJhY2tCYWNrZ3JvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludFNjcm9sbGJhckJhY2tncm91
bmQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VGh1bWIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0dG9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlU3R5bGVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNldFRvZ2dsZVNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRUb2dnbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnBhaW50QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OmdldENvbWJvQm94TWV0cmlj
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0RmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwbHlTbGlkZXJTdHlsZUNvbnRleHRDbGFzc2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFNsaWRlclRyYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFNsaWRlclRodW1iKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnBh
aW50U3BpbkFycm93QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OnN0eWxlQ29sb3IpOgorCiAy
MDE1LTEyLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIHVudXNlZCBzZXRUb29sYmFySGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R1JlZlB0ckd0ay5jcHAKaW5kZXggM2MyOGViNzNhZWM2MGJiM2QyNTI2YzFmYjFmYTUzNzljYjVm
MzRhMS4uN2I0ZDY5MjUwYTUwMWFjNGRlMmQzZTUxMTM3YTc4ODAwMDk0NTM1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmNwcApAQCAtNzIsNiArNzIsMjIgQEAg
dGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR2RrQ3Vyc29yKiBwdHIpCiAgICAgaWYgKHB0cikK
ICAgICAgICAgZ2RrX2N1cnNvcl91bnJlZihwdHIpOwogfQorCisjZWxzZQorCit0ZW1wbGF0ZSA8
PiBHdGtXaWRnZXRQYXRoKiByZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cikKK3sKKyAgICBpZiAo
cHRyKQorICAgICAgICBndGtfd2lkZ2V0X3BhdGhfcmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsK
K30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR3RrV2lkZ2V0UGF0aCogcHRyKQorewor
ICAgIGlmIChwdHIpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF91bnJlZihwdHIpOworfQorCiAj
ZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQ
dHJHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmgKaW5kZXgg
OGYwNDI2ZGI1MWVkNjg4N2UyNGVhMzljMTMyYjQ3NzhmZmI4NjJhOS4uYzczN2UzZDkxZmM2N2I2
MTFiMDM4Y2Q1OGMyMzE0ZTAzNzcwYTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dSZWZQdHJHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R1JlZlB0ckd0ay5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CiAKK3R5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXRQYXRoIEd0a1dpZGdldFBhdGg7CiB0
eXBlZGVmIHN0cnVjdCBfU2VjcmV0VmFsdWUgU2VjcmV0VmFsdWU7CiAKIG5hbWVzcGFjZSBXVEYg
ewpAQCAtMzgsNiArMzksOSBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihTZWNyZXRWYWx1
ZSogcHRyKTsKICNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogdGVtcGxhdGUgPD4gR2RrQ3Vyc29y
KiByZWZHUHRyKEdka0N1cnNvciogcHRyKTsKIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdk
a0N1cnNvciogcHRyKTsKKyNlbHNlCit0ZW1wbGF0ZSA8PiBHdGtXaWRnZXRQYXRoKiByZWZHUHRy
KEd0a1dpZGdldFBhdGgqIHB0cik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHdGtXaWRn
ZXRQYXRoKiBwdHIpOwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmluZGV4IGVmYWFiMzAxMWNkMWEzMjJiMTdjZGQw
MTcxZjQ0ZWI0Y2MzMTVlZDUuLjE2OTgzZTEyMzE5NzVhYThkYjljZTIyMjQ0NmRmMTZiODA4Mzg0
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1l
R3RrLmNwcApAQCAtMTYzLDYgKzE2MywxMiBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjp0
cmFja1JlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGJvb2wpCiB9CiAKICNpZm5kZWYgR1RLX0FQ
SV9WRVJTSU9OXzIKKworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKy8vIEN1cnJl
bnRseSB3ZSB1c2UgYSBzdGF0aWMgR3RrU3R5bGVDb250ZXh0IGZvciBHVEsrIDwgMy4xOSwgYW5k
IGEgYnVuY2ggb2YgdW5pcXVlCisvLyBHdGtTdHlsZUNvbnRleHRzIGZvciBHVEsrID49IDMuMTku
IFRoaXMgaXMgY3JhenkgYW5kIGRlZmluaXRlbHkgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnksIGJ1
dCBJCisvLyBjb3VsZG4ndCBmaW5kIGFueSBvdGhlciB3YXkgdG8gbm90IGJyZWFrIG9uZSB2ZXJz
aW9uIG9yIHRoZSBvdGhlci4gSWRlYWxseSBvbmUgb2YgdGhlIHR3bworLy8gcGVvcGxlIG9uIHRo
ZSBwbGFuZXQgd2hvIHJlYWxseSB1bmRlcnN0YW5kIEdUSysgc3R5bGVzIHdvdWxkIGZpeCB0aGlz
LgogY2xhc3MgU2Nyb2xsYmFyU3R5bGVDb250ZXh0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTY3JvbGxiYXJTdHlsZUNvbnRleHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKQEAgLTE5MSw2ICsxOTcsNyBAQCBzdGF0aWMgR3RrU3R5bGVDb250ZXh0KiBndGtTY3JvbGxi
YXJTdHlsZUNvbnRleHQoKQogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxiYXJTdHls
ZUNvbnRleHQ+IHN0eWxlQ29udGV4dDsKICAgICByZXR1cm4gc3R5bGVDb250ZXh0LmdldCgpLmNv
bnRleHQoKTsKIH0KKyNlbmRpZgogCiBTY3JvbGxiYXJUaGVtZUd0azo6U2Nyb2xsYmFyVGhlbWVH
dGsoKQogewpAQCAtMTk5LDE0ICsyMDYsMjggQEAgU2Nyb2xsYmFyVGhlbWVHdGs6OlNjcm9sbGJh
clRoZW1lR3RrKCkKIAogdm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6dGhlbWVDaGFuZ2VkKCkKIHsK
KyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRf
aW52YWxpZGF0ZShndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKSk7CisjZW5kaWYKICAgICB1cGRh
dGVUaGVtZVByb3BlcnRpZXMoKTsKIH0KIAogdm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6dXBkYXRl
VGhlbWVQcm9wZXJ0aWVzKCkKIHsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAg
ICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250ZXh0ID0gYWRvcHRHUmVmKGd0a19z
dHlsZV9jb250ZXh0X25ldygpKTsKKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBh
ZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9h
cHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOworICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2Nyb2xsYmFyIik7
CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChzdHlsZUNvbnRleHQuZ2V0KCksIHBh
dGguZ2V0KCkpOworI2Vsc2UKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250
ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCk7CisjZW5kaWYKKwogICAgIGd0a19zdHls
ZV9jb250ZXh0X2dldF9zdHlsZSgKLSAgICAgICAgZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCks
CisgICAgICAgIHN0eWxlQ29udGV4dC5nZXQoKSwKICAgICAgICAgIm1pbi1zbGlkZXItbGVuZ3Ro
IiwgJm1fbWluVGh1bWJMZW5ndGgsCiAgICAgICAgICJzbGlkZXItd2lkdGgiLCAmbV90aHVtYkZh
dG5lc3MsCiAgICAgICAgICJ0cm91Z2gtYm9yZGVyIiwgJm1fdHJvdWdoQm9yZGVyV2lkdGgsCkBA
IC0yNzIsMTEgKzI5MywxOSBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjp0aHVtYlJlY3Qo
U2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHVuY29ucwogICAgIHJldHVybiBJ
bnRSZWN0KHRyYWNrUmVjdC54KCkgKyAodHJhY2tSZWN0LndpZHRoKCkgLSBtX3RodW1iRmF0bmVz
cykgLyAyLCB0cmFja1JlY3QueSgpICsgdGh1bWJQb3MsIG1fdGh1bWJGYXRuZXNzLCB0aHVtYkxl
bmd0aChzY3JvbGxiYXIpKTsKIH0KIAorCitzdGF0aWMgY29uc3QgY2hhciogb3JpZW50YXRpb25T
dHlsZUNsYXNzKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQoreworICAgIHJldHVy
biBvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhciA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpv
bnRhbCI7Cit9CisKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiBzdGF0aWMgdm9p
ZCBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoR3RrU3R5bGVDb250ZXh0KiBjb250
ZXh0LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKICAgICBndGtfc3R5bGVf
Y29udGV4dF9hZGRfY2xhc3MoY29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX1NDUk9MTEJBUik7Ci0g
ICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIG9yaWVudGF0aW9uID09IFZl
cnRpY2FsU2Nyb2xsYmFyID8gIEdUS19TVFlMRV9DTEFTU19WRVJUSUNBTCA6IEdUS19TVFlMRV9D
TEFTU19IT1JJWk9OVEFMKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4
dCwgb3JpZW50YXRpb25TdHlsZUNsYXNzKG9yaWVudGF0aW9uKSk7CiB9CisjZW5kaWYKIAogc3Rh
dGljIHZvaWQgYWRqdXN0UmVjdEFjY29yZGluZ1RvTWFyZ2luKEd0a1N0eWxlQ29udGV4dCogY29u
dGV4dCwgR3RrU3RhdGVGbGFncyBzdGF0ZSwgSW50UmVjdCYgcmVjdCkKIHsKQEAgLTI5Niw2MiAr
MzI1LDEyOSBAQCB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRyYWNrQmFja2dyb3VuZChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFNjcm9sbGJhcgogICAgIGlmIChtX3Ryb3VnaFVuZGVy
U3RlcHBlcnMpCiAgICAgICAgIGZ1bGxTY3JvbGxiYXJSZWN0ID0gSW50UmVjdChzY3JvbGxiYXIu
eCgpLCBzY3JvbGxiYXIueSgpLCBzY3JvbGxiYXIud2lkdGgoKSwgc2Nyb2xsYmFyLmhlaWdodCgp
KTsKIAotICAgIEd0a1N0eWxlQ29udGV4dCogc3R5bGVDb250ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5
bGVDb250ZXh0KCk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2F2ZShzdHlsZUNvbnRleHQpOwor
I2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQorICAgIEdSZWZQdHI8R3RrU3R5bGVDb250
ZXh0PiBzdHlsZUNvbnRleHQgPSBhZG9wdEdSZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOwor
ICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X3Bh
dGhfbmV3KCkpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCks
IEdUS19UWVBFX1NDUk9MTEJBUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVj
dF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY3JvbGxiYXIiKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgb3JpZW50YXRpb25TdHlsZUNsYXNzKHNjcm9s
bGJhci5vcmllbnRhdGlvbigpKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUo
cGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRl
cl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOworCisgICAgZ3RrX3N0
eWxlX2NvbnRleHRfc2V0X3BhdGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNl
bHNlCisgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGd0a1Njcm9s
bGJhclN0eWxlQ29udGV4dCgpOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250
ZXh0LmdldCgpKTsKIAotICAgIGFwcGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHls
ZUNvbnRleHQsIHNjcm9sbGJhci5vcmllbnRhdGlvbigpKTsKLSAgICBndGtfc3R5bGVfY29udGV4
dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfVFJPVUdIKTsKKyAgICBh
cHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LmdldCgpLCBzY3Jv
bGxiYXIub3JpZW50YXRpb24oKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0
eWxlQ29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX1RST1VHSCk7CisjZW5kaWYKIAotICAg
IGFkanVzdFJlY3RBY2NvcmRpbmdUb01hcmdpbihzdHlsZUNvbnRleHQsIHN0YXRpY19jYXN0PEd0
a1N0YXRlRmxhZ3M+KDApLCBmdWxsU2Nyb2xsYmFyUmVjdCk7Ci0gICAgZ3RrX3JlbmRlcl9iYWNr
Z3JvdW5kKHN0eWxlQ29udGV4dCwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgZnVs
bFNjcm9sbGJhclJlY3QueCgpLCBmdWxsU2Nyb2xsYmFyUmVjdC55KCksIGZ1bGxTY3JvbGxiYXJS
ZWN0LndpZHRoKCksIGZ1bGxTY3JvbGxiYXJSZWN0LmhlaWdodCgpKTsKLSAgICBndGtfcmVuZGVy
X2ZyYW1lKHN0eWxlQ29udGV4dCwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgZnVs
bFNjcm9sbGJhclJlY3QueCgpLCBmdWxsU2Nyb2xsYmFyUmVjdC55KCksIGZ1bGxTY3JvbGxiYXJS
ZWN0LndpZHRoKCksIGZ1bGxTY3JvbGxiYXJSZWN0LmhlaWdodCgpKTsKKyAgICBhZGp1c3RSZWN0
QWNjb3JkaW5nVG9NYXJnaW4oc3R5bGVDb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0
ZUZsYWdzPigwKSwgZnVsbFNjcm9sbGJhclJlY3QpOworICAgIGd0a19yZW5kZXJfYmFja2dyb3Vu
ZChzdHlsZUNvbnRleHQuZ2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGZ1
bGxTY3JvbGxiYXJSZWN0LngoKSwgZnVsbFNjcm9sbGJhclJlY3QueSgpLCBmdWxsU2Nyb2xsYmFy
UmVjdC53aWR0aCgpLCBmdWxsU2Nyb2xsYmFyUmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3JlbmRl
cl9mcmFtZShzdHlsZUNvbnRleHQuZ2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNy
KCksIGZ1bGxTY3JvbGxiYXJSZWN0LngoKSwgZnVsbFNjcm9sbGJhclJlY3QueSgpLCBmdWxsU2Ny
b2xsYmFyUmVjdC53aWR0aCgpLCBmdWxsU2Nyb2xsYmFyUmVjdC5oZWlnaHQoKSk7CiAKLSAgICBn
dGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4dCk7CisjaWYgIUdUS19DSEVDS19W
RVJTSU9OKDMsIDE5LCAyKQorICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250
ZXh0LmdldCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludFNj
cm9sbGJhckJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXImIHNj
cm9sbGJhcikKIHsKLSAgICBHdGtTdHlsZUNvbnRleHQqIHN0eWxlQ29udGV4dCA9IGd0a1Njcm9s
bGJhclN0eWxlQ29udGV4dCgpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250
ZXh0KTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBHUmVmUHRyPEd0a1N0
eWxlQ29udGV4dD4gc3R5bGVDb250ZXh0ID0gYWRvcHRHUmVmKGd0a19zdHlsZV9jb250ZXh0X25l
dygpKTsKKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dp
ZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRo
LmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3Nl
dF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2Nyb2xsYmFyIik7CisgICAgZ3RrX3dpZGdl
dF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsIG9yaWVudGF0aW9uU3R5bGVDbGFz
cyhzY3JvbGxiYXIub3JpZW50YXRpb24oKSkpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0
X3BhdGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKKyNlbHNlCisgICAgR1JlZlB0
cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGd0a1Njcm9sbGJhclN0eWxlQ29udGV4
dCgpOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250ZXh0LmdldCgpKTsKKwor
ICAgIGFwcGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQuZ2V0KCks
IHNjcm9sbGJhci5vcmllbnRhdGlvbigpKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xh
c3Moc3R5bGVDb250ZXh0LmdldCgpLCAic2Nyb2xsZWQtd2luZG93Iik7CisjZW5kaWYKIAotICAg
IGFwcGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQsIHNjcm9sbGJh
ci5vcmllbnRhdGlvbigpKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVD
b250ZXh0LCAic2Nyb2xsZWQtd2luZG93Iik7Ci0gICAgZ3RrX3JlbmRlcl9mcmFtZShzdHlsZUNv
bnRleHQsIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHNjcm9sbGJhci54KCksIHNj
cm9sbGJhci55KCksIHNjcm9sbGJhci53aWR0aCgpLCBzY3JvbGxiYXIuaGVpZ2h0KCkpOworICAg
IGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0LmdldCgpLCBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpLCBzY3JvbGxiYXIueCgpLCBzY3JvbGxiYXIueSgpLCBzY3JvbGxiYXIud2lk
dGgoKSwgc2Nyb2xsYmFyLmhlaWdodCgpKTsKIAotICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3Rv
cmUoc3R5bGVDb250ZXh0KTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAg
Z3RrX3N0eWxlX2NvbnRleHRfcmVzdG9yZShzdHlsZUNvbnRleHQuZ2V0KCkpOworI2VuZGlmCiB9
CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VGh1bWIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAg
ICBHdGtTdHlsZUNvbnRleHQqIHN0eWxlQ29udGV4dCA9IGd0a1Njcm9sbGJhclN0eWxlQ29udGV4
dCgpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250ZXh0KTsKKyNpZiBHVEtf
Q0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5
bGVDb250ZXh0ID0gYWRvcHRHUmVmKGd0a19zdHlsZV9jb250ZXh0X25ldygpKTsKKyAgICBHUmVm
UHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygp
KTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQ
RV9TQ1JPTExCQVIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShw
YXRoLmdldCgpLCAwLCAic2Nyb2xsYmFyIik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRk
X2NsYXNzKHBhdGguZ2V0KCksIDAsIG9yaWVudGF0aW9uU3R5bGVDbGFzcyhzY3JvbGxiYXIub3Jp
ZW50YXRpb24oKSkpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0
KCksIEdUS19UWVBFX1NDUk9MTEJBUik7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29i
amVjdF9uYW1lKHBhdGguZ2V0KCksIDEsICJ0cm91Z2giKTsKKworICAgIGd0a193aWRnZXRfcGF0
aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOworICAgIGd0a193
aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAyLCAic2xpZGVyIik7
CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChzdHlsZUNvbnRleHQuZ2V0KCksIHBh
dGguZ2V0KCkpOworI2Vsc2UKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250
ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2F2ZShzdHlsZUNvbnRleHQuZ2V0KCkpOworI2VuZGlmCiAKICAgICBTY3JvbGxiYXJPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiA9IHNjcm9sbGJhci5vcmllbnRhdGlvbigpOwotICAgIGFwcGx5U2Ny
b2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRleHQsIG9yaWVudGF0aW9uKTsKLSAg
ICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3Moc3R5bGVDb250ZXh0LCBHVEtfU1RZTEVfQ0xB
U1NfU0xJREVSKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAgYXBwbHlT
Y3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dC5nZXQoKSwgb3JpZW50YXRp
b24pOworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0KCks
IEdUS19TVFlMRV9DTEFTU19TTElERVIpOworI2VuZGlmCiAKICAgICBndWludCBmbGFncyA9IDA7
CiAgICAgaWYgKHNjcm9sbGJhci5wcmVzc2VkUGFydCgpID09IFRodW1iUGFydCkKICAgICAgICAg
ZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfQUNUSVZFOwogICAgIGlmIChzY3JvbGxiYXIuaG92ZXJl
ZFBhcnQoKSA9PSBUaHVtYlBhcnQpCiAgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX1BS
RUxJR0hUOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShzdHlsZUNvbnRleHQsIHN0
YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2V0X3N0YXRlKHN0eWxlQ29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4o
ZmxhZ3MpKTsKIAogICAgIEludFJlY3QgdGh1bWJSZWN0KHJlY3QpOwotICAgIGFkanVzdFJlY3RB
Y2NvcmRpbmdUb01hcmdpbihzdHlsZUNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+
KGZsYWdzKSwgdGh1bWJSZWN0KTsKLSAgICBndGtfcmVuZGVyX3NsaWRlcihzdHlsZUNvbnRleHQs
IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHRodW1iUmVjdC54KCksIHRodW1iUmVj
dC55KCksIHRodW1iUmVjdC53aWR0aCgpLCB0aHVtYlJlY3QuaGVpZ2h0KCksCisgICAgYWRqdXN0
UmVjdEFjY29yZGluZ1RvTWFyZ2luKHN0eWxlQ29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3Rr
U3RhdGVGbGFncz4oZmxhZ3MpLCB0aHVtYlJlY3QpOworICAgIGd0a19yZW5kZXJfc2xpZGVyKHN0
eWxlQ29udGV4dC5nZXQoKSwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgdGh1bWJS
ZWN0LngoKSwgdGh1bWJSZWN0LnkoKSwgdGh1bWJSZWN0LndpZHRoKCksIHRodW1iUmVjdC5oZWln
aHQoKSwKICAgICAgICAgb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIgPyBHVEtfT1JJ
RU5UQVRJT05fVkVSVElDQUwgOiBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7CiAKLSAgICBn
dGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4dCk7CisjaWYgIUdUS19DSEVDS19W
RVJTSU9OKDMsIDE5LCAyKQorICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250
ZXh0LmdldCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1
dHRvbihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnQpCiB7Ci0gICAgR3RrU3R5bGVDb250
ZXh0KiBzdHlsZUNvbnRleHQgPSBndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKLSAgICBndGtf
c3R5bGVfY29udGV4dF9zYXZlKHN0eWxlQ29udGV4dCk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MywgMTksIDIpCisgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGFk
b3B0R1JlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7CisgICAgR1JlZlB0cjxHdGtXaWRnZXRQ
YXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICBndGtf
d2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsK
KyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwg
InNjcm9sbGJhciIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdl
dCgpLCAwLCBvcmllbnRhdGlvblN0eWxlQ2xhc3Moc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkpKTsK
KworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9T
Q1JPTExCQVIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRo
LmdldCgpLCAxLCAiYnV0dG9uIik7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChz
dHlsZUNvbnRleHQuZ2V0KCksIHBhdGguZ2V0KCkpOworI2Vsc2UKKyAgICBHUmVmUHRyPEd0a1N0
eWxlQ29udGV4dD4gc3R5bGVDb250ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCk7Cisg
ICAgZ3RrX3N0eWxlX2NvbnRleHRfc2F2ZShzdHlsZUNvbnRleHQuZ2V0KCkpOworI2VuZGlmCiAK
ICAgICBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IHNjcm9sbGJhci5vcmllbnRh
dGlvbigpOwotICAgIGFwcGx5U2Nyb2xsYmFyU3R5bGVDb250ZXh0Q2xhc3NlcyhzdHlsZUNvbnRl
eHQsIG9yaWVudGF0aW9uKTsKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAg
YXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dC5nZXQoKSwgb3Jp
ZW50YXRpb24pOworI2VuZGlmCiAKICAgICBndWludCBmbGFncyA9IDA7CiAgICAgaWYgKChCYWNr
QnV0dG9uU3RhcnRQYXJ0ID09IHBhcnQgJiYgc2Nyb2xsYmFyLmN1cnJlbnRQb3MoKSkKQEAgLTM2
NCwxNCArNDYwLDE3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0dG9uKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBzY3JvbGxiCiAgICAgICAgICAgICBmbGFn
cyB8PSBHVEtfU1RBVEVfRkxBR19QUkVMSUdIVDsKICAgICB9IGVsc2UKICAgICAgICAgZmxhZ3Mg
fD0gR1RLX1NUQVRFX0ZMQUdfSU5TRU5TSVRJVkU7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0
X3N0YXRlKHN0eWxlQ29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsK
KyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUoc3R5bGVDb250ZXh0LmdldCgpLCBzdGF0
aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncykpOwogCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRf
YWRkX2NsYXNzKHN0eWxlQ29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7Ci0gICAgZ3Rr
X3JlbmRlcl9iYWNrZ3JvdW5kKHN0eWxlQ29udGV4dCwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQo
KS0+Y3IoKSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkp
OwotICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWln
aHQoKSk7CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQorICAgIGd0a19zdHlsZV9j
b250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19CVVRU
T04pOworI2VuZGlmCisKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoc3R5bGVDb250ZXh0Lmdl
dCgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCks
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3JlbmRlcl9mcmFtZShzdHls
ZUNvbnRleHQuZ2V0KCksIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHJlY3QueCgp
LCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKIAogICAgIGdmbG9hdCBh
cnJvd1NjYWxpbmc7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKHN0eWxlQ29udGV4
dCwgImFycm93LXNjYWxpbmciLCAmYXJyb3dTY2FsaW5nLCBudWxscHRyKTsKKyAgICBndGtfc3R5
bGVfY29udGV4dF9nZXRfc3R5bGUoc3R5bGVDb250ZXh0LmdldCgpLCAiYXJyb3ctc2NhbGluZyIs
ICZhcnJvd1NjYWxpbmcsIG51bGxwdHIpOwogCiAgICAgZG91YmxlIGFycm93U2l6ZSA9IHN0ZDo6
bWluKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkgKiBhcnJvd1NjYWxpbmc7CiAgICAgRmxv
YXRQb2ludCBhcnJvd1BvaW50KApAQCAtMzgwLDcgKzQ3OSw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhl
bWVHdGs6OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBz
Y3JvbGxiCiAKICAgICBpZiAoZmxhZ3MgJiBHVEtfU1RBVEVfRkxBR19BQ1RJVkUpIHsKICAgICAg
ICAgZ2ludCBhcnJvd0Rpc3BsYWNlbWVudFgsIGFycm93RGlzcGxhY2VtZW50WTsKLSAgICAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKHN0eWxlQ29udGV4dCwgImFycm93LWRpc3BsYWNl
bWVudC14IiwgJmFycm93RGlzcGxhY2VtZW50WCwgImFycm93LWRpc3BsYWNlbWVudC15IiwgJmFy
cm93RGlzcGxhY2VtZW50WSwgbnVsbHB0cik7CisgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dl
dF9zdHlsZShzdHlsZUNvbnRleHQuZ2V0KCksICJhcnJvdy1kaXNwbGFjZW1lbnQteCIsICZhcnJv
d0Rpc3BsYWNlbWVudFgsICJhcnJvdy1kaXNwbGFjZW1lbnQteSIsICZhcnJvd0Rpc3BsYWNlbWVu
dFksIG51bGxwdHIpOwogICAgICAgICBhcnJvd1BvaW50Lm1vdmUoYXJyb3dEaXNwbGFjZW1lbnRY
LCBhcnJvd0Rpc3BsYWNlbWVudFkpOwogICAgIH0KIApAQCAtMzkwLDkgKzQ4OSwxMSBAQCB2b2lk
IFNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IFNjcm9sbGJhciYgc2Nyb2xsYgogICAgIGVsc2UKICAgICAgICAgYW5nbGUgPSAocGFydCA9PSBG
b3J3YXJkQnV0dG9uRW5kUGFydCB8fCBwYXJ0ID09IEZvcndhcmRCdXR0b25TdGFydFBhcnQpID8g
R19QSSAvIDIgOiAzICogKEdfUEkgLyAyKTsKIAotICAgIGd0a19yZW5kZXJfYXJyb3coc3R5bGVD
b250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBhbmdsZSwgYXJyb3dQb2lu
dC54KCksIGFycm93UG9pbnQueSgpLCBhcnJvd1NpemUpOworICAgIGd0a19yZW5kZXJfYXJyb3co
c3R5bGVDb250ZXh0LmdldCgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBhbmds
ZSwgYXJyb3dQb2ludC54KCksIGFycm93UG9pbnQueSgpLCBhcnJvd1NpemUpOwogCi0gICAgZ3Rr
X3N0eWxlX2NvbnRleHRfcmVzdG9yZShzdHlsZUNvbnRleHQpOworI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigzLCAxOSwgMikKKyAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4
dC5nZXQoKSk7CisjZW5kaWYKIH0KIAogYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Ny
b2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUd0ay5jcHAKaW5kZXggODI4ZjI3N2NiOTIyYzBjNTNkODk0YTk1OWVhNDhjMGZhYTY2YTFm
Yy4uNjIwZjdjMTJmZGNjN2RlYTM4ZTU5NDA0ODhjOTFjNjE1NjZhYjlkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC0xNTIsMzQgKzE1Miw2MiBA
QCBzdGF0aWMgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNyZWF0ZVN0eWxlQ29udGV4dChHVHlw
ZSB3aWRnZXRUeXBlKQogICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CiAgICAgfQogCi0gICAg
R3RrV2lkZ2V0UGF0aCogcGF0aCA9IGd0a193aWRnZXRfcGF0aF9uZXcoKTsKLSAgICBndGtfd2lk
Z2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aCwgd2lkZ2V0VHlwZSk7CisgICAgR1JlZlB0cjxHdGtX
aWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisgICAg
Z3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIHdpZGdldFR5cGUpOwogCisj
aWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAgLy8gUGljayBhIGdvb2QgZGVmYXVs
dCBvYmplY3QgcGF0aCBmb3IgdGhlIHN0eWxlIGNvbnRleHQgYmFzZWQgb24gdGhlIHdpZGdldCB0
eXBlLiBUaGlzIHdpbGwKKyAgICAvLyB1c3VhbGx5IG5lZWQgdG8gYmUgb3ZlcnJpZGRlbiBtYW51
YWxseSwgYnV0IGl0IGRvZXNuJ3QgaHVydCB0byBoYXZlIGEgZ29vZCBkZWZhdWx0LgogICAgIGlm
ICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0VOVFJZKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX0VOVFJZKTsKKyAgICAgICAg
Z3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJlbnRy
eSIpOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQVJST1cpCi0gICAgICAg
IGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCAiYXJyb3ciKTsKKyAgICAg
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJi
dXR0b24iKTsgLy8gTm90ZTogbm90IGEgdHlwby4KICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09
IEdUS19UWVBFX0JVVFRPTikgewotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xh
c3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7Ci0gICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCAidGV4dC1idXR0b24iKTsKKyAgICAgICAgZ3Rr
X3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJidXR0b24i
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAs
ICJ0ZXh0LWJ1dHRvbiIpOwogICAgIH0gZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9T
Q0FMRSkKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgsIDAsIEdU
S19TVFlMRV9DTEFTU19TQ0FMRSk7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9v
YmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2NhbGUiKTsKICAgICBlbHNlIGlmICh3aWRnZXRU
eXBlID09IEdUS19UWVBFX1NFUEFSQVRPUikKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJf
YWRkX2NsYXNzKHBhdGgsIDAsIEdUS19TVFlMRV9DTEFTU19TRVBBUkFUT1IpOworICAgICAgICBn
dGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInNlcGFy
YXRvciIpOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfUFJPR1JFU1NfQkFS
KQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NU
WUxFX0NMQVNTX1BST0dSRVNTQkFSKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0
X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJwcm9ncmVzc2JhciIpOwogICAgIGVsc2UgaWYg
KHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU1BJTl9CVVRUT04pCi0gICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xBU1NfU1BJTkJVVFRPTik7
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgp
LCAwLCAic3BpbmJ1dHRvbiIpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVf
VFJFRV9WSUVXKSB7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFt
ZShwYXRoLmdldCgpLCAwLCAidHJlZXZpZXciKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0
ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsICJ2aWV3Iik7CisgICAgfSBlbHNlIGlmICh3aWRn
ZXRUeXBlID09IEdUS19UWVBFX0NIRUNLX0JVVFRPTikKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRo
X2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJjaGVja2J1dHRvbiIpOworICAg
IGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfUkFESU9fQlVUVE9OKQorICAgICAgICBn
dGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInJhZGlv
YnV0dG9uIik7CisgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9DT01CT19CT1gp
CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgp
LCAwLCAiY29tYm9ib3giKTsKKyNlbHNlCisgICAgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVf
RU5UUlkpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgp
LCAwLCBHVEtfU1RZTEVfQ0xBU1NfRU5UUlkpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0g
R1RLX1RZUEVfQVJST1cpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhw
YXRoLmdldCgpLCAwLCAiYXJyb3ciKTsKKyAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19U
WVBFX0JVVFRPTikgeworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0
aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7CisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCAidGV4dC1idXR0b24iKTsKKyAgICB9
IGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU0NBTEUpCisgICAgICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfU0NB
TEUpOworICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU0VQQVJBVE9SKQorICAg
ICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NU
WUxFX0NMQVNTX1NFUEFSQVRPUik7CisgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQ
RV9QUk9HUkVTU19CQVIpCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhw
YXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUFJPR1JFU1NCQVIpOworICAgIGVsc2UgaWYg
KHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfU1BJTl9CVVRUT04pCisgICAgICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfU1BJTkJV
VFRPTik7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9UUkVFX1ZJRVcpCi0g
ICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVf
Q0xBU1NfVklFVyk7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRo
LmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfVklFVyk7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlw
ZSA9PSBHVEtfVFlQRV9DSEVDS19CVVRUT04pCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVy
X2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xBU1NfQ0hFQ0spOworICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNT
X0NIRUNLKTsKICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1JBRElPX0JVVFRP
TikKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgsIDAsIEdUS19T
VFlMRV9DTEFTU19SQURJTyk7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFz
cyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUkFESU8pOworI2VuZGlmCiAKICAgICBH
UmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGFkb3B0R1JlZihndGtfc3R5bGVfY29u
dGV4dF9uZXcoKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQo
KSwgcGF0aCk7Ci0gICAgZ3RrX3dpZGdldF9wYXRoX2ZyZWUocGF0aCk7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CiAKICAgICByZXR1
cm4gY29udGV4dDsKIH0KQEAgLTQ1Miw5ICs0ODAsNyBAQCBzdGF0aWMgdm9pZCBzZXRUb2dnbGVT
aXplKEdUeXBlIHdpZGdldFR5cGUsIFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICBpZiAoIXN0eWxl
LndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhc3R5bGUuaGVpZ2h0KCkuaXNBdXRvKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIE90aGVyIHBvcnRzIGhhcmQtY29kZSB0aGlzIHRv
IDEzIHdoaWNoIGlzIGFsc28gdGhlIGRlZmF1bHQgdmFsdWUgZGVmaW5lZCBieSBHVEsrLgotICAg
IC8vIEdUSysgdXNlcnMgdGVuZCB0byBkZW1hbmQgdGhlIG5hdGl2ZSBsb29rLgotICAgIC8vIEl0
IGNvdWxkIGJlIG1hZGUgYSBjb25maWd1cmF0aW9uIG9wdGlvbiB2YWx1ZXMgb3RoZXIgdGhhbiAx
MyBhY3R1YWxseSBicmVhayBzaXRlIGNvbXBhdGliaWxpdHkuCisgICAgLy8gT3RoZXIgcG9ydHMg
aGFyZC1jb2RlIHRoaXMgdG8gMTMuIEdUSysgdXNlcnMgdGVuZCB0byBkZW1hbmQgdGhlIG5hdGl2
ZSBsb29rLgogICAgIGdpbnQgaW5kaWNhdG9yU2l6ZTsKICAgICBndGtfc3R5bGVfY29udGV4dF9n
ZXRfc3R5bGUoY29udGV4dC5nZXQoKSwgImluZGljYXRvci1zaXplIiwgJmluZGljYXRvclNpemUs
IG51bGxwdHIpOwogCkBAIC00NjgsNiArNDk0LDM3IEBAIHN0YXRpYyB2b2lkIHNldFRvZ2dsZVNp
emUoR1R5cGUgd2lkZ2V0VHlwZSwgUmVuZGVyU3R5bGUmIHN0eWxlKQogc3RhdGljIHZvaWQgcGFp
bnRUb2dnbGUoY29uc3QgUmVuZGVyVGhlbWVHdGsqIHRoZW1lLCBHVHlwZSB3aWRnZXRUeXBlLCBj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEludFJlY3QmIGZ1bGxSZWN0KQogewogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250
ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KHdpZGdldFR5cGUpOworI2lmIEdUS19D
SEVDS19WRVJTSU9OKDMsIDE5LCAyKQorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9
IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkpOworCisgICAgaWYgKHdpZGdldFR5cGUg
PT0gR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKSB7CisgICAgICAgIGlmICh0aGVtZS0+aXNDaGVja2Vk
KHJlbmRlck9iamVjdCkgfHwgdGhlbWUtPmlzSW5kZXRlcm1pbmF0ZShyZW5kZXJPYmplY3QpKSB7
CisgICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RL
X1RZUEVfQ0hFQ0tfQlVUVE9OKTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3Nl
dF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiY2hlY2tidXR0b24iKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgp
LCBHVEtfVFlQRV9DSEVDS19CVVRUT04pOworICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0
ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJidXR0b24iKTsKKyAgICAgICAgICAg
IGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCAiY2hlY2siKTsK
KyAgICAgICAgfQorCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdl
dCgpLCBHVEtfVFlQRV9DSEVDS19CVVRUT04pOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRl
cl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgImNoZWNrIik7CisgICAgfSBlbHNlIGlm
ICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1JBRElPX0JVVFRPTikgeworICAgICAgICBpZiAodGhl
bWUtPmlzQ2hlY2tlZChyZW5kZXJPYmplY3QpIHx8IHRoZW1lLT5pc0luZGV0ZXJtaW5hdGUocmVu
ZGVyT2JqZWN0KSkgeworICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBh
dGguZ2V0KCksIEdUS19UWVBFX1JBRElPX0JVVFRPTik7CisgICAgICAgICAgICBndGtfd2lkZ2V0
X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInJhZGlvYnV0dG9uIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5
cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUkFESU9fQlVUVE9OKTsKKyAgICAgICAgICAgIGd0a193
aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiYnV0dG9uIik7
CisgICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwg
MCwgInJhZGlvIik7CisgICAgICAgIH0KKworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUkFESU9fQlVUVE9OKTsKKyAgICAgICAgZ3RrX3dp
ZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDEsICJyYWRpbyIpOwor
ICAgIH0KKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKGNvbnRleHQuZ2V0KCksIHBh
dGguZ2V0KCkpOworI2VuZGlmCiAKICAgICAvLyBTb21lIHRoZW1lcyBkbyBub3QgcmVuZGVyIGxh
cmdlIHRvZ2dsZSBidXR0b25zIHByb3Blcmx5LCBzbyB3ZSBzaW1wbHkKICAgICAvLyBzaHJpbmsg
dGhlIHJlY3RhbmdsZSBiYWNrIGRvd24gdG8gdGhlIGRlZmF1bHQgc2l6ZSBhbmQgdGhlbiBjZW50
ZXIgaXQKQEAgLTQ4Nyw3ICs1NDQsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRUb2dnbGUoY29uc3Qg
UmVuZGVyVGhlbWVHdGsqIHRoZW1lLCBHVHlwZSB3aWRnZXRUeXBlLCBjb25zdCBSZW4KICAgICB9
CiAKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQuZ2V0KCksIHN0
YXRpY19jYXN0PEd0a1RleHREaXJlY3Rpb24+KGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0
LnN0eWxlKCkuZGlyZWN0aW9uKCkpKSk7CisKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwg
MikKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgInRvZ2ds
ZSIpOworI2Vsc2UKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dC5nZXQo
KSwgd2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9DSEVDS19CVVRUT04gPyBHVEtfU1RZTEVfQ0xBU1Nf
Q0hFQ0sgOiBHVEtfU1RZTEVfQ0xBU1NfUkFESU8pOworI2VuZGlmCiAKICAgICBndWludCBmbGFn
cyA9IDA7CiAgICAgaWYgKCF0aGVtZS0+aXNFbmFibGVkKHJlbmRlck9iamVjdCkpCkBAIC02MTQs
NyArNjc2LDkgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRCdXR0b24oY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW4KICAgICBHUmVmUHRyPEd0a1N0eWxl
Q29udGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChHVEtfVFlQRV9CVVRUT04pOwog
CiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0LmdldCgpLCBzdGF0
aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC5z
dHlsZSgpLmRpcmVjdGlvbigpKSkpOworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikK
ICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxF
X0NMQVNTX0JVVFRPTik7CisjZW5kaWYKIAogICAgIHJlbmRlckJ1dHRvbih0aGlzLCBjb250ZXh0
LmdldCgpLCByZW5kZXJPYmplY3QsIHBhaW50SW5mbywgcmVjdCk7CiAKQEAgLTY0Myw4ICs3MDcs
MjAgQEAgc3RhdGljIHZvaWQgZ2V0Q29tYm9Cb3hNZXRyaWNzKFJlbmRlclN0eWxlJiBzdHlsZSwg
R3RrQm9yZGVyJiBib3JkZXIsIGludCYgZm9jdXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgR1Jl
ZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQoR1RLX1RZ
UEVfQ09NQk9fQk9YKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBHUmVm
UHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygp
KTsKKworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQ
RV9DT01CT19CT1gpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShw
YXRoLmdldCgpLCAwLCAiY29tYm9ib3giKTsKIAorICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRf
dHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9DT01CT19CT1gpOworICAgIGd0a193aWRnZXRfcGF0
aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAiYnV0dG9uIik7CisgICAgZ3Rr
X3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDEsICJjb21ibyIpOworCisg
ICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7
CisjZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhjb250ZXh0LmdldCgpLCBH
VEtfU1RZTEVfQ0xBU1NfQlVUVE9OKTsKKyNlbmRpZgogICAgIGd0a19zdHlsZV9jb250ZXh0X3Nl
dF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4o
Z3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24oKSkpKTsKIAogICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdz
PigwKSk7CkBAIC02NTksNyArNzM1LDkgQEAgc3RhdGljIHZvaWQgZ2V0Q29tYm9Cb3hNZXRyaWNz
KFJlbmRlclN0eWxlJiBzdHlsZSwgR3RrQm9yZGVyJiBib3JkZXIsIGludCYgZm9jdXMKIAogICAg
IEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlv
bj4oZ3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24oKSkpOwogICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgZGlyZWN0aW9uKTsKKyNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNz
KGNvbnRleHQuZ2V0KCksICJzZXBhcmF0b3IiKTsKKyNlbmRpZgogCiAgICAgZ2Jvb2xlYW4gd2lk
ZVNlcGFyYXRvcnM7CiAgICAgZ2ludCBzZXBhcmF0b3JXaWR0aDsKQEAgLTcyMSw3ICs3OTksOSBA
QCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRlck9iamVjdCYg
cmVuZGVyT2JqZWN0LCBjb25zdCBQYWludAogICAgIC8vIFBhaW50IHRoZSBidXR0b24uCiAgICAg
R1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGJ1dHRvblN0eWxlQ29udGV4dCA9IGNyZWF0ZVN0eWxl
Q29udGV4dChHVEtfVFlQRV9CVVRUT04pOwogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJl
Y3Rpb24oYnV0dG9uU3R5bGVDb250ZXh0LmdldCgpLCBkaXJlY3Rpb24pOworI2lmICFHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoYnV0
dG9uU3R5bGVDb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfQlVUVE9OKTsKKyNlbmRpZgog
ICAgIHJlbmRlckJ1dHRvbih0aGlzLCBidXR0b25TdHlsZUNvbnRleHQuZ2V0KCksIHJlbmRlck9i
amVjdCwgcGFpbnRJbmZvLCByZWN0KTsKIAogICAgIC8vIEdldCB0aGUgaW5uZXIgcmVjdGFuZ2xl
LgpAQCAtNzU4LDggKzgzOCwxMCBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludAogICAgIEdSZWZQ
dHI8R3RrU3R5bGVDb250ZXh0PiBhcnJvd1N0eWxlQ29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4
dChHVEtfVFlQRV9BUlJPVyk7CiAKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9u
KGFycm93U3R5bGVDb250ZXh0LmdldCgpLCBkaXJlY3Rpb24pOworI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoYXJyb3dTdHls
ZUNvbnRleHQuZ2V0KCksICJhcnJvdyIpOwogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFz
cyhhcnJvd1N0eWxlQ29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7CisjZW5k
aWYKIAogICAgIGdmbG9hdCBhcnJvd1NjYWxpbmc7CiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0
X3N0eWxlKGFycm93U3R5bGVDb250ZXh0LmdldCgpLCAiYXJyb3ctc2NhbGluZyIsICZhcnJvd1Nj
YWxpbmcsIG51bGxwdHIpOwpAQCAtNzc5LDkgKzg2MSwxOCBAQCBib29sIFJlbmRlclRoZW1lR3Rr
OjpwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQ
YWludAogCiAgICAgLy8gUGFpbnQgdGhlIHNlcGFyYXRvciBpZiBuZWVkZWQuCiAgICAgR1JlZlB0
cjxHdGtTdHlsZUNvbnRleHQ+IHNlcGFyYXRvclN0eWxlQ29udGV4dCA9IGNyZWF0ZVN0eWxlQ29u
dGV4dChHVEtfVFlQRV9DT01CT19CT1gpOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAy
KQorICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0
X3BhdGhfbmV3KCkpOwogCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihzZXBh
cmF0b3JTdHlsZUNvbnRleHQuZ2V0KCksIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9wYXRo
X2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NFUEFSQVRPUik7CisgICAgZ3RrX3dp
ZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzZXBhcmF0b3Ii
KTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKHNlcGFyYXRvclN0eWxlQ29udGV4
dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9j
bGFzcyhzZXBhcmF0b3JTdHlsZUNvbnRleHQuZ2V0KCksICJzZXBhcmF0b3IiKTsKKyNlbmRpZgor
CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihzZXBhcmF0b3JTdHlsZUNvbnRl
eHQuZ2V0KCksIGRpcmVjdGlvbik7CiAKICAgICBnYm9vbGVhbiB3aWRlU2VwYXJhdG9yczsKICAg
ICBnaW50IHNlcGFyYXRvcldpZHRoOwpAQCAtODMxLDcgKzkyMiw5IEBAIGJvb2wgUmVuZGVyVGhl
bWVHdGs6OnBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBj
b25zdCBQYWluCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVT
dHlsZUNvbnRleHQoR1RLX1RZUEVfRU5UUlkpOwogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0
X2RpcmVjdGlvbihjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihn
dGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSkpOworI2lm
ICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRf
Y2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX0VOVFJZKTsKKyNlbmRpZgogCiAg
ICAgZ3VpbnQgZmxhZ3MgPSAwOwogICAgIGlmICghaXNFbmFibGVkKHJlbmRlck9iamVjdCkgfHwg
aXNSZWFkT25seUNvbnRyb2wocmVuZGVyT2JqZWN0KSkKQEAgLTEwNDEsNyArMTEzNCw5IEBAIHZv
aWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoU3R5bGVSZXNvbHZlciYg
c3R5bGVSZXNvbHZlciwgUmVuZGVyCiAKIHN0YXRpYyB2b2lkIGFwcGx5U2xpZGVyU3R5bGVDb250
ZXh0Q2xhc3NlcyhHdGtTdHlsZUNvbnRleHQqIGNvbnRleHQsIENvbnRyb2xQYXJ0IHBhcnQpCiB7
CisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQogICAgIGd0a19zdHlsZV9jb250ZXh0
X2FkZF9jbGFzcyhjb250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfU0NBTEUpOworI2VuZGlmCiAgICAg
aWYgKHBhcnQgPT0gU2xpZGVySG9yaXpvbnRhbFBhcnQgfHwgcGFydCA9PSBTbGlkZXJUaHVtYkhv
cml6b250YWxQYXJ0KQogICAgICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4
dCwgR1RLX1NUWUxFX0NMQVNTX0hPUklaT05UQUwpOwogICAgIGVsc2UgaWYgKHBhcnQgPT0gU2xp
ZGVyVmVydGljYWxQYXJ0IHx8IHBhcnQgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCkBAIC0x
MDU0LDEwICsxMTQ5LDIzIEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2xpZGVyVHJhY2so
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgQVNTRVJUX1VO
VVNFRChwYXJ0LCBwYXJ0ID09IFNsaWRlckhvcml6b250YWxQYXJ0IHx8IHBhcnQgPT0gU2xpZGVy
VmVydGljYWxQYXJ0IHx8IHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KTsKIAogICAgIEdS
ZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KEdUS19U
WVBFX1NDQUxFKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICBHUmVmUHRy
PEd0a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsK
KworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9T
Q0FMRSk7CisgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0
KCksIDAsICJzY2FsZSIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGgu
Z2V0KCksIEdUS19UWVBFX1NDQUxFKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2Jq
ZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRl
eHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYKIAogICAgIGd0
a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgZ3RrVGV4dERpcmVj
dGlvbihyZW5kZXJPYmplY3Quc3R5bGUoKS5kaXJlY3Rpb24oKSkpOwogICAgIGFwcGx5U2xpZGVy
U3R5bGVDb250ZXh0Q2xhc3Nlcyhjb250ZXh0LmdldCgpLCBwYXJ0KTsKKyNpZiAhR1RLX0NIRUNL
X1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRl
eHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19UUk9VR0gpOworI2VuZGlmCiAKICAgICBpZiAoIWlz
RW5hYmxlZChyZW5kZXJPYmplY3QpKQogICAgICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3Rh
dGUoY29udGV4dC5nZXQoKSwgR1RLX1NUQVRFX0ZMQUdfSU5TRU5TSVRJVkUpOwpAQCAtMTA4Miwx
MCArMTE5MCwyNCBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNsaWRlclRodW1iKGNvbnN0
IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgIEFTU0VSVChwYXJ0ID09
IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQgfHwgcGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydCB8fCBwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KTsKIAogICAgIEdSZWZQ
dHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KEdUS19UWVBF
X1NDQUxFKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAgICAvLyBGSVhNRTog
VGhlIGVudGlyZSBzbGlkZXIgaXMgdG9vIHdpZGUsIHN0cmV0Y2hpbmcgdGhlIHRodW1iIGludG8g
YW4gb3ZhbCByYXRoZXIgdGhhbiBhIGNpcmNsZS4KKyAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+
IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKKworICAgIGd0a193aWRn
ZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ0FMRSk7CisgICAgZ3Rr
X3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY2FsZSIp
OworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBF
X1NDQUxFKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMSwgInRyb3VnaCIpOworCisgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBh
dGguZ2V0KCksIEdUS19UWVBFX1NDQUxFKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRf
b2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMiwgInNsaWRlciIpOworCisgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZW5kaWYKIAogICAg
IGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgZ3RrVGV4dERp
cmVjdGlvbihyZW5kZXJPYmplY3Quc3R5bGUoKS5kaXJlY3Rpb24oKSkpOwogICAgIGFwcGx5U2xp
ZGVyU3R5bGVDb250ZXh0Q2xhc3Nlcyhjb250ZXh0LmdldCgpLCBwYXJ0KTsKLSAgICBndGtfc3R5
bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX1NMSURF
Uik7CiAKICAgICBndWludCBmbGFncyA9IDA7CiAgICAgaWYgKCFpc0VuYWJsZWQocmVuZGVyT2Jq
ZWN0KSkKQEAgLTExMjcsMTYgKzEyNDksNDIgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRQ
cm9ncmVzc0Jhcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4
dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChHVEtfVFlQRV9QUk9HUkVTU19CQVIpOwotICAgIGd0a19z
dHlsZV9jb250ZXh0X3NhdmUoY29udGV4dC5nZXQoKSk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MywgMTksIDIpCisgICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0
a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUo
cGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInByb2dyZXNzYmFyIik7CisKKyAg
ICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JF
U1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMSwgInRyb3VnaCIpOwogCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29u
dGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7CisjZWxzZQorICAgIGd0a19zdHlsZV9jb250ZXh0X3Nh
dmUoY29udGV4dC5nZXQoKSk7CiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRl
eHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19UUk9VR0gpOworI2VuZGlmCiAKICAgICBndGtfcmVu
ZGVyX2JhY2tncm91bmQoY29udGV4dC5nZXQoKSwgcGFpbnRJbmZvLmNvbnRleHQoKS5wbGF0Zm9y
bUNvbnRleHQoKS0+Y3IoKSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3Qu
aGVpZ2h0KCkpOwogICAgIGd0a19yZW5kZXJfZnJhbWUoY29udGV4dC5nZXQoKSwgcGFpbnRJbmZv
LmNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgcmVjdC54KCksIHJlY3QueSgpLCBy
ZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfcmVz
dG9yZShjb250ZXh0LmdldCgpKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKKyAg
ICBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICBndGtfd2lk
Z2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsK
KyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwg
InByb2dyZXNzYmFyIik7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5n
ZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKKyAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9z
ZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOwogCisgICAgZ3RrX3dpZGdl
dF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1BST0dSRVNTX0JBUik7Cisg
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDIsICJw
cm9ncmVzcyIpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQo
KSwgcGF0aC5nZXQoKSk7CisjZWxzZQorICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoY29u
dGV4dC5nZXQoKSk7CiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQuZ2V0
KCksIEdUS19TVFlMRV9DTEFTU19QUk9HUkVTU0JBUik7CisjZW5kaWYKKwogICAgIGd0a19zdHls
ZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZs
YWdzPigwKSk7CiAKICAgICBHdGtCb3JkZXIgcGFkZGluZzsKQEAgLTExODgsNyArMTMzNiwyMSBA
QCBzdGF0aWMgdm9pZCBwYWludFNwaW5BcnJvd0J1dHRvbihSZW5kZXJUaGVtZSogdGhlbWUsIEd0
a1N0eWxlQ29udGV4dCogY29udGV4dCwgYwogICAgIEFTU0VSVChhcnJvd1R5cGUgPT0gR1RLX0FS
Uk9XX1VQIHx8IGFycm93VHlwZSA9PSBHVEtfQVJST1dfRE9XTik7CiAKICAgICBndGtfc3R5bGVf
Y29udGV4dF9zYXZlKGNvbnRleHQpOworCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIp
CisgICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRf
cGF0aF9uZXcoKSk7CisKKyAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQo
KSwgR1RLX1RZUEVfU1BJTl9CVVRUT04pOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9v
YmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic3BpbmJ1dHRvbiIpOworCisgICAgZ3RrX3dpZGdl
dF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NQSU5fQlVUVE9OKTsKKyAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgImJ1
dHRvbiIpOworICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAx
LCBhcnJvd1R5cGUgPT0gR1RLX0FSUk9XX1VQID8gInVwIiA6ICJkb3duIik7CisKKyAgICBndGtf
c3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LCBwYXRoLmdldCgpKTsKKyNlbHNlCiAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlMRV9DTEFTU19CVVRU
T04pOworI2VuZGlmCiAKICAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGd0a19zdHls
ZV9jb250ZXh0X2dldF9kaXJlY3Rpb24oY29udGV4dCk7CiAgICAgZ3VpbnQgc3RhdGUgPSBzdGF0
aWNfY2FzdDxndWludD4oZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNvbnRleHQpKTsKQEAg
LTEyODksMTYgKzE0NTEsMjggQEAgZW51bSBTdHlsZUNvbG9yVHlwZSB7IFN0eWxlQ29sb3JCYWNr
Z3JvdW5kLCBTdHlsZUNvbG9yRm9yZWdyb3VuZCB9OwogCiBzdGF0aWMgQ29sb3Igc3R5bGVDb2xv
cihHVHlwZSB3aWRnZXRUeXBlLCBHdGtTdGF0ZUZsYWdzIHN0YXRlLCBTdHlsZUNvbG9yVHlwZSBj
b2xvclR5cGUpCiB7Ci0KICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGNy
ZWF0ZVN0eWxlQ29udGV4dCh3aWRnZXRUeXBlKTsKLSAgICAvLyBSZWNlbnQgR1RLKyB2ZXJzaW9u
cyAoPiAzLjE0KSByZXF1aXJlIHRvIGV4cGxpY2l0bHkgc2V0IHRoZSBzdGF0ZSBiZWZvcmUgZ2V0
dGluZyB0aGUgY29sb3IuCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCisgICAgaWYg
KHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpIHsKKyAgICAgICAgR1JlZlB0cjxHdGtXaWRn
ZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7CisKKyAgICAg
ICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX0VOVFJZ
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0
KCksIDAsICJlbnRyeSIpOworCisgICAgICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShw
YXRoLmdldCgpLCBHVEtfVFlQRV9FTlRSWSk7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVy
X3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAic2VsZWN0aW9uIik7CisKKyAgICAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7Cisg
ICAgfQorI2VuZGlmCisKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUoY29udGV4dC5n
ZXQoKSwgc3RhdGUpOwogCiAgICAgR2RrUkdCQSBnZGtSR0JBQ29sb3I7CiAgICAgaWYgKGNvbG9y
VHlwZSA9PSBTdHlsZUNvbG9yQmFja2dyb3VuZCkKLSAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRf
Z2V0X2JhY2tncm91bmRfY29sb3IoY29udGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0
X3N0YXRlKGNvbnRleHQuZ2V0KCkpLCAmZ2RrUkdCQUNvbG9yKTsKKyAgICAgICAgZ3RrX3N0eWxl
X2NvbnRleHRfZ2V0X2JhY2tncm91bmRfY29sb3IoY29udGV4dC5nZXQoKSwgc3RhdGUsICZnZGtS
R0JBQ29sb3IpOwogICAgIGVsc2UKLSAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X2NvbG9y
KGNvbnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdGF0ZShjb250ZXh0LmdldCgp
KSwgJmdka1JHQkFDb2xvcik7CisgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9jb2xvcihj
b250ZXh0LmdldCgpLCBzdGF0ZSwgJmdka1JHQkFDb2xvcik7CiAgICAgcmV0dXJuIGdka1JHQkFD
b2xvcjsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>