<?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>36171</bug_id>
          
          <creation_ts>2010-03-16 09:41:33 -0700</creation_ts>
          <short_desc>[Qt] QtWebKit doesn&apos;t support NPAPI for DirectFB</short_desc>
          <delta_ts>2013-12-09 10:24:40 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P5</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Bakken">agbakken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>200257</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-03-16 09:41:33 -0700</bug_when>
    <thetext>There are Flash plugins available for DirectFB that can be supported without too much effort in QtWebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200546</commentid>
    <comment_count>1</comment_count>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-03-16 18:06:35 -0700</bug_when>
    <thetext>I will contribute code for this soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201580</commentid>
    <comment_count>2</comment_count>
      <attachid>51100</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-03-18 14:58:55 -0700</bug_when>
    <thetext>Created attachment 51100
Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201582</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-18 15:05:30 -0700</bug_when>
    <thetext>Attachment 51100 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/bridge/npapi.h:596:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201620</commentid>
    <comment_count>4</comment_count>
      <attachid>51106</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-03-18 16:01:26 -0700</bug_when>
    <thetext>Created attachment 51106
Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201623</commentid>
    <comment_count>5</comment_count>
      <attachid>51107</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-03-18 16:03:00 -0700</bug_when>
    <thetext>Created attachment 51107
Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202461</commentid>
    <comment_count>6</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-03-22 06:36:26 -0700</bug_when>
    <thetext>Bugs relating to the Qt port of WebKit should have the Qt keyword. See http://trac.webkit.org/wiki/QtWebKitBugs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202466</commentid>
    <comment_count>7</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-03-22 06:36:57 -0700</bug_when>
    <thetext>Bugs relating to the Qt port of WebKit should have the Qt keyword. See http://trac.webkit.org/wiki/QtWebKitBugs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205245</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-28 14:24:16 -0700</bug_when>
    <thetext>This patch extends the NPAPI spec by a new platform. I suggest to discuss this addition on the webkit development mailing list first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229760</commentid>
    <comment_count>9</comment_count>
      <attachid>56890</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-05-24 08:48:12 -0700</bug_when>
    <thetext>Created attachment 56890
Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229763</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-24 08:52:58 -0700</bug_when>
    <thetext>Attachment 56890 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/bridge/npapi.h:450:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229829</commentid>
    <comment_count>11</comment_count>
      <attachid>56908</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-05-24 11:33:59 -0700</bug_when>
    <thetext>Created attachment 56908
Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229932</commentid>
    <comment_count>12</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-05-24 15:04:21 -0700</bug_when>
    <thetext>Attachment 56908 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/2343151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229973</commentid>
    <comment_count>13</comment_count>
      <attachid>56942</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-05-24 16:22:25 -0700</bug_when>
    <thetext>Created attachment 56942
Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229975</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-24 16:25:14 -0700</bug_when>
    <thetext>Attachment 56942 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/plugins/qt/PluginViewQt.cpp:72:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/bridge/npapi.h:450:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234928</commentid>
    <comment_count>15</comment_count>
      <attachid>58046</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-06-07 10:50:15 -0700</bug_when>
    <thetext>Created attachment 58046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259537</commentid>
    <comment_count>16</comment_count>
      <attachid>63350</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-03 10:40:48 -0700</bug_when>
    <thetext>Created attachment 63350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259541</commentid>
    <comment_count>17</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-03 10:48:03 -0700</bug_when>
    <thetext>Attachment 63350 did not build on qt:
Build output: http://queues.webkit.org/results/3618476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259542</commentid>
    <comment_count>18</comment_count>
      <attachid>63351</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-03 10:48:46 -0700</bug_when>
    <thetext>Created attachment 63351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259719</commentid>
    <comment_count>19</comment_count>
      <attachid>63382</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-03 15:04:48 -0700</bug_when>
    <thetext>Created attachment 63382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259721</commentid>
    <comment_count>20</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-03 15:07:13 -0700</bug_when>
    <thetext>It saves reviewers time when you make it explicity what changes from an old to a newer version of your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259731</commentid>
    <comment_count>21</comment_count>
      <attachid>63384</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-03 15:27:01 -0700</bug_when>
    <thetext>Created attachment 63384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259733</commentid>
    <comment_count>22</comment_count>
      <attachid>63385</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-03 15:29:57 -0700</bug_when>
    <thetext>Created attachment 63385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260705</commentid>
    <comment_count>23</comment_count>
      <attachid>63608</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-05 11:06:39 -0700</bug_when>
    <thetext>Created attachment 63608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260712</commentid>
    <comment_count>24</comment_count>
      <attachid>63608</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-05 11:20:31 -0700</bug_when>
    <thetext>Comment on attachment 63608
Patch

WebCore/bridge/npapi.h:92
 +  #if defined(XP_UNIX) &amp;&amp; !defined(XP_DFB)
Doesn&apos;t this have to be upstreamed to npapi.h etc used by Mozilla? I think these headers are copied from mozilla, though I might be wrong.

WebCore/plugins/PluginView.cpp:366
 +  #if defined(XP_X11) &amp;&amp; !defined(XP_DFB)
You are chaning a XP_UNIX to XP_X11, are you sure that is right? I guess XP_UNIX is true on mac.

WebCore/plugins/qt/PluginViewQtDFB.cpp:27
 +  #include &quot;PluginViewQtDFB.h&quot;
I guess PluginViewDFBQt would have made more sense

WebCore/plugins/qt/PluginViewQtDFB.cpp:48
 +  extern Q_GUI_EXPORT IDirectFBSurface* qt_directfb_surface_for_pixmap(const QPixmap &amp;pixmap);
&amp; is wrongly aligned

WebCore/plugins/qt/PluginViewQtDFB.cpp:51
 +  namespace WebCore {
Add a newline after this

WebCore/plugins/qt/PluginViewQtDFB.cpp:52
 +  void PluginViewQtDFB::clearWindowInfo(PluginViewQtDFB::DFBWindowInfo *windowInfo)
* is wrongly algined

WebCore/plugins/qt/PluginViewQtDFB.cpp:63
 +                                           const DFBWindowInfo&amp; windowInfo)
put the function definition on one line

WebCore/plugins/qt/PluginViewQtDFB.cpp:64
 +      : m_pluginView(pluginView), m_dfbSurface(0), m_installedEventFilter(false), m_dfbWindowInfo(windowInfo)
Put these on separate lines starting with ,

WebCore/plugins/qt/PluginViewQtDFB.cpp:106
 +  void PluginViewQtDFB::paint(GraphicsContext* context, const IntRect&amp; rect)
a bit of newlines in this method would be nice, grouping the related things together

WebCore/plugins/qt/PluginViewQtDFB.cpp:127
 +  bool PluginViewQtDFB::dispatchEvent(const KeyboardEvent* event)
Here as well. This code is hard reading

WebCore/plugins/qt/PluginViewQtDFB.cpp:145
 +      case Qt::Key_Backspace:
Can&apos;t this be moved to another method? It can always be inline

WebCore/plugins/qt/PluginViewQtDFB.cpp:724
 +      case FocusIn: window.type = DWET_GOTFOCUS; break;
dont put  this on one line

WebCore/plugins/qt/PluginViewQtDFB.cpp:731
 +  bool PluginViewQtDFB::eventFilter(QObject* , QEvent* e)
We normally abbriviate event with &apos;ev&apos;

WebCore/plugins/qt/PluginViewQtDFB.h:40
 +  class KeyboardEvent;
Add a newline after this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260846</commentid>
    <comment_count>25</comment_count>
      <attachid>63633</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-05 14:13:41 -0700</bug_when>
    <thetext>Created attachment 63633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260855</commentid>
    <comment_count>26</comment_count>
      <attachid>63633</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-05 14:22:55 -0700</bug_when>
    <thetext>Comment on attachment 63633
Patch

This seems very isolated apart from the XP_UNIX -&gt; XP_X11 change which I&apos;m not sure about, so I tending to give you a r=me.

Could you please answer my question regarding this before committing?

Ah, unfortunately I will have to give you an r-, due to the patch missing files such as the PluginViewQtDFB.cpp etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260876</commentid>
    <comment_count>27</comment_count>
      <attachid>63639</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-05 14:43:37 -0700</bug_when>
    <thetext>Created attachment 63639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260884</commentid>
    <comment_count>28</comment_count>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-05 14:54:45 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 63608 [details])
&gt; WebCore/bridge/npapi.h:92
&gt;  +  #if defined(XP_UNIX) &amp;&amp; !defined(XP_DFB)
&gt; Doesn&apos;t this have to be upstreamed to npapi.h etc used by Mozilla? I think these headers are copied from mozilla, though I might be wrong.
&gt; 
&gt; WebCore/plugins/PluginView.cpp:366
&gt;  +  #if defined(XP_X11) &amp;&amp; !defined(XP_DFB)
&gt; You are chaning a XP_UNIX to XP_X11, are you sure that is right? I guess XP_UNIX is true on mac.
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:27
&gt;  +  #include &quot;PluginViewQtDFB.h&quot;
&gt; I guess PluginViewDFBQt would have made more sense
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:48
&gt;  +  extern Q_GUI_EXPORT IDirectFBSurface* qt_directfb_surface_for_pixmap(const QPixmap &amp;pixmap);
&gt; &amp; is wrongly aligned
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:51
&gt;  +  namespace WebCore {
&gt; Add a newline after this
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:52
&gt;  +  void PluginViewQtDFB::clearWindowInfo(PluginViewQtDFB::DFBWindowInfo *windowInfo)
&gt; * is wrongly algined
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:63
&gt;  +                                           const DFBWindowInfo&amp; windowInfo)
&gt; put the function definition on one line
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:64
&gt;  +      : m_pluginView(pluginView), m_dfbSurface(0), m_installedEventFilter(false), m_dfbWindowInfo(windowInfo)
&gt; Put these on separate lines starting with ,
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:106
&gt;  +  void PluginViewQtDFB::paint(GraphicsContext* context, const IntRect&amp; rect)
&gt; a bit of newlines in this method would be nice, grouping the related things together
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:127
&gt;  +  bool PluginViewQtDFB::dispatchEvent(const KeyboardEvent* event)
&gt; Here as well. This code is hard reading
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:145
&gt;  +      case Qt::Key_Backspace:
&gt; Can&apos;t this be moved to another method? It can always be inline
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:724
&gt;  +      case FocusIn: window.type = DWET_GOTFOCUS; break;
&gt; dont put  this on one line
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.cpp:731
&gt;  +  bool PluginViewQtDFB::eventFilter(QObject* , QEvent* e)
&gt; We normally abbriviate event with &apos;ev&apos;
&gt; 
&gt; WebCore/plugins/qt/PluginViewQtDFB.h:40
&gt;  +  class KeyboardEvent;
&gt; Add a newline after this

Hi Kenneth

The XP_X11 was a complete oversight on my part. XP_X11 doesn&apos;t really exist. XP_UNIX == X11. Mac is XP_MACOSX.

npapi.h in WebKit has diverged a fair bit from the mozilla version. I believe the WebKit occasionally is made functionally equivalent to the Mozilla one by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260886</commentid>
    <comment_count>29</comment_count>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-08-05 14:56:06 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 63633 [details])
&gt; This seems very isolated apart from the XP_UNIX -&gt; XP_X11 change which I&apos;m not sure about, so I tending to give you a r=me.
&gt; 
&gt; Could you please answer my question regarding this before committing?
&gt; 
&gt; Ah, unfortunately I will have to give you an r-, due to the patch missing files such as the PluginViewQtDFB.cpp etc.

Sorry about that. I believe I&apos;ve addressed all the style issues in the last commit. I didn&apos;t see your comment before I committed the second last.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305481</commentid>
    <comment_count>30</comment_count>
      <attachid>73107</attachid>
    <who name="Anders Bakken">agbakken</who>
    <bug_when>2010-11-05 13:25:23 -0700</bug_when>
    <thetext>Created attachment 73107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305509</commentid>
    <comment_count>31</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-05 14:05:22 -0700</bug_when>
    <thetext>Attachment 73107 did not build on qt:
Build output: http://queues.webkit.org/results/5285023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305786</commentid>
    <comment_count>32</comment_count>
      <attachid>73107</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-06 06:46:59 -0700</bug_when>
    <thetext>Comment on attachment 73107
Patch

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

Basically, I would like to see all X11 related code guard by x11 defines.

&gt; WebCore/bridge/npapi.h:92
&gt; +#if defined(XP_UNIX) &amp;&amp; !defined(XP_DFB)

I&apos;d prefer if you did:

#if defined(XP_UNIX) &amp;&amp; defined(X_PROTOCOL)

So you&apos;d be including X-related stuff when it is X.

&gt; WebCore/bridge/npapi.h:246
&gt; +#if defined(XP_UNIX) &amp;&amp; !defined(XP_DFB)

Ditto.

&gt; WebCore/bridge/npruntime_internal.h:32
&gt; +#if defined XP_UNIX &amp;&amp; !defined(XP_DFB)

Ditto

&gt; WebCore/plugins/PluginView.cpp:373
&gt; +#if defined(XP_X11) &amp;&amp; !defined(XP_DFB)

here you could do:

#if defined(XP_X11_ &amp;&amp; PLATFORM(X11)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305787</commentid>
    <comment_count>33</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-06 06:48:49 -0700</bug_when>
    <thetext>[CCing Torarne for the PluginViewQt part and Andersca for the npapi changes]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305833</commentid>
    <comment_count>34</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-11-06 19:15:34 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; [CCing Torarne for the PluginViewQt part and Andersca for the npapi changes]

I will comment on this next week, please don&apos;t commit as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307312</commentid>
    <comment_count>35</comment_count>
      <attachid>73107</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-11-10 05:41:05 -0800</bug_when>
    <thetext>Comment on attachment 73107
Patch

I don&apos;t like this patch, for a few reasons:

- It mixes the new XP_DFB with XP_UNIX. As far as I know the XP-defines are mutually exclusive. XP_UNIX is really XP_X11, and should be treated that way. It should also be defined in npapi.h, and the npapi.h extension should be brought up to a wider audience to make sure it has accept, for example at the plugin-futures list [1].

- It&apos;s Qt-specific. If we want to add directfb support we should do it in a way that can be shared between ports, PluginViewDirectFB, where the platform bits are abstracted or #ifdefed. See PluginViewMac for an example.  We already have a lot of duplicated code in PluginViewQt and PluginViewGTK, which are both largely implementing what should be PluginViewX11. Let&apos;s not make the same mistake with this patch.
 

[1] https://mail.mozilla.org/listinfo/plugin-futures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957956</commentid>
    <comment_count>36</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-12-09 10:24:40 -0800</bug_when>
    <thetext>QtWebKit is gone now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51100</attachid>
            <date>2010-03-18 14:58:55 -0700</date>
            <delta_ts>2010-03-18 16:03:00 -0700</delta_ts>
            <desc>Patch that enables Windowless NPAPI for Qt/QWS with DirectFB </desc>
            <filename>patch.36171</filename>
            <type>text/plain</type>
            <size>43380</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTAtMDMtMTggIEFuZGVycyBCYWtrZW4gIDxBbmRlcnMgQmFra2Vu
IDxhZ2Jha2tlbkBnbWFpbC5jb20+PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVzcyBOUEFQ
SSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RGQi4gSXQn
cyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAgICAgIEZs
YXNobGl0ZS4gCisKKyAgICAgICAgVGhlIGNvZGUgaXMgbGFyZ2VseSBiYXNlZCBvbiB0aGUgUXQv
WDExIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd2xlc3MKKyAgICAgICAgTlBBUEkuIEl0IGFkZHMg
dGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2Vlbgor
ICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5JWCBpcyBkZWZpbmVkLiBUaGlzIG1l
YW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgIGZ1bmN0aW9uIHRoZSBzYW1lIHdheSBmb3Ig
WDExIGJ1aWxkcy4KKworICAgICAgICBTaW5jZSB0aGUgbm9ybWFsIHVzZSBjYXNlIGZvciBOUEFQ
SSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0ZXMKKyAgICAgICAgbGlrZSB5b3V0dWJl
IGl0J3MgaW1wb3J0YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGx1Z2luIGdldHMgYW4gdXBkYXRlZAor
ICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBtb3ZlcyBvciByZXNpemVzLiBU
aGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgZmFjdCB0aGF0IHRoZSB2aWRlbyB3aWxsIGJlIHJl
bmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIgcmF0aGVyCisgICAgICAgIHRoYW4gYWN0dWFs
bHkgaW50byB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgdGhhdCdzIGJlaW5nIHJlbmRlcmVkIHRvLgor
CisgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0ZXN0IGNhc2UgdGhhdCBJIGNvdWxkIGhlbHAgcGVv
cGxlIHNldCB1cCBmb3IgdGVzdGluZworICAgICAgICB3aXRoIFF0L1FXUyBEaXJlY3RGQiBidXQg
SSBkb24ndCBrbm93IGhvdyB0byBtYWtlIGl0IGF1dG9tYXRlZC4KKworICAgICAgICBUbyBlbmFi
bGUgTlBBUEkgZm9yIERpcmVjdEZCIHRoZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFrZSBzdXJlCisg
ICAgICAgIHFtYWtlLmNvbmYgY29udGFpbnMgdGhpcyBsaW5lOgorCisgICAgICAgIERFRklORVMg
Kz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUElfRElSRUNURkIKKworICAgICAgICBRdCBtdXN0
IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRoZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAoYXMK
KyAgICAgICAgb3Bwb3NlZCB0byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKworICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJyaWRnZS9ucGFw
aS5oOgorICAgICAgICAqIGJyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6aW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXREaXJlY3RG
Qk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91c2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OldpbmRvd01vdmVFdmVudEZp
bHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50Rmls
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6dGltZXJFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEwLTAzLTE4ICBEYXZpZCBIeWF0
dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnByaQkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC04Myw2ICs4MywxMCBAQCBncmVhdGVyVGhhbihRVF9NSU5PUl9WRVJTSU9OLCA1KSB7
CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERFRklO
RVMgKz0gRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MQogCiAjIE5lc2NhcGUgcGx1Z2lucyBz
dXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdp
bmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTU0LDE2ICsyMTU0LDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRT
Q0FQRV9QTFVHSU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMK
ICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAg
ICAgICAgICAgICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBf
REZCCisgICAgICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJ
UkVDVEZCCisgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisg
ICAgICAgICAgICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAgIENP
TkZJRyArPSB4MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNw
cAorICAgICAgICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFp
bmVyUXQuaAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IFwK
LSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgXAog
ICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAogICAg
ICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAgICAg
ICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5D
b250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3Jl
L2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVm
aW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAgICAgI2luY2x1ZGUgPFgx
MS9YdXRpbC5oPgogICAgICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHR5
cGVkZWYgc3RydWN0IF9OUFJlY3QKIH0gTlBSZWN0OwogCiAKLSNpZmRlZiBYUF9VTklYCisjaWYg
ZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAvKgogICogVW5peCBzcGVjaWZp
YyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICovCkBAIC01OTMsNiArNTkzLDkgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX05QRXZlbnQKICAgICB1aW50MzIgICB3UGFyYW07CiAgICAgdWludDMyICAg
bFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYgZGVmaW5lZCAoWFBfREZCKQorI2luY2x1ZGUgPGRp
cmVjdGZiLmg+Cit0eXBlZGVmIERGQkV2ZW50IE5QRXZlbnQ7CiAjZWxpZiBkZWZpbmVkIChYUF9V
TklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVudDsKICNlbHNlCkBAIC02MTQsNyArNjE3LDcgQEAg
dHlwZWRlZiBSZ25IYW5kbGUgTlBRRFJlZ2lvbjsKIHR5cGVkZWYgQ0dQYXRoUmVmIE5QQ0dSZWdp
b247CiAjZWxpZiBkZWZpbmVkKFhQX1dJTikKIHR5cGVkZWYgSFJHTiBOUFJlZ2lvbjsKLSNlbGlm
IGRlZmluZWQoWFBfVU5JWCkKKyNlbGlmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBf
REZCKQogdHlwZWRlZiBSZWdpb24gTlBSZWdpb247CiAjZWxpZiBkZWZpbmVkKFhQX1NZTUJJQU4p
CiB0eXBlZGVmIFFSZWdpb24qIE5QUmVnaW9uOwpJbmRleDogV2ViQ29yZS9icmlkZ2UvbnBydW50
aW1lX2ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmgJKHJldmlzaW9uIDU2MTg5KQorKysgV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lm
IGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9Y
cmVzb3VyY2UuaD4KIAogICAgICN1bmRlZiBOb25lCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CShyZXZpc2lvbiA1NjE4OSkKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAg
ICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lm
ZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAg
IGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxl
dGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAg
bV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAgLTgyNiw3ICs4MjYsNyBAQCBQbHVnaW5WaWV3OjpQ
bHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2Up
CiAgICAgLCBtX2hhdmVJbml0aWFsaXplZChmYWxzZSkKICAgICAsIG1faXNXYWl0aW5nVG9TdGFy
dChmYWxzZSkKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZCAoWFBfREZCKQogICAgICwgbV9uZWVkc1hFbWJlZChmYWxzZSkKICNlbmRpZgogI2lm
IE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtODQ3LDEwICs4
NDcsMTggQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbQogI2VuZGlm
CiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZC
CiAgICAgLCBtX2RyYXdhYmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1h
cCgwKQogICAgICwgbV9wbHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9ldmVudEZpbHRl
cigwKQorICAgICwgbV9kZmJTdXJmYWNlKDApCisgICAgLCBtX2RmYigwKQorICAgICwgbV9kZmJE
aXNwbGF5TGF5ZXIoMCkKKyAgICAsIG1fZGZiV2luZG93KDApCisjZW5kaWYKICNlbmRpZgogICAg
ICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVhbGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkK
SW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpZiBkZWZpbmVkIFhQX0RGQiAmJiBQTEFURk9STShRVCkKKyNpbmNs
dWRlIDxRUGl4bWFwPgorI2luY2x1ZGUgPGRpcmVjdGZiLmg+CisjZW5kaWYKIAogI2lmIE9TKFdJ
TkRPV1MpICYmIChQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQogdHlwZWRlZiBzdHJ1Y3Qg
SFdORF9fKiBIV05EOwpAQCAtMzEyLDcgKzMxNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCBtX2hhdmVJbml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lzV2FpdGluZ1Rv
U3RhcnQ7CiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZChYUF9ERkIpCiAgICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNlbmRpZgogCkBA
IC0zNjIsMTIgKzM2NiwyMSBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1BlbmRpbmdHZW9t
ZXRyeUNoYW5nZTsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2RyYXdhYmxlOwog
ICAgICAgICBWaXN1YWwqIG1fdmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2NvbG9ybWFwOwog
ICAgICAgICBEaXNwbGF5KiBtX3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9pZCBpbml0WEV2
ZW50KFhFdmVudCogZXZlbnQpOworI2Vsc2UKKyAgICAgICAgUU9iamVjdCAqbV9ldmVudEZpbHRl
cjsKKyAgICAgICAgUVBpeG1hcCBtX3BpeG1hcDsKKyAgICAgICAgSURpcmVjdEZCU3VyZmFjZSAq
bV9kZmJTdXJmYWNlOworICAgICAgICBJRGlyZWN0RkIgKm1fZGZiOworICAgICAgICBJRGlyZWN0
RkJEaXNwbGF5TGF5ZXIgKm1fZGZiRGlzcGxheUxheWVyOworICAgICAgICBJRGlyZWN0RkJXaW5k
b3cgKm1fZGZiV2luZG93OworI2VuZGlmCiAjZW5kaWYKIAogICAgICAgICBJbnRSZWN0IG1fY2xp
cFJlY3Q7IC8vIFRoZSBjbGlwIHJlY3QgdG8gYXBwbHkgdG8gYSB3aW5kb3dlZCBwbHVnLWluCklu
ZGV4OiBXZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAkocmV2aXNpb24gNTYxODkpCisrKyBX
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEs
NyArNTEsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJQbHVn
aW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKQEAg
LTY3LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxRS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UVBhaW50ZXI+
CiAjaW5jbHVkZSA8UVdpZGdldD4KKyNpZmRlZiBRX1dTX1gxMQogI2luY2x1ZGUgPFFYMTFJbmZv
PgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc0LDYgKzc0
LDIxIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVu
ZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2ljVGlt
ZXI+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8geworICAg
IElEaXJlY3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAg
SURpcmVjdEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCitleHRlcm4g
UV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3Bp
eG1hcChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5EX05BTUVTUEFDRQorI2VuZGlmCisK
ICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5o
PgogCkBAIC0xMDksNiArMTI0LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVjdCAmJiBtX2NsaXBSZWN0
ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAg
aWYgKCFtX2lzV2luZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0
LnNpemUoKSkgewogICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4
bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwpAQCAtMTE3LDYgKzEzMyw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93
LndzX2luZm8pLT5kZXB0aCk7CiAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9Cisj
ZW5kaWYKIAogICAgIC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRl
bHksIHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNo
YW5nZSA9IHRydWU7CkBAIC0xNjYsMTYgKzE4MywxNiBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogCiAKICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAKKyNpZm5k
ZWYgWFBfREZCCiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3YWJsZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1Z2luRGlzcGxheSAmJiBtX3Bs
dWdpbkRpc3BsYXkgIT0gUVgxMUluZm86OmRpc3BsYXkoKTsKLQogICAgIFFQYWludGVyKiBwYWlu
dGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgSW50UmVjdCBleHBvc2VkUmVj
dChyZWN0KTsKICAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwogICAgIGV4
cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdCgpLngoKSwgLWZyYW1lUmVjdCgpLnkoKSk7CiAKKyAg
ICBjb25zdCBib29sIHN5bmNYID0gbV9wbHVnaW5EaXNwbGF5ICYmIG1fcGx1Z2luRGlzcGxheSAh
PSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgIFFQaXhtYXAgcXREcmF3YWJsZSA9IFFQaXhtYXA6
OmZyb21YMTFQaXhtYXAobV9kcmF3YWJsZSwgUVBpeG1hcDo6RXhwbGljaXRseVNoYXJlZCk7CiAg
ICAgY29uc3QgaW50IGRyYXdhYmxlRGVwdGggPSAoKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3Qq
KW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoOwogICAgIEFTU0VSVChkcmF3YWJsZURlcHRoID09
IHF0RHJhd2FibGUuZGVwdGgoKSk7CkBAIC0yMzQsNiArMjUxLDI0IEBAIHZvaWQgUGx1Z2luVmll
dzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBv
aW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsg
ZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cG9zZWRSZWN0KTsKKyNlbHNlCisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZk
ZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZl
bnQgPSBkZmJFdmVudC51c2VyOworICAgIHVzZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAg
ICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAgIHVzZXJFdmVudC5kYXRhID0gJm1fbnBXaW5k
b3c7CisgICAgZGlzcGF0Y2hOUEV2ZW50KGRmYkV2ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRl
ciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworICAgIEludFJlY3QgZXhwb3NlZFJlY3Qo
cmVjdCk7CisgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKKyAgICBleHBv
c2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOworICAgIGNv
bnN0IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGUgb2xkTW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0
aW9uTW9kZSgpOworICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJh
bWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2Vk
UmVjdC55KCkpLCBtX3BpeG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0
KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUob2xkTW9kZSk7CisjZW5kaWYKIH0K
IAogLy8gVE9ETzogVW5pZnkgYWNyb3NzIHBvcnRzLgpAQCAtMjUyLDYgKzI4Nyw3IEBAIGJvb2wg
UGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQKICAgICByZXR1cm4gYWNjZXB0ZWQ7
CiB9CiAKKyNpZm5kZWYgWFBfREZCCiB2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgUVdpZGdldCogb3duZXJXaWRnZXQpCiB7CiAgICAgeEV2ZW50LT54YW55LnNlcmlh
bCA9IDA7IC8vIHdlIGFyZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5
IFggU2VydmVyCkBAIC0yOTMsNiArMzI5LDUzNCBAQCB2b2lkIHNldFhLZXlFdmVudFNwZWNpZmlj
RmllbGRzKFhFdmVudCogCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9IDA7CiAgICAgeEV2ZW50
LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGluaXREaXJl
Y3RGQktleWJvYXJkRXZlbnQoREZCSW5wdXRFdmVudCogZGZiRXZlbnQsIGNvbnN0IFFLZXlFdmVu
dCogcXRFdmVudCkKK3sKKyAgICBkZmJFdmVudC0+Y2xhenogPSBERkVDX0lOUFVUOworICAgIGRm
YkV2ZW50LT50eXBlID0gKHF0RXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzID8gRElF
VF9LRVlQUkVTUyA6IERJRVRfS0VZUkVMRUFTRSk7CisgICAgdW5zaWduZWQgaW50IGZsYWdzID0g
KERJRUZfS0VZU1lNQk9MIHwgRElFRl9NT0RJRklFUlMpOworICAgIGlmIChxdEV2ZW50LT5pc0F1
dG9SZXBlYXQoKSkKKyAgICAgICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisgICAgY29uc3QgUXQ6
OktleWJvYXJkTW9kaWZpZXIgbW9kaWZpZXJzW10gPSB7IFF0OjpTaGlmdE1vZGlmaWVyLCBRdDo6
Q29udHJvbE1vZGlmaWVyLCBRdDo6QWx0TW9kaWZpZXIsIFF0OjpNZXRhTW9kaWZpZXIgfTsKKyAg
ICBjb25zdCBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayBkZmJNb2RpZmllcnNbXSA9IHsgRElN
TV9TSElGVCwgRElNTV9DT05UUk9MLCBESU1NX0FMVCwgRElNTV9NRVRBIH07CisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygp
ICYgbW9kaWZpZXJzW2ldKQorICAgICAgICAgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERGQklu
cHV0RGV2aWNlTW9kaWZpZXJNYXNrKGRmYkV2ZW50LT5tb2RpZmllcnMgfCBkZmJNb2RpZmllcnNb
aV0pOworICAgIH0KKyAgICBzd2l0Y2ggKHF0RXZlbnQtPmtleSgpKSB7CisgICAgY2FzZSBRdDo6
S2V5X0JhY2tzcGFjZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0tT
UEFDRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQkFDS1NQQUNFOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVGFiOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfVEFCOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9UQUI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SZXR1cm46CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19SRVRVUk47CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0tQX0VOVEVSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXNjYXBlOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVNDQVBFOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9FU0NBUEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWxldGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUxFVEU7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0RFTEVURTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0xlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19DVVJTT1JfTEVGVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTEVGVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1JpZ2h0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1JJR0hUOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VwOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1VQOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0Rvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfRE9X
TjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRE9XTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0luc2VydDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0lOU0VSVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSU5TRVJUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0hPTUU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FbmQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FTkQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhZ2VVcDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBR0VfVVA7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1BBR0VfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYWdlRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBR0Vf
RE9XTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEFHRV9ET1dOOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUHJpbnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19QUklOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Bh
dXNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFVU0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZWxlY3Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TRUxFQ1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9P
cGVuVXJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfR09UTzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NsZWFyOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfQ0xFQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9N
ZW51OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUVOVTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hlbHA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19IRUxQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZVBh
Z2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19JTlRFUk5FVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xhdW5jaE1haWw6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRmF2b3JpdGVzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRkFWT1JJ
VEVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFjazoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Gb3J3YXJkOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRk9S
V0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZVVwOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVk9MVU1FX1VQOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1ZPTFVNRV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
Vm9sdW1lTXV0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01VVEU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVBsYXk6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19QTEFZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTWVkaWFTdG9wOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1RP
UDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUmVjb3JkOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVDT1JEOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTWVkaWFQcmV2aW91czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1BSRVZJT1VTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVk
aWFOZXh0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTkVYVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19GMjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMzoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0YzOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRjQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjU6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19GNTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
RjU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0Y2OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9GNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y3OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjc7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0Y3OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjg6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GODsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y5OworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9GOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxMDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMDsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRjEwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjExOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjExOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9GMTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MTI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTI7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1NoaWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0hJRlQ7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NISUZUX0w7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Db250cm9sOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfQ09OVFJPTDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQ09OVFJPTF9M
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9BTFRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdEdyOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUR1I7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
TUVUQTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTUVUQV9MOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3VwZXJfTDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NVUEVSOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TVVBF
Ul9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSHlwZXJfTDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0hZUEVSOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9IWVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fw
c0xvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DQVBTX0xPQ0s7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NBUFNfTE9DSzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X051bUxvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19OVU1fTE9DSzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTlVNX0xP
Q0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TY3JvbGxMb2NrOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0NST0xMX0xPQ0s7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1NDUk9MTF9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0RFQURfQUJPVkVET1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFk
X0Fib3ZlcmluZzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUJP
VkVSSU5HOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BY3V0ZToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUNVVEU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZlOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfREVBRF9CUkVWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0RlYWRfQ2Fyb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFE
X0NBUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DZWRpbGxhOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DRURJTExBOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DaXJjdW1mbGV4OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DSVJDVU1GTEVYOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRGVhZF9EaWFlcmVzaXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19ERUFEX0RJQUVSRVNJUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfRG91YmxlYWN1dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19ERUFEX0RPVUJMRUFDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9HcmF2ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfR1JB
VkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0lvdGE6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0lPVEE7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9EZWFkX01hY3JvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0RFQURfTUFDUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9PZ29uZWs6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX09H
T05FSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfU2VtaXZvaWNlZF9T
b3VuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfU0VNSVZPSUNF
RF9TT1VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVGlsZGU6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1RJTERFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Wb2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1ZPSUNFRF9TT1VORDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1NwYWNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NQQUNFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhjbGFtOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRVhDTEFNQVRJT05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1F1b3RlRGJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfUVVPVEFUSU9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtYmVyU2ln
bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX05VTUJFUl9TSUdOOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG9sbGFyOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRE9MTEFSX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9QZXJjZW50OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEVS
Q0VOVF9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQW1wZXJzYW5kOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQU1QRVJTQU5EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0FQT1NUUk9QSEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYXJlbkxlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVJF
TlRIRVNJU19MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFyZW5SaWdo
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX1JJR0hU
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXN0ZXJpc2s6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BU1RFUklTSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BsdXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19Q
TFVTX1NJR047CisgICAgICAgIGlmIChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpLZXlwYWRN
b2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0tQX1BMVVM7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db21tYToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0NPTU1BOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9DT01NQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01pbnVzOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUlOVVNfU0lHTjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfTUlOVVNfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1BlcmlvZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BFUklP
RDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEVSSU9EOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfU2xhc2g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TTEFTSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0xBU0g7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8wOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfMDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU18xOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8xOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTXzI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8zOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfMzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU180OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV80OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTXzU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV82OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfNjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU183OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV83OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfODoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTXzg7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV85OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfOTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfOTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbG9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfQ09MT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZW1pY29s
b246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TRU1JQ09MT047CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NFTUlDT0xPTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0xlc3M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19MRVNTX1RIQU5fU0lHTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTEVTU19T
SUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXF1YWw6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FUVVBTFNfU0lHTjsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfRVFVQUxTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9HcmVhdGVyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfR1JFQVRF
Ul9USEFOX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdWVzdGlvbjoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1FVRVNUSU9OX01BUks7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0FUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0E7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX0E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9C
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQjsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9DOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0Q7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Q7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9FOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Y6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9GOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0c7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0c7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0k6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9JOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9JOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0o7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9LOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSzsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0w6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9MOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTToK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX007CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX007CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9OOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X086CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9POwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9POworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X1A7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1A7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9ROgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfUTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9SOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9SOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1M7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1M7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU01BTExfVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1U6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9VOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9VOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Y7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX1Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9XOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVzsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfVzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1g6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9YOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9YOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
WToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1k7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9aOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWjsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0JyYWNrZXRMZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfU1FVQVJFX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0JhY2tzbGFzaDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTTEFT
SDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQkFDS1NMQVNIOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldFJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Bc2NpaUNpcmN1bToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0NJUkNVTUZMRVhfQUNDRU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfVW5kZXJzY29yZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1VO
REVSU0NPUkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZUxlZnQ6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9CUkFDS0VUX0xFRlQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYXI6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19WRVJUSUNBTF9CQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9CcmFjZVJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
Q1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fz
Y2lpVGlsZGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19USUxERTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICgocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6
U2hpZnRNb2RpZmllcikgJiYgcXRFdmVudC0+a2V5KCkgPj0gUXQ6OktleV9BICYmIHF0RXZlbnQt
PmtleSgpIDw9IFF0OjpLZXlfWikKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBERkJJ
bnB1dERldmljZUtleVN5bWJvbCgoZGZiRXZlbnQtPmtleV9zeW1ib2wgLSBESUtTX1NNQUxMX0Ep
ICsgRElLU19DQVBJVEFMX0EpOworICAgIGlmIChkZmJFdmVudC0+a2V5X2lkICE9IERJS0lfVU5L
Tk9XTikgeworICAgICAgICBmbGFncyA9IERGQklucHV0RXZlbnRGbGFncyhkZmJFdmVudC0+Zmxh
Z3MgfCBESUVGX0tFWUlEKTsKKyAgICAgICAgaWYgKGRmYkV2ZW50LT5rZXlfaWQgPj0gRElLSV8w
ICYmIGRmYkV2ZW50LT5rZXlfaWQgPD0gRElLSV85ICYmIHF0RXZlbnQtPm1vZGlmaWVycygpICYg
UXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERGQklu
cHV0RGV2aWNlS2V5SWRlbnRpZmllcihkZmJFdmVudC0+a2V5X2lkIC0gRElLSV8wICsgRElLSV9L
UF8wKTsKKyAgICB9CisgICAgZGZiRXZlbnQtPmZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGZs
YWdzKTsKK30KKyNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CkBAIC0zMDIsMTQgKzg2NiwyMSBAQCB2b2lkIFBsdWdp
blZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMo
KS5rZXl1cEV2ZW50KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2
ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtleUV2ZW50
U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsKKyNlbHNlCisgICAgREZCRXZlbnQgbnBF
dmVudDsKKyAgICBERkJJbnB1dEV2ZW50JiBpbnB1dCA9IG5wRXZlbnQuaW5wdXQ7CisgICAgaW5p
dERpcmVjdEZCS2V5Ym9hcmRFdmVudCgmaW5wdXQsIGV2ZW50LT5rZXlFdmVudCgpLT5xdEV2ZW50
KCkpOworI2VuZGlmCiAKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKKyNpZm5kZWYgWFBfREZCCiBzdGF0
aWMgdW5zaWduZWQgaW50IGlucHV0RXZlbnRTdGF0ZShNb3VzZUV2ZW50KiBldmVudCkKIHsKICAg
ICB1bnNpZ25lZCBpbnQgc3RhdGUgPSAwOwpAQCAtMzg0LDYgKzk1NSw0NSBAQCBzdGF0aWMgdm9p
ZCBzZXRYQ3Jvc3NpbmdFdmVudFNwZWNpZmljRmllCiAgICAgeGNyb3NzaW5nLnNhbWVfc2NyZWVu
ID0gdHJ1ZTsKICAgICB4Y3Jvc3NpbmcuZm9jdXMgPSBmYWxzZTsKIH0KKyNlbHNlCitzdGF0aWMg
aW5saW5lIHZvaWQgaW5pdERpcmVjdEZCTW91c2VFdmVudChERkJXaW5kb3dFdmVudCogZGZiRXZl
bnQsIGNvbnN0IE1vdXNlRXZlbnQqIGV2ZW50KQoreworICAgIGRmYkV2ZW50LT5jbGF6eiA9IERG
RUNfV0lORE9XOworCisgICAgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2
ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX0NPTlRST0w7CisgICAg
aWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9TSElGVDsK
KyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9BTFQ7
CisgICAgaWYgKGV2ZW50LT5tZXRhS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX01F
VEE7CisgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNr
KG1vZGlmaWVycyk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50
KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dOIDogRFdFVF9CVVRUT05VUCk7Cisg
ICAgICAgIHN3aXRjaCAoZXZlbnQtPmJ1dHRvbigpKSB7CisgICAgICAgIGNhc2UgTGVmdEJ1dHRv
bjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNaWRkbGVCdXR0b246CisgICAgICAgICAgICBkZmJFdmVu
dC0+YnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBSaWdodEJ1dHRvbjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX1JJR0hU
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBkZmJFdmVudC0+YnV0dG9ucyA9IERGQklucHV0RGV2aWNl
QnV0dG9uTWFzaygwKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gRFdFVF9NT1RJ
T047CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKyNlbmRpZgogCiB2
b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiB7CkBA
IC0zOTcsMTEgKzEwMDcsMTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1v
dXNlRQogCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgIH0KLQorICAgIEludFBv
aW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKKyNpZm5kZWYgWFBf
REZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKLSAg
ICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRl
cmVyKCktPmFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKSk7CiAKICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KQogICAgICAgICBzZXRYQnV0
dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKQEAg
LTQxMSwxMyArMTAyMSw0MCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91
c2VFCiAgICAgICAgIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2
ZW50LCBwb3N0Wm9vbVBvcyk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFk
aXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogCisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50
LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZW91dEV2ZW50KSB7CisgICAgICAgIG5wRXZlbnQuY2xhenogPSBERkVDX1dJTkRPVzsKKyAg
ICAgICAgbnBFdmVudC53aW5kb3cudHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBEV0VUX0xFQVZFKTsKKyAgICAgICAgbnBF
dmVudC53aW5kb3cueCA9IG5wRXZlbnQud2luZG93LmN4ID0gcG9zdFpvb21Qb3MueCgpOworICAg
ICAgICBucEV2ZW50LndpbmRvdy55ID0gbnBFdmVudC53aW5kb3cuY3kgPSBwb3N0Wm9vbVBvcy55
KCk7CiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47Cit9CisKKyAgICBERkJXaW5kb3dF
dmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAgbV9kZmJXaW5kb3ctPkdldElEKG1f
ZGZiV2luZG93LCAmd2luZG93LndpbmRvd19pZCk7CisgICAgaW5pdERpcmVjdEZCTW91c2VFdmVu
dCgmd2luZG93LCBldmVudCk7CisgICAgd2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAg
d2luZG93LnkgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJzb2x1dGVM
b2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4ID0gYWJz
b2x1dGVMb2NhdGlvbi54KCk7CisgICAgd2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7
CisKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVG
b2N1c0luRXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAg
ICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDI1LDEyICsxMDYyLDIxIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAgICBldmVudC50eXBlID0gOTsgLyogaW50
IGFzIFF0IHVuc2V0cyBGb2N1c0luICovCiAgICAgZXZlbnQubW9kZSA9IE5vdGlmeU5vcm1hbDsK
ICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOworICAgIGRpc3BhdGNoTlBFdmVu
dChucEV2ZW50KTsKIAorI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgm
bnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRv
dyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAg
IHdpbmRvdy50eXBlID0gRFdFVF9HT1RGT0NVUzsKICAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVu
dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkK
IHsKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgm
bnBFdmVudCk7CiAKQEAgLTQ0MCw2ICsxMDg2LDE1IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxl
Rm9jdXNPdXRFdmVudCgpCiAgICAgZXZlbnQuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKIAog
ICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbHNlCisgICAgREZCRXZlbnQgbnBFdmVu
dDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworICAgIERGQldp
bmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xhenogPSBE
RkVDX1dJTkRPVzsKKyAgICB3aW5kb3cudHlwZSA9IERXRVRfTE9TVEZPQ1VTOworICAgIGRpc3Bh
dGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgorCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0
UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTQ1Niw2ICsxMTExLDQ5IEBAIHZvaWQgUGx1
Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEkKICAgICAgICAgc2V0TlBXaW5kb3dJZk5l
ZWRlZCgpOwogfQogCisjaWZkZWYgWFBfREZCCitjbGFzcyBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIg
OiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgV2luZG93TW92ZUV2ZW50RmlsdGVyKGJv
b2wqIGcsIFBsdWdpblZpZXcqIHZpZXcsIFFXaWRnZXQqIHdhdGNoZWQpCisgICAgICAgIDogUU9i
amVjdCgwKQorICAgICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKGcpCisgICAgICAg
ICwgbV9wbHVnaW5WaWV3KHZpZXcpCisgICAgeworICAgICAgICBRX0FTU0VSVCh3YXRjaGVkKTsK
KyAgICAgICAgZm9yZXZlciB7CisgICAgICAgICAgICB3YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0
ZXIodGhpcyk7CisgICAgICAgICAgICBpZiAod2F0Y2hlZC0+aXNXaW5kb3coKSkKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJlbnRXaWRn
ZXQoKTsKKyAgICAgICAgICAgIGlmICghd2F0Y2hlZCkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9iamVjdCAqLCBRRXZl
bnQqIGUpCisgICAgeworICAgICAgICBpZiAoZS0+dHlwZSgpID09IFFFdmVudDo6TW92ZSB8fCBl
LT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUpIHsKKyAgICAgICAgICAgICptX2hhc1BlbmRpbmdH
ZW9tZXRyeUNoYW5nZSA9IHRydWU7CisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0KDEwLCB0aGlz
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdm9pZCB0
aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQorICAgIHsKKyAgICAgICAgaWYgKGUtPnRpbWVySWQo
KSA9PSBtX3RpbWVyLnRpbWVySWQoKSkgeworICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7Cisg
ICAgICAgICAgICBtX3BsdWdpblZpZXctPmZvcmNlUmVkcmF3KCk7CisgICAgICAgIH0KKyAgICB9
Citwcml2YXRlOgorICAgIGJvb2wqIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworICAgIFBs
dWdpblZpZXcqIG1fcGx1Z2luVmlldzsKKyAgICBRQmFzaWNUaW1lciBtX3RpbWVyOworfTsKKwor
I2VuZGlmCisKIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiB7CiAgICAg
aWYgKCFtX2lzU3RhcnRlZCB8fCAhcGFyZW50KCkgfHwgIW1fcGx1Z2luLT5wbHVnaW5GdW5jcygp
LT5zZXR3aW5kb3cpCkBAIC00OTIsNiArMTE5MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBX
aW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2Ns
aXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9j
bGlwUmVjdC5oZWlnaHQoKTsKICAgICB9IGVsc2UgeworI2lmbmRlZiBYUF9ERkIKICAgICAgICAg
bV9ucFdpbmRvdy54ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy55ID0gMDsKIApAQCAtNDk5LDYg
KzExOTgsMzkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAg
ICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBS
ZWN0LnJpZ2h0ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSAwOwor
I2Vsc2UKKyAgICAgICAgUVBvaW50IHBsdWdpblZpZXdHbG9iYWxQb3MgPSB3aW5kb3dDbGlwUmVj
dCgpLnRvcExlZnQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAg
ICAgaWYgKFFXaWRnZXQqIG93bmVyV2lkZ2V0ID0gY2xpZW50ID8gY2xpZW50LT5vd25lcldpZGdl
dCgpIDogMCkgeworICAgICAgICAgICAgaWYgKCFtX2V2ZW50RmlsdGVyKQorICAgICAgICAgICAg
ICAgIG1fZXZlbnRGaWx0ZXIgPSBuZXcgV2luZG93TW92ZUV2ZW50RmlsdGVyKCZtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZSwgdGhpcywgb3duZXJXaWRnZXQpOworICAgICAgICAgICAgcGx1Z2lu
Vmlld0dsb2JhbFBvcyA9IG93bmVyV2lkZ2V0LT5tYXBUb0dsb2JhbChwbHVnaW5WaWV3R2xvYmFs
UG9zKTsKKyAgICAgICAgICAgIGlmIChjb25zdCBRR3JhcGhpY3NXZWJWaWV3KiBpdGVtID0gcW9i
amVjdF9jYXN0PGNvbnN0IFFHcmFwaGljc1dlYlZpZXcqPihjbGllbnQtPnBsdWdpblBhcmVudCgp
KSkgeworICAgICAgICAgICAgICAgIFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkgJiYgIWl0ZW0tPnNj
ZW5lKCktPnZpZXdzKCkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICBjb25zdCBRR3JhcGhp
Y3NWaWV3KiB2aWV3ID0gaXRlbS0+c2NlbmUoKS0+dmlld3MoKS52YWx1ZSgwKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBRUG9pbnQgYWRkID0gdmlldy0+bWFwRnJvbVNjZW5lKGl0ZW0tPnBvcygp
KTsKKyAgICAgICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zICs9IGFkZDsKKyAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoKFFTaXplKShtX3dpbmRvd1JlY3Quc2l6ZSgpKSAhPSBt
X3BpeG1hcC5zaXplKCkpIHsKKyAgICAgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3dpbmRv
d1JlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50
KTsKKyAgICAgICAgfQorCisgICAgICAgIG1fbnBXaW5kb3cueCA9IHBsdWdpblZpZXdHbG9iYWxQ
b3MueCgpOworICAgICAgICBtX25wV2luZG93LnkgPSBwbHVnaW5WaWV3R2xvYmFsUG9zLnkoKTsK
KyAgICAgICAgY29uc3QgSW50UmVjdCBmcmFtZSA9IGZyYW1lUmVjdCgpOworICAgICAgICBtX25w
V2luZG93LndpZHRoID0gZnJhbWUud2lkdGgoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQg
PSBmcmFtZS5oZWlnaHQoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSBtX2Ns
aXBSZWN0LnkoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gbV9jbGlwUmVj
dC54KCk7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2NsaXBSZWN0Lndp
ZHRoKCkgKyBtX2NsaXBSZWN0LngoKSAtIDE7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3Qu
Ym90dG9tID0gbV9jbGlwUmVjdC5oZWlnaHQoKSArIG1fY2xpcFJlY3QueSgpIC0gMTsKKyAgICAg
ICAgbV9kZmJTdXJmYWNlID0gUVRfUFJFUEVORF9OQU1FU1BBQ0UocXRfZGlyZWN0ZmJfc3VyZmFj
ZV9mb3JfcGl4bWFwKG1fcGl4bWFwKSk7CisgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gbV9k
ZmJTdXJmYWNlOworICAgICAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVEcmF3YWJs
ZTsKKyNlbmRpZgogICAgIH0KIAogICAgIC8vIEZMQVNIIFdPUktBUk9VTkQ6IE9ubHkgc2V0IGlu
aXRpYWxseS4gTXVsdGlwbGUgY2FsbHMgdG8KQEAgLTU4NCwxNSArMTMxNiwxMiBAQCBib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoCiBib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpCiB7CiAgICAgc3dpdGNoICh2YXJpYWJsZSkgeworI2lmbmRlZiBYUF9ERkIKICAgICBj
YXNlIE5QTlZ4RGlzcGxheToKICAgICAgICAgKih2b2lkICoqKXZhbHVlID0gUVgxMUluZm86OmRp
c3BsYXkoKTsKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDoKLSAgICAgICAgKnJlc3VsdCA9
IE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgY2FzZSBO
UE5WbmV0c2NhcGVXaW5kb3c6IHsKICAgICAgICAgdm9pZCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KHZhbHVlKTsKICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKQEAgLTYw
MCw3ICsxMzI5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcgog
ICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLQorI2VuZGlmCiAgICAgY2FzZSBOUE5WVG9vbGtpdDoKICAgICAgICAgaWYgKG1fcGx1
Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya1JlcXVpcmVzR3RrVG9vbEtpdCkpIHsK
ICAgICAgICAgICAgICooKHVpbnQzMiAqKXZhbHVlKSA9IDI7CkBAIC02NDUsNiArMTM3NCw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIGludmFsaWRhdGUoKTsKIH0KIAor
I2lmbmRlZiBYUF9ERkIKIHN0YXRpYyBEaXNwbGF5ICpnZXRQbHVnaW5EaXNwbGF5KCkKIHsKICAg
ICAvLyBUaGUgcGx1Z2luIHRvb2xraXQgbWlnaHQgcnVuIHVzaW5nIGEgZGlmZmVyZW50IFggY29u
bmVjdGlvbi4gQXQgdGhlIG1vbWVudCwgd2Ugb25seQpAQCAtNzEwLDEyICsxNDQwLDE0IEBAIHN0
YXRpYyB2b2lkIGdldFZpc3VhbEFuZENvbG9ybWFwKGludCBkZXAKICAgICBpZiAoKnZpc3VhbCkK
ICAgICAgICAgKmNvbG9ybWFwID0gWENyZWF0ZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCks
IFFYMTFJbmZvOjphcHBSb290V2luZG93KCksICp2aXN1YWwsIEFsbG9jTm9uZSk7CiB9CisjZW5k
aWYKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9p
c1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNj
ZXNzZnVsbHkpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVu
Y3MoKS0+Z2V0dmFsdWUpIHsKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZp
ZXcodGhpcyk7CiAgICAgICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tz
KEpTQzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKQEAgLTc0MCwxMiArMTQ3Miw3MSBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgw
KTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0K
KyNlbHNlCisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgREZCV2luZG93SW5mbyogd3NJbmZvID0gMDsK
KyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0
V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGll
bnQtPm93bmVyV2lkZ2V0KCkpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAg
bV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgREZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZt
X2RmYik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworCisg
ICAgcmVzdWx0ID0gbV9kZmItPkdldERpc3BsYXlMYXllcihtX2RmYiwgRExJRF9QUklNQVJZLCAm
bV9kZmJEaXNwbGF5TGF5ZXIpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBn
b3RvIGVuZDsKKworICAgIHJlc3VsdCA9IG1fZGZiRGlzcGxheUxheWVyLT5HZXRXaW5kb3cobV9k
ZmJEaXNwbGF5TGF5ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxERkJXaW5kb3dJRD4oY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0
eSgiX3FfRGlyZWN0RkJXaW5kb3dJRCIpLnRvSW50KCkpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJm1fZGZiV2luZG93KTsKKyAgICBpZiAocmVzdWx0ICE9IERG
Ql9PSykKKyAgICAgICAgZ290byBlbmQ7CisgICAgd3NJbmZvID0gbmV3IERGQldpbmRvd0luZm87
CisgICAgd3NJbmZvLT5kZmIgPSBtX2RmYjsKKyAgICB3c0luZm8tPndpbmRvdyA9IG1fZGZiV2lu
ZG93OworICAgIHdzSW5mby0+bGF5ZXIgPSBtX2RmYkRpc3BsYXlMYXllcjsKKyAgICBtX25wV2lu
ZG93LndzX2luZm8gPSB3c0luZm87CisgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBl
RHJhd2FibGU7CisgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAwOyAvLyBOb3QgdXNlZD8KKyAgICBt
X25wV2luZG93LnggPSAwOworICAgIG1fbnBXaW5kb3cueSA9IDA7CisgICAgbV9ucFdpbmRvdy53
aWR0aCA9IC0xOworICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gLTE7CisKK2VuZDoKKyAgICBpZiAo
cmVzdWx0ICE9IERGQl9PSykgeworICAgICAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAg
ICAgIG1fZGZiV2luZG93LT5SZWxlYXNlKG1fZGZiV2luZG93KTsKKyAgICAgICAgICAgIG1fZGZi
V2luZG93ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2RmYkRpc3BsYXlMYXllcikK
KyAgICAgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlzcGxheUxheWVy
KTsKKworICAgICAgICBpZiAobV9kZmIpIHsKKyAgICAgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1f
ZGZiKTsKKyAgICAgICAgICAgIG1fZGZiID0gMDsKKyAgICAgICAgfQorICAgICAgICBEaXJlY3RG
QkVycm9yKCJQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkiLCByZXN1bHQpOworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHNo
b3coKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3
c2kgPSBuZXcgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+dHlwZSA9IDA7
Ci0KICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CiAgICAgICAgIGNvbnN0IFFYMTFJbmZvKiB4MTFJ
bmZvID0gJnBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKTsKIApAQCAtNzUzLDcgKzE1
NDQsNiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICB3c2ktPnZp
c3VhbCA9IChWaXN1YWwqKXgxMUluZm8tPnZpc3VhbCgpOwogICAgICAgICB3c2ktPmRlcHRoID0g
eDExSW5mby0+ZGVwdGgoKTsKICAgICAgICAgd3NpLT5jb2xvcm1hcCA9IHgxMUluZm8tPmNvbG9y
bWFwKCk7Ci0KICAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93Owog
ICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LT53aW5JZCgpOwogICAgICAgICBtX25wV2luZG93LndpZHRoID0gLTE7CkBAIC03ODIsOCArMTU3
Miw4IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIG1fbnBXaW5k
b3cud2lkdGggPSAtMTsKICAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKICAgICB9Ci0K
ICAgICBtX25wV2luZG93LndzX2luZm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1
Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxs
KSkpIHsKICAgICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7CkBAIC03OTgsMTEgKzE1ODgsMzMg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAor
I2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAo
UVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkK
ICAgICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsK
KyNlbHNlCisgICAgZGVsZXRlIG1fZXZlbnRGaWx0ZXI7CisgICAgbV9ldmVudEZpbHRlciA9IDA7
CisgICAgZGVsZXRlIHN0YXRpY19jYXN0PERGQldpbmRvd0luZm8qPihtX25wV2luZG93LndzX2lu
Zm8pOworICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7CisgICAgbV9waXhtYXAgPSBRUGl4bWFw
KCk7CisgICAgaWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgIG1fZGZiV2luZG93LT5SZWxlYXNl
KG1fZGZiV2luZG93KTsKKyAgICAgICAgbV9kZmJXaW5kb3cgPSAwOworfQorCisgICAgaWYgKG1f
ZGZiRGlzcGxheUxheWVyKSB7CisgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1f
ZGZiRGlzcGxheUxheWVyKTsKKyAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXIgPSAwOworICAgIH0K
KworICAgIGlmIChtX2RmYikgeworICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAg
ICAgIG1fZGZiID0gMDsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0
KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51106</attachid>
            <date>2010-03-18 16:01:26 -0700</date>
            <delta_ts>2010-03-18 16:03:00 -0700</delta_ts>
            <desc>Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</desc>
            <filename>patch.36171</filename>
            <type>text/plain</type>
            <size>86819</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTAtMDMtMTggIEFuZGVycyBCYWtrZW4gIDxBbmRlcnMgQmFra2Vu
IDxhZ2Jha2tlbkBnbWFpbC5jb20+PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVzcyBOUEFQ
SSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RGQi4gSXQn
cyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAgICAgIEZs
YXNobGl0ZS4gCisKKyAgICAgICAgVGhlIGNvZGUgaXMgbGFyZ2VseSBiYXNlZCBvbiB0aGUgUXQv
WDExIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd2xlc3MKKyAgICAgICAgTlBBUEkuIEl0IGFkZHMg
dGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2Vlbgor
ICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5JWCBpcyBkZWZpbmVkLiBUaGlzIG1l
YW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgIGZ1bmN0aW9uIHRoZSBzYW1lIHdheSBmb3Ig
WDExIGJ1aWxkcy4KKworICAgICAgICBTaW5jZSB0aGUgbm9ybWFsIHVzZSBjYXNlIGZvciBOUEFQ
SSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0ZXMKKyAgICAgICAgbGlrZSB5b3V0dWJl
IGl0J3MgaW1wb3J0YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGx1Z2luIGdldHMgYW4gdXBkYXRlZAor
ICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBtb3ZlcyBvciByZXNpemVzLiBU
aGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgZmFjdCB0aGF0IHRoZSB2aWRlbyB3aWxsIGJlIHJl
bmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIgcmF0aGVyCisgICAgICAgIHRoYW4gYWN0dWFs
bHkgaW50byB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgdGhhdCdzIGJlaW5nIHJlbmRlcmVkIHRvLgor
CisgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0ZXN0IGNhc2UgdGhhdCBJIGNvdWxkIGhlbHAgcGVv
cGxlIHNldCB1cCBmb3IgdGVzdGluZworICAgICAgICB3aXRoIFF0L1FXUyBEaXJlY3RGQiBidXQg
SSBkb24ndCBrbm93IGhvdyB0byBtYWtlIGl0IGF1dG9tYXRlZC4KKworICAgICAgICBUbyBlbmFi
bGUgTlBBUEkgZm9yIERpcmVjdEZCIHRoZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFrZSBzdXJlCisg
ICAgICAgIHFtYWtlLmNvbmYgY29udGFpbnMgdGhpcyBsaW5lOgorCisgICAgICAgIERFRklORVMg
Kz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUElfRElSRUNURkIKKworICAgICAgICBRdCBtdXN0
IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRoZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAoYXMK
KyAgICAgICAgb3Bwb3NlZCB0byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKworICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJyaWRnZS9ucGFw
aS5oOgorICAgICAgICAqIGJyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6aW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXREaXJlY3RG
Qk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91c2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OldpbmRvd01vdmVFdmVudEZp
bHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50Rmls
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6dGltZXJFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEwLTAzLTE4ICBEYXZpZCBIeWF0
dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnByaQkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC04Myw2ICs4MywxMCBAQCBncmVhdGVyVGhhbihRVF9NSU5PUl9WRVJTSU9OLCA1KSB7
CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERFRklO
RVMgKz0gRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MQogCiAjIE5lc2NhcGUgcGx1Z2lucyBz
dXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdp
bmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTU0LDE2ICsyMTU0LDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRT
Q0FQRV9QTFVHSU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMK
ICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAg
ICAgICAgICAgICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBf
REZCCisgICAgICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJ
UkVDVEZCCisgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisg
ICAgICAgICAgICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAgIENP
TkZJRyArPSB4MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNw
cAorICAgICAgICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFp
bmVyUXQuaAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IFwK
LSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgXAog
ICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAogICAg
ICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAgICAg
ICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5D
b250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3Jl
L2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVm
aW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAgICAgI2luY2x1ZGUgPFgx
MS9YdXRpbC5oPgogICAgICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHR5
cGVkZWYgc3RydWN0IF9OUFJlY3QKIH0gTlBSZWN0OwogCiAKLSNpZmRlZiBYUF9VTklYCisjaWYg
ZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAvKgogICogVW5peCBzcGVjaWZp
YyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICovCkBAIC01OTMsNiArNTkzLDkgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX05QRXZlbnQKICAgICB1aW50MzIgICB3UGFyYW07CiAgICAgdWludDMyICAg
bFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYgZGVmaW5lZCAoWFBfREZCKQorI2luY2x1ZGUgPGRp
cmVjdGZiLmg+Cit0eXBlZGVmIERGQkV2ZW50IE5QRXZlbnQ7CiAjZWxpZiBkZWZpbmVkIChYUF9V
TklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVudDsKICNlbHNlCkBAIC02MTQsNyArNjE3LDcgQEAg
dHlwZWRlZiBSZ25IYW5kbGUgTlBRRFJlZ2lvbjsKIHR5cGVkZWYgQ0dQYXRoUmVmIE5QQ0dSZWdp
b247CiAjZWxpZiBkZWZpbmVkKFhQX1dJTikKIHR5cGVkZWYgSFJHTiBOUFJlZ2lvbjsKLSNlbGlm
IGRlZmluZWQoWFBfVU5JWCkKKyNlbGlmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBf
REZCKQogdHlwZWRlZiBSZWdpb24gTlBSZWdpb247CiAjZWxpZiBkZWZpbmVkKFhQX1NZTUJJQU4p
CiB0eXBlZGVmIFFSZWdpb24qIE5QUmVnaW9uOwpJbmRleDogV2ViQ29yZS9icmlkZ2UvbnBydW50
aW1lX2ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmgJKHJldmlzaW9uIDU2MTg5KQorKysgV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lm
IGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9Y
cmVzb3VyY2UuaD4KIAogICAgICN1bmRlZiBOb25lCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CShyZXZpc2lvbiA1NjE4OSkKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAg
ICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lm
ZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAg
IGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxl
dGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAg
bV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAgLTgyNiw3ICs4MjYsNyBAQCBQbHVnaW5WaWV3OjpQ
bHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2Up
CiAgICAgLCBtX2hhdmVJbml0aWFsaXplZChmYWxzZSkKICAgICAsIG1faXNXYWl0aW5nVG9TdGFy
dChmYWxzZSkKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZCAoWFBfREZCKQogICAgICwgbV9uZWVkc1hFbWJlZChmYWxzZSkKICNlbmRpZgogI2lm
IE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtODQ3LDEwICs4
NDcsMTggQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbQogI2VuZGlm
CiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZC
CiAgICAgLCBtX2RyYXdhYmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1h
cCgwKQogICAgICwgbV9wbHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9ldmVudEZpbHRl
cigwKQorICAgICwgbV9kZmJTdXJmYWNlKDApCisgICAgLCBtX2RmYigwKQorICAgICwgbV9kZmJE
aXNwbGF5TGF5ZXIoMCkKKyAgICAsIG1fZGZiV2luZG93KDApCisjZW5kaWYKICNlbmRpZgogICAg
ICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVhbGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkK
SW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpZiBkZWZpbmVkIFhQX0RGQiAmJiBQTEFURk9STShRVCkKKyNpbmNs
dWRlIDxRUGl4bWFwPgorI2luY2x1ZGUgPGRpcmVjdGZiLmg+CisjZW5kaWYKIAogI2lmIE9TKFdJ
TkRPV1MpICYmIChQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQogdHlwZWRlZiBzdHJ1Y3Qg
SFdORF9fKiBIV05EOwpAQCAtMzEyLDcgKzMxNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCBtX2hhdmVJbml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lzV2FpdGluZ1Rv
U3RhcnQ7CiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZChYUF9ERkIpCiAgICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNlbmRpZgogCkBA
IC0zNjIsMTIgKzM2NiwyMSBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1BlbmRpbmdHZW9t
ZXRyeUNoYW5nZTsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2RyYXdhYmxlOwog
ICAgICAgICBWaXN1YWwqIG1fdmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2NvbG9ybWFwOwog
ICAgICAgICBEaXNwbGF5KiBtX3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9pZCBpbml0WEV2
ZW50KFhFdmVudCogZXZlbnQpOworI2Vsc2UKKyAgICAgICAgUU9iamVjdCAqbV9ldmVudEZpbHRl
cjsKKyAgICAgICAgUVBpeG1hcCBtX3BpeG1hcDsKKyAgICAgICAgSURpcmVjdEZCU3VyZmFjZSAq
bV9kZmJTdXJmYWNlOworICAgICAgICBJRGlyZWN0RkIgKm1fZGZiOworICAgICAgICBJRGlyZWN0
RkJEaXNwbGF5TGF5ZXIgKm1fZGZiRGlzcGxheUxheWVyOworICAgICAgICBJRGlyZWN0RkJXaW5k
b3cgKm1fZGZiV2luZG93OworI2VuZGlmCiAjZW5kaWYKIAogICAgICAgICBJbnRSZWN0IG1fY2xp
cFJlY3Q7IC8vIFRoZSBjbGlwIHJlY3QgdG8gYXBwbHkgdG8gYSB3aW5kb3dlZCBwbHVnLWluCklu
ZGV4OiBXZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAkocmV2aXNpb24gNTYxODkpCisrKyBX
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEs
NyArNTEsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJQbHVn
aW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKQEAg
LTY3LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxRS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UVBhaW50ZXI+
CiAjaW5jbHVkZSA8UVdpZGdldD4KKyNpZmRlZiBRX1dTX1gxMQogI2luY2x1ZGUgPFFYMTFJbmZv
PgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc0LDYgKzc0
LDIxIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVu
ZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2ljVGlt
ZXI+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8geworICAg
IElEaXJlY3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAg
SURpcmVjdEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCitleHRlcm4g
UV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3Bp
eG1hcChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5EX05BTUVTUEFDRQorI2VuZGlmCisK
ICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5o
PgogCkBAIC0xMDksNiArMTI0LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVjdCAmJiBtX2NsaXBSZWN0
ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAg
aWYgKCFtX2lzV2luZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0
LnNpemUoKSkgewogICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4
bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwpAQCAtMTE3LDYgKzEzMyw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93
LndzX2luZm8pLT5kZXB0aCk7CiAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9Cisj
ZW5kaWYKIAogICAgIC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRl
bHksIHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNo
YW5nZSA9IHRydWU7CkBAIC0xNjYsMTYgKzE4MywxNiBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogCiAKICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAKKyNpZm5k
ZWYgWFBfREZCCiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3YWJsZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1Z2luRGlzcGxheSAmJiBtX3Bs
dWdpbkRpc3BsYXkgIT0gUVgxMUluZm86OmRpc3BsYXkoKTsKLQogICAgIFFQYWludGVyKiBwYWlu
dGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgSW50UmVjdCBleHBvc2VkUmVj
dChyZWN0KTsKICAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwogICAgIGV4
cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdCgpLngoKSwgLWZyYW1lUmVjdCgpLnkoKSk7CiAKKyAg
ICBjb25zdCBib29sIHN5bmNYID0gbV9wbHVnaW5EaXNwbGF5ICYmIG1fcGx1Z2luRGlzcGxheSAh
PSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgIFFQaXhtYXAgcXREcmF3YWJsZSA9IFFQaXhtYXA6
OmZyb21YMTFQaXhtYXAobV9kcmF3YWJsZSwgUVBpeG1hcDo6RXhwbGljaXRseVNoYXJlZCk7CiAg
ICAgY29uc3QgaW50IGRyYXdhYmxlRGVwdGggPSAoKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3Qq
KW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoOwogICAgIEFTU0VSVChkcmF3YWJsZURlcHRoID09
IHF0RHJhd2FibGUuZGVwdGgoKSk7CkBAIC0yMzQsNiArMjUxLDI0IEBAIHZvaWQgUGx1Z2luVmll
dzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBv
aW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsg
ZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cG9zZWRSZWN0KTsKKyNlbHNlCisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZk
ZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZl
bnQgPSBkZmJFdmVudC51c2VyOworICAgIHVzZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAg
ICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAgIHVzZXJFdmVudC5kYXRhID0gJm1fbnBXaW5k
b3c7CisgICAgZGlzcGF0Y2hOUEV2ZW50KGRmYkV2ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRl
ciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworICAgIEludFJlY3QgZXhwb3NlZFJlY3Qo
cmVjdCk7CisgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKKyAgICBleHBv
c2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOworICAgIGNv
bnN0IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGUgb2xkTW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0
aW9uTW9kZSgpOworICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJh
bWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2Vk
UmVjdC55KCkpLCBtX3BpeG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0
KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUob2xkTW9kZSk7CisjZW5kaWYKIH0K
IAogLy8gVE9ETzogVW5pZnkgYWNyb3NzIHBvcnRzLgpAQCAtMjUyLDYgKzI4Nyw3IEBAIGJvb2wg
UGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQKICAgICByZXR1cm4gYWNjZXB0ZWQ7
CiB9CiAKKyNpZm5kZWYgWFBfREZCCiB2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgUVdpZGdldCogb3duZXJXaWRnZXQpCiB7CiAgICAgeEV2ZW50LT54YW55LnNlcmlh
bCA9IDA7IC8vIHdlIGFyZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5
IFggU2VydmVyCkBAIC0yOTMsNiArMzI5LDUzNCBAQCB2b2lkIHNldFhLZXlFdmVudFNwZWNpZmlj
RmllbGRzKFhFdmVudCogCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9IDA7CiAgICAgeEV2ZW50
LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGluaXREaXJl
Y3RGQktleWJvYXJkRXZlbnQoREZCSW5wdXRFdmVudCogZGZiRXZlbnQsIGNvbnN0IFFLZXlFdmVu
dCogcXRFdmVudCkKK3sKKyAgICBkZmJFdmVudC0+Y2xhenogPSBERkVDX0lOUFVUOworICAgIGRm
YkV2ZW50LT50eXBlID0gKHF0RXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzID8gRElF
VF9LRVlQUkVTUyA6IERJRVRfS0VZUkVMRUFTRSk7CisgICAgdW5zaWduZWQgaW50IGZsYWdzID0g
KERJRUZfS0VZU1lNQk9MIHwgRElFRl9NT0RJRklFUlMpOworICAgIGlmIChxdEV2ZW50LT5pc0F1
dG9SZXBlYXQoKSkKKyAgICAgICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisgICAgY29uc3QgUXQ6
OktleWJvYXJkTW9kaWZpZXIgbW9kaWZpZXJzW10gPSB7IFF0OjpTaGlmdE1vZGlmaWVyLCBRdDo6
Q29udHJvbE1vZGlmaWVyLCBRdDo6QWx0TW9kaWZpZXIsIFF0OjpNZXRhTW9kaWZpZXIgfTsKKyAg
ICBjb25zdCBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayBkZmJNb2RpZmllcnNbXSA9IHsgRElN
TV9TSElGVCwgRElNTV9DT05UUk9MLCBESU1NX0FMVCwgRElNTV9NRVRBIH07CisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygp
ICYgbW9kaWZpZXJzW2ldKQorICAgICAgICAgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERGQklu
cHV0RGV2aWNlTW9kaWZpZXJNYXNrKGRmYkV2ZW50LT5tb2RpZmllcnMgfCBkZmJNb2RpZmllcnNb
aV0pOworICAgIH0KKyAgICBzd2l0Y2ggKHF0RXZlbnQtPmtleSgpKSB7CisgICAgY2FzZSBRdDo6
S2V5X0JhY2tzcGFjZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0tT
UEFDRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQkFDS1NQQUNFOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVGFiOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfVEFCOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9UQUI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SZXR1cm46CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19SRVRVUk47CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0tQX0VOVEVSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXNjYXBlOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVNDQVBFOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9FU0NBUEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWxldGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUxFVEU7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0RFTEVURTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0xlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19DVVJTT1JfTEVGVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTEVGVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1JpZ2h0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1JJR0hUOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VwOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1VQOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0Rvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfRE9X
TjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRE9XTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0luc2VydDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0lOU0VSVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSU5TRVJUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0hPTUU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FbmQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FTkQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhZ2VVcDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBR0VfVVA7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1BBR0VfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYWdlRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBR0Vf
RE9XTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEFHRV9ET1dOOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUHJpbnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19QUklOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Bh
dXNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFVU0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZWxlY3Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TRUxFQ1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9P
cGVuVXJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfR09UTzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NsZWFyOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfQ0xFQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9N
ZW51OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUVOVTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hlbHA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19IRUxQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZVBh
Z2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19JTlRFUk5FVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xhdW5jaE1haWw6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRmF2b3JpdGVzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRkFWT1JJ
VEVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFjazoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Gb3J3YXJkOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRk9S
V0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZVVwOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVk9MVU1FX1VQOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1ZPTFVNRV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
Vm9sdW1lTXV0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01VVEU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVBsYXk6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19QTEFZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTWVkaWFTdG9wOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1RP
UDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUmVjb3JkOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVDT1JEOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTWVkaWFQcmV2aW91czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1BSRVZJT1VTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVk
aWFOZXh0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTkVYVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19GMjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMzoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0YzOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRjQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjU6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19GNTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
RjU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0Y2OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9GNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y3OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjc7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0Y3OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjg6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GODsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y5OworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9GOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxMDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMDsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRjEwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjExOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjExOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9GMTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MTI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTI7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1NoaWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0hJRlQ7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NISUZUX0w7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Db250cm9sOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfQ09OVFJPTDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQ09OVFJPTF9M
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9BTFRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdEdyOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUR1I7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
TUVUQTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTUVUQV9MOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3VwZXJfTDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NVUEVSOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TVVBF
Ul9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSHlwZXJfTDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0hZUEVSOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9IWVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fw
c0xvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DQVBTX0xPQ0s7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NBUFNfTE9DSzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X051bUxvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19OVU1fTE9DSzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTlVNX0xP
Q0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TY3JvbGxMb2NrOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0NST0xMX0xPQ0s7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1NDUk9MTF9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0RFQURfQUJPVkVET1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFk
X0Fib3ZlcmluZzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUJP
VkVSSU5HOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BY3V0ZToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUNVVEU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZlOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfREVBRF9CUkVWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0RlYWRfQ2Fyb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFE
X0NBUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DZWRpbGxhOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DRURJTExBOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DaXJjdW1mbGV4OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DSVJDVU1GTEVYOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRGVhZF9EaWFlcmVzaXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19ERUFEX0RJQUVSRVNJUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfRG91YmxlYWN1dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19ERUFEX0RPVUJMRUFDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9HcmF2ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfR1JB
VkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0lvdGE6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0lPVEE7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9EZWFkX01hY3JvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0RFQURfTUFDUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9PZ29uZWs6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX09H
T05FSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfU2VtaXZvaWNlZF9T
b3VuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfU0VNSVZPSUNF
RF9TT1VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVGlsZGU6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1RJTERFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Wb2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1ZPSUNFRF9TT1VORDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1NwYWNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NQQUNFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhjbGFtOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRVhDTEFNQVRJT05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1F1b3RlRGJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfUVVPVEFUSU9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtYmVyU2ln
bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX05VTUJFUl9TSUdOOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG9sbGFyOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRE9MTEFSX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9QZXJjZW50OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEVS
Q0VOVF9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQW1wZXJzYW5kOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQU1QRVJTQU5EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0FQT1NUUk9QSEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYXJlbkxlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVJF
TlRIRVNJU19MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFyZW5SaWdo
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX1JJR0hU
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXN0ZXJpc2s6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BU1RFUklTSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BsdXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19Q
TFVTX1NJR047CisgICAgICAgIGlmIChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpLZXlwYWRN
b2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0tQX1BMVVM7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db21tYToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0NPTU1BOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9DT01NQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01pbnVzOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUlOVVNfU0lHTjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfTUlOVVNfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1BlcmlvZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BFUklP
RDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEVSSU9EOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfU2xhc2g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TTEFTSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0xBU0g7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8wOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfMDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU18xOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8xOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTXzI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8zOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfMzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU180OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV80OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTXzU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV82OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfNjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU183OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV83OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfODoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTXzg7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV85OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfOTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfOTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbG9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfQ09MT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZW1pY29s
b246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TRU1JQ09MT047CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NFTUlDT0xPTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0xlc3M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19MRVNTX1RIQU5fU0lHTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTEVTU19T
SUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXF1YWw6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FUVVBTFNfU0lHTjsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfRVFVQUxTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9HcmVhdGVyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfR1JFQVRF
Ul9USEFOX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdWVzdGlvbjoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1FVRVNUSU9OX01BUks7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0FUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0E7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX0E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9C
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQjsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9DOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0Q7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Q7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9FOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Y6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9GOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0c7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0c7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0k6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9JOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9JOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0o7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9LOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSzsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0w6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9MOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTToK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX007CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX007CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9OOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X086CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9POwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9POworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X1A7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1A7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9ROgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfUTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9SOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9SOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1M7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1M7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU01BTExfVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1U6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9VOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9VOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Y7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX1Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9XOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVzsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfVzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1g6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9YOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9YOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
WToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1k7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9aOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWjsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0JyYWNrZXRMZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfU1FVQVJFX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0JhY2tzbGFzaDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTTEFT
SDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQkFDS1NMQVNIOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldFJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Bc2NpaUNpcmN1bToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0NJUkNVTUZMRVhfQUNDRU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfVW5kZXJzY29yZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1VO
REVSU0NPUkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZUxlZnQ6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9CUkFDS0VUX0xFRlQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYXI6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19WRVJUSUNBTF9CQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9CcmFjZVJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
Q1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fz
Y2lpVGlsZGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19USUxERTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICgocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6
U2hpZnRNb2RpZmllcikgJiYgcXRFdmVudC0+a2V5KCkgPj0gUXQ6OktleV9BICYmIHF0RXZlbnQt
PmtleSgpIDw9IFF0OjpLZXlfWikKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBERkJJ
bnB1dERldmljZUtleVN5bWJvbCgoZGZiRXZlbnQtPmtleV9zeW1ib2wgLSBESUtTX1NNQUxMX0Ep
ICsgRElLU19DQVBJVEFMX0EpOworICAgIGlmIChkZmJFdmVudC0+a2V5X2lkICE9IERJS0lfVU5L
Tk9XTikgeworICAgICAgICBmbGFncyA9IERGQklucHV0RXZlbnRGbGFncyhkZmJFdmVudC0+Zmxh
Z3MgfCBESUVGX0tFWUlEKTsKKyAgICAgICAgaWYgKGRmYkV2ZW50LT5rZXlfaWQgPj0gRElLSV8w
ICYmIGRmYkV2ZW50LT5rZXlfaWQgPD0gRElLSV85ICYmIHF0RXZlbnQtPm1vZGlmaWVycygpICYg
UXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERGQklu
cHV0RGV2aWNlS2V5SWRlbnRpZmllcihkZmJFdmVudC0+a2V5X2lkIC0gRElLSV8wICsgRElLSV9L
UF8wKTsKKyAgICB9CisgICAgZGZiRXZlbnQtPmZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGZs
YWdzKTsKK30KKyNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CkBAIC0zMDIsMTQgKzg2NiwyMSBAQCB2b2lkIFBsdWdp
blZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMo
KS5rZXl1cEV2ZW50KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2
ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtleUV2ZW50
U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsKKyNlbHNlCisgICAgREZCRXZlbnQgbnBF
dmVudDsKKyAgICBERkJJbnB1dEV2ZW50JiBpbnB1dCA9IG5wRXZlbnQuaW5wdXQ7CisgICAgaW5p
dERpcmVjdEZCS2V5Ym9hcmRFdmVudCgmaW5wdXQsIGV2ZW50LT5rZXlFdmVudCgpLT5xdEV2ZW50
KCkpOworI2VuZGlmCiAKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKKyNpZm5kZWYgWFBfREZCCiBzdGF0
aWMgdW5zaWduZWQgaW50IGlucHV0RXZlbnRTdGF0ZShNb3VzZUV2ZW50KiBldmVudCkKIHsKICAg
ICB1bnNpZ25lZCBpbnQgc3RhdGUgPSAwOwpAQCAtMzg0LDYgKzk1NSw0NSBAQCBzdGF0aWMgdm9p
ZCBzZXRYQ3Jvc3NpbmdFdmVudFNwZWNpZmljRmllCiAgICAgeGNyb3NzaW5nLnNhbWVfc2NyZWVu
ID0gdHJ1ZTsKICAgICB4Y3Jvc3NpbmcuZm9jdXMgPSBmYWxzZTsKIH0KKyNlbHNlCitzdGF0aWMg
aW5saW5lIHZvaWQgaW5pdERpcmVjdEZCTW91c2VFdmVudChERkJXaW5kb3dFdmVudCogZGZiRXZl
bnQsIGNvbnN0IE1vdXNlRXZlbnQqIGV2ZW50KQoreworICAgIGRmYkV2ZW50LT5jbGF6eiA9IERG
RUNfV0lORE9XOworCisgICAgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2
ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX0NPTlRST0w7CisgICAg
aWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9TSElGVDsK
KyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9BTFQ7
CisgICAgaWYgKGV2ZW50LT5tZXRhS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX01F
VEE7CisgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNr
KG1vZGlmaWVycyk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50
KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dOIDogRFdFVF9CVVRUT05VUCk7Cisg
ICAgICAgIHN3aXRjaCAoZXZlbnQtPmJ1dHRvbigpKSB7CisgICAgICAgIGNhc2UgTGVmdEJ1dHRv
bjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNaWRkbGVCdXR0b246CisgICAgICAgICAgICBkZmJFdmVu
dC0+YnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBSaWdodEJ1dHRvbjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX1JJR0hU
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBkZmJFdmVudC0+YnV0dG9ucyA9IERGQklucHV0RGV2aWNl
QnV0dG9uTWFzaygwKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gRFdFVF9NT1RJ
T047CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKyNlbmRpZgogCiB2
b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiB7CkBA
IC0zOTcsMTEgKzEwMDcsMTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1v
dXNlRQogCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgIH0KLQorICAgIEludFBv
aW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKKyNpZm5kZWYgWFBf
REZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKLSAg
ICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRl
cmVyKCktPmFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKSk7CiAKICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KQogICAgICAgICBzZXRYQnV0
dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKQEAg
LTQxMSwxMyArMTAyMSw0MCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91
c2VFCiAgICAgICAgIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2
ZW50LCBwb3N0Wm9vbVBvcyk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFk
aXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogCisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50
LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZW91dEV2ZW50KSB7CisgICAgICAgIG5wRXZlbnQuY2xhenogPSBERkVDX1dJTkRPVzsKKyAg
ICAgICAgbnBFdmVudC53aW5kb3cudHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBEV0VUX0xFQVZFKTsKKyAgICAgICAgbnBF
dmVudC53aW5kb3cueCA9IG5wRXZlbnQud2luZG93LmN4ID0gcG9zdFpvb21Qb3MueCgpOworICAg
ICAgICBucEV2ZW50LndpbmRvdy55ID0gbnBFdmVudC53aW5kb3cuY3kgPSBwb3N0Wm9vbVBvcy55
KCk7CiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47Cit9CisKKyAgICBERkJXaW5kb3dF
dmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAgbV9kZmJXaW5kb3ctPkdldElEKG1f
ZGZiV2luZG93LCAmd2luZG93LndpbmRvd19pZCk7CisgICAgaW5pdERpcmVjdEZCTW91c2VFdmVu
dCgmd2luZG93LCBldmVudCk7CisgICAgd2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAg
d2luZG93LnkgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJzb2x1dGVM
b2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4ID0gYWJz
b2x1dGVMb2NhdGlvbi54KCk7CisgICAgd2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7
CisKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVG
b2N1c0luRXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAg
ICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDI1LDEyICsxMDYyLDIxIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAgICBldmVudC50eXBlID0gOTsgLyogaW50
IGFzIFF0IHVuc2V0cyBGb2N1c0luICovCiAgICAgZXZlbnQubW9kZSA9IE5vdGlmeU5vcm1hbDsK
ICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOworICAgIGRpc3BhdGNoTlBFdmVu
dChucEV2ZW50KTsKIAorI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgm
bnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRv
dyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAg
IHdpbmRvdy50eXBlID0gRFdFVF9HT1RGT0NVUzsKICAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVu
dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkK
IHsKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgm
bnBFdmVudCk7CiAKQEAgLTQ0MCw2ICsxMDg2LDE1IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxl
Rm9jdXNPdXRFdmVudCgpCiAgICAgZXZlbnQuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKIAog
ICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbHNlCisgICAgREZCRXZlbnQgbnBFdmVu
dDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworICAgIERGQldp
bmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xhenogPSBE
RkVDX1dJTkRPVzsKKyAgICB3aW5kb3cudHlwZSA9IERXRVRfTE9TVEZPQ1VTOworICAgIGRpc3Bh
dGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgorCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0
UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTQ1Niw2ICsxMTExLDQ5IEBAIHZvaWQgUGx1
Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEkKICAgICAgICAgc2V0TlBXaW5kb3dJZk5l
ZWRlZCgpOwogfQogCisjaWZkZWYgWFBfREZCCitjbGFzcyBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIg
OiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgV2luZG93TW92ZUV2ZW50RmlsdGVyKGJv
b2wqIGcsIFBsdWdpblZpZXcqIHZpZXcsIFFXaWRnZXQqIHdhdGNoZWQpCisgICAgICAgIDogUU9i
amVjdCgwKQorICAgICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKGcpCisgICAgICAg
ICwgbV9wbHVnaW5WaWV3KHZpZXcpCisgICAgeworICAgICAgICBRX0FTU0VSVCh3YXRjaGVkKTsK
KyAgICAgICAgZm9yZXZlciB7CisgICAgICAgICAgICB3YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0
ZXIodGhpcyk7CisgICAgICAgICAgICBpZiAod2F0Y2hlZC0+aXNXaW5kb3coKSkKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJlbnRXaWRn
ZXQoKTsKKyAgICAgICAgICAgIGlmICghd2F0Y2hlZCkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9iamVjdCAqLCBRRXZl
bnQqIGUpCisgICAgeworICAgICAgICBpZiAoZS0+dHlwZSgpID09IFFFdmVudDo6TW92ZSB8fCBl
LT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUpIHsKKyAgICAgICAgICAgICptX2hhc1BlbmRpbmdH
ZW9tZXRyeUNoYW5nZSA9IHRydWU7CisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0KDEwLCB0aGlz
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdm9pZCB0
aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQorICAgIHsKKyAgICAgICAgaWYgKGUtPnRpbWVySWQo
KSA9PSBtX3RpbWVyLnRpbWVySWQoKSkgeworICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7Cisg
ICAgICAgICAgICBtX3BsdWdpblZpZXctPmZvcmNlUmVkcmF3KCk7CisgICAgICAgIH0KKyAgICB9
Citwcml2YXRlOgorICAgIGJvb2wqIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworICAgIFBs
dWdpblZpZXcqIG1fcGx1Z2luVmlldzsKKyAgICBRQmFzaWNUaW1lciBtX3RpbWVyOworfTsKKwor
I2VuZGlmCisKIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiB7CiAgICAg
aWYgKCFtX2lzU3RhcnRlZCB8fCAhcGFyZW50KCkgfHwgIW1fcGx1Z2luLT5wbHVnaW5GdW5jcygp
LT5zZXR3aW5kb3cpCkBAIC00OTIsNiArMTE5MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBX
aW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2Ns
aXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9j
bGlwUmVjdC5oZWlnaHQoKTsKICAgICB9IGVsc2UgeworI2lmbmRlZiBYUF9ERkIKICAgICAgICAg
bV9ucFdpbmRvdy54ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy55ID0gMDsKIApAQCAtNDk5LDYg
KzExOTgsMzkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAg
ICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBS
ZWN0LnJpZ2h0ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSAwOwor
I2Vsc2UKKyAgICAgICAgUVBvaW50IHBsdWdpblZpZXdHbG9iYWxQb3MgPSB3aW5kb3dDbGlwUmVj
dCgpLnRvcExlZnQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAg
ICAgaWYgKFFXaWRnZXQqIG93bmVyV2lkZ2V0ID0gY2xpZW50ID8gY2xpZW50LT5vd25lcldpZGdl
dCgpIDogMCkgeworICAgICAgICAgICAgaWYgKCFtX2V2ZW50RmlsdGVyKQorICAgICAgICAgICAg
ICAgIG1fZXZlbnRGaWx0ZXIgPSBuZXcgV2luZG93TW92ZUV2ZW50RmlsdGVyKCZtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZSwgdGhpcywgb3duZXJXaWRnZXQpOworICAgICAgICAgICAgcGx1Z2lu
Vmlld0dsb2JhbFBvcyA9IG93bmVyV2lkZ2V0LT5tYXBUb0dsb2JhbChwbHVnaW5WaWV3R2xvYmFs
UG9zKTsKKyAgICAgICAgICAgIGlmIChjb25zdCBRR3JhcGhpY3NXZWJWaWV3KiBpdGVtID0gcW9i
amVjdF9jYXN0PGNvbnN0IFFHcmFwaGljc1dlYlZpZXcqPihjbGllbnQtPnBsdWdpblBhcmVudCgp
KSkgeworICAgICAgICAgICAgICAgIFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkgJiYgIWl0ZW0tPnNj
ZW5lKCktPnZpZXdzKCkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICBjb25zdCBRR3JhcGhp
Y3NWaWV3KiB2aWV3ID0gaXRlbS0+c2NlbmUoKS0+dmlld3MoKS52YWx1ZSgwKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBRUG9pbnQgYWRkID0gdmlldy0+bWFwRnJvbVNjZW5lKGl0ZW0tPnBvcygp
KTsKKyAgICAgICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zICs9IGFkZDsKKyAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoKFFTaXplKShtX3dpbmRvd1JlY3Quc2l6ZSgpKSAhPSBt
X3BpeG1hcC5zaXplKCkpIHsKKyAgICAgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3dpbmRv
d1JlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50
KTsKKyAgICAgICAgfQorCisgICAgICAgIG1fbnBXaW5kb3cueCA9IHBsdWdpblZpZXdHbG9iYWxQ
b3MueCgpOworICAgICAgICBtX25wV2luZG93LnkgPSBwbHVnaW5WaWV3R2xvYmFsUG9zLnkoKTsK
KyAgICAgICAgY29uc3QgSW50UmVjdCBmcmFtZSA9IGZyYW1lUmVjdCgpOworICAgICAgICBtX25w
V2luZG93LndpZHRoID0gZnJhbWUud2lkdGgoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQg
PSBmcmFtZS5oZWlnaHQoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSBtX2Ns
aXBSZWN0LnkoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gbV9jbGlwUmVj
dC54KCk7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2NsaXBSZWN0Lndp
ZHRoKCkgKyBtX2NsaXBSZWN0LngoKSAtIDE7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3Qu
Ym90dG9tID0gbV9jbGlwUmVjdC5oZWlnaHQoKSArIG1fY2xpcFJlY3QueSgpIC0gMTsKKyAgICAg
ICAgbV9kZmJTdXJmYWNlID0gUVRfUFJFUEVORF9OQU1FU1BBQ0UocXRfZGlyZWN0ZmJfc3VyZmFj
ZV9mb3JfcGl4bWFwKG1fcGl4bWFwKSk7CisgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gbV9k
ZmJTdXJmYWNlOworICAgICAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVEcmF3YWJs
ZTsKKyNlbmRpZgogICAgIH0KIAogICAgIC8vIEZMQVNIIFdPUktBUk9VTkQ6IE9ubHkgc2V0IGlu
aXRpYWxseS4gTXVsdGlwbGUgY2FsbHMgdG8KQEAgLTU4NCwxNSArMTMxNiwxMiBAQCBib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoCiBib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpCiB7CiAgICAgc3dpdGNoICh2YXJpYWJsZSkgeworI2lmbmRlZiBYUF9ERkIKICAgICBj
YXNlIE5QTlZ4RGlzcGxheToKICAgICAgICAgKih2b2lkICoqKXZhbHVlID0gUVgxMUluZm86OmRp
c3BsYXkoKTsKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDoKLSAgICAgICAgKnJlc3VsdCA9
IE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgY2FzZSBO
UE5WbmV0c2NhcGVXaW5kb3c6IHsKICAgICAgICAgdm9pZCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KHZhbHVlKTsKICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKQEAgLTYw
MCw3ICsxMzI5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcgog
ICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLQorI2VuZGlmCiAgICAgY2FzZSBOUE5WVG9vbGtpdDoKICAgICAgICAgaWYgKG1fcGx1
Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya1JlcXVpcmVzR3RrVG9vbEtpdCkpIHsK
ICAgICAgICAgICAgICooKHVpbnQzMiAqKXZhbHVlKSA9IDI7CkBAIC02NDUsNiArMTM3NCw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIGludmFsaWRhdGUoKTsKIH0KIAor
I2lmbmRlZiBYUF9ERkIKIHN0YXRpYyBEaXNwbGF5ICpnZXRQbHVnaW5EaXNwbGF5KCkKIHsKICAg
ICAvLyBUaGUgcGx1Z2luIHRvb2xraXQgbWlnaHQgcnVuIHVzaW5nIGEgZGlmZmVyZW50IFggY29u
bmVjdGlvbi4gQXQgdGhlIG1vbWVudCwgd2Ugb25seQpAQCAtNzEwLDEyICsxNDQwLDE0IEBAIHN0
YXRpYyB2b2lkIGdldFZpc3VhbEFuZENvbG9ybWFwKGludCBkZXAKICAgICBpZiAoKnZpc3VhbCkK
ICAgICAgICAgKmNvbG9ybWFwID0gWENyZWF0ZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCks
IFFYMTFJbmZvOjphcHBSb290V2luZG93KCksICp2aXN1YWwsIEFsbG9jTm9uZSk7CiB9CisjZW5k
aWYKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9p
c1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNj
ZXNzZnVsbHkpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVu
Y3MoKS0+Z2V0dmFsdWUpIHsKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZp
ZXcodGhpcyk7CiAgICAgICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tz
KEpTQzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKQEAgLTc0MCwxMiArMTQ3Miw3MSBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgw
KTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0K
KyNlbHNlCisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgREZCV2luZG93SW5mbyogd3NJbmZvID0gMDsK
KyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0
V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGll
bnQtPm93bmVyV2lkZ2V0KCkpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAg
bV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgREZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZt
X2RmYik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworCisg
ICAgcmVzdWx0ID0gbV9kZmItPkdldERpc3BsYXlMYXllcihtX2RmYiwgRExJRF9QUklNQVJZLCAm
bV9kZmJEaXNwbGF5TGF5ZXIpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBn
b3RvIGVuZDsKKworICAgIHJlc3VsdCA9IG1fZGZiRGlzcGxheUxheWVyLT5HZXRXaW5kb3cobV9k
ZmJEaXNwbGF5TGF5ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxERkJXaW5kb3dJRD4oY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0
eSgiX3FfRGlyZWN0RkJXaW5kb3dJRCIpLnRvSW50KCkpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJm1fZGZiV2luZG93KTsKKyAgICBpZiAocmVzdWx0ICE9IERG
Ql9PSykKKyAgICAgICAgZ290byBlbmQ7CisgICAgd3NJbmZvID0gbmV3IERGQldpbmRvd0luZm87
CisgICAgd3NJbmZvLT5kZmIgPSBtX2RmYjsKKyAgICB3c0luZm8tPndpbmRvdyA9IG1fZGZiV2lu
ZG93OworICAgIHdzSW5mby0+bGF5ZXIgPSBtX2RmYkRpc3BsYXlMYXllcjsKKyAgICBtX25wV2lu
ZG93LndzX2luZm8gPSB3c0luZm87CisgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBl
RHJhd2FibGU7CisgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAwOyAvLyBOb3QgdXNlZD8KKyAgICBt
X25wV2luZG93LnggPSAwOworICAgIG1fbnBXaW5kb3cueSA9IDA7CisgICAgbV9ucFdpbmRvdy53
aWR0aCA9IC0xOworICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gLTE7CisKK2VuZDoKKyAgICBpZiAo
cmVzdWx0ICE9IERGQl9PSykgeworICAgICAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAg
ICAgIG1fZGZiV2luZG93LT5SZWxlYXNlKG1fZGZiV2luZG93KTsKKyAgICAgICAgICAgIG1fZGZi
V2luZG93ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2RmYkRpc3BsYXlMYXllcikK
KyAgICAgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlzcGxheUxheWVy
KTsKKworICAgICAgICBpZiAobV9kZmIpIHsKKyAgICAgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1f
ZGZiKTsKKyAgICAgICAgICAgIG1fZGZiID0gMDsKKyAgICAgICAgfQorICAgICAgICBEaXJlY3RG
QkVycm9yKCJQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkiLCByZXN1bHQpOworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHNo
b3coKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3
c2kgPSBuZXcgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+dHlwZSA9IDA7
Ci0KICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CiAgICAgICAgIGNvbnN0IFFYMTFJbmZvKiB4MTFJ
bmZvID0gJnBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKTsKIApAQCAtNzUzLDcgKzE1
NDQsNiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICB3c2ktPnZp
c3VhbCA9IChWaXN1YWwqKXgxMUluZm8tPnZpc3VhbCgpOwogICAgICAgICB3c2ktPmRlcHRoID0g
eDExSW5mby0+ZGVwdGgoKTsKICAgICAgICAgd3NpLT5jb2xvcm1hcCA9IHgxMUluZm8tPmNvbG9y
bWFwKCk7Ci0KICAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93Owog
ICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LT53aW5JZCgpOwogICAgICAgICBtX25wV2luZG93LndpZHRoID0gLTE7CkBAIC03ODIsOCArMTU3
Miw4IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIG1fbnBXaW5k
b3cud2lkdGggPSAtMTsKICAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKICAgICB9Ci0K
ICAgICBtX25wV2luZG93LndzX2luZm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1
Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxs
KSkpIHsKICAgICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7CkBAIC03OTgsMTEgKzE1ODgsMzMg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAor
I2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAo
UVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkK
ICAgICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsK
KyNlbHNlCisgICAgZGVsZXRlIG1fZXZlbnRGaWx0ZXI7CisgICAgbV9ldmVudEZpbHRlciA9IDA7
CisgICAgZGVsZXRlIHN0YXRpY19jYXN0PERGQldpbmRvd0luZm8qPihtX25wV2luZG93LndzX2lu
Zm8pOworICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7CisgICAgbV9waXhtYXAgPSBRUGl4bWFw
KCk7CisgICAgaWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgIG1fZGZiV2luZG93LT5SZWxlYXNl
KG1fZGZiV2luZG93KTsKKyAgICAgICAgbV9kZmJXaW5kb3cgPSAwOworfQorCisgICAgaWYgKG1f
ZGZiRGlzcGxheUxheWVyKSB7CisgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1f
ZGZiRGlzcGxheUxheWVyKTsKKyAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXIgPSAwOworICAgIH0K
KworICAgIGlmIChtX2RmYikgeworICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAg
ICAgIG1fZGZiID0gMDsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0
KCkKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjAgQEAKKzIwMTAtMDMtMTggIEFuZGVycyBCYWtrZW4gIDxBbmRlcnMgQmFr
a2VuIDxhZ2Jha2tlbkBnbWFpbC5jb20+PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVzcyBO
UEFQSSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RGQi4g
SXQncyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAgICAg
IEZsYXNobGl0ZS4gCisKKyAgICAgICAgVGhlIGNvZGUgaXMgbGFyZ2VseSBiYXNlZCBvbiB0aGUg
UXQvWDExIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd2xlc3MKKyAgICAgICAgTlBBUEkuIEl0IGFk
ZHMgdGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2Vl
bgorICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5JWCBpcyBkZWZpbmVkLiBUaGlz
IG1lYW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgIGZ1bmN0aW9uIHRoZSBzYW1lIHdheSBm
b3IgWDExIGJ1aWxkcy4KKworICAgICAgICBTaW5jZSB0aGUgbm9ybWFsIHVzZSBjYXNlIGZvciBO
UEFQSSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0ZXMKKyAgICAgICAgbGlrZSB5b3V0
dWJlIGl0J3MgaW1wb3J0YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGx1Z2luIGdldHMgYW4gdXBkYXRl
ZAorICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBtb3ZlcyBvciByZXNpemVz
LiBUaGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgZmFjdCB0aGF0IHRoZSB2aWRlbyB3aWxsIGJl
IHJlbmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIgcmF0aGVyCisgICAgICAgIHRoYW4gYWN0
dWFsbHkgaW50byB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgdGhhdCdzIGJlaW5nIHJlbmRlcmVkIHRv
LgorCisgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0ZXN0IGNhc2UgdGhhdCBJIGNvdWxkIGhlbHAg
cGVvcGxlIHNldCB1cCBmb3IgdGVzdGluZworICAgICAgICB3aXRoIFF0L1FXUyBEaXJlY3RGQiBi
dXQgSSBkb24ndCBrbm93IGhvdyB0byBtYWtlIGl0IGF1dG9tYXRlZC4KKworICAgICAgICBUbyBl
bmFibGUgTlBBUEkgZm9yIERpcmVjdEZCIHRoZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFrZSBzdXJl
CisgICAgICAgIHFtYWtlLmNvbmYgY29udGFpbnMgdGhpcyBsaW5lOgorCisgICAgICAgIERFRklO
RVMgKz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUElfRElSRUNURkIKKworICAgICAgICBRdCBt
dXN0IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRoZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAo
YXMKKyAgICAgICAgb3Bwb3NlZCB0byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKworICAgICAgICAq
IFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJyaWRnZS9u
cGFwaS5oOgorICAgICAgICAqIGJyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6aW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXREaXJl
Y3RGQk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91
c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OldpbmRvd01vdmVFdmVu
dEZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50
RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6dGltZXJF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEwLTAzLTE4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVu
dC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnByaQkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4MywxMCBAQCBncmVhdGVyVGhhbihRVF9NSU5PUl9WRVJTSU9OLCA1
KSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERF
RklORVMgKz0gRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MQogCiAjIE5lc2NhcGUgcGx1Z2lu
cyBzdXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyAr
PSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6
IXdpbmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
PTEKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTU0LDE2ICsyMTU0LDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9t
YWMKICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBp
LmgKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAg
ICAgICAgICAgICAgICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0g
WFBfREZCCisgICAgICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdT
X0RJUkVDVEZCCisgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZC
CisgICAgICAgICAgICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAg
IENPTkZJRyArPSB4MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAg
ICAgICAgICAgICAgICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0
LmNwcAorICAgICAgICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29u
dGFpbmVyUXQuaAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9
IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAg
XAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAog
ICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAg
ICAgICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVn
aW5Db250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJD
b3JlL2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAKICNl
bmRpZgogI2VuZGlmCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAgICAgI2luY2x1ZGUg
PFgxMS9YdXRpbC5oPgogICAgICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQ3LDcgKzI0Nyw3IEBA
IHR5cGVkZWYgc3RydWN0IF9OUFJlY3QKIH0gTlBSZWN0OwogCiAKLSNpZmRlZiBYUF9VTklYCisj
aWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAvKgogICogVW5peCBzcGVj
aWZpYyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICovCkBAIC01OTMsNyArNTkzLDEwIEBA
IHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgICAgdWludDMyICAgd1BhcmFtOwogICAgIHVpbnQz
MiAgIGxQYXJhbTsKIH0gTlBFdmVudDsKLSNlbGlmIGRlZmluZWQgKFhQX1VOSVgpCisjZWxpZiBk
ZWZpbmVkKFhQX0RGQikKKyNpbmNsdWRlIDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBO
UEV2ZW50OworI2VsaWYgZGVmaW5lZChYUF9VTklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVudDsK
ICNlbHNlCiB0eXBlZGVmIHZvaWQqICAgICAgICAgICAgTlBFdmVudDsKQEAgLTYxNCw3ICs2MTcs
NyBAQCB0eXBlZGVmIFJnbkhhbmRsZSBOUFFEUmVnaW9uOwogdHlwZWRlZiBDR1BhdGhSZWYgTlBD
R1JlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlwZWRlZiBIUkdOIE5QUmVnaW9uOwot
I2VsaWYgZGVmaW5lZChYUF9VTklYKQorI2VsaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5l
ZChYUF9ERkIpCiB0eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfU1lN
QklBTikKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9u
cHJ1bnRpbWVfaW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
Im5wZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAibnBydW50aW1lLmgiCiAKLSNpZmRlZiBYUF9VTklY
CisjaWYgZGVmaW5lZCBYUF9VTklYICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAjaW5jbHVkZSA8
WDExL1hyZXNvdXJjZS5oPgogCiAgICAgI3VuZGVmIE5vbmUKSW5kZXg6IFdlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAJKHJldmlzaW9uIDU2MTg5KQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzdG9w
KCkKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7CiAgICAgfQog
Ci0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQoWFBfWDExKSAmJiAhZGVmaW5lZChYUF9ERkIp
CiAgICAgaWYgKG1faXNXaW5kb3dlZCAmJiBtX25wV2luZG93LndzX2luZm8pCiAgICAgICAgICAg
IGRlbGV0ZSAoTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCAqKW1fbnBXaW5kb3cud3NfaW5mbzsK
ICAgICBtX25wV2luZG93LndzX2luZm8gPSAwOwpAQCAtODI2LDcgKzgyNiw3IEBAIFBsdWdpblZp
ZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW0KICAgICAsIG1faXNUcmFuc3BhcmVudChm
YWxzZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9pc1dhaXRpbmdU
b1N0YXJ0KGZhbHNlKQotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgp
ICYmICFkZWZpbmVkIChYUF9ERkIpCiAgICAgLCBtX25lZWRzWEVtYmVkKGZhbHNlKQogI2VuZGlm
CiAjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC04NDcs
MTAgKzg0NywxOCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtCiAj
ZW5kaWYKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKKyNpZiAhZGVmaW5lZCBY
UF9ERkIKICAgICAsIG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFsKDApCiAgICAgLCBtX2Nv
bG9ybWFwKDApCiAgICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbHNlCisgICAgLCBtX2V2ZW50
RmlsdGVyKDApCisgICAgLCBtX2RmYlN1cmZhY2UoMCkKKyAgICAsIG1fZGZiKDApCisgICAgLCBt
X2RmYkRpc3BsYXlMYXllcigwKQorICAgICwgbV9kZmJXaW5kb3coMCkKKyNlbmRpZgogI2VuZGlm
CiAgICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVh
bSgwKQpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCShyZXZpc2lvbiA1NjE4OSkKKysrIFdlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDEwIEBACiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lmIGRlZmluZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQor
I2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYg
T1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0
cnVjdCBIV05EX18qIEhXTkQ7CkBAIC0zMTIsNyArMzE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1faGF2ZUluaXRpYWxpemVkOwogICAgICAgICBib29sIG1faXNXYWl0
aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgp
ICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAgICAgYm9vbCBtX25lZWRzWEVtYmVkOwogI2VuZGlm
CiAKQEAgLTM2MiwxMiArMzY2LDIxIEBAIHByaXZhdGU6CiAKICNpZiBkZWZpbmVkKFhQX1VOSVgp
ICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBib29sIG1faGFzUGVuZGlu
Z0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBYUF9ERkIKICAgICAgICAgUGl4bWFwIG1fZHJhd2Fi
bGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1YWw7CiAgICAgICAgIENvbG9ybWFwIG1fY29sb3Jt
YXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1Z2luRGlzcGxheTsKIAogICAgICAgICB2b2lkIGlu
aXRYRXZlbnQoWEV2ZW50KiBldmVudCk7CisjZWxzZQorICAgICAgICBRT2JqZWN0ICptX2V2ZW50
RmlsdGVyOworICAgICAgICBRUGl4bWFwIG1fcGl4bWFwOworICAgICAgICBJRGlyZWN0RkJTdXJm
YWNlICptX2RmYlN1cmZhY2U7CisgICAgICAgIElEaXJlY3RGQiAqbV9kZmI7CisgICAgICAgIElE
aXJlY3RGQkRpc3BsYXlMYXllciAqbV9kZmJEaXNwbGF5TGF5ZXI7CisgICAgICAgIElEaXJlY3RG
QldpbmRvdyAqbV9kZmJXaW5kb3c7CisjZW5kaWYKICNlbmRpZgogCiAgICAgICAgIEludFJlY3Qg
bV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVjdCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWct
aW4KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCShyZXZpc2lvbiA1NjE4OSkK
KysrIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUg
IlBsdWdpbkNvbnRhaW5lclF0LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNpbmNsdWRl
ICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5o
IgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgPFFLZXlFdmVudD4KICNpbmNsdWRlIDxRUGFp
bnRlcj4KICNpbmNsdWRlIDxRV2lkZ2V0PgorI2lmZGVmIFFfV1NfWDExCiAjaW5jbHVkZSA8UVgx
MUluZm8+CiAjaW5jbHVkZSA8WDExL1guaD4KICNpZm5kZWYgUVRfTk9fWFJFTkRFUgpAQCAtNzQs
NiArNzQsMjEgQEAKICNkZWZpbmUgU3RhdHVzIGludAogI2luY2x1ZGUgPFgxMS9leHRlbnNpb25z
L1hyZW5kZXIuaD4KICNlbmRpZgorI2VsaWYgZGVmaW5lZCBYUF9ERkIKKyNpbmNsdWRlIDxRQmFz
aWNUaW1lcj4KKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZT4KKyNpbmNsdWRlIDxRR3JhcGhpY3NW
aWV3PgorI2luY2x1ZGUgPFFHcmFwaGljc1dlYlZpZXc+CitzdHJ1Y3QgREZCV2luZG93SW5mbyB7
CisgICAgSURpcmVjdEZCKiBkZmI7CisgICAgSURpcmVjdEZCRGlzcGxheUxheWVyKiBsYXllcjsK
KyAgICBJRGlyZWN0RkJXaW5kb3cqIHdpbmRvdzsKK307CitRVF9CRUdJTl9OQU1FU1BBQ0UKK2V4
dGVybiBRX0dVSV9FWFBPUlQgSURpcmVjdEZCU3VyZmFjZSogcXRfZGlyZWN0ZmJfc3VyZmFjZV9m
b3JfcGl4bWFwKGNvbnN0IFFQaXhtYXAgJnBpeG1hcCk7CitRVF9FTkRfTkFNRVNQQUNFCisjZW5k
aWYKKwogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1Zh
bHVlLmg+CiAKQEAgLTEwOSw2ICsxMjQsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdp
bldpZGdldCgpCiAgICAgaWYgKG1fd2luZG93UmVjdCA9PSBvbGRXaW5kb3dSZWN0ICYmIG1fY2xp
cFJlY3QgPT0gb2xkQ2xpcFJlY3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmbmRlZiBYUF9ERkIK
ICAgICBpZiAoIW1faXNXaW5kb3dlZCAmJiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRv
d1JlY3Quc2l6ZSgpKSB7CiAgICAgICAgIGlmIChtX2RyYXdhYmxlKQogICAgICAgICAgICAgWEZy
ZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CkBAIC0xMTcsNiArMTMz
LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBX
aW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAgICAgICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOyAv
LyBtYWtlIHN1cmUgdGhhdCB0aGUgc2VydmVyIGtub3dzIGFib3V0IHRoZSBEcmF3YWJsZQogICAg
IH0KKyNlbmRpZgogCiAgICAgLy8gZG8gbm90IGNhbGwgc2V0TlBXaW5kb3dJZk5lZWRlZCBpbW1l
ZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24gcGFpbnQoKQogICAgIG1faGFzUGVuZGluZ0dlb21l
dHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE2NiwxNiArMTgzLDE2IEBAIHZvaWQgUGx1Z2luVmlldzo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKIAor
I2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9pc1dpbmRvd2VkIHx8ICFtX2RyYXdhYmxlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBjb25zdCBib29sIHN5bmNYID0gbV9wbHVnaW5EaXNwbGF5ICYm
IG1fcGx1Z2luRGlzcGxheSAhPSBRWDExSW5mbzo6ZGlzcGxheSgpOwotCiAgICAgUVBhaW50ZXIq
IHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICBJbnRSZWN0IGV4cG9z
ZWRSZWN0KHJlY3QpOwogICAgIGV4cG9zZWRSZWN0LmludGVyc2VjdChmcmFtZVJlY3QoKSk7CiAg
ICAgZXhwb3NlZFJlY3QubW92ZSgtZnJhbWVSZWN0KCkueCgpLCAtZnJhbWVSZWN0KCkueSgpKTsK
IAorICAgIGNvbnN0IGJvb2wgc3luY1ggPSBtX3BsdWdpbkRpc3BsYXkgJiYgbV9wbHVnaW5EaXNw
bGF5ICE9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgUVBpeG1hcCBxdERyYXdhYmxlID0gUVBp
eG1hcDo6ZnJvbVgxMVBpeG1hcChtX2RyYXdhYmxlLCBRUGl4bWFwOjpFeHBsaWNpdGx5U2hhcmVk
KTsKICAgICBjb25zdCBpbnQgZHJhd2FibGVEZXB0aCA9ICgoTlBTZXRXaW5kb3dDYWxsYmFja1N0
cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGg7CiAgICAgQVNTRVJUKGRyYXdhYmxlRGVw
dGggPT0gcXREcmF3YWJsZS5kZXB0aCgpKTsKQEAgLTIzNCw2ICsyNTEsMjQgQEAgdm9pZCBQbHVn
aW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIAogCiAgICAgcGFpbnRlci0+ZHJhd1BpeG1h
cChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55
KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdhYmxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwb3NlZFJlY3QpOworI2Vsc2UKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1z
ZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJVc2VyRXZlbnQmIHVz
ZXJFdmVudCA9IGRmYkV2ZW50LnVzZXI7CisgICAgdXNlckV2ZW50LmNsYXp6ID0gREZFQ19VU0VS
OworICAgIHVzZXJFdmVudC50eXBlID0gMHhkZmI7CisgICAgdXNlckV2ZW50LmRhdGEgPSAmbV9u
cFdpbmRvdzsKKyAgICBkaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworICAgIFFQYWludGVyKiBw
YWludGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgSW50UmVjdCBleHBvc2Vk
UmVjdChyZWN0KTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOworICAg
IGV4cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdCgpLngoKSwgLWZyYW1lUmVjdCgpLnkoKSk7Cisg
ICAgY29uc3QgUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSBvbGRNb2RlID0gcGFpbnRlci0+Y29t
cG9zaXRpb25Nb2RlKCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVy
OjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICBwYWludGVyLT5kcmF3UGl4bWFwKFFQb2lu
dChmcmFtZVJlY3QoKS54KCkgKyBleHBvc2VkUmVjdC54KCksIGZyYW1lUmVjdCgpLnkoKSArIGV4
cG9zZWRSZWN0LnkoKSksIG1fcGl4bWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3Nl
ZFJlY3QpOworICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShvbGRNb2RlKTsKKyNlbmRp
ZgogfQogCiAvLyBUT0RPOiBVbmlmeSBhY3Jvc3MgcG9ydHMuCkBAIC0yNTIsNiArMjg3LDcgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQoTlBFdmVudAogICAgIHJldHVybiBhY2Nl
cHRlZDsKIH0KIAorI2lmbmRlZiBYUF9ERkIKIHZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhF
dmVudCogeEV2ZW50LCBRV2lkZ2V0KiBvd25lcldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnku
c2VyaWFsID0gMDsgLy8gd2UgYXJlIHVuYXdhcmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNz
ZWQgYnkgWCBTZXJ2ZXIKQEAgLTI5Myw2ICszMjksNTM0IEBAIHZvaWQgc2V0WEtleUV2ZW50U3Bl
Y2lmaWNGaWVsZHMoWEV2ZW50KiAKICAgICB4RXZlbnQtPnhrZXkueF9yb290ID0gMDsKICAgICB4
RXZlbnQtPnhrZXkueV9yb290ID0gMDsKIH0KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgaW5p
dERpcmVjdEZCS2V5Ym9hcmRFdmVudChERkJJbnB1dEV2ZW50KiBkZmJFdmVudCwgY29uc3QgUUtl
eUV2ZW50KiBxdEV2ZW50KQoreworICAgIGRmYkV2ZW50LT5jbGF6eiA9IERGRUNfSU5QVVQ7Cisg
ICAgZGZiRXZlbnQtPnR5cGUgPSAocXRFdmVudC0+dHlwZSgpID09IFFFdmVudDo6S2V5UHJlc3Mg
PyBESUVUX0tFWVBSRVNTIDogRElFVF9LRVlSRUxFQVNFKTsKKyAgICB1bnNpZ25lZCBpbnQgZmxh
Z3MgPSAoRElFRl9LRVlTWU1CT0wgfCBESUVGX01PRElGSUVSUyk7CisgICAgaWYgKHF0RXZlbnQt
PmlzQXV0b1JlcGVhdCgpKQorICAgICAgICBmbGFncyB8PSBESUVGX1JFUEVBVDsKKyAgICBjb25z
dCBRdDo6S2V5Ym9hcmRNb2RpZmllciBtb2RpZmllcnNbXSA9IHsgUXQ6OlNoaWZ0TW9kaWZpZXIs
IFF0OjpDb250cm9sTW9kaWZpZXIsIFF0OjpBbHRNb2RpZmllciwgUXQ6Ok1ldGFNb2RpZmllciB9
OworICAgIGNvbnN0IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNrIGRmYk1vZGlmaWVyc1tdID0g
eyBESU1NX1NISUZULCBESU1NX0NPTlRST0wsIERJTU1fQUxULCBESU1NX01FVEEgfTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZp
ZXJzKCkgJiBtb2RpZmllcnNbaV0pCisgICAgICAgICAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0g
REZCSW5wdXREZXZpY2VNb2RpZmllck1hc2soZGZiRXZlbnQtPm1vZGlmaWVycyB8IGRmYk1vZGlm
aWVyc1tpXSk7CisgICAgfQorICAgIHN3aXRjaCAocXRFdmVudC0+a2V5KCkpIHsKKyAgICBjYXNl
IFF0OjpLZXlfQmFja3NwYWNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
QkFDS1NQQUNFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9CQUNLU1BBQ0U7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UYWI6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19UQUI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1RB
QjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1JldHVybjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1JFVFVSTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfS1BfRU5URVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Fc2Nh
cGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FU0NBUEU7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VTQ0FQRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlbGV0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RF
TEVURTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfREVMRVRFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0NVUlNPUl9MRUZUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9M
RUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmlnaHQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfUklHSFQ7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
VXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfVVA7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNP
Ul9ET1dOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ET1dOOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSW5zZXJ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfSU5TRVJUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9JTlNF
UlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Ib21lOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSE9NRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfSE9NRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0VuZDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VORDsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFnZVVw
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFHRV9VUDsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEFHRV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhZ2VEb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
UEFHRV9ET1dOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QQUdFX0RPV047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QcmludDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1BSSU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfUGF1c2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVVTRTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbGVjdDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1NFTEVDVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X09wZW5Vcmw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19HT1RPOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2xlYXI6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19DTEVBUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X01lbnU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NRU5VOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSGVscDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0hFTFA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9I
b21lUGFnZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0lOVEVSTkVUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGF1bmNoTWFpbDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01BSUw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9GYXZvcml0ZXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19G
QVZPUklURVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYWNrOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQkFDSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0ZvcndhcmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19GT1JXQVJEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lVXA6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfVVA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVEb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfVk9MVU1FX0RPV047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9Wb2x1bWVNdXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTVVU
RTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUGxheToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BMQVk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9NZWRpYVN0b3A6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TVE9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFSZWNvcmQ6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19SRUNPUkQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9NZWRpYVByZXZpb3VzOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfUFJFVklPVVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9NZWRpYU5leHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ORVhUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjE6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19GMTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0YyOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9G
MjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YzOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfRjM7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0YzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfRjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNToKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y1OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9GNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y2OgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjY7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjc6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfRjc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GODoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y4OworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9GODsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y5OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjk7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0Y5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjEwOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjEwOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MTE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTE7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0YxMjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjEyOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfU2hpZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TSElG
VDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0hJRlRfTDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbnRyb2w6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19DT05UUk9MOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DT05U
Uk9MX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbHQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTFQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0FMVF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0R3I6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTFRHUjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X01ldGE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19NRVRBOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9NRVRBX0w7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TdXBlcl9MOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU1VQRVI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X1NVUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IeXBlcl9MOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSFlQRVI7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0hZUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9DYXBzTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NBUFNfTE9D
SzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQ0FQU19MT0NLOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX05VTV9MT0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9O
VU1fTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Njcm9sbExvY2s6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TQ1JPTExfTE9DSzsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0NST0xMX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EZWFkX0Fib3ZlZG90OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfREVBRF9BQk9WRURPVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfQWJvdmVyaW5nOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVB
RF9BQk9WRVJJTkc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0FjdXRl
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQ1VURTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQnJldmU6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0JSRVZFOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9DYXJvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0RFQURfQ0FST047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0NlZGls
bGE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NFRElMTEE7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0NpcmN1bWZsZXg6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NJUkNVTUZMRVg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RpYWVyZXNpczoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0RFQURfRElBRVJFU0lTOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRGVhZF9Eb3VibGVhY3V0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0RFQURfRE9VQkxFQUNVVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWFkX0dyYXZlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVB
RF9HUkFWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfSW90YToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfSU9UQTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfTWFjcm9uOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfREVBRF9NQUNST047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWFkX09nb25lazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RF
QURfT0dPTkVLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9TZW1pdm9p
Y2VkX1NvdW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9TRU1J
Vk9JQ0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9UaWxk
ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfVElMREU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1ZvaWNlZF9Tb3VuZDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfVk9JQ0VEX1NPVU5EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3BhY2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19TUEFDRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU1BBQ0U7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FeGNsYW06CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19FWENMQU1BVElPTl9NQVJLOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUXVvdGVEYmw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19RVU9UQVRJT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1i
ZXJTaWduOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTlVNQkVSX1NJR047
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Eb2xsYXI6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19ET0xMQVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BlcmNlbnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19QRVJDRU5UX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbXBlcnNh
bmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTVBFUlNBTkQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BcG9zdHJvcGhlOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQVBPU1RST1BIRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhcmVuTGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1BBUkVOVEhFU0lTX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYXJl
blJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNf
UklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc3RlcmlzazoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FTVEVSSVNLOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUGx1czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1BMVVNfU0lHTjsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6Oktl
eXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfS1BfUExV
UzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbW1hOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ09NTUE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0NPTU1BOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWludXM6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NSU5VU19TSUdOOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9NSU5VU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUGVyaW9kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
UEVSSU9EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QRVJJT0Q7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TbGFzaDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NMQVNIOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TTEFT
SDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzA6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU18wOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8w
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTXzE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8yOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfMjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzM6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU18zOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8zOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTXzQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV81OgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfNTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzY6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU182OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV82OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTXzc7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzc7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV84OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfODsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfODsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzk6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU185OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV85OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29sb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19DT0xPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Nl
bWljb2xvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NFTUlDT0xPTjsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0VNSUNPTE9OOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfTGVzczoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0xFU1NfVEhBTl9TSUdOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9M
RVNTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FcXVhbDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VRVUFMU19TSUdOOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9FUVVBTFNfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0dyZWF0ZXI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19H
UkVBVEVSX1RIQU5fU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1F1ZXN0
aW9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUVVFU1RJT05fTUFSSzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0F0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfQVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9B
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQTsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9COworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9COworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfQzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0M7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0M7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfRDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9FOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9FOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0Y7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9HOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfRzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0g6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9IOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9IOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0k7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9KOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSjsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfSjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0s6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9LOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9LOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0w7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9NOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTTsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X046CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9OOwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9OOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X087CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX087CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9QOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfUDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1E6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9ROworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ROworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1I7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1I7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU01BTExfUzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
UzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Q6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9UOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVToKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX1U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9WOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVjsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfVjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1c6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9XOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9XOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
WDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1g7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9ZOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWTsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1o6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9a
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9aOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQnJhY2tldExlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TUVVBUkVfQlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQmFja3NsYXNoOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQkFD
S1NMQVNIOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9CQUNLU0xBU0g7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0UmlnaHQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19TUVVBUkVfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpQ2lyY3VtOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfQ0lSQ1VNRkxFWF9BQ0NFTlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9VbmRlcnNjb3JlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfVU5ERVJTQ09SRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNlTGVm
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfTEVG
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhcjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1ZFUlRJQ0FMX0JBUjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0JyYWNlUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19DVVJMWV9CUkFDS0VUX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfQXNjaWlUaWxkZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1RJTERF
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKChxdEV2ZW50LT5tb2RpZmllcnMoKSAm
IFF0OjpTaGlmdE1vZGlmaWVyKSAmJiBxdEV2ZW50LT5rZXkoKSA+PSBRdDo6S2V5X0EgJiYgcXRF
dmVudC0+a2V5KCkgPD0gUXQ6OktleV9aKQorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERGQklucHV0RGV2aWNlS2V5U3ltYm9sKChkZmJFdmVudC0+a2V5X3N5bWJvbCAtIERJS1NfU01B
TExfQSkgKyBESUtTX0NBUElUQUxfQSk7CisgICAgaWYgKGRmYkV2ZW50LT5rZXlfaWQgIT0gRElL
SV9VTktOT1dOKSB7CisgICAgICAgIGZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGRmYkV2ZW50
LT5mbGFncyB8IERJRUZfS0VZSUQpOworICAgICAgICBpZiAoZGZiRXZlbnQtPmtleV9pZCA+PSBE
SUtJXzAgJiYgZGZiRXZlbnQtPmtleV9pZCA8PSBESUtJXzkgJiYgcXRFdmVudC0+bW9kaWZpZXJz
KCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
REZCSW5wdXREZXZpY2VLZXlJZGVudGlmaWVyKGRmYkV2ZW50LT5rZXlfaWQgLSBESUtJXzAgKyBE
SUtJX0tQXzApOworICAgIH0KKyAgICBkZmJFdmVudC0+ZmxhZ3MgPSBERkJJbnB1dEV2ZW50Rmxh
Z3MoZmxhZ3MpOworfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRF
dmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKQEAgLTMwMiwxNCArODY2LDIxIEBAIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXkKICAgICBpZiAoZXZlbnQtPnR5cGUo
KSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LT50eXBlKCkgIT0gZXZlbnRO
YW1lcygpLmtleXVwRXZlbnQpCiAgICAgICAgIHJldHVybjsKIAorI2lmbmRlZiBYUF9ERkIKICAg
ICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKICAgICBzZXRYS2V5
RXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQpOworI2Vsc2UKKyAgICBERkJFdmVu
dCBucEV2ZW50OworICAgIERGQklucHV0RXZlbnQmIGlucHV0ID0gbnBFdmVudC5pbnB1dDsKKyAg
ICBpbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KCZpbnB1dCwgZXZlbnQtPmtleUV2ZW50KCktPnF0
RXZlbnQoKSk7CisjZW5kaWYKIAogICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQog
ICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAorI2lmbmRlZiBYUF9ERkIK
IHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVudFN0YXRlKE1vdXNlRXZlbnQqIGV2ZW50KQog
ewogICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CkBAIC0zODQsNiArOTU1LDQ1IEBAIHN0YXRp
YyB2b2lkIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWUKICAgICB4Y3Jvc3Npbmcuc2FtZV9z
Y3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2Vsc2UKK3N0
YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KERGQldpbmRvd0V2ZW50KiBk
ZmJFdmVudCwgY29uc3QgTW91c2VFdmVudCogZXZlbnQpCit7CisgICAgZGZiRXZlbnQtPmNsYXp6
ID0gREZFQ19XSU5ET1c7CisKKyAgICB1bnNpZ25lZCBpbnQgbW9kaWZpZXJzID0gMDsKKyAgICBp
ZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQ09OVFJPTDsK
KyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX1NI
SUZUOworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1N
X0FMVDsKKyAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJ
TU1fTUVUQTsKKyAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0gREZCSW5wdXREZXZpY2VNb2RpZmll
ck1hc2sobW9kaWZpZXJzKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVw
RXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JVVFRPTkRPV04gOiBEV0VUX0JVVFRPTlVQ
KTsKKyAgICAgICAgc3dpdGNoIChldmVudC0+YnV0dG9uKCkpIHsKKyAgICAgICAgY2FzZSBMZWZ0
QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklfTEVGVDsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAgIGRm
YkV2ZW50LT5idXR0b24gPSBESUJJX01JRERMRTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklf
UklHSFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRmYkV2ZW50LT5idXR0b25zID0gREZCSW5wdXRE
ZXZpY2VCdXR0b25NYXNrKDApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSBEV0VU
X01PVElPTjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm47CisgICAgfQorfQorI2VuZGlm
CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkK
IHsKQEAgLTM5NywxMSArMTAwNywxMSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZl
bnQoTW91c2VFCiAKICAgICAgICAgZm9jdXNQbHVnaW5FbGVtZW50KCk7CiAgICAgfQotCisgICAg
SW50UG9pbnQgcG9zdFpvb21Qb3MgPSByb3VuZGVkSW50UG9pbnQobV9lbGVtZW50LT5yZW5kZXJl
cigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSkpOworI2lmbmRl
ZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsK
IAotICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+
cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsK
IAogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpCiAgICAgICAgIHNl
dFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3Mp
OwpAQCAtNDExLDEzICsxMDIxLDQwIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVu
dChNb3VzZUUKICAgICAgICAgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVu
dCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRI
YW5kbGVkKCk7CiAKKyNlbHNlCisgICAgREZCRXZlbnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5w
RXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlb3V0RXZlbnQpIHsKKyAgICAgICAgbnBFdmVudC5jbGF6eiA9IERGRUNfV0lORE9X
OworICAgICAgICBucEV2ZW50LndpbmRvdy50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLm1vdXNlb3ZlckV2ZW50ID8gRFdFVF9FTlRFUiA6IERXRVRfTEVBVkUpOworICAgICAg
ICBucEV2ZW50LndpbmRvdy54ID0gbnBFdmVudC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7
CisgICAgICAgIG5wRXZlbnQud2luZG93LnkgPSBucEV2ZW50LndpbmRvdy5jeSA9IHBvc3Rab29t
UG9zLnkoKTsKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVybjsKK30KKworICAgIERGQldp
bmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsKKyAgICBtX2RmYldpbmRvdy0+R2V0
SUQobV9kZmJXaW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsKKyAgICBpbml0RGlyZWN0RkJNb3Vz
ZUV2ZW50KCZ3aW5kb3csIGV2ZW50KTsKKyAgICB3aW5kb3cueCA9IHBvc3Rab29tUG9zLngoKTsK
KyAgICB3aW5kb3cueSA9IHBvc3Rab29tUG9zLnkoKTsKKyAgICBjb25zdCBJbnRQb2ludCBhYnNv
bHV0ZUxvY2F0aW9uID0gZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKTsKKyAgICB3aW5kb3cuY3gg
PSBhYnNvbHV0ZUxvY2F0aW9uLngoKTsKKyAgICB3aW5kb3cuY3kgPSBhYnNvbHV0ZUxvY2F0aW9u
LnkoKTsKKworICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQorICAgICAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6Omhh
bmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50
OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00MjUsMTIgKzEwNjIsMjEgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQoKQogICAgIGV2ZW50LnR5cGUgPSA5OyAv
KiBpbnQgYXMgUXQgdW5zZXRzIEZvY3VzSW4gKi8KICAgICBldmVudC5tb2RlID0gTm90aWZ5Tm9y
bWFsOwogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlmeURldGFpbE5vbmU7CisgICAgZGlzcGF0Y2hO
UEV2ZW50KG5wRXZlbnQpOwogCisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVt
c2V0KCZucEV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYg
d2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAgd2luZG93LmNsYXp6ID0gREZFQ19XSU5ET1c7
CisgICAgd2luZG93LnR5cGUgPSBEV0VUX0dPVEZPQ1VTOwogICAgIGRpc3BhdGNoTlBFdmVudChu
cEV2ZW50KTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZl
bnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2
ZW50KCZucEV2ZW50KTsKIApAQCAtNDQwLDYgKzEwODYsMTUgQEAgdm9pZCBQbHVnaW5WaWV3Ojpo
YW5kbGVGb2N1c091dEV2ZW50KCkKICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25l
OwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2Vsc2UKKyAgICBERkJFdmVudCBu
cEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAg
REZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6
eiA9IERGRUNfV0lORE9XOworICAgIHdpbmRvdy50eXBlID0gRFdFVF9MT1NURk9DVVM7CisgICAg
ZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2VuZGlmCisKIH0KIAogdm9pZCBQbHVnaW5WaWV3
OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQpAQCAtNDU2LDYgKzExMTEsNDkgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd1JlY3QoY29uc3QgSQogICAgICAgICBzZXROUFdpbmRv
d0lmTmVlZGVkKCk7CiB9CiAKKyNpZmRlZiBYUF9ERkIKK2NsYXNzIFdpbmRvd01vdmVFdmVudEZp
bHRlciA6IHB1YmxpYyBRT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBXaW5kb3dNb3ZlRXZlbnRGaWx0
ZXIoYm9vbCogZywgUGx1Z2luVmlldyogdmlldywgUVdpZGdldCogd2F0Y2hlZCkKKyAgICAgICAg
OiBRT2JqZWN0KDApCisgICAgICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UoZykKKyAg
ICAgICAgLCBtX3BsdWdpblZpZXcodmlldykKKyAgICB7CisgICAgICAgIFFfQVNTRVJUKHdhdGNo
ZWQpOworICAgICAgICBmb3JldmVyIHsKKyAgICAgICAgICAgIHdhdGNoZWQtPmluc3RhbGxFdmVu
dEZpbHRlcih0aGlzKTsKKyAgICAgICAgICAgIGlmICh3YXRjaGVkLT5pc1dpbmRvdygpKQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgd2F0Y2hlZCA9IHdhdGNoZWQtPnBhcmVu
dFdpZGdldCgpOworICAgICAgICAgICAgaWYgKCF3YXRjaGVkKQorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbCBldmVudEZpbHRlcihRT2JqZWN0ICos
IFFFdmVudCogZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50eXBlKCkgPT0gUUV2ZW50OjpNb3Zl
IHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6OlJlc2l6ZSkgeworICAgICAgICAgICAgKm1faGFzUGVu
ZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fdGltZXIuc3RhcnQoMTAs
IHRoaXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB2
b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGUpCisgICAgeworICAgICAgICBpZiAoZS0+dGlt
ZXJJZCgpID09IG1fdGltZXIudGltZXJJZCgpKSB7CisgICAgICAgICAgICBtX3RpbWVyLnN0b3Ao
KTsKKyAgICAgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VSZWRyYXcoKTsKKyAgICAgICAgfQor
ICAgIH0KK3ByaXZhdGU6CisgICAgYm9vbCogbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2U7Cisg
ICAgUGx1Z2luVmlldyogbV9wbHVnaW5WaWV3OworICAgIFFCYXNpY1RpbWVyIG1fdGltZXI7Cit9
OworCisjZW5kaWYKKwogdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKIHsK
ICAgICBpZiAoIW1faXNTdGFydGVkIHx8ICFwYXJlbnQoKSB8fCAhbV9wbHVnaW4tPnBsdWdpbkZ1
bmNzKCktPnNldHdpbmRvdykKQEAgLTQ5Miw2ICsxMTkwLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpz
ZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdodCA9
IG1fY2xpcFJlY3Qud2lkdGgoKTsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20g
PSBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0gZWxzZSB7CisjaWZuZGVmIFhQX0RGQgogICAg
ICAgICBtX25wV2luZG93LnggPSAwOwogICAgICAgICBtX25wV2luZG93LnkgPSAwOwogCkBAIC00
OTksNiArMTE5OCwzOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQog
ICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IDA7CiAgICAgICAgIG1fbnBXaW5kb3cu
Y2xpcFJlY3QucmlnaHQgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9
IDA7CisjZWxzZQorICAgICAgICBRUG9pbnQgcGx1Z2luVmlld0dsb2JhbFBvcyA9IHdpbmRvd0Ns
aXBSZWN0KCkudG9wTGVmdCgpOworICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9w
YXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwor
ICAgICAgICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGllbnQgPyBjbGllbnQtPm93bmVy
V2lkZ2V0KCkgOiAwKSB7CisgICAgICAgICAgICBpZiAoIW1fZXZlbnRGaWx0ZXIpCisgICAgICAg
ICAgICAgICAgbV9ldmVudEZpbHRlciA9IG5ldyBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIoJm1faGFz
UGVuZGluZ0dlb21ldHJ5Q2hhbmdlLCB0aGlzLCBvd25lcldpZGdldCk7CisgICAgICAgICAgICBw
bHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1hcFRvR2xvYmFsKHBsdWdpblZpZXdH
bG9iYWxQb3MpOworICAgICAgICAgICAgaWYgKGNvbnN0IFFHcmFwaGljc1dlYlZpZXcqIGl0ZW0g
PSBxb2JqZWN0X2Nhc3Q8Y29uc3QgUUdyYXBoaWNzV2ViVmlldyo+KGNsaWVudC0+cGx1Z2luUGFy
ZW50KCkpKSB7CisgICAgICAgICAgICAgICAgUV9BU1NFUlQoaXRlbS0+c2NlbmUoKSAmJiAhaXRl
bS0+c2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkpOworICAgICAgICAgICAgICAgIGNvbnN0IFFH
cmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52aWV3cygpLnZhbHVlKDApOworICAg
ICAgICAgICAgICAgIGNvbnN0IFFQb2ludCBhZGQgPSB2aWV3LT5tYXBGcm9tU2NlbmUoaXRlbS0+
cG9zKCkpOworICAgICAgICAgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQb3MgKz0gYWRkOworICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgoUVNpemUpKG1fd2luZG93UmVjdC5zaXplKCkp
ICE9IG1fcGl4bWFwLnNpemUoKSkgeworICAgICAgICAgICAgbV9waXhtYXAgPSBRUGl4bWFwKG1f
d2luZG93UmVjdC5zaXplKCkpOworICAgICAgICAgICAgbV9waXhtYXAuZmlsbChRdDo6dHJhbnNw
YXJlbnQpOworICAgICAgICB9CisKKyAgICAgICAgbV9ucFdpbmRvdy54ID0gcGx1Z2luVmlld0ds
b2JhbFBvcy54KCk7CisgICAgICAgIG1fbnBXaW5kb3cueSA9IHBsdWdpblZpZXdHbG9iYWxQb3Mu
eSgpOworICAgICAgICBjb25zdCBJbnRSZWN0IGZyYW1lID0gZnJhbWVSZWN0KCk7CisgICAgICAg
IG1fbnBXaW5kb3cud2lkdGggPSBmcmFtZS53aWR0aCgpOworICAgICAgICBtX25wV2luZG93Lmhl
aWdodCA9IGZyYW1lLmhlaWdodCgpOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9
IG1fY2xpcFJlY3QueSgpOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmxlZnQgPSBtX2Ns
aXBSZWN0LngoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdodCA9IG1fY2xpcFJl
Y3Qud2lkdGgoKSArIG1fY2xpcFJlY3QueCgpIC0gMTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlw
UmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LmhlaWdodCgpICsgbV9jbGlwUmVjdC55KCkgLSAxOwor
ICAgICAgICBtX2RmYlN1cmZhY2UgPSBRVF9QUkVQRU5EX05BTUVTUEFDRShxdF9kaXJlY3RmYl9z
dXJmYWNlX2Zvcl9waXhtYXAobV9waXhtYXApKTsKKyAgICAgICAgbV9ucFdpbmRvdy53aW5kb3cg
PSBtX2RmYlN1cmZhY2U7CisgICAgICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURy
YXdhYmxlOworI2VuZGlmCiAgICAgfQogCiAgICAgLy8gRkxBU0ggV09SS0FST1VORDogT25seSBz
ZXQgaW5pdGlhbGx5LiBNdWx0aXBsZSBjYWxscyB0bwpAQCAtNTg0LDE1ICsxMzE2LDEyIEBAIGJv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYygKIGJvb2wgUGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJy
b3IqIHJlc3VsdCkKIHsKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisjaWZuZGVmIFhQX0RGQgog
ICAgIGNhc2UgTlBOVnhEaXNwbGF5OgogICAgICAgICAqKHZvaWQgKiopdmFsdWUgPSBRWDExSW5m
bzo6ZGlzcGxheSgpOwogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgY2FzZSBOUE5WeHRBcHBDb250ZXh0OgotICAgICAgICAqcmVz
dWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBj
YXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lkKiB3ID0gcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4odmFsdWUpOwogICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9w
YXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwpA
QCAtNjAwLDcgKzEzMjksNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBO
VmFyCiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotCisjZW5kaWYKICAgICBjYXNlIE5QTlZUb29sa2l0OgogICAgICAgICBpZiAo
bV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrUmVxdWlyZXNHdGtUb29sS2l0
KSkgewogICAgICAgICAgICAgKigodWludDMyICopdmFsdWUpID0gMjsKQEAgLTY0NSw2ICsxMzc0
LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgaW52YWxpZGF0ZSgpOwog
fQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkgKmdldFBsdWdpbkRpc3BsYXkoKQog
ewogICAgIC8vIFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNpbmcgYSBkaWZmZXJlbnQg
WCBjb25uZWN0aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC03MTAsMTIgKzE0NDAsMTQg
QEAgc3RhdGljIHZvaWQgZ2V0VmlzdWFsQW5kQ29sb3JtYXAoaW50IGRlcAogICAgIGlmICgqdmlz
dWFsKQogICAgICAgICAqY29sb3JtYXAgPSBYQ3JlYXRlQ29sb3JtYXAoUVgxMUluZm86OmRpc3Bs
YXkoKSwgUVgxMUluZm86OmFwcFJvb3RXaW5kb3coKSwgKnZpc3VhbCwgQWxsb2NOb25lKTsKIH0K
KyNlbmRpZgogCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VS
VChtX2lzU3RhcnRlZCk7CiAgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRl
ZFN1Y2Nlc3NmdWxseSk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1fcGx1Z2luLT5wbHVn
aW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1
Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxs
TG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtNzQwLDEyICsxNDcyLDcxIEBA
IGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIHNldFBsYXRmb3JtV2lk
Z2V0KDApOwogICAgICAgICBtX3BsdWdpbkRpc3BsYXkgPSBnZXRQbHVnaW5EaXNwbGF5KCk7CiAg
ICAgfQorI2Vsc2UKKyAgICBpZiAobV9pc1dpbmRvd2VkKSB7CisgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBERkJXaW5kb3dJbmZvKiB3c0luZm8g
PSAwOworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQgfHwg
IWNsaWVudC0+b3duZXJXaWRnZXQoKSkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
ICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBERkJSZXN1bHQgcmVzdWx0ID0gRGlyZWN0RkJDcmVh
dGUoJm1fZGZiKTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykKKyAgICAgICAgZ290byBlbmQ7
CisKKyAgICByZXN1bHQgPSBtX2RmYi0+R2V0RGlzcGxheUxheWVyKG1fZGZiLCBETElEX1BSSU1B
UlksICZtX2RmYkRpc3BsYXlMYXllcik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAg
ICAgIGdvdG8gZW5kOworCisgICAgcmVzdWx0ID0gbV9kZmJEaXNwbGF5TGF5ZXItPkdldFdpbmRv
dyhtX2RmYkRpc3BsYXlMYXllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PERGQldpbmRvd0lEPihjbGllbnQtPm93bmVyV2lkZ2V0KCktPnBy
b3BlcnR5KCJfcV9EaXJlY3RGQldpbmRvd0lEIikudG9JbnQoKSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9kZmJXaW5kb3cpOworICAgIGlmIChyZXN1bHQg
IT0gREZCX09LKQorICAgICAgICBnb3RvIGVuZDsKKyAgICB3c0luZm8gPSBuZXcgREZCV2luZG93
SW5mbzsKKyAgICB3c0luZm8tPmRmYiA9IG1fZGZiOworICAgIHdzSW5mby0+d2luZG93ID0gbV9k
ZmJXaW5kb3c7CisgICAgd3NJbmZvLT5sYXllciA9IG1fZGZiRGlzcGxheUxheWVyOworICAgIG1f
bnBXaW5kb3cud3NfaW5mbyA9IHdzSW5mbzsKKyAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRv
d1R5cGVEcmF3YWJsZTsKKyAgICBtX25wV2luZG93LndpbmRvdyA9IDA7IC8vIE5vdCB1c2VkPwor
ICAgIG1fbnBXaW5kb3cueCA9IDA7CisgICAgbV9ucFdpbmRvdy55ID0gMDsKKyAgICBtX25wV2lu
ZG93LndpZHRoID0gLTE7CisgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKKworZW5kOgorICAg
IGlmIChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIGlmIChtX2RmYldpbmRvdykgeworICAg
ICAgICAgICAgbV9kZmJXaW5kb3ctPlJlbGVhc2UobV9kZmJXaW5kb3cpOworICAgICAgICAgICAg
bV9kZmJXaW5kb3cgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fZGZiRGlzcGxheUxh
eWVyKQorICAgICAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXItPlJlbGVhc2UobV9kZmJEaXNwbGF5
TGF5ZXIpOworCisgICAgICAgIGlmIChtX2RmYikgeworICAgICAgICAgICAgbV9kZmItPlJlbGVh
c2UobV9kZmIpOworICAgICAgICAgICAgbV9kZmIgPSAwOworICAgICAgICB9CisgICAgICAgIERp
cmVjdEZCRXJyb3IoIlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKSIsIHJlc3VsdCk7CisgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2Fu
Tm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNlbmRpZgogCiAg
ICAgc2hvdygpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1
Y3QqIHdzaSA9IG5ldyBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KCk7CiAgICAgd3NpLT50eXBl
ID0gMDsKLQogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKICAgICAgICAgY29uc3QgUVgxMUluZm8q
IHgxMUluZm8gPSAmcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+eDExSW5mbygpOwogCkBAIC03NTMs
NyArMTU0NCw2IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIHdz
aS0+dmlzdWFsID0gKFZpc3VhbCopeDExSW5mby0+dmlzdWFsKCk7CiAgICAgICAgIHdzaS0+ZGVw
dGggPSB4MTFJbmZvLT5kZXB0aCgpOwogICAgICAgICB3c2ktPmNvbG9ybWFwID0geDExSW5mby0+
Y29sb3JtYXAoKTsKLQogICAgICAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVXaW5k
b3c7CiAgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQqKXBsYXRmb3JtUGx1Z2luV2lk
Z2V0KCktPndpbklkKCk7CiAgICAgICAgIG1fbnBXaW5kb3cud2lkdGggPSAtMTsKQEAgLTc4Miw4
ICsxNTcyLDggQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgbV9u
cFdpbmRvdy53aWR0aCA9IC0xOwogICAgICAgICBtX25wV2luZG93LmhlaWdodCA9IC0xOwogICAg
IH0KLQogICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IHdzaTsKKyNlbmRpZgogCiAgICAgaWYgKCEo
bV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRv
d0NhbGwpKSkgewogICAgICAgICB1cGRhdGVQbHVnaW5XaWRnZXQoKTsKQEAgLTc5OCwxMSArMTU4
OCwzMyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgaWYgKHBsYXRm
b3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgIGRlbGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgp
OwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX2RyYXdhYmxlKQogICAgICAgICBYRnJlZVBp
eG1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKIAogICAgIGlmIChtX2NvbG9y
bWFwKQogICAgICAgICBYRnJlZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fY29sb3Jt
YXApOworI2Vsc2UKKyAgICBkZWxldGUgbV9ldmVudEZpbHRlcjsKKyAgICBtX2V2ZW50RmlsdGVy
ID0gMDsKKyAgICBkZWxldGUgc3RhdGljX2Nhc3Q8REZCV2luZG93SW5mbyo+KG1fbnBXaW5kb3cu
d3NfaW5mbyk7CisgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKKyAgICBtX3BpeG1hcCA9IFFQ
aXhtYXAoKTsKKyAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAgbV9kZmJXaW5kb3ctPlJl
bGVhc2UobV9kZmJXaW5kb3cpOworICAgICAgICBtX2RmYldpbmRvdyA9IDA7Cit9CisKKyAgICBp
ZiAobV9kZmJEaXNwbGF5TGF5ZXIpIHsKKyAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXItPlJlbGVh
c2UobV9kZmJEaXNwbGF5TGF5ZXIpOworICAgICAgICBtX2RmYkRpc3BsYXlMYXllciA9IDA7Cisg
ICAgfQorCisgICAgaWYgKG1fZGZiKSB7CisgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1fZGZiKTsK
KyAgICAgICAgbV9kZmIgPSAwOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6
OmhhbHQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51107</attachid>
            <date>2010-03-18 16:03:00 -0700</date>
            <delta_ts>2010-05-24 08:48:12 -0700</delta_ts>
            <desc>Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</desc>
            <filename>patch.36171</filename>
            <type>text/plain</type>
            <size>86819</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTAtMDMtMTggIEFuZGVycyBCYWtrZW4gIDxBbmRlcnMgQmFra2Vu
IDxhZ2Jha2tlbkBnbWFpbC5jb20+PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVzcyBOUEFQ
SSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RGQi4gSXQn
cyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAgICAgIEZs
YXNobGl0ZS4gCisKKyAgICAgICAgVGhlIGNvZGUgaXMgbGFyZ2VseSBiYXNlZCBvbiB0aGUgUXQv
WDExIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd2xlc3MKKyAgICAgICAgTlBBUEkuIEl0IGFkZHMg
dGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2Vlbgor
ICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5JWCBpcyBkZWZpbmVkLiBUaGlzIG1l
YW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgIGZ1bmN0aW9uIHRoZSBzYW1lIHdheSBmb3Ig
WDExIGJ1aWxkcy4KKworICAgICAgICBTaW5jZSB0aGUgbm9ybWFsIHVzZSBjYXNlIGZvciBOUEFQ
SSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0ZXMKKyAgICAgICAgbGlrZSB5b3V0dWJl
IGl0J3MgaW1wb3J0YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGx1Z2luIGdldHMgYW4gdXBkYXRlZAor
ICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBtb3ZlcyBvciByZXNpemVzLiBU
aGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgZmFjdCB0aGF0IHRoZSB2aWRlbyB3aWxsIGJlIHJl
bmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIgcmF0aGVyCisgICAgICAgIHRoYW4gYWN0dWFs
bHkgaW50byB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgdGhhdCdzIGJlaW5nIHJlbmRlcmVkIHRvLgor
CisgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0ZXN0IGNhc2UgdGhhdCBJIGNvdWxkIGhlbHAgcGVv
cGxlIHNldCB1cCBmb3IgdGVzdGluZworICAgICAgICB3aXRoIFF0L1FXUyBEaXJlY3RGQiBidXQg
SSBkb24ndCBrbm93IGhvdyB0byBtYWtlIGl0IGF1dG9tYXRlZC4KKworICAgICAgICBUbyBlbmFi
bGUgTlBBUEkgZm9yIERpcmVjdEZCIHRoZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFrZSBzdXJlCisg
ICAgICAgIHFtYWtlLmNvbmYgY29udGFpbnMgdGhpcyBsaW5lOgorCisgICAgICAgIERFRklORVMg
Kz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUElfRElSRUNURkIKKworICAgICAgICBRdCBtdXN0
IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRoZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAoYXMK
KyAgICAgICAgb3Bwb3NlZCB0byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKworICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJyaWRnZS9ucGFw
aS5oOgorICAgICAgICAqIGJyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6aW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXREaXJlY3RG
Qk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91c2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OldpbmRvd01vdmVFdmVudEZp
bHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50Rmls
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6dGltZXJFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEwLTAzLTE4ICBEYXZpZCBIeWF0
dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnByaQkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC04Myw2ICs4MywxMCBAQCBncmVhdGVyVGhhbihRVF9NSU5PUl9WRVJTSU9OLCA1KSB7
CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERFRklO
RVMgKz0gRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MQogCiAjIE5lc2NhcGUgcGx1Z2lucyBz
dXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdp
bmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTU0LDE2ICsyMTU0LDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRT
Q0FQRV9QTFVHSU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMK
ICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAg
ICAgICAgICAgICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBf
REZCCisgICAgICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJ
UkVDVEZCCisgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisg
ICAgICAgICAgICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAgIENP
TkZJRyArPSB4MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNw
cAorICAgICAgICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFp
bmVyUXQuaAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IFwK
LSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgXAog
ICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAogICAg
ICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAgICAg
ICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5D
b250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3Jl
L2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVm
aW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAgICAgI2luY2x1ZGUgPFgx
MS9YdXRpbC5oPgogICAgICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHR5
cGVkZWYgc3RydWN0IF9OUFJlY3QKIH0gTlBSZWN0OwogCiAKLSNpZmRlZiBYUF9VTklYCisjaWYg
ZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAvKgogICogVW5peCBzcGVjaWZp
YyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICovCkBAIC01OTMsNiArNTkzLDkgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX05QRXZlbnQKICAgICB1aW50MzIgICB3UGFyYW07CiAgICAgdWludDMyICAg
bFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYgZGVmaW5lZCAoWFBfREZCKQorI2luY2x1ZGUgPGRp
cmVjdGZiLmg+Cit0eXBlZGVmIERGQkV2ZW50IE5QRXZlbnQ7CiAjZWxpZiBkZWZpbmVkIChYUF9V
TklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVudDsKICNlbHNlCkBAIC02MTQsNyArNjE3LDcgQEAg
dHlwZWRlZiBSZ25IYW5kbGUgTlBRRFJlZ2lvbjsKIHR5cGVkZWYgQ0dQYXRoUmVmIE5QQ0dSZWdp
b247CiAjZWxpZiBkZWZpbmVkKFhQX1dJTikKIHR5cGVkZWYgSFJHTiBOUFJlZ2lvbjsKLSNlbGlm
IGRlZmluZWQoWFBfVU5JWCkKKyNlbGlmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBf
REZCKQogdHlwZWRlZiBSZWdpb24gTlBSZWdpb247CiAjZWxpZiBkZWZpbmVkKFhQX1NZTUJJQU4p
CiB0eXBlZGVmIFFSZWdpb24qIE5QUmVnaW9uOwpJbmRleDogV2ViQ29yZS9icmlkZ2UvbnBydW50
aW1lX2ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmgJKHJldmlzaW9uIDU2MTg5KQorKysgV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lm
IGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9Y
cmVzb3VyY2UuaD4KIAogICAgICN1bmRlZiBOb25lCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CShyZXZpc2lvbiA1NjE4OSkKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAg
ICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lm
ZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAg
IGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxl
dGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAg
bV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAgLTgyNiw3ICs4MjYsNyBAQCBQbHVnaW5WaWV3OjpQ
bHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2Up
CiAgICAgLCBtX2hhdmVJbml0aWFsaXplZChmYWxzZSkKICAgICAsIG1faXNXYWl0aW5nVG9TdGFy
dChmYWxzZSkKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZCAoWFBfREZCKQogICAgICwgbV9uZWVkc1hFbWJlZChmYWxzZSkKICNlbmRpZgogI2lm
IE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtODQ3LDEwICs4
NDcsMTggQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbQogI2VuZGlm
CiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZC
CiAgICAgLCBtX2RyYXdhYmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1h
cCgwKQogICAgICwgbV9wbHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9ldmVudEZpbHRl
cigwKQorICAgICwgbV9kZmJTdXJmYWNlKDApCisgICAgLCBtX2RmYigwKQorICAgICwgbV9kZmJE
aXNwbGF5TGF5ZXIoMCkKKyAgICAsIG1fZGZiV2luZG93KDApCisjZW5kaWYKICNlbmRpZgogICAg
ICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVhbGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkK
SW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpZiBkZWZpbmVkIFhQX0RGQiAmJiBQTEFURk9STShRVCkKKyNpbmNs
dWRlIDxRUGl4bWFwPgorI2luY2x1ZGUgPGRpcmVjdGZiLmg+CisjZW5kaWYKIAogI2lmIE9TKFdJ
TkRPV1MpICYmIChQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQogdHlwZWRlZiBzdHJ1Y3Qg
SFdORF9fKiBIV05EOwpAQCAtMzEyLDcgKzMxNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCBtX2hhdmVJbml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lzV2FpdGluZ1Rv
U3RhcnQ7CiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZChYUF9ERkIpCiAgICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNlbmRpZgogCkBA
IC0zNjIsMTIgKzM2NiwyMSBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1BlbmRpbmdHZW9t
ZXRyeUNoYW5nZTsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2RyYXdhYmxlOwog
ICAgICAgICBWaXN1YWwqIG1fdmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2NvbG9ybWFwOwog
ICAgICAgICBEaXNwbGF5KiBtX3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9pZCBpbml0WEV2
ZW50KFhFdmVudCogZXZlbnQpOworI2Vsc2UKKyAgICAgICAgUU9iamVjdCAqbV9ldmVudEZpbHRl
cjsKKyAgICAgICAgUVBpeG1hcCBtX3BpeG1hcDsKKyAgICAgICAgSURpcmVjdEZCU3VyZmFjZSAq
bV9kZmJTdXJmYWNlOworICAgICAgICBJRGlyZWN0RkIgKm1fZGZiOworICAgICAgICBJRGlyZWN0
RkJEaXNwbGF5TGF5ZXIgKm1fZGZiRGlzcGxheUxheWVyOworICAgICAgICBJRGlyZWN0RkJXaW5k
b3cgKm1fZGZiV2luZG93OworI2VuZGlmCiAjZW5kaWYKIAogICAgICAgICBJbnRSZWN0IG1fY2xp
cFJlY3Q7IC8vIFRoZSBjbGlwIHJlY3QgdG8gYXBwbHkgdG8gYSB3aW5kb3dlZCBwbHVnLWluCklu
ZGV4OiBXZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAkocmV2aXNpb24gNTYxODkpCisrKyBX
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEs
NyArNTEsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJQbHVn
aW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKQEAg
LTY3LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxRS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UVBhaW50ZXI+
CiAjaW5jbHVkZSA8UVdpZGdldD4KKyNpZmRlZiBRX1dTX1gxMQogI2luY2x1ZGUgPFFYMTFJbmZv
PgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc0LDYgKzc0
LDIxIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVu
ZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2ljVGlt
ZXI+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8geworICAg
IElEaXJlY3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAg
SURpcmVjdEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCitleHRlcm4g
UV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3Bp
eG1hcChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5EX05BTUVTUEFDRQorI2VuZGlmCisK
ICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5o
PgogCkBAIC0xMDksNiArMTI0LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVjdCAmJiBtX2NsaXBSZWN0
ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAg
aWYgKCFtX2lzV2luZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0
LnNpemUoKSkgewogICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4
bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwpAQCAtMTE3LDYgKzEzMyw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93
LndzX2luZm8pLT5kZXB0aCk7CiAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9Cisj
ZW5kaWYKIAogICAgIC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRl
bHksIHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNo
YW5nZSA9IHRydWU7CkBAIC0xNjYsMTYgKzE4MywxNiBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogCiAKICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAKKyNpZm5k
ZWYgWFBfREZCCiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3YWJsZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1Z2luRGlzcGxheSAmJiBtX3Bs
dWdpbkRpc3BsYXkgIT0gUVgxMUluZm86OmRpc3BsYXkoKTsKLQogICAgIFFQYWludGVyKiBwYWlu
dGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgSW50UmVjdCBleHBvc2VkUmVj
dChyZWN0KTsKICAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwogICAgIGV4
cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdCgpLngoKSwgLWZyYW1lUmVjdCgpLnkoKSk7CiAKKyAg
ICBjb25zdCBib29sIHN5bmNYID0gbV9wbHVnaW5EaXNwbGF5ICYmIG1fcGx1Z2luRGlzcGxheSAh
PSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgIFFQaXhtYXAgcXREcmF3YWJsZSA9IFFQaXhtYXA6
OmZyb21YMTFQaXhtYXAobV9kcmF3YWJsZSwgUVBpeG1hcDo6RXhwbGljaXRseVNoYXJlZCk7CiAg
ICAgY29uc3QgaW50IGRyYXdhYmxlRGVwdGggPSAoKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3Qq
KW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoOwogICAgIEFTU0VSVChkcmF3YWJsZURlcHRoID09
IHF0RHJhd2FibGUuZGVwdGgoKSk7CkBAIC0yMzQsNiArMjUxLDI0IEBAIHZvaWQgUGx1Z2luVmll
dzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBv
aW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsg
ZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cG9zZWRSZWN0KTsKKyNlbHNlCisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZk
ZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZl
bnQgPSBkZmJFdmVudC51c2VyOworICAgIHVzZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAg
ICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAgIHVzZXJFdmVudC5kYXRhID0gJm1fbnBXaW5k
b3c7CisgICAgZGlzcGF0Y2hOUEV2ZW50KGRmYkV2ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRl
ciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworICAgIEludFJlY3QgZXhwb3NlZFJlY3Qo
cmVjdCk7CisgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKKyAgICBleHBv
c2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOworICAgIGNv
bnN0IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGUgb2xkTW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0
aW9uTW9kZSgpOworICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJh
bWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2Vk
UmVjdC55KCkpLCBtX3BpeG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0
KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUob2xkTW9kZSk7CisjZW5kaWYKIH0K
IAogLy8gVE9ETzogVW5pZnkgYWNyb3NzIHBvcnRzLgpAQCAtMjUyLDYgKzI4Nyw3IEBAIGJvb2wg
UGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQKICAgICByZXR1cm4gYWNjZXB0ZWQ7
CiB9CiAKKyNpZm5kZWYgWFBfREZCCiB2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgUVdpZGdldCogb3duZXJXaWRnZXQpCiB7CiAgICAgeEV2ZW50LT54YW55LnNlcmlh
bCA9IDA7IC8vIHdlIGFyZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5
IFggU2VydmVyCkBAIC0yOTMsNiArMzI5LDUzNCBAQCB2b2lkIHNldFhLZXlFdmVudFNwZWNpZmlj
RmllbGRzKFhFdmVudCogCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9IDA7CiAgICAgeEV2ZW50
LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGluaXREaXJl
Y3RGQktleWJvYXJkRXZlbnQoREZCSW5wdXRFdmVudCogZGZiRXZlbnQsIGNvbnN0IFFLZXlFdmVu
dCogcXRFdmVudCkKK3sKKyAgICBkZmJFdmVudC0+Y2xhenogPSBERkVDX0lOUFVUOworICAgIGRm
YkV2ZW50LT50eXBlID0gKHF0RXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzID8gRElF
VF9LRVlQUkVTUyA6IERJRVRfS0VZUkVMRUFTRSk7CisgICAgdW5zaWduZWQgaW50IGZsYWdzID0g
KERJRUZfS0VZU1lNQk9MIHwgRElFRl9NT0RJRklFUlMpOworICAgIGlmIChxdEV2ZW50LT5pc0F1
dG9SZXBlYXQoKSkKKyAgICAgICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisgICAgY29uc3QgUXQ6
OktleWJvYXJkTW9kaWZpZXIgbW9kaWZpZXJzW10gPSB7IFF0OjpTaGlmdE1vZGlmaWVyLCBRdDo6
Q29udHJvbE1vZGlmaWVyLCBRdDo6QWx0TW9kaWZpZXIsIFF0OjpNZXRhTW9kaWZpZXIgfTsKKyAg
ICBjb25zdCBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayBkZmJNb2RpZmllcnNbXSA9IHsgRElN
TV9TSElGVCwgRElNTV9DT05UUk9MLCBESU1NX0FMVCwgRElNTV9NRVRBIH07CisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygp
ICYgbW9kaWZpZXJzW2ldKQorICAgICAgICAgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERGQklu
cHV0RGV2aWNlTW9kaWZpZXJNYXNrKGRmYkV2ZW50LT5tb2RpZmllcnMgfCBkZmJNb2RpZmllcnNb
aV0pOworICAgIH0KKyAgICBzd2l0Y2ggKHF0RXZlbnQtPmtleSgpKSB7CisgICAgY2FzZSBRdDo6
S2V5X0JhY2tzcGFjZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0tT
UEFDRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQkFDS1NQQUNFOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVGFiOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfVEFCOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9UQUI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SZXR1cm46CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19SRVRVUk47CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0tQX0VOVEVSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXNjYXBlOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVNDQVBFOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9FU0NBUEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWxldGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUxFVEU7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0RFTEVURTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0xlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19DVVJTT1JfTEVGVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTEVGVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1JpZ2h0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1JJR0hUOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VwOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1VQOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0Rvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfRE9X
TjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRE9XTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0luc2VydDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0lOU0VSVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSU5TRVJUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0hPTUU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FbmQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FTkQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhZ2VVcDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBR0VfVVA7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1BBR0VfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYWdlRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBR0Vf
RE9XTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEFHRV9ET1dOOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUHJpbnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19QUklOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Bh
dXNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFVU0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZWxlY3Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TRUxFQ1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9P
cGVuVXJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfR09UTzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NsZWFyOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfQ0xFQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9N
ZW51OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUVOVTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hlbHA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19IRUxQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZVBh
Z2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19JTlRFUk5FVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xhdW5jaE1haWw6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRmF2b3JpdGVzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRkFWT1JJ
VEVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFjazoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Gb3J3YXJkOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRk9S
V0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZVVwOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVk9MVU1FX1VQOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1ZPTFVNRV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
Vm9sdW1lTXV0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01VVEU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVBsYXk6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19QTEFZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTWVkaWFTdG9wOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1RP
UDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUmVjb3JkOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVDT1JEOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTWVkaWFQcmV2aW91czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1BSRVZJT1VTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVk
aWFOZXh0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTkVYVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19GMjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMzoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0YzOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRjQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjU6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19GNTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
RjU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0Y2OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9GNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y3OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjc7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0Y3OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjg6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GODsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y5OworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9GOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxMDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMDsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRjEwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjExOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjExOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9GMTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MTI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTI7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1NoaWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0hJRlQ7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NISUZUX0w7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Db250cm9sOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfQ09OVFJPTDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQ09OVFJPTF9M
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9BTFRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdEdyOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUR1I7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
TUVUQTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTUVUQV9MOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3VwZXJfTDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NVUEVSOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TVVBF
Ul9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSHlwZXJfTDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0hZUEVSOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9IWVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fw
c0xvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DQVBTX0xPQ0s7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NBUFNfTE9DSzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X051bUxvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19OVU1fTE9DSzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTlVNX0xP
Q0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TY3JvbGxMb2NrOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0NST0xMX0xPQ0s7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1NDUk9MTF9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0RFQURfQUJPVkVET1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFk
X0Fib3ZlcmluZzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUJP
VkVSSU5HOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BY3V0ZToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUNVVEU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZlOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfREVBRF9CUkVWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0RlYWRfQ2Fyb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFE
X0NBUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DZWRpbGxhOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DRURJTExBOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DaXJjdW1mbGV4OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DSVJDVU1GTEVYOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRGVhZF9EaWFlcmVzaXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19ERUFEX0RJQUVSRVNJUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfRG91YmxlYWN1dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19ERUFEX0RPVUJMRUFDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9HcmF2ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfR1JB
VkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0lvdGE6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0lPVEE7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9EZWFkX01hY3JvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0RFQURfTUFDUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9PZ29uZWs6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX09H
T05FSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfU2VtaXZvaWNlZF9T
b3VuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfU0VNSVZPSUNF
RF9TT1VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVGlsZGU6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1RJTERFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Wb2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1ZPSUNFRF9TT1VORDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1NwYWNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NQQUNFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhjbGFtOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRVhDTEFNQVRJT05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1F1b3RlRGJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfUVVPVEFUSU9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtYmVyU2ln
bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX05VTUJFUl9TSUdOOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG9sbGFyOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRE9MTEFSX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9QZXJjZW50OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEVS
Q0VOVF9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQW1wZXJzYW5kOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQU1QRVJTQU5EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0FQT1NUUk9QSEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYXJlbkxlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVJF
TlRIRVNJU19MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFyZW5SaWdo
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX1JJR0hU
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXN0ZXJpc2s6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BU1RFUklTSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BsdXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19Q
TFVTX1NJR047CisgICAgICAgIGlmIChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpLZXlwYWRN
b2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0tQX1BMVVM7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db21tYToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0NPTU1BOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9DT01NQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01pbnVzOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUlOVVNfU0lHTjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfTUlOVVNfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1BlcmlvZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BFUklP
RDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEVSSU9EOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfU2xhc2g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TTEFTSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0xBU0g7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8wOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfMDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU18xOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8xOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTXzI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8zOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfMzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU180OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV80OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTXzU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV82OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfNjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU183OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV83OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfODoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTXzg7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV85OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfOTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfOTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbG9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfQ09MT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZW1pY29s
b246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TRU1JQ09MT047CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NFTUlDT0xPTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0xlc3M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19MRVNTX1RIQU5fU0lHTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTEVTU19T
SUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXF1YWw6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FUVVBTFNfU0lHTjsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfRVFVQUxTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9HcmVhdGVyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfR1JFQVRF
Ul9USEFOX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdWVzdGlvbjoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1FVRVNUSU9OX01BUks7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0FUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0E7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX0E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9C
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQjsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9DOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0Q7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Q7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9FOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Y6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9GOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0c7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0c7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0k6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9JOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9JOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0o7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9LOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSzsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0w6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9MOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTToK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX007CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX007CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9OOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X086CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9POwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9POworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X1A7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1A7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9ROgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfUTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9SOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9SOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1M7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1M7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU01BTExfVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1U6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9VOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9VOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Y7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX1Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9XOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVzsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfVzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1g6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9YOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9YOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
WToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1k7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9aOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWjsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0JyYWNrZXRMZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfU1FVQVJFX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0JhY2tzbGFzaDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTTEFT
SDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQkFDS1NMQVNIOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldFJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Bc2NpaUNpcmN1bToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0NJUkNVTUZMRVhfQUNDRU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfVW5kZXJzY29yZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1VO
REVSU0NPUkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZUxlZnQ6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9CUkFDS0VUX0xFRlQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYXI6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19WRVJUSUNBTF9CQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9CcmFjZVJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
Q1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fz
Y2lpVGlsZGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19USUxERTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICgocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6
U2hpZnRNb2RpZmllcikgJiYgcXRFdmVudC0+a2V5KCkgPj0gUXQ6OktleV9BICYmIHF0RXZlbnQt
PmtleSgpIDw9IFF0OjpLZXlfWikKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBERkJJ
bnB1dERldmljZUtleVN5bWJvbCgoZGZiRXZlbnQtPmtleV9zeW1ib2wgLSBESUtTX1NNQUxMX0Ep
ICsgRElLU19DQVBJVEFMX0EpOworICAgIGlmIChkZmJFdmVudC0+a2V5X2lkICE9IERJS0lfVU5L
Tk9XTikgeworICAgICAgICBmbGFncyA9IERGQklucHV0RXZlbnRGbGFncyhkZmJFdmVudC0+Zmxh
Z3MgfCBESUVGX0tFWUlEKTsKKyAgICAgICAgaWYgKGRmYkV2ZW50LT5rZXlfaWQgPj0gRElLSV8w
ICYmIGRmYkV2ZW50LT5rZXlfaWQgPD0gRElLSV85ICYmIHF0RXZlbnQtPm1vZGlmaWVycygpICYg
UXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERGQklu
cHV0RGV2aWNlS2V5SWRlbnRpZmllcihkZmJFdmVudC0+a2V5X2lkIC0gRElLSV8wICsgRElLSV9L
UF8wKTsKKyAgICB9CisgICAgZGZiRXZlbnQtPmZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGZs
YWdzKTsKK30KKyNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CkBAIC0zMDIsMTQgKzg2NiwyMSBAQCB2b2lkIFBsdWdp
blZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMo
KS5rZXl1cEV2ZW50KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2
ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtleUV2ZW50
U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsKKyNlbHNlCisgICAgREZCRXZlbnQgbnBF
dmVudDsKKyAgICBERkJJbnB1dEV2ZW50JiBpbnB1dCA9IG5wRXZlbnQuaW5wdXQ7CisgICAgaW5p
dERpcmVjdEZCS2V5Ym9hcmRFdmVudCgmaW5wdXQsIGV2ZW50LT5rZXlFdmVudCgpLT5xdEV2ZW50
KCkpOworI2VuZGlmCiAKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKKyNpZm5kZWYgWFBfREZCCiBzdGF0
aWMgdW5zaWduZWQgaW50IGlucHV0RXZlbnRTdGF0ZShNb3VzZUV2ZW50KiBldmVudCkKIHsKICAg
ICB1bnNpZ25lZCBpbnQgc3RhdGUgPSAwOwpAQCAtMzg0LDYgKzk1NSw0NSBAQCBzdGF0aWMgdm9p
ZCBzZXRYQ3Jvc3NpbmdFdmVudFNwZWNpZmljRmllCiAgICAgeGNyb3NzaW5nLnNhbWVfc2NyZWVu
ID0gdHJ1ZTsKICAgICB4Y3Jvc3NpbmcuZm9jdXMgPSBmYWxzZTsKIH0KKyNlbHNlCitzdGF0aWMg
aW5saW5lIHZvaWQgaW5pdERpcmVjdEZCTW91c2VFdmVudChERkJXaW5kb3dFdmVudCogZGZiRXZl
bnQsIGNvbnN0IE1vdXNlRXZlbnQqIGV2ZW50KQoreworICAgIGRmYkV2ZW50LT5jbGF6eiA9IERG
RUNfV0lORE9XOworCisgICAgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2
ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX0NPTlRST0w7CisgICAg
aWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9TSElGVDsK
KyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9BTFQ7
CisgICAgaWYgKGV2ZW50LT5tZXRhS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX01F
VEE7CisgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNr
KG1vZGlmaWVycyk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50
KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dOIDogRFdFVF9CVVRUT05VUCk7Cisg
ICAgICAgIHN3aXRjaCAoZXZlbnQtPmJ1dHRvbigpKSB7CisgICAgICAgIGNhc2UgTGVmdEJ1dHRv
bjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNaWRkbGVCdXR0b246CisgICAgICAgICAgICBkZmJFdmVu
dC0+YnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBSaWdodEJ1dHRvbjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX1JJR0hU
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBkZmJFdmVudC0+YnV0dG9ucyA9IERGQklucHV0RGV2aWNl
QnV0dG9uTWFzaygwKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gRFdFVF9NT1RJ
T047CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKyNlbmRpZgogCiB2
b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiB7CkBA
IC0zOTcsMTEgKzEwMDcsMTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1v
dXNlRQogCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgIH0KLQorICAgIEludFBv
aW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKKyNpZm5kZWYgWFBf
REZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKLSAg
ICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRl
cmVyKCktPmFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKSk7CiAKICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KQogICAgICAgICBzZXRYQnV0
dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKQEAg
LTQxMSwxMyArMTAyMSw0MCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91
c2VFCiAgICAgICAgIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2
ZW50LCBwb3N0Wm9vbVBvcyk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFk
aXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogCisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50
LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZW91dEV2ZW50KSB7CisgICAgICAgIG5wRXZlbnQuY2xhenogPSBERkVDX1dJTkRPVzsKKyAg
ICAgICAgbnBFdmVudC53aW5kb3cudHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBEV0VUX0xFQVZFKTsKKyAgICAgICAgbnBF
dmVudC53aW5kb3cueCA9IG5wRXZlbnQud2luZG93LmN4ID0gcG9zdFpvb21Qb3MueCgpOworICAg
ICAgICBucEV2ZW50LndpbmRvdy55ID0gbnBFdmVudC53aW5kb3cuY3kgPSBwb3N0Wm9vbVBvcy55
KCk7CiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47Cit9CisKKyAgICBERkJXaW5kb3dF
dmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAgbV9kZmJXaW5kb3ctPkdldElEKG1f
ZGZiV2luZG93LCAmd2luZG93LndpbmRvd19pZCk7CisgICAgaW5pdERpcmVjdEZCTW91c2VFdmVu
dCgmd2luZG93LCBldmVudCk7CisgICAgd2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAg
d2luZG93LnkgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJzb2x1dGVM
b2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4ID0gYWJz
b2x1dGVMb2NhdGlvbi54KCk7CisgICAgd2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7
CisKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVG
b2N1c0luRXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAg
ICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDI1LDEyICsxMDYyLDIxIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAgICBldmVudC50eXBlID0gOTsgLyogaW50
IGFzIFF0IHVuc2V0cyBGb2N1c0luICovCiAgICAgZXZlbnQubW9kZSA9IE5vdGlmeU5vcm1hbDsK
ICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOworICAgIGRpc3BhdGNoTlBFdmVu
dChucEV2ZW50KTsKIAorI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgm
bnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRv
dyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAg
IHdpbmRvdy50eXBlID0gRFdFVF9HT1RGT0NVUzsKICAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVu
dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkK
IHsKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgm
bnBFdmVudCk7CiAKQEAgLTQ0MCw2ICsxMDg2LDE1IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxl
Rm9jdXNPdXRFdmVudCgpCiAgICAgZXZlbnQuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKIAog
ICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbHNlCisgICAgREZCRXZlbnQgbnBFdmVu
dDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworICAgIERGQldp
bmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xhenogPSBE
RkVDX1dJTkRPVzsKKyAgICB3aW5kb3cudHlwZSA9IERXRVRfTE9TVEZPQ1VTOworICAgIGRpc3Bh
dGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgorCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0
UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTQ1Niw2ICsxMTExLDQ5IEBAIHZvaWQgUGx1
Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEkKICAgICAgICAgc2V0TlBXaW5kb3dJZk5l
ZWRlZCgpOwogfQogCisjaWZkZWYgWFBfREZCCitjbGFzcyBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIg
OiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgV2luZG93TW92ZUV2ZW50RmlsdGVyKGJv
b2wqIGcsIFBsdWdpblZpZXcqIHZpZXcsIFFXaWRnZXQqIHdhdGNoZWQpCisgICAgICAgIDogUU9i
amVjdCgwKQorICAgICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKGcpCisgICAgICAg
ICwgbV9wbHVnaW5WaWV3KHZpZXcpCisgICAgeworICAgICAgICBRX0FTU0VSVCh3YXRjaGVkKTsK
KyAgICAgICAgZm9yZXZlciB7CisgICAgICAgICAgICB3YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0
ZXIodGhpcyk7CisgICAgICAgICAgICBpZiAod2F0Y2hlZC0+aXNXaW5kb3coKSkKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJlbnRXaWRn
ZXQoKTsKKyAgICAgICAgICAgIGlmICghd2F0Y2hlZCkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9iamVjdCAqLCBRRXZl
bnQqIGUpCisgICAgeworICAgICAgICBpZiAoZS0+dHlwZSgpID09IFFFdmVudDo6TW92ZSB8fCBl
LT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUpIHsKKyAgICAgICAgICAgICptX2hhc1BlbmRpbmdH
ZW9tZXRyeUNoYW5nZSA9IHRydWU7CisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0KDEwLCB0aGlz
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdm9pZCB0
aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQorICAgIHsKKyAgICAgICAgaWYgKGUtPnRpbWVySWQo
KSA9PSBtX3RpbWVyLnRpbWVySWQoKSkgeworICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7Cisg
ICAgICAgICAgICBtX3BsdWdpblZpZXctPmZvcmNlUmVkcmF3KCk7CisgICAgICAgIH0KKyAgICB9
Citwcml2YXRlOgorICAgIGJvb2wqIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworICAgIFBs
dWdpblZpZXcqIG1fcGx1Z2luVmlldzsKKyAgICBRQmFzaWNUaW1lciBtX3RpbWVyOworfTsKKwor
I2VuZGlmCisKIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiB7CiAgICAg
aWYgKCFtX2lzU3RhcnRlZCB8fCAhcGFyZW50KCkgfHwgIW1fcGx1Z2luLT5wbHVnaW5GdW5jcygp
LT5zZXR3aW5kb3cpCkBAIC00OTIsNiArMTE5MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBX
aW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2Ns
aXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9j
bGlwUmVjdC5oZWlnaHQoKTsKICAgICB9IGVsc2UgeworI2lmbmRlZiBYUF9ERkIKICAgICAgICAg
bV9ucFdpbmRvdy54ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy55ID0gMDsKIApAQCAtNDk5LDYg
KzExOTgsMzkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAg
ICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBS
ZWN0LnJpZ2h0ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSAwOwor
I2Vsc2UKKyAgICAgICAgUVBvaW50IHBsdWdpblZpZXdHbG9iYWxQb3MgPSB3aW5kb3dDbGlwUmVj
dCgpLnRvcExlZnQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAg
ICAgaWYgKFFXaWRnZXQqIG93bmVyV2lkZ2V0ID0gY2xpZW50ID8gY2xpZW50LT5vd25lcldpZGdl
dCgpIDogMCkgeworICAgICAgICAgICAgaWYgKCFtX2V2ZW50RmlsdGVyKQorICAgICAgICAgICAg
ICAgIG1fZXZlbnRGaWx0ZXIgPSBuZXcgV2luZG93TW92ZUV2ZW50RmlsdGVyKCZtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZSwgdGhpcywgb3duZXJXaWRnZXQpOworICAgICAgICAgICAgcGx1Z2lu
Vmlld0dsb2JhbFBvcyA9IG93bmVyV2lkZ2V0LT5tYXBUb0dsb2JhbChwbHVnaW5WaWV3R2xvYmFs
UG9zKTsKKyAgICAgICAgICAgIGlmIChjb25zdCBRR3JhcGhpY3NXZWJWaWV3KiBpdGVtID0gcW9i
amVjdF9jYXN0PGNvbnN0IFFHcmFwaGljc1dlYlZpZXcqPihjbGllbnQtPnBsdWdpblBhcmVudCgp
KSkgeworICAgICAgICAgICAgICAgIFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkgJiYgIWl0ZW0tPnNj
ZW5lKCktPnZpZXdzKCkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICBjb25zdCBRR3JhcGhp
Y3NWaWV3KiB2aWV3ID0gaXRlbS0+c2NlbmUoKS0+dmlld3MoKS52YWx1ZSgwKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBRUG9pbnQgYWRkID0gdmlldy0+bWFwRnJvbVNjZW5lKGl0ZW0tPnBvcygp
KTsKKyAgICAgICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zICs9IGFkZDsKKyAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoKFFTaXplKShtX3dpbmRvd1JlY3Quc2l6ZSgpKSAhPSBt
X3BpeG1hcC5zaXplKCkpIHsKKyAgICAgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3dpbmRv
d1JlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50
KTsKKyAgICAgICAgfQorCisgICAgICAgIG1fbnBXaW5kb3cueCA9IHBsdWdpblZpZXdHbG9iYWxQ
b3MueCgpOworICAgICAgICBtX25wV2luZG93LnkgPSBwbHVnaW5WaWV3R2xvYmFsUG9zLnkoKTsK
KyAgICAgICAgY29uc3QgSW50UmVjdCBmcmFtZSA9IGZyYW1lUmVjdCgpOworICAgICAgICBtX25w
V2luZG93LndpZHRoID0gZnJhbWUud2lkdGgoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQg
PSBmcmFtZS5oZWlnaHQoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSBtX2Ns
aXBSZWN0LnkoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gbV9jbGlwUmVj
dC54KCk7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2NsaXBSZWN0Lndp
ZHRoKCkgKyBtX2NsaXBSZWN0LngoKSAtIDE7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3Qu
Ym90dG9tID0gbV9jbGlwUmVjdC5oZWlnaHQoKSArIG1fY2xpcFJlY3QueSgpIC0gMTsKKyAgICAg
ICAgbV9kZmJTdXJmYWNlID0gUVRfUFJFUEVORF9OQU1FU1BBQ0UocXRfZGlyZWN0ZmJfc3VyZmFj
ZV9mb3JfcGl4bWFwKG1fcGl4bWFwKSk7CisgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gbV9k
ZmJTdXJmYWNlOworICAgICAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVEcmF3YWJs
ZTsKKyNlbmRpZgogICAgIH0KIAogICAgIC8vIEZMQVNIIFdPUktBUk9VTkQ6IE9ubHkgc2V0IGlu
aXRpYWxseS4gTXVsdGlwbGUgY2FsbHMgdG8KQEAgLTU4NCwxNSArMTMxNiwxMiBAQCBib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoCiBib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpCiB7CiAgICAgc3dpdGNoICh2YXJpYWJsZSkgeworI2lmbmRlZiBYUF9ERkIKICAgICBj
YXNlIE5QTlZ4RGlzcGxheToKICAgICAgICAgKih2b2lkICoqKXZhbHVlID0gUVgxMUluZm86OmRp
c3BsYXkoKTsKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDoKLSAgICAgICAgKnJlc3VsdCA9
IE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgY2FzZSBO
UE5WbmV0c2NhcGVXaW5kb3c6IHsKICAgICAgICAgdm9pZCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KHZhbHVlKTsKICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKQEAgLTYw
MCw3ICsxMzI5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcgog
ICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLQorI2VuZGlmCiAgICAgY2FzZSBOUE5WVG9vbGtpdDoKICAgICAgICAgaWYgKG1fcGx1
Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya1JlcXVpcmVzR3RrVG9vbEtpdCkpIHsK
ICAgICAgICAgICAgICooKHVpbnQzMiAqKXZhbHVlKSA9IDI7CkBAIC02NDUsNiArMTM3NCw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIGludmFsaWRhdGUoKTsKIH0KIAor
I2lmbmRlZiBYUF9ERkIKIHN0YXRpYyBEaXNwbGF5ICpnZXRQbHVnaW5EaXNwbGF5KCkKIHsKICAg
ICAvLyBUaGUgcGx1Z2luIHRvb2xraXQgbWlnaHQgcnVuIHVzaW5nIGEgZGlmZmVyZW50IFggY29u
bmVjdGlvbi4gQXQgdGhlIG1vbWVudCwgd2Ugb25seQpAQCAtNzEwLDEyICsxNDQwLDE0IEBAIHN0
YXRpYyB2b2lkIGdldFZpc3VhbEFuZENvbG9ybWFwKGludCBkZXAKICAgICBpZiAoKnZpc3VhbCkK
ICAgICAgICAgKmNvbG9ybWFwID0gWENyZWF0ZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCks
IFFYMTFJbmZvOjphcHBSb290V2luZG93KCksICp2aXN1YWwsIEFsbG9jTm9uZSk7CiB9CisjZW5k
aWYKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9p
c1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNj
ZXNzZnVsbHkpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVu
Y3MoKS0+Z2V0dmFsdWUpIHsKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZp
ZXcodGhpcyk7CiAgICAgICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tz
KEpTQzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKQEAgLTc0MCwxMiArMTQ3Miw3MSBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgw
KTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0K
KyNlbHNlCisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgREZCV2luZG93SW5mbyogd3NJbmZvID0gMDsK
KyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0
V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGll
bnQtPm93bmVyV2lkZ2V0KCkpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAg
bV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgREZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZt
X2RmYik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworCisg
ICAgcmVzdWx0ID0gbV9kZmItPkdldERpc3BsYXlMYXllcihtX2RmYiwgRExJRF9QUklNQVJZLCAm
bV9kZmJEaXNwbGF5TGF5ZXIpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBn
b3RvIGVuZDsKKworICAgIHJlc3VsdCA9IG1fZGZiRGlzcGxheUxheWVyLT5HZXRXaW5kb3cobV9k
ZmJEaXNwbGF5TGF5ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxERkJXaW5kb3dJRD4oY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0
eSgiX3FfRGlyZWN0RkJXaW5kb3dJRCIpLnRvSW50KCkpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJm1fZGZiV2luZG93KTsKKyAgICBpZiAocmVzdWx0ICE9IERG
Ql9PSykKKyAgICAgICAgZ290byBlbmQ7CisgICAgd3NJbmZvID0gbmV3IERGQldpbmRvd0luZm87
CisgICAgd3NJbmZvLT5kZmIgPSBtX2RmYjsKKyAgICB3c0luZm8tPndpbmRvdyA9IG1fZGZiV2lu
ZG93OworICAgIHdzSW5mby0+bGF5ZXIgPSBtX2RmYkRpc3BsYXlMYXllcjsKKyAgICBtX25wV2lu
ZG93LndzX2luZm8gPSB3c0luZm87CisgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBl
RHJhd2FibGU7CisgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAwOyAvLyBOb3QgdXNlZD8KKyAgICBt
X25wV2luZG93LnggPSAwOworICAgIG1fbnBXaW5kb3cueSA9IDA7CisgICAgbV9ucFdpbmRvdy53
aWR0aCA9IC0xOworICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gLTE7CisKK2VuZDoKKyAgICBpZiAo
cmVzdWx0ICE9IERGQl9PSykgeworICAgICAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAg
ICAgIG1fZGZiV2luZG93LT5SZWxlYXNlKG1fZGZiV2luZG93KTsKKyAgICAgICAgICAgIG1fZGZi
V2luZG93ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2RmYkRpc3BsYXlMYXllcikK
KyAgICAgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlzcGxheUxheWVy
KTsKKworICAgICAgICBpZiAobV9kZmIpIHsKKyAgICAgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1f
ZGZiKTsKKyAgICAgICAgICAgIG1fZGZiID0gMDsKKyAgICAgICAgfQorICAgICAgICBEaXJlY3RG
QkVycm9yKCJQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkiLCByZXN1bHQpOworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHNo
b3coKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3
c2kgPSBuZXcgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+dHlwZSA9IDA7
Ci0KICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CiAgICAgICAgIGNvbnN0IFFYMTFJbmZvKiB4MTFJ
bmZvID0gJnBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKTsKIApAQCAtNzUzLDcgKzE1
NDQsNiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICB3c2ktPnZp
c3VhbCA9IChWaXN1YWwqKXgxMUluZm8tPnZpc3VhbCgpOwogICAgICAgICB3c2ktPmRlcHRoID0g
eDExSW5mby0+ZGVwdGgoKTsKICAgICAgICAgd3NpLT5jb2xvcm1hcCA9IHgxMUluZm8tPmNvbG9y
bWFwKCk7Ci0KICAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93Owog
ICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LT53aW5JZCgpOwogICAgICAgICBtX25wV2luZG93LndpZHRoID0gLTE7CkBAIC03ODIsOCArMTU3
Miw4IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIG1fbnBXaW5k
b3cud2lkdGggPSAtMTsKICAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKICAgICB9Ci0K
ICAgICBtX25wV2luZG93LndzX2luZm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1
Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxs
KSkpIHsKICAgICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7CkBAIC03OTgsMTEgKzE1ODgsMzMg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAor
I2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAo
UVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkK
ICAgICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsK
KyNlbHNlCisgICAgZGVsZXRlIG1fZXZlbnRGaWx0ZXI7CisgICAgbV9ldmVudEZpbHRlciA9IDA7
CisgICAgZGVsZXRlIHN0YXRpY19jYXN0PERGQldpbmRvd0luZm8qPihtX25wV2luZG93LndzX2lu
Zm8pOworICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7CisgICAgbV9waXhtYXAgPSBRUGl4bWFw
KCk7CisgICAgaWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgIG1fZGZiV2luZG93LT5SZWxlYXNl
KG1fZGZiV2luZG93KTsKKyAgICAgICAgbV9kZmJXaW5kb3cgPSAwOworfQorCisgICAgaWYgKG1f
ZGZiRGlzcGxheUxheWVyKSB7CisgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1f
ZGZiRGlzcGxheUxheWVyKTsKKyAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXIgPSAwOworICAgIH0K
KworICAgIGlmIChtX2RmYikgeworICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAg
ICAgIG1fZGZiID0gMDsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0
KCkKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjAgQEAKKzIwMTAtMDMtMTggIEFuZGVycyBCYWtrZW4gIDxBbmRlcnMgQmFr
a2VuIDxhZ2Jha2tlbkBnbWFpbC5jb20+PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVzcyBO
UEFQSSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RGQi4g
SXQncyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAgICAg
IEZsYXNobGl0ZS4gCisKKyAgICAgICAgVGhlIGNvZGUgaXMgbGFyZ2VseSBiYXNlZCBvbiB0aGUg
UXQvWDExIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd2xlc3MKKyAgICAgICAgTlBBUEkuIEl0IGFk
ZHMgdGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2Vl
bgorICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5JWCBpcyBkZWZpbmVkLiBUaGlz
IG1lYW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgIGZ1bmN0aW9uIHRoZSBzYW1lIHdheSBm
b3IgWDExIGJ1aWxkcy4KKworICAgICAgICBTaW5jZSB0aGUgbm9ybWFsIHVzZSBjYXNlIGZvciBO
UEFQSSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0ZXMKKyAgICAgICAgbGlrZSB5b3V0
dWJlIGl0J3MgaW1wb3J0YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGx1Z2luIGdldHMgYW4gdXBkYXRl
ZAorICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBtb3ZlcyBvciByZXNpemVz
LiBUaGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgZmFjdCB0aGF0IHRoZSB2aWRlbyB3aWxsIGJl
IHJlbmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIgcmF0aGVyCisgICAgICAgIHRoYW4gYWN0
dWFsbHkgaW50byB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgdGhhdCdzIGJlaW5nIHJlbmRlcmVkIHRv
LgorCisgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0ZXN0IGNhc2UgdGhhdCBJIGNvdWxkIGhlbHAg
cGVvcGxlIHNldCB1cCBmb3IgdGVzdGluZworICAgICAgICB3aXRoIFF0L1FXUyBEaXJlY3RGQiBi
dXQgSSBkb24ndCBrbm93IGhvdyB0byBtYWtlIGl0IGF1dG9tYXRlZC4KKworICAgICAgICBUbyBl
bmFibGUgTlBBUEkgZm9yIERpcmVjdEZCIHRoZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFrZSBzdXJl
CisgICAgICAgIHFtYWtlLmNvbmYgY29udGFpbnMgdGhpcyBsaW5lOgorCisgICAgICAgIERFRklO
RVMgKz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUElfRElSRUNURkIKKworICAgICAgICBRdCBt
dXN0IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRoZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAo
YXMKKyAgICAgICAgb3Bwb3NlZCB0byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKworICAgICAgICAq
IFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJyaWRnZS9u
cGFwaS5oOgorICAgICAgICAqIGJyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6aW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXREaXJl
Y3RGQk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91
c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OldpbmRvd01vdmVFdmVu
dEZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50
RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6dGltZXJF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEwLTAzLTE4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVu
dC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnByaQkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4MywxMCBAQCBncmVhdGVyVGhhbihRVF9NSU5PUl9WRVJTSU9OLCA1
KSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERF
RklORVMgKz0gRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MQogCiAjIE5lc2NhcGUgcGx1Z2lu
cyBzdXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyAr
PSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6
IXdpbmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
PTEKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTU0LDE2ICsyMTU0LDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9t
YWMKICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBp
LmgKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAg
ICAgICAgICAgICAgICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0g
WFBfREZCCisgICAgICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdT
X0RJUkVDVEZCCisgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZC
CisgICAgICAgICAgICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAg
IENPTkZJRyArPSB4MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAg
ICAgICAgICAgICAgICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0
LmNwcAorICAgICAgICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29u
dGFpbmVyUXQuaAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9
IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAg
XAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAog
ICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAg
ICAgICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVn
aW5Db250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJD
b3JlL2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAKICNl
bmRpZgogI2VuZGlmCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAh
ZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAgICAgI2luY2x1ZGUg
PFgxMS9YdXRpbC5oPgogICAgICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQ3LDcgKzI0Nyw3IEBA
IHR5cGVkZWYgc3RydWN0IF9OUFJlY3QKIH0gTlBSZWN0OwogCiAKLSNpZmRlZiBYUF9VTklYCisj
aWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAvKgogICogVW5peCBzcGVj
aWZpYyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICovCkBAIC01OTMsNyArNTkzLDEwIEBA
IHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgICAgdWludDMyICAgd1BhcmFtOwogICAgIHVpbnQz
MiAgIGxQYXJhbTsKIH0gTlBFdmVudDsKLSNlbGlmIGRlZmluZWQgKFhQX1VOSVgpCisjZWxpZiBk
ZWZpbmVkKFhQX0RGQikKKyNpbmNsdWRlIDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBO
UEV2ZW50OworI2VsaWYgZGVmaW5lZChYUF9VTklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVudDsK
ICNlbHNlCiB0eXBlZGVmIHZvaWQqICAgICAgICAgICAgTlBFdmVudDsKQEAgLTYxNCw3ICs2MTcs
NyBAQCB0eXBlZGVmIFJnbkhhbmRsZSBOUFFEUmVnaW9uOwogdHlwZWRlZiBDR1BhdGhSZWYgTlBD
R1JlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlwZWRlZiBIUkdOIE5QUmVnaW9uOwot
I2VsaWYgZGVmaW5lZChYUF9VTklYKQorI2VsaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5l
ZChYUF9ERkIpCiB0eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfU1lN
QklBTikKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9u
cHJ1bnRpbWVfaW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaAkocmV2aXNpb24gNTYxODkpCisrKyBXZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
Im5wZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAibnBydW50aW1lLmgiCiAKLSNpZmRlZiBYUF9VTklY
CisjaWYgZGVmaW5lZCBYUF9VTklYICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAjaW5jbHVkZSA8
WDExL1hyZXNvdXJjZS5oPgogCiAgICAgI3VuZGVmIE5vbmUKSW5kZXg6IFdlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAJKHJldmlzaW9uIDU2MTg5KQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzdG9w
KCkKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7CiAgICAgfQog
Ci0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQoWFBfWDExKSAmJiAhZGVmaW5lZChYUF9ERkIp
CiAgICAgaWYgKG1faXNXaW5kb3dlZCAmJiBtX25wV2luZG93LndzX2luZm8pCiAgICAgICAgICAg
IGRlbGV0ZSAoTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCAqKW1fbnBXaW5kb3cud3NfaW5mbzsK
ICAgICBtX25wV2luZG93LndzX2luZm8gPSAwOwpAQCAtODI2LDcgKzgyNiw3IEBAIFBsdWdpblZp
ZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW0KICAgICAsIG1faXNUcmFuc3BhcmVudChm
YWxzZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9pc1dhaXRpbmdU
b1N0YXJ0KGZhbHNlKQotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgp
ICYmICFkZWZpbmVkIChYUF9ERkIpCiAgICAgLCBtX25lZWRzWEVtYmVkKGZhbHNlKQogI2VuZGlm
CiAjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC04NDcs
MTAgKzg0NywxOCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtCiAj
ZW5kaWYKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKKyNpZiAhZGVmaW5lZCBY
UF9ERkIKICAgICAsIG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFsKDApCiAgICAgLCBtX2Nv
bG9ybWFwKDApCiAgICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbHNlCisgICAgLCBtX2V2ZW50
RmlsdGVyKDApCisgICAgLCBtX2RmYlN1cmZhY2UoMCkKKyAgICAsIG1fZGZiKDApCisgICAgLCBt
X2RmYkRpc3BsYXlMYXllcigwKQorICAgICwgbV9kZmJXaW5kb3coMCkKKyNlbmRpZgogI2VuZGlm
CiAgICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVh
bSgwKQpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCShyZXZpc2lvbiA1NjE4OSkKKysrIFdlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDEwIEBACiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lmIGRlZmluZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQor
I2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYg
T1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0
cnVjdCBIV05EX18qIEhXTkQ7CkBAIC0zMTIsNyArMzE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1faGF2ZUluaXRpYWxpemVkOwogICAgICAgICBib29sIG1faXNXYWl0
aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgp
ICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAgICAgYm9vbCBtX25lZWRzWEVtYmVkOwogI2VuZGlm
CiAKQEAgLTM2MiwxMiArMzY2LDIxIEBAIHByaXZhdGU6CiAKICNpZiBkZWZpbmVkKFhQX1VOSVgp
ICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBib29sIG1faGFzUGVuZGlu
Z0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBYUF9ERkIKICAgICAgICAgUGl4bWFwIG1fZHJhd2Fi
bGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1YWw7CiAgICAgICAgIENvbG9ybWFwIG1fY29sb3Jt
YXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1Z2luRGlzcGxheTsKIAogICAgICAgICB2b2lkIGlu
aXRYRXZlbnQoWEV2ZW50KiBldmVudCk7CisjZWxzZQorICAgICAgICBRT2JqZWN0ICptX2V2ZW50
RmlsdGVyOworICAgICAgICBRUGl4bWFwIG1fcGl4bWFwOworICAgICAgICBJRGlyZWN0RkJTdXJm
YWNlICptX2RmYlN1cmZhY2U7CisgICAgICAgIElEaXJlY3RGQiAqbV9kZmI7CisgICAgICAgIElE
aXJlY3RGQkRpc3BsYXlMYXllciAqbV9kZmJEaXNwbGF5TGF5ZXI7CisgICAgICAgIElEaXJlY3RG
QldpbmRvdyAqbV9kZmJXaW5kb3c7CisjZW5kaWYKICNlbmRpZgogCiAgICAgICAgIEludFJlY3Qg
bV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVjdCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWct
aW4KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCShyZXZpc2lvbiA1NjE4OSkK
KysrIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUg
IlBsdWdpbkNvbnRhaW5lclF0LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNpbmNsdWRl
ICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5o
IgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgPFFLZXlFdmVudD4KICNpbmNsdWRlIDxRUGFp
bnRlcj4KICNpbmNsdWRlIDxRV2lkZ2V0PgorI2lmZGVmIFFfV1NfWDExCiAjaW5jbHVkZSA8UVgx
MUluZm8+CiAjaW5jbHVkZSA8WDExL1guaD4KICNpZm5kZWYgUVRfTk9fWFJFTkRFUgpAQCAtNzQs
NiArNzQsMjEgQEAKICNkZWZpbmUgU3RhdHVzIGludAogI2luY2x1ZGUgPFgxMS9leHRlbnNpb25z
L1hyZW5kZXIuaD4KICNlbmRpZgorI2VsaWYgZGVmaW5lZCBYUF9ERkIKKyNpbmNsdWRlIDxRQmFz
aWNUaW1lcj4KKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZT4KKyNpbmNsdWRlIDxRR3JhcGhpY3NW
aWV3PgorI2luY2x1ZGUgPFFHcmFwaGljc1dlYlZpZXc+CitzdHJ1Y3QgREZCV2luZG93SW5mbyB7
CisgICAgSURpcmVjdEZCKiBkZmI7CisgICAgSURpcmVjdEZCRGlzcGxheUxheWVyKiBsYXllcjsK
KyAgICBJRGlyZWN0RkJXaW5kb3cqIHdpbmRvdzsKK307CitRVF9CRUdJTl9OQU1FU1BBQ0UKK2V4
dGVybiBRX0dVSV9FWFBPUlQgSURpcmVjdEZCU3VyZmFjZSogcXRfZGlyZWN0ZmJfc3VyZmFjZV9m
b3JfcGl4bWFwKGNvbnN0IFFQaXhtYXAgJnBpeG1hcCk7CitRVF9FTkRfTkFNRVNQQUNFCisjZW5k
aWYKKwogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1Zh
bHVlLmg+CiAKQEAgLTEwOSw2ICsxMjQsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdp
bldpZGdldCgpCiAgICAgaWYgKG1fd2luZG93UmVjdCA9PSBvbGRXaW5kb3dSZWN0ICYmIG1fY2xp
cFJlY3QgPT0gb2xkQ2xpcFJlY3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmbmRlZiBYUF9ERkIK
ICAgICBpZiAoIW1faXNXaW5kb3dlZCAmJiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRv
d1JlY3Quc2l6ZSgpKSB7CiAgICAgICAgIGlmIChtX2RyYXdhYmxlKQogICAgICAgICAgICAgWEZy
ZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CkBAIC0xMTcsNiArMTMz
LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBX
aW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAgICAgICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOyAv
LyBtYWtlIHN1cmUgdGhhdCB0aGUgc2VydmVyIGtub3dzIGFib3V0IHRoZSBEcmF3YWJsZQogICAg
IH0KKyNlbmRpZgogCiAgICAgLy8gZG8gbm90IGNhbGwgc2V0TlBXaW5kb3dJZk5lZWRlZCBpbW1l
ZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24gcGFpbnQoKQogICAgIG1faGFzUGVuZGluZ0dlb21l
dHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE2NiwxNiArMTgzLDE2IEBAIHZvaWQgUGx1Z2luVmlldzo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKIAor
I2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9pc1dpbmRvd2VkIHx8ICFtX2RyYXdhYmxlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBjb25zdCBib29sIHN5bmNYID0gbV9wbHVnaW5EaXNwbGF5ICYm
IG1fcGx1Z2luRGlzcGxheSAhPSBRWDExSW5mbzo6ZGlzcGxheSgpOwotCiAgICAgUVBhaW50ZXIq
IHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICBJbnRSZWN0IGV4cG9z
ZWRSZWN0KHJlY3QpOwogICAgIGV4cG9zZWRSZWN0LmludGVyc2VjdChmcmFtZVJlY3QoKSk7CiAg
ICAgZXhwb3NlZFJlY3QubW92ZSgtZnJhbWVSZWN0KCkueCgpLCAtZnJhbWVSZWN0KCkueSgpKTsK
IAorICAgIGNvbnN0IGJvb2wgc3luY1ggPSBtX3BsdWdpbkRpc3BsYXkgJiYgbV9wbHVnaW5EaXNw
bGF5ICE9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgUVBpeG1hcCBxdERyYXdhYmxlID0gUVBp
eG1hcDo6ZnJvbVgxMVBpeG1hcChtX2RyYXdhYmxlLCBRUGl4bWFwOjpFeHBsaWNpdGx5U2hhcmVk
KTsKICAgICBjb25zdCBpbnQgZHJhd2FibGVEZXB0aCA9ICgoTlBTZXRXaW5kb3dDYWxsYmFja1N0
cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGg7CiAgICAgQVNTRVJUKGRyYXdhYmxlRGVw
dGggPT0gcXREcmF3YWJsZS5kZXB0aCgpKTsKQEAgLTIzNCw2ICsyNTEsMjQgQEAgdm9pZCBQbHVn
aW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIAogCiAgICAgcGFpbnRlci0+ZHJhd1BpeG1h
cChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55
KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdhYmxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwb3NlZFJlY3QpOworI2Vsc2UKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1z
ZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJVc2VyRXZlbnQmIHVz
ZXJFdmVudCA9IGRmYkV2ZW50LnVzZXI7CisgICAgdXNlckV2ZW50LmNsYXp6ID0gREZFQ19VU0VS
OworICAgIHVzZXJFdmVudC50eXBlID0gMHhkZmI7CisgICAgdXNlckV2ZW50LmRhdGEgPSAmbV9u
cFdpbmRvdzsKKyAgICBkaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworICAgIFFQYWludGVyKiBw
YWludGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgSW50UmVjdCBleHBvc2Vk
UmVjdChyZWN0KTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOworICAg
IGV4cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdCgpLngoKSwgLWZyYW1lUmVjdCgpLnkoKSk7Cisg
ICAgY29uc3QgUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSBvbGRNb2RlID0gcGFpbnRlci0+Y29t
cG9zaXRpb25Nb2RlKCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVy
OjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICBwYWludGVyLT5kcmF3UGl4bWFwKFFQb2lu
dChmcmFtZVJlY3QoKS54KCkgKyBleHBvc2VkUmVjdC54KCksIGZyYW1lUmVjdCgpLnkoKSArIGV4
cG9zZWRSZWN0LnkoKSksIG1fcGl4bWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3Nl
ZFJlY3QpOworICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShvbGRNb2RlKTsKKyNlbmRp
ZgogfQogCiAvLyBUT0RPOiBVbmlmeSBhY3Jvc3MgcG9ydHMuCkBAIC0yNTIsNiArMjg3LDcgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQoTlBFdmVudAogICAgIHJldHVybiBhY2Nl
cHRlZDsKIH0KIAorI2lmbmRlZiBYUF9ERkIKIHZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhF
dmVudCogeEV2ZW50LCBRV2lkZ2V0KiBvd25lcldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnku
c2VyaWFsID0gMDsgLy8gd2UgYXJlIHVuYXdhcmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNz
ZWQgYnkgWCBTZXJ2ZXIKQEAgLTI5Myw2ICszMjksNTM0IEBAIHZvaWQgc2V0WEtleUV2ZW50U3Bl
Y2lmaWNGaWVsZHMoWEV2ZW50KiAKICAgICB4RXZlbnQtPnhrZXkueF9yb290ID0gMDsKICAgICB4
RXZlbnQtPnhrZXkueV9yb290ID0gMDsKIH0KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgaW5p
dERpcmVjdEZCS2V5Ym9hcmRFdmVudChERkJJbnB1dEV2ZW50KiBkZmJFdmVudCwgY29uc3QgUUtl
eUV2ZW50KiBxdEV2ZW50KQoreworICAgIGRmYkV2ZW50LT5jbGF6eiA9IERGRUNfSU5QVVQ7Cisg
ICAgZGZiRXZlbnQtPnR5cGUgPSAocXRFdmVudC0+dHlwZSgpID09IFFFdmVudDo6S2V5UHJlc3Mg
PyBESUVUX0tFWVBSRVNTIDogRElFVF9LRVlSRUxFQVNFKTsKKyAgICB1bnNpZ25lZCBpbnQgZmxh
Z3MgPSAoRElFRl9LRVlTWU1CT0wgfCBESUVGX01PRElGSUVSUyk7CisgICAgaWYgKHF0RXZlbnQt
PmlzQXV0b1JlcGVhdCgpKQorICAgICAgICBmbGFncyB8PSBESUVGX1JFUEVBVDsKKyAgICBjb25z
dCBRdDo6S2V5Ym9hcmRNb2RpZmllciBtb2RpZmllcnNbXSA9IHsgUXQ6OlNoaWZ0TW9kaWZpZXIs
IFF0OjpDb250cm9sTW9kaWZpZXIsIFF0OjpBbHRNb2RpZmllciwgUXQ6Ok1ldGFNb2RpZmllciB9
OworICAgIGNvbnN0IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNrIGRmYk1vZGlmaWVyc1tdID0g
eyBESU1NX1NISUZULCBESU1NX0NPTlRST0wsIERJTU1fQUxULCBESU1NX01FVEEgfTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZp
ZXJzKCkgJiBtb2RpZmllcnNbaV0pCisgICAgICAgICAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0g
REZCSW5wdXREZXZpY2VNb2RpZmllck1hc2soZGZiRXZlbnQtPm1vZGlmaWVycyB8IGRmYk1vZGlm
aWVyc1tpXSk7CisgICAgfQorICAgIHN3aXRjaCAocXRFdmVudC0+a2V5KCkpIHsKKyAgICBjYXNl
IFF0OjpLZXlfQmFja3NwYWNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
QkFDS1NQQUNFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9CQUNLU1BBQ0U7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UYWI6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19UQUI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1RB
QjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1JldHVybjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1JFVFVSTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfS1BfRU5URVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Fc2Nh
cGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FU0NBUEU7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VTQ0FQRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlbGV0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RF
TEVURTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfREVMRVRFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0NVUlNPUl9MRUZUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9M
RUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmlnaHQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfUklHSFQ7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
VXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfVVA7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNP
Ul9ET1dOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ET1dOOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSW5zZXJ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfSU5TRVJUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9JTlNF
UlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Ib21lOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSE9NRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfSE9NRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0VuZDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VORDsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFnZVVw
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFHRV9VUDsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEFHRV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhZ2VEb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
UEFHRV9ET1dOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QQUdFX0RPV047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QcmludDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1BSSU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfUGF1c2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVVTRTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbGVjdDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1NFTEVDVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X09wZW5Vcmw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19HT1RPOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2xlYXI6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19DTEVBUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X01lbnU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NRU5VOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSGVscDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0hFTFA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9I
b21lUGFnZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0lOVEVSTkVUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGF1bmNoTWFpbDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01BSUw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9GYXZvcml0ZXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19G
QVZPUklURVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYWNrOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQkFDSzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0ZvcndhcmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19GT1JXQVJEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lVXA6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfVVA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVEb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfVk9MVU1FX0RPV047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9Wb2x1bWVNdXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTVVU
RTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUGxheToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BMQVk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9NZWRpYVN0b3A6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TVE9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFSZWNvcmQ6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19SRUNPUkQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9NZWRpYVByZXZpb3VzOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfUFJFVklPVVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9NZWRpYU5leHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ORVhUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjE6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19GMTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0YyOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9G
MjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YzOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfRjM7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0YzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfRjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNToKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y1OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9GNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y2OgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjY7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjc6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfRjc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GODoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y4OworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9GODsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y5OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjk7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0Y5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjEwOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjEwOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MTE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTE7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0YxMjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjEyOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfU2hpZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TSElG
VDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0hJRlRfTDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbnRyb2w6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19DT05UUk9MOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DT05U
Uk9MX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbHQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTFQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0FMVF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0R3I6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTFRHUjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X01ldGE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19NRVRBOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9NRVRBX0w7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TdXBlcl9MOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU1VQRVI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X1NVUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IeXBlcl9MOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSFlQRVI7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0hZUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9DYXBzTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NBUFNfTE9D
SzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQ0FQU19MT0NLOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX05VTV9MT0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9O
VU1fTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Njcm9sbExvY2s6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TQ1JPTExfTE9DSzsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0NST0xMX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EZWFkX0Fib3ZlZG90OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfREVBRF9BQk9WRURPVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfQWJvdmVyaW5nOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVB
RF9BQk9WRVJJTkc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0FjdXRl
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQ1VURTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQnJldmU6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0JSRVZFOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9DYXJvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0RFQURfQ0FST047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0NlZGls
bGE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NFRElMTEE7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0NpcmN1bWZsZXg6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NJUkNVTUZMRVg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RpYWVyZXNpczoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0RFQURfRElBRVJFU0lTOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRGVhZF9Eb3VibGVhY3V0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0RFQURfRE9VQkxFQUNVVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWFkX0dyYXZlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVB
RF9HUkFWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfSW90YToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfSU9UQTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfTWFjcm9uOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfREVBRF9NQUNST047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWFkX09nb25lazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RF
QURfT0dPTkVLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9TZW1pdm9p
Y2VkX1NvdW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9TRU1J
Vk9JQ0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9UaWxk
ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfVElMREU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1ZvaWNlZF9Tb3VuZDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfVk9JQ0VEX1NPVU5EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3BhY2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19TUEFDRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU1BBQ0U7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FeGNsYW06CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19FWENMQU1BVElPTl9NQVJLOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUXVvdGVEYmw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19RVU9UQVRJT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1i
ZXJTaWduOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTlVNQkVSX1NJR047
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Eb2xsYXI6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19ET0xMQVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BlcmNlbnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19QRVJDRU5UX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbXBlcnNh
bmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTVBFUlNBTkQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BcG9zdHJvcGhlOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQVBPU1RST1BIRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhcmVuTGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1BBUkVOVEhFU0lTX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYXJl
blJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNf
UklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc3RlcmlzazoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FTVEVSSVNLOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUGx1czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1BMVVNfU0lHTjsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6Oktl
eXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfS1BfUExV
UzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbW1hOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ09NTUE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0NPTU1BOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWludXM6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NSU5VU19TSUdOOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9NSU5VU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUGVyaW9kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
UEVSSU9EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QRVJJT0Q7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TbGFzaDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NMQVNIOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TTEFT
SDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzA6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU18wOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8w
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTXzE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8yOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfMjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzM6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU18zOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8zOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTXzQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV81OgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfNTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzY6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU182OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV82OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTXzc7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzc7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV84OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfODsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfODsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzk6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU185OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV85OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29sb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19DT0xPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Nl
bWljb2xvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NFTUlDT0xPTjsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0VNSUNPTE9OOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfTGVzczoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0xFU1NfVEhBTl9TSUdOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9M
RVNTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FcXVhbDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VRVUFMU19TSUdOOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9FUVVBTFNfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0dyZWF0ZXI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19H
UkVBVEVSX1RIQU5fU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1F1ZXN0
aW9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUVVFU1RJT05fTUFSSzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0F0OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfQVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9B
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQTsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9COworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9COworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfQzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0M7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0M7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfRDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9FOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9FOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0Y7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9HOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfRzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0g6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9IOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9IOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0k7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9KOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSjsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfSjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0s6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9LOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9LOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0w7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9NOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTTsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X046CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9OOwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9OOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X087CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX087CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9QOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfUDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1E6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9ROworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ROworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1I7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1I7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU01BTExfUzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
UzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Q6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9UOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVToKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX1U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9WOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVjsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfVjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1c6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9XOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9XOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
WDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1g7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9ZOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWTsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1o6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9a
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9aOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQnJhY2tldExlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TUVVBUkVfQlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQmFja3NsYXNoOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQkFD
S1NMQVNIOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9CQUNLU0xBU0g7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0UmlnaHQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19TUVVBUkVfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpQ2lyY3VtOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfQ0lSQ1VNRkxFWF9BQ0NFTlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9VbmRlcnNjb3JlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfVU5ERVJTQ09SRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNlTGVm
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfTEVG
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhcjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1ZFUlRJQ0FMX0JBUjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0JyYWNlUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19DVVJMWV9CUkFDS0VUX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfQXNjaWlUaWxkZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1RJTERF
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKChxdEV2ZW50LT5tb2RpZmllcnMoKSAm
IFF0OjpTaGlmdE1vZGlmaWVyKSAmJiBxdEV2ZW50LT5rZXkoKSA+PSBRdDo6S2V5X0EgJiYgcXRF
dmVudC0+a2V5KCkgPD0gUXQ6OktleV9aKQorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERGQklucHV0RGV2aWNlS2V5U3ltYm9sKChkZmJFdmVudC0+a2V5X3N5bWJvbCAtIERJS1NfU01B
TExfQSkgKyBESUtTX0NBUElUQUxfQSk7CisgICAgaWYgKGRmYkV2ZW50LT5rZXlfaWQgIT0gRElL
SV9VTktOT1dOKSB7CisgICAgICAgIGZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGRmYkV2ZW50
LT5mbGFncyB8IERJRUZfS0VZSUQpOworICAgICAgICBpZiAoZGZiRXZlbnQtPmtleV9pZCA+PSBE
SUtJXzAgJiYgZGZiRXZlbnQtPmtleV9pZCA8PSBESUtJXzkgJiYgcXRFdmVudC0+bW9kaWZpZXJz
KCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
REZCSW5wdXREZXZpY2VLZXlJZGVudGlmaWVyKGRmYkV2ZW50LT5rZXlfaWQgLSBESUtJXzAgKyBE
SUtJX0tQXzApOworICAgIH0KKyAgICBkZmJFdmVudC0+ZmxhZ3MgPSBERkJJbnB1dEV2ZW50Rmxh
Z3MoZmxhZ3MpOworfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRF
dmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKQEAgLTMwMiwxNCArODY2LDIxIEBAIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXkKICAgICBpZiAoZXZlbnQtPnR5cGUo
KSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LT50eXBlKCkgIT0gZXZlbnRO
YW1lcygpLmtleXVwRXZlbnQpCiAgICAgICAgIHJldHVybjsKIAorI2lmbmRlZiBYUF9ERkIKICAg
ICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKICAgICBzZXRYS2V5
RXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQpOworI2Vsc2UKKyAgICBERkJFdmVu
dCBucEV2ZW50OworICAgIERGQklucHV0RXZlbnQmIGlucHV0ID0gbnBFdmVudC5pbnB1dDsKKyAg
ICBpbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KCZpbnB1dCwgZXZlbnQtPmtleUV2ZW50KCktPnF0
RXZlbnQoKSk7CisjZW5kaWYKIAogICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQog
ICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAorI2lmbmRlZiBYUF9ERkIK
IHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVudFN0YXRlKE1vdXNlRXZlbnQqIGV2ZW50KQog
ewogICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CkBAIC0zODQsNiArOTU1LDQ1IEBAIHN0YXRp
YyB2b2lkIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWUKICAgICB4Y3Jvc3Npbmcuc2FtZV9z
Y3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2Vsc2UKK3N0
YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KERGQldpbmRvd0V2ZW50KiBk
ZmJFdmVudCwgY29uc3QgTW91c2VFdmVudCogZXZlbnQpCit7CisgICAgZGZiRXZlbnQtPmNsYXp6
ID0gREZFQ19XSU5ET1c7CisKKyAgICB1bnNpZ25lZCBpbnQgbW9kaWZpZXJzID0gMDsKKyAgICBp
ZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQ09OVFJPTDsK
KyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX1NI
SUZUOworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1N
X0FMVDsKKyAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJ
TU1fTUVUQTsKKyAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0gREZCSW5wdXREZXZpY2VNb2RpZmll
ck1hc2sobW9kaWZpZXJzKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVw
RXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JVVFRPTkRPV04gOiBEV0VUX0JVVFRPTlVQ
KTsKKyAgICAgICAgc3dpdGNoIChldmVudC0+YnV0dG9uKCkpIHsKKyAgICAgICAgY2FzZSBMZWZ0
QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklfTEVGVDsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAgIGRm
YkV2ZW50LT5idXR0b24gPSBESUJJX01JRERMRTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklf
UklHSFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRmYkV2ZW50LT5idXR0b25zID0gREZCSW5wdXRE
ZXZpY2VCdXR0b25NYXNrKDApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSBEV0VU
X01PVElPTjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm47CisgICAgfQorfQorI2VuZGlm
CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkK
IHsKQEAgLTM5NywxMSArMTAwNywxMSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZl
bnQoTW91c2VFCiAKICAgICAgICAgZm9jdXNQbHVnaW5FbGVtZW50KCk7CiAgICAgfQotCisgICAg
SW50UG9pbnQgcG9zdFpvb21Qb3MgPSByb3VuZGVkSW50UG9pbnQobV9lbGVtZW50LT5yZW5kZXJl
cigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSkpOworI2lmbmRl
ZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsK
IAotICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+
cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsK
IAogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpCiAgICAgICAgIHNl
dFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3Mp
OwpAQCAtNDExLDEzICsxMDIxLDQwIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVu
dChNb3VzZUUKICAgICAgICAgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVu
dCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRI
YW5kbGVkKCk7CiAKKyNlbHNlCisgICAgREZCRXZlbnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5w
RXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlb3V0RXZlbnQpIHsKKyAgICAgICAgbnBFdmVudC5jbGF6eiA9IERGRUNfV0lORE9X
OworICAgICAgICBucEV2ZW50LndpbmRvdy50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLm1vdXNlb3ZlckV2ZW50ID8gRFdFVF9FTlRFUiA6IERXRVRfTEVBVkUpOworICAgICAg
ICBucEV2ZW50LndpbmRvdy54ID0gbnBFdmVudC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7
CisgICAgICAgIG5wRXZlbnQud2luZG93LnkgPSBucEV2ZW50LndpbmRvdy5jeSA9IHBvc3Rab29t
UG9zLnkoKTsKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVybjsKK30KKworICAgIERGQldp
bmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsKKyAgICBtX2RmYldpbmRvdy0+R2V0
SUQobV9kZmJXaW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsKKyAgICBpbml0RGlyZWN0RkJNb3Vz
ZUV2ZW50KCZ3aW5kb3csIGV2ZW50KTsKKyAgICB3aW5kb3cueCA9IHBvc3Rab29tUG9zLngoKTsK
KyAgICB3aW5kb3cueSA9IHBvc3Rab29tUG9zLnkoKTsKKyAgICBjb25zdCBJbnRQb2ludCBhYnNv
bHV0ZUxvY2F0aW9uID0gZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKTsKKyAgICB3aW5kb3cuY3gg
PSBhYnNvbHV0ZUxvY2F0aW9uLngoKTsKKyAgICB3aW5kb3cuY3kgPSBhYnNvbHV0ZUxvY2F0aW9u
LnkoKTsKKworICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQorICAgICAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6Omhh
bmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50
OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00MjUsMTIgKzEwNjIsMjEgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQoKQogICAgIGV2ZW50LnR5cGUgPSA5OyAv
KiBpbnQgYXMgUXQgdW5zZXRzIEZvY3VzSW4gKi8KICAgICBldmVudC5tb2RlID0gTm90aWZ5Tm9y
bWFsOwogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlmeURldGFpbE5vbmU7CisgICAgZGlzcGF0Y2hO
UEV2ZW50KG5wRXZlbnQpOwogCisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVt
c2V0KCZucEV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYg
d2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAgd2luZG93LmNsYXp6ID0gREZFQ19XSU5ET1c7
CisgICAgd2luZG93LnR5cGUgPSBEV0VUX0dPVEZPQ1VTOwogICAgIGRpc3BhdGNoTlBFdmVudChu
cEV2ZW50KTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZl
bnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2
ZW50KCZucEV2ZW50KTsKIApAQCAtNDQwLDYgKzEwODYsMTUgQEAgdm9pZCBQbHVnaW5WaWV3Ojpo
YW5kbGVGb2N1c091dEV2ZW50KCkKICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25l
OwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2Vsc2UKKyAgICBERkJFdmVudCBu
cEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAg
REZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6
eiA9IERGRUNfV0lORE9XOworICAgIHdpbmRvdy50eXBlID0gRFdFVF9MT1NURk9DVVM7CisgICAg
ZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2VuZGlmCisKIH0KIAogdm9pZCBQbHVnaW5WaWV3
OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQpAQCAtNDU2LDYgKzExMTEsNDkgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd1JlY3QoY29uc3QgSQogICAgICAgICBzZXROUFdpbmRv
d0lmTmVlZGVkKCk7CiB9CiAKKyNpZmRlZiBYUF9ERkIKK2NsYXNzIFdpbmRvd01vdmVFdmVudEZp
bHRlciA6IHB1YmxpYyBRT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBXaW5kb3dNb3ZlRXZlbnRGaWx0
ZXIoYm9vbCogZywgUGx1Z2luVmlldyogdmlldywgUVdpZGdldCogd2F0Y2hlZCkKKyAgICAgICAg
OiBRT2JqZWN0KDApCisgICAgICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UoZykKKyAg
ICAgICAgLCBtX3BsdWdpblZpZXcodmlldykKKyAgICB7CisgICAgICAgIFFfQVNTRVJUKHdhdGNo
ZWQpOworICAgICAgICBmb3JldmVyIHsKKyAgICAgICAgICAgIHdhdGNoZWQtPmluc3RhbGxFdmVu
dEZpbHRlcih0aGlzKTsKKyAgICAgICAgICAgIGlmICh3YXRjaGVkLT5pc1dpbmRvdygpKQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgd2F0Y2hlZCA9IHdhdGNoZWQtPnBhcmVu
dFdpZGdldCgpOworICAgICAgICAgICAgaWYgKCF3YXRjaGVkKQorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbCBldmVudEZpbHRlcihRT2JqZWN0ICos
IFFFdmVudCogZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50eXBlKCkgPT0gUUV2ZW50OjpNb3Zl
IHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6OlJlc2l6ZSkgeworICAgICAgICAgICAgKm1faGFzUGVu
ZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fdGltZXIuc3RhcnQoMTAs
IHRoaXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB2
b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGUpCisgICAgeworICAgICAgICBpZiAoZS0+dGlt
ZXJJZCgpID09IG1fdGltZXIudGltZXJJZCgpKSB7CisgICAgICAgICAgICBtX3RpbWVyLnN0b3Ao
KTsKKyAgICAgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VSZWRyYXcoKTsKKyAgICAgICAgfQor
ICAgIH0KK3ByaXZhdGU6CisgICAgYm9vbCogbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2U7Cisg
ICAgUGx1Z2luVmlldyogbV9wbHVnaW5WaWV3OworICAgIFFCYXNpY1RpbWVyIG1fdGltZXI7Cit9
OworCisjZW5kaWYKKwogdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKIHsK
ICAgICBpZiAoIW1faXNTdGFydGVkIHx8ICFwYXJlbnQoKSB8fCAhbV9wbHVnaW4tPnBsdWdpbkZ1
bmNzKCktPnNldHdpbmRvdykKQEAgLTQ5Miw2ICsxMTkwLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpz
ZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdodCA9
IG1fY2xpcFJlY3Qud2lkdGgoKTsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20g
PSBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0gZWxzZSB7CisjaWZuZGVmIFhQX0RGQgogICAg
ICAgICBtX25wV2luZG93LnggPSAwOwogICAgICAgICBtX25wV2luZG93LnkgPSAwOwogCkBAIC00
OTksNiArMTE5OCwzOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQog
ICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IDA7CiAgICAgICAgIG1fbnBXaW5kb3cu
Y2xpcFJlY3QucmlnaHQgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9
IDA7CisjZWxzZQorICAgICAgICBRUG9pbnQgcGx1Z2luVmlld0dsb2JhbFBvcyA9IHdpbmRvd0Ns
aXBSZWN0KCkudG9wTGVmdCgpOworICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9w
YXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwor
ICAgICAgICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGllbnQgPyBjbGllbnQtPm93bmVy
V2lkZ2V0KCkgOiAwKSB7CisgICAgICAgICAgICBpZiAoIW1fZXZlbnRGaWx0ZXIpCisgICAgICAg
ICAgICAgICAgbV9ldmVudEZpbHRlciA9IG5ldyBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIoJm1faGFz
UGVuZGluZ0dlb21ldHJ5Q2hhbmdlLCB0aGlzLCBvd25lcldpZGdldCk7CisgICAgICAgICAgICBw
bHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1hcFRvR2xvYmFsKHBsdWdpblZpZXdH
bG9iYWxQb3MpOworICAgICAgICAgICAgaWYgKGNvbnN0IFFHcmFwaGljc1dlYlZpZXcqIGl0ZW0g
PSBxb2JqZWN0X2Nhc3Q8Y29uc3QgUUdyYXBoaWNzV2ViVmlldyo+KGNsaWVudC0+cGx1Z2luUGFy
ZW50KCkpKSB7CisgICAgICAgICAgICAgICAgUV9BU1NFUlQoaXRlbS0+c2NlbmUoKSAmJiAhaXRl
bS0+c2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkpOworICAgICAgICAgICAgICAgIGNvbnN0IFFH
cmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52aWV3cygpLnZhbHVlKDApOworICAg
ICAgICAgICAgICAgIGNvbnN0IFFQb2ludCBhZGQgPSB2aWV3LT5tYXBGcm9tU2NlbmUoaXRlbS0+
cG9zKCkpOworICAgICAgICAgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQb3MgKz0gYWRkOworICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgoUVNpemUpKG1fd2luZG93UmVjdC5zaXplKCkp
ICE9IG1fcGl4bWFwLnNpemUoKSkgeworICAgICAgICAgICAgbV9waXhtYXAgPSBRUGl4bWFwKG1f
d2luZG93UmVjdC5zaXplKCkpOworICAgICAgICAgICAgbV9waXhtYXAuZmlsbChRdDo6dHJhbnNw
YXJlbnQpOworICAgICAgICB9CisKKyAgICAgICAgbV9ucFdpbmRvdy54ID0gcGx1Z2luVmlld0ds
b2JhbFBvcy54KCk7CisgICAgICAgIG1fbnBXaW5kb3cueSA9IHBsdWdpblZpZXdHbG9iYWxQb3Mu
eSgpOworICAgICAgICBjb25zdCBJbnRSZWN0IGZyYW1lID0gZnJhbWVSZWN0KCk7CisgICAgICAg
IG1fbnBXaW5kb3cud2lkdGggPSBmcmFtZS53aWR0aCgpOworICAgICAgICBtX25wV2luZG93Lmhl
aWdodCA9IGZyYW1lLmhlaWdodCgpOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9
IG1fY2xpcFJlY3QueSgpOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmxlZnQgPSBtX2Ns
aXBSZWN0LngoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdodCA9IG1fY2xpcFJl
Y3Qud2lkdGgoKSArIG1fY2xpcFJlY3QueCgpIC0gMTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlw
UmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LmhlaWdodCgpICsgbV9jbGlwUmVjdC55KCkgLSAxOwor
ICAgICAgICBtX2RmYlN1cmZhY2UgPSBRVF9QUkVQRU5EX05BTUVTUEFDRShxdF9kaXJlY3RmYl9z
dXJmYWNlX2Zvcl9waXhtYXAobV9waXhtYXApKTsKKyAgICAgICAgbV9ucFdpbmRvdy53aW5kb3cg
PSBtX2RmYlN1cmZhY2U7CisgICAgICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURy
YXdhYmxlOworI2VuZGlmCiAgICAgfQogCiAgICAgLy8gRkxBU0ggV09SS0FST1VORDogT25seSBz
ZXQgaW5pdGlhbGx5LiBNdWx0aXBsZSBjYWxscyB0bwpAQCAtNTg0LDE1ICsxMzE2LDEyIEBAIGJv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYygKIGJvb2wgUGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJy
b3IqIHJlc3VsdCkKIHsKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisjaWZuZGVmIFhQX0RGQgog
ICAgIGNhc2UgTlBOVnhEaXNwbGF5OgogICAgICAgICAqKHZvaWQgKiopdmFsdWUgPSBRWDExSW5m
bzo6ZGlzcGxheSgpOwogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgY2FzZSBOUE5WeHRBcHBDb250ZXh0OgotICAgICAgICAqcmVz
dWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBj
YXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lkKiB3ID0gcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4odmFsdWUpOwogICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9w
YXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwpA
QCAtNjAwLDcgKzEzMjksNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBO
VmFyCiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotCisjZW5kaWYKICAgICBjYXNlIE5QTlZUb29sa2l0OgogICAgICAgICBpZiAo
bV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrUmVxdWlyZXNHdGtUb29sS2l0
KSkgewogICAgICAgICAgICAgKigodWludDMyICopdmFsdWUpID0gMjsKQEAgLTY0NSw2ICsxMzc0
LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgaW52YWxpZGF0ZSgpOwog
fQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkgKmdldFBsdWdpbkRpc3BsYXkoKQog
ewogICAgIC8vIFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNpbmcgYSBkaWZmZXJlbnQg
WCBjb25uZWN0aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC03MTAsMTIgKzE0NDAsMTQg
QEAgc3RhdGljIHZvaWQgZ2V0VmlzdWFsQW5kQ29sb3JtYXAoaW50IGRlcAogICAgIGlmICgqdmlz
dWFsKQogICAgICAgICAqY29sb3JtYXAgPSBYQ3JlYXRlQ29sb3JtYXAoUVgxMUluZm86OmRpc3Bs
YXkoKSwgUVgxMUluZm86OmFwcFJvb3RXaW5kb3coKSwgKnZpc3VhbCwgQWxsb2NOb25lKTsKIH0K
KyNlbmRpZgogCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VS
VChtX2lzU3RhcnRlZCk7CiAgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRl
ZFN1Y2Nlc3NmdWxseSk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1fcGx1Z2luLT5wbHVn
aW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1
Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxs
TG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtNzQwLDEyICsxNDcyLDcxIEBA
IGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIHNldFBsYXRmb3JtV2lk
Z2V0KDApOwogICAgICAgICBtX3BsdWdpbkRpc3BsYXkgPSBnZXRQbHVnaW5EaXNwbGF5KCk7CiAg
ICAgfQorI2Vsc2UKKyAgICBpZiAobV9pc1dpbmRvd2VkKSB7CisgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBERkJXaW5kb3dJbmZvKiB3c0luZm8g
PSAwOworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQgfHwg
IWNsaWVudC0+b3duZXJXaWRnZXQoKSkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
ICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBERkJSZXN1bHQgcmVzdWx0ID0gRGlyZWN0RkJDcmVh
dGUoJm1fZGZiKTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykKKyAgICAgICAgZ290byBlbmQ7
CisKKyAgICByZXN1bHQgPSBtX2RmYi0+R2V0RGlzcGxheUxheWVyKG1fZGZiLCBETElEX1BSSU1B
UlksICZtX2RmYkRpc3BsYXlMYXllcik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAg
ICAgIGdvdG8gZW5kOworCisgICAgcmVzdWx0ID0gbV9kZmJEaXNwbGF5TGF5ZXItPkdldFdpbmRv
dyhtX2RmYkRpc3BsYXlMYXllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PERGQldpbmRvd0lEPihjbGllbnQtPm93bmVyV2lkZ2V0KCktPnBy
b3BlcnR5KCJfcV9EaXJlY3RGQldpbmRvd0lEIikudG9JbnQoKSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9kZmJXaW5kb3cpOworICAgIGlmIChyZXN1bHQg
IT0gREZCX09LKQorICAgICAgICBnb3RvIGVuZDsKKyAgICB3c0luZm8gPSBuZXcgREZCV2luZG93
SW5mbzsKKyAgICB3c0luZm8tPmRmYiA9IG1fZGZiOworICAgIHdzSW5mby0+d2luZG93ID0gbV9k
ZmJXaW5kb3c7CisgICAgd3NJbmZvLT5sYXllciA9IG1fZGZiRGlzcGxheUxheWVyOworICAgIG1f
bnBXaW5kb3cud3NfaW5mbyA9IHdzSW5mbzsKKyAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRv
d1R5cGVEcmF3YWJsZTsKKyAgICBtX25wV2luZG93LndpbmRvdyA9IDA7IC8vIE5vdCB1c2VkPwor
ICAgIG1fbnBXaW5kb3cueCA9IDA7CisgICAgbV9ucFdpbmRvdy55ID0gMDsKKyAgICBtX25wV2lu
ZG93LndpZHRoID0gLTE7CisgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKKworZW5kOgorICAg
IGlmIChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIGlmIChtX2RmYldpbmRvdykgeworICAg
ICAgICAgICAgbV9kZmJXaW5kb3ctPlJlbGVhc2UobV9kZmJXaW5kb3cpOworICAgICAgICAgICAg
bV9kZmJXaW5kb3cgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fZGZiRGlzcGxheUxh
eWVyKQorICAgICAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXItPlJlbGVhc2UobV9kZmJEaXNwbGF5
TGF5ZXIpOworCisgICAgICAgIGlmIChtX2RmYikgeworICAgICAgICAgICAgbV9kZmItPlJlbGVh
c2UobV9kZmIpOworICAgICAgICAgICAgbV9kZmIgPSAwOworICAgICAgICB9CisgICAgICAgIERp
cmVjdEZCRXJyb3IoIlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKSIsIHJlc3VsdCk7CisgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2Fu
Tm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNlbmRpZgogCiAg
ICAgc2hvdygpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1
Y3QqIHdzaSA9IG5ldyBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KCk7CiAgICAgd3NpLT50eXBl
ID0gMDsKLQogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKICAgICAgICAgY29uc3QgUVgxMUluZm8q
IHgxMUluZm8gPSAmcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+eDExSW5mbygpOwogCkBAIC03NTMs
NyArMTU0NCw2IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIHdz
aS0+dmlzdWFsID0gKFZpc3VhbCopeDExSW5mby0+dmlzdWFsKCk7CiAgICAgICAgIHdzaS0+ZGVw
dGggPSB4MTFJbmZvLT5kZXB0aCgpOwogICAgICAgICB3c2ktPmNvbG9ybWFwID0geDExSW5mby0+
Y29sb3JtYXAoKTsKLQogICAgICAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVXaW5k
b3c7CiAgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQqKXBsYXRmb3JtUGx1Z2luV2lk
Z2V0KCktPndpbklkKCk7CiAgICAgICAgIG1fbnBXaW5kb3cud2lkdGggPSAtMTsKQEAgLTc4Miw4
ICsxNTcyLDggQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgbV9u
cFdpbmRvdy53aWR0aCA9IC0xOwogICAgICAgICBtX25wV2luZG93LmhlaWdodCA9IC0xOwogICAg
IH0KLQogICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IHdzaTsKKyNlbmRpZgogCiAgICAgaWYgKCEo
bV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRv
d0NhbGwpKSkgewogICAgICAgICB1cGRhdGVQbHVnaW5XaWRnZXQoKTsKQEAgLTc5OCwxMSArMTU4
OCwzMyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgaWYgKHBsYXRm
b3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgIGRlbGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgp
OwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX2RyYXdhYmxlKQogICAgICAgICBYRnJlZVBp
eG1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKIAogICAgIGlmIChtX2NvbG9y
bWFwKQogICAgICAgICBYRnJlZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fY29sb3Jt
YXApOworI2Vsc2UKKyAgICBkZWxldGUgbV9ldmVudEZpbHRlcjsKKyAgICBtX2V2ZW50RmlsdGVy
ID0gMDsKKyAgICBkZWxldGUgc3RhdGljX2Nhc3Q8REZCV2luZG93SW5mbyo+KG1fbnBXaW5kb3cu
d3NfaW5mbyk7CisgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKKyAgICBtX3BpeG1hcCA9IFFQ
aXhtYXAoKTsKKyAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAgbV9kZmJXaW5kb3ctPlJl
bGVhc2UobV9kZmJXaW5kb3cpOworICAgICAgICBtX2RmYldpbmRvdyA9IDA7Cit9CisKKyAgICBp
ZiAobV9kZmJEaXNwbGF5TGF5ZXIpIHsKKyAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXItPlJlbGVh
c2UobV9kZmJEaXNwbGF5TGF5ZXIpOworICAgICAgICBtX2RmYkRpc3BsYXlMYXllciA9IDA7Cisg
ICAgfQorCisgICAgaWYgKG1fZGZiKSB7CisgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1fZGZiKTsK
KyAgICAgICAgbV9kZmIgPSAwOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6
OmhhbHQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56890</attachid>
            <date>2010-05-24 08:48:12 -0700</date>
            <delta_ts>2010-05-24 11:33:59 -0700</delta_ts>
            <desc>Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</desc>
            <filename>dfb_npapi_patch.diff</filename>
            <type>text/plain</type>
            <size>44100</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKyAyMDEwLTAzLTE4ICBBbmRlcnMgQmFra2VuICA8QW5kZXJzIEJha2tl
biA8YWdiYWtrZW5AZ21haWwuY29tPj4KKyAKKyAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorIAorICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2MTcxCisgCisgICAgICAgICBUaGlzIGNvbnRyaWJ1dGlvbiBlbmFibGVzIHdpbmRvd2xl
c3MgTlBBUEkgc3VwcG9ydCBmb3IgUXQvV2ViS2l0IHdoZW4KKyAgICAgICAgIHVzaW5nIERpcmVj
dEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgKKyAg
ICAgICAgIEZsYXNobGl0ZS4gCisgCisgICAgICAgICBUaGUgY29kZSBpcyBsYXJnZWx5IGJhc2Vk
IG9uIHRoZSBRdC9YMTEgaW1wbGVtZW50YXRpb24gb2Ygd2luZG93bGVzcworICAgICAgICAgTlBB
UEkuIEl0IGFkZHMgdGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlh
dGUgYmV0d2VlbgorICAgICAgICAgWDExIGFuZCBEaXJlY3RGQiB3aGVuIFhQX1VOSVggaXMgZGVm
aW5lZC4gVGhpcyBtZWFucyB0aGF0IG5wYXBpLmggd2lsbAorICAgICAgICAgZnVuY3Rpb24gdGhl
IHNhbWUgd2F5IGZvciBYMTEgYnVpbGRzLgorIAorICAgICAgICAgU2luY2UgdGhlIG5vcm1hbCB1
c2UgY2FzZSBmb3IgTlBBUEkgb24gRGlyZWN0RkIgaXMgZm9yIHZpZGVvIG9uIHNpdGVzCisgICAg
ICAgICBsaWtlIHlvdXR1YmUgaXQncyBpbXBvcnRhbnQgdG8gbWFrZSBzdXJlIHRoZSBwbHVnaW4g
Z2V0cyBhbiB1cGRhdGVkCisgICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBt
b3ZlcyBvciByZXNpemVzLiBUaGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgIGZhY3QgdGhhdCB0
aGUgdmlkZW8gd2lsbCBiZSByZW5kZXJlZCBpbnRvIGEgZGlmZmVyZW50IGxheWVyIHJhdGhlcgor
ICAgICAgICAgdGhhbiBhY3R1YWxseSBpbnRvIHRoZSBvZmZzY3JlZW4gc3VyZmFjZSB0aGF0J3Mg
YmVpbmcgcmVuZGVyZWQgdG8uCisgCisgICAgICAgICBJIGhhdmUgYSBtYW51YWwgdGVzdCBjYXNl
IHRoYXQgSSBjb3VsZCBoZWxwIHBlb3BsZSBzZXQgdXAgZm9yIHRlc3RpbmcKKyAgICAgICAgIHdp
dGggUXQvUVdTIERpcmVjdEZCIGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgaXQgYXV0b21h
dGVkLgorIAorICAgICAgICAgVG8gZW5hYmxlIE5QQVBJIGZvciBEaXJlY3RGQiB0aGUgZGV2ZWxv
cGVyIG5lZWRzIHRvIG1ha2Ugc3VyZQorICAgICAgICAgcW1ha2UuY29uZiBjb250YWlucyB0aGlz
IGxpbmU6CisgCisgICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
X0RJUkVDVEZCCisgCisgICAgICAgICBRdCBtdXN0IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRo
ZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAoYXMKKyAgICAgICAgIG9wcG9zZWQgdG8gLXBsdWdp
bi1nZngtZGlyZWN0ZmIpCisgCisgICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgICogYnJpZGdlL25wYXBpLmg6CisgICAgICAgICAqIGJyaWRn
ZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cDoKKyAgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdG9wKToKKyAgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3Lmg6CisgICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgIChXZWJDb3JlOjppbml0RGlyZWN0
RkJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVL
ZXlib2FyZEV2ZW50KToKKyAgICAgICAgIChXZWJDb3JlOjppbml0RGlyZWN0RkJNb3VzZUV2ZW50
KToKKyAgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQpOgorICAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQpOgorICAgICAgICAg
KFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6V2luZG93TW92ZUV2ZW50RmlsdGVyKToK
KyAgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50RmlsdGVyKToK
KyAgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OnRpbWVyRXZlbnQpOgor
ICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisgCiAyMDEwLTA1LTI0ICBKZXJlbXkgT3Js
b3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBDaGVja2Vk
IGluIG1lcmdlIGVycm9yLiAgOi0oCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9X
ZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsMTAgQEAgZ3JlYXRlclRoYW4o
UVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChO
UEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVD
VEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVfTkVU
U0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjogewog
ICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2
aXNpb24gNjAwNzIpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjMwLDE2ICsyMjMwLDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMKICAgICAgICAg
ICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgKICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAgICAgICAgICAg
ICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBfREZCCisgICAg
ICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJUkVDVEZCCisg
ICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisgICAgICAgICAg
ICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAgIENPTkZJRyArPSB4
MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAgICAgICAgICAgICAg
ICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcAorICAgICAg
ICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuaAog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAg
ICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgXAogICAgICAgICAg
ICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAogICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAgICAgICAgICBIRUFE
RVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJR
dC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJDb3JlL2JyaWRnZS9u
cGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBACiAjZW5kaWYKICNlbmRpZgog
Ci0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIp
CiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KICNpbmNsdWRl
IDxzdGRpby5oPgpAQCAtMjAxLDcgKzIwMSw3IEBAIHR5cGVkZWYgc3RydWN0IF9OUFJlY3QKICAg
dWludDE2X3QgcmlnaHQ7CiB9IE5QUmVjdDsKIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVk
KFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVj
dHVyZXMgYW5kIGRlZmluaXRpb25zCiAgKi8KQEAgLTQ0Nyw2ICs0NDcsOSBAQCB0eXBlZGVmIHN0
cnVjdCBfTlBFdmVudAogICB1aW50cHRyX3Qgd1BhcmFtOwogICB1aW50cHRyX3QgbFBhcmFtOwog
fSBOUEV2ZW50OworI2VsaWYgZGVmaW5lZCAoWFBfREZCKQorI2luY2x1ZGUgPGRpcmVjdGZiLmg+
Cit0eXBlZGVmIERGQkV2ZW50IE5QRXZlbnQ7CiAjZWxpZiBkZWZpbmVkIChYUF9VTklYKQogdHlw
ZWRlZiBYRXZlbnQgTlBFdmVudDsKICNlbHNlCkBAIC00NjMsNyArNDY2LDcgQEAgdHlwZWRlZiBS
Z25IYW5kbGUgTlBRRFJlZ2lvbjsKIHR5cGVkZWYgQ0dQYXRoUmVmIE5QQ0dSZWdpb247CiAjZWxp
ZiBkZWZpbmVkKFhQX1dJTikKIHR5cGVkZWYgSFJHTiBOUFJlZ2lvbjsKLSNlbGlmIGRlZmluZWQo
WFBfVU5JWCkKKyNlbGlmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogdHlw
ZWRlZiBSZWdpb24gTlBSZWdpb247CiAjZWxpZiBkZWZpbmVkKFhQX1NZTUJJQU4pCiB0eXBlZGVm
IFFSZWdpb24qIE5QUmVnaW9uOwpJbmRleDogV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVy
bmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgJ
KHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1bmN0aW9ucy5o
IgogI2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQg
WFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2Uu
aD4KIAogICAgICN1bmRlZiBOb25lCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCShyZXZpc2lv
biA2MDA3MikKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBs
dWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VO
SVgKKyNpZiBkZWZpbmVkKFhQX1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlmIChtX2lz
V2luZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUgKE5QU2V0
V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9ucFdpbmRv
dy53c19pbmZvID0gMDsKQEAgLTgxOSw3ICs4MTksNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3
KEZyYW1lKiBwYXJlbnRGcmFtCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBt
X2hhdmVJbml0aWFsaXplZChmYWxzZSkKICAgICAsIG1faXNXYWl0aW5nVG9TdGFydChmYWxzZSkK
LSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZCAo
WFBfREZCKQogICAgICwgbV9uZWVkc1hFbWJlZChmYWxzZSkKICNlbmRpZgogI2lmIE9TKFdJTkRP
V1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtODQwLDEwICs4NDAsMTggQEAg
UGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbQogI2VuZGlmCiAjaWYgZGVm
aW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1faGFz
UGVuZGluZ0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZCCiAgICAgLCBt
X2RyYXdhYmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1hcCgwKQogICAg
ICwgbV9wbHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9ldmVudEZpbHRlcigwKQorICAg
ICwgbV9kZmJTdXJmYWNlKDApCisgICAgLCBtX2RmYigwKQorICAgICwgbV9kZmJEaXNwbGF5TGF5
ZXIoMCkKKyAgICAsIG1fZGZiV2luZG93KDApCisjZW5kaWYKICNlbmRpZgogICAgICwgbV9sb2Fk
TWFudWFsbHkobG9hZE1hbnVhbGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkKSW5kZXg6IFdl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuaAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKICNpZm5kZWYgUGx1Z2luVmlld19oCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgorI2lmIGRlZmluZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQorI2luY2x1
ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYgT1MoV0lO
RE9XUykgJiYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0cnVjdCBI
V05EX18qIEhXTkQ7CkBAIC0xNDMsNyArMTQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciogdXNlckFnZW50U3RhdGljKCk7CiAjZW5kaWYKICAgICAg
ICAgdm9pZCBzdGF0dXMoY29uc3QgY2hhciogbWVzc2FnZSk7Ci0gICAgICAgIAorCiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFy
aWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0
VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKQEAgLTMxNiw3
ICszMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9oYXZlSW5pdGlh
bGl6ZWQ7CiAgICAgICAgIGJvb2wgbV9pc1dhaXRpbmdUb1N0YXJ0OwogCi0jaWYgZGVmaW5lZChY
UF9VTklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgICAg
ICBib29sIG1fbmVlZHNYRW1iZWQ7CiAjZW5kaWYKIApAQCAtMzY2LDEyICszNzAsMjEgQEAgcHJp
dmF0ZToKIAogI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAgICAgICAgIGJvb2wgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2U7CisjaWZuZGVmIFhQ
X0RGQgogICAgICAgICBQaXhtYXAgbV9kcmF3YWJsZTsKICAgICAgICAgVmlzdWFsKiBtX3Zpc3Vh
bDsKICAgICAgICAgQ29sb3JtYXAgbV9jb2xvcm1hcDsKICAgICAgICAgRGlzcGxheSogbV9wbHVn
aW5EaXNwbGF5OwogCiAgICAgICAgIHZvaWQgaW5pdFhFdmVudChYRXZlbnQqIGV2ZW50KTsKKyNl
bHNlCisgICAgICAgIFFPYmplY3QgKm1fZXZlbnRGaWx0ZXI7CisgICAgICAgIFFQaXhtYXAgbV9w
aXhtYXA7CisgICAgICAgIElEaXJlY3RGQlN1cmZhY2UgKm1fZGZiU3VyZmFjZTsKKyAgICAgICAg
SURpcmVjdEZCICptX2RmYjsKKyAgICAgICAgSURpcmVjdEZCRGlzcGxheUxheWVyICptX2RmYkRp
c3BsYXlMYXllcjsKKyAgICAgICAgSURpcmVjdEZCV2luZG93ICptX2RmYldpbmRvdzsKKyNlbmRp
ZgogI2VuZGlmCiAKICAgICAgICAgSW50UmVjdCBtX2NsaXBSZWN0OyAvLyBUaGUgY2xpcCByZWN0
IHRvIGFwcGx5IHRvIGEgd2luZG93ZWQgcGx1Zy1pbgpJbmRleDogV2ViQ29yZS9wbHVnaW5zL3F0
L1BsdWdpblZpZXdRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNpbmNs
dWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRl
ICJQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgiCkBAIC02Nyw2ICs2Niw3IEBACiAjaW5jbHVk
ZSA8UUtleUV2ZW50PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+Cisj
aWZkZWYgUV9XU19YMTEKICNpbmNsdWRlIDxRWDExSW5mbz4KICNpbmNsdWRlIDxYMTEvWC5oPgog
I2lmbmRlZiBRVF9OT19YUkVOREVSCkBAIC03NCw2ICs3NCwyMSBAQAogI2RlZmluZSBTdGF0dXMg
aW50CiAjaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMvWHJlbmRlci5oPgogI2VuZGlmCisjZWxpZiBk
ZWZpbmVkIFhQX0RGQgorI2luY2x1ZGUgPFFCYXNpY1RpbWVyPgorI2luY2x1ZGUgPFFHcmFwaGlj
c1NjZW5lPgorI2luY2x1ZGUgPFFHcmFwaGljc1ZpZXc+CisjaW5jbHVkZSA8UUdyYXBoaWNzV2Vi
Vmlldz4KK3N0cnVjdCBERkJXaW5kb3dJbmZvIHsKKyAgICBJRGlyZWN0RkIqIGRmYjsKKyAgICBJ
RGlyZWN0RkJEaXNwbGF5TGF5ZXIqIGxheWVyOworICAgIElEaXJlY3RGQldpbmRvdyogd2luZG93
OworfTsKK1FUX0JFR0lOX05BTUVTUEFDRQorZXh0ZXJuIFFfR1VJX0VYUE9SVCBJRGlyZWN0RkJT
dXJmYWNlKiBxdF9kaXJlY3RmYl9zdXJmYWNlX2Zvcl9waXhtYXAoY29uc3QgUVBpeG1hcCAmcGl4
bWFwKTsKK1FUX0VORF9OQU1FU1BBQ0UKKyNlbmRpZgorCiAjaW5jbHVkZSA8cnVudGltZS9KU0xv
Y2suaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KIApAQCAtMTA5LDYgKzEyNCw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICBpZiAobV93aW5kb3dS
ZWN0ID09IG9sZFdpbmRvd1JlY3QgJiYgbV9jbGlwUmVjdCA9PSBvbGRDbGlwUmVjdCkKICAgICAg
ICAgcmV0dXJuOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmICghbV9pc1dpbmRvd2VkICYmIG1f
d2luZG93UmVjdC5zaXplKCkgIT0gb2xkV2luZG93UmVjdC5zaXplKCkpIHsKICAgICAgICAgaWYg
KG1fZHJhd2FibGUpCiAgICAgICAgICAgICBYRnJlZVBpeG1hcChRWDExSW5mbzo6ZGlzcGxheSgp
LCBtX2RyYXdhYmxlKTsKQEAgLTExNyw2ICsxMzMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0
ZVBsdWdpbldpZGdldCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoTlBT
ZXRXaW5kb3dDYWxsYmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGgpOwogICAg
ICAgICBRQXBwbGljYXRpb246OnN5bmNYKCk7IC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBzZXJ2ZXIg
a25vd3MgYWJvdXQgdGhlIERyYXdhYmxlCiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBkbyBub3Qg
Y2FsbCBzZXROUFdpbmRvd0lmTmVlZGVkIGltbWVkaWF0ZWx5LCB3aWxsIGJlIGNhbGxlZCBvbiBw
YWludCgpCiAgICAgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UgPSB0cnVlOwpAQCAtMTY4LDE2
ICsxODUsMTYgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIAogCiAg
ICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX2lz
V2luZG93ZWQgfHwgIW1fZHJhd2FibGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGJv
b2wgc3luY1ggPSBtX3BsdWdpbkRpc3BsYXkgJiYgbV9wbHVnaW5EaXNwbGF5ICE9IFFYMTFJbmZv
OjpkaXNwbGF5KCk7Ci0KICAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOwogICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CiAgICAgZXhwb3NlZFJl
Y3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJl
Y3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOwogCisgICAgY29uc3QgYm9vbCBzeW5jWCA9IG1f
cGx1Z2luRGlzcGxheSAmJiBtX3BsdWdpbkRpc3BsYXkgIT0gUVgxMUluZm86OmRpc3BsYXkoKTsK
ICAgICBRUGl4bWFwIHF0RHJhd2FibGUgPSBRUGl4bWFwOjpmcm9tWDExUGl4bWFwKG1fZHJhd2Fi
bGUsIFFQaXhtYXA6OkV4cGxpY2l0bHlTaGFyZWQpOwogICAgIGNvbnN0IGludCBkcmF3YWJsZURl
cHRoID0gKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5k
ZXB0aDsKICAgICBBU1NFUlQoZHJhd2FibGVEZXB0aCA9PSBxdERyYXdhYmxlLmRlcHRoKCkpOwpA
QCAtMjM2LDYgKzI1MywyNCBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogCiAKICAgICBwYWludGVyLT5kcmF3UGl4bWFwKFFQb2ludChmcmFtZVJlY3QoKS54KCkgKyBl
eHBvc2VkUmVjdC54KCksIGZyYW1lUmVjdCgpLnkoKSArIGV4cG9zZWRSZWN0LnkoKSksIHF0RHJh
d2FibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc2VkUmVjdCk7CisjZWxzZQorICAg
IERGQkV2ZW50IGRmYkV2ZW50OworICAgIG1lbXNldCgmZGZiRXZlbnQsIDAsIHNpemVvZihERkJF
dmVudCkpOworICAgIERGQlVzZXJFdmVudCYgdXNlckV2ZW50ID0gZGZiRXZlbnQudXNlcjsKKyAg
ICB1c2VyRXZlbnQuY2xhenogPSBERkVDX1VTRVI7CisgICAgdXNlckV2ZW50LnR5cGUgPSAweGRm
YjsKKyAgICB1c2VyRXZlbnQuZGF0YSA9ICZtX25wV2luZG93OworICAgIGRpc3BhdGNoTlBFdmVu
dChkZmJFdmVudCk7CisgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKTsKKyAgICBJbnRSZWN0IGV4cG9zZWRSZWN0KHJlY3QpOworICAgIGV4cG9zZWRSZWN0
LmludGVyc2VjdChmcmFtZVJlY3QoKSk7CisgICAgZXhwb3NlZFJlY3QubW92ZSgtZnJhbWVSZWN0
KCkueCgpLCAtZnJhbWVSZWN0KCkueSgpKTsKKyAgICBjb25zdCBRUGFpbnRlcjo6Q29tcG9zaXRp
b25Nb2RlIG9sZE1vZGUgPSBwYWludGVyLT5jb21wb3NpdGlvbk1vZGUoKTsKKyAgICBwYWludGVy
LT5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2UpOwor
ICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRS
ZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgbV9waXhtYXAsCisg
ICAgICAgICAgICAgICAgICAgICAgICBleHBvc2VkUmVjdCk7CisgICAgcGFpbnRlci0+c2V0Q29t
cG9zaXRpb25Nb2RlKG9sZE1vZGUpOworI2VuZGlmCiB9CiAKIC8vIFRPRE86IFVuaWZ5IGFjcm9z
cyBwb3J0cy4KQEAgLTI1NCw2ICsyODksNyBAQCBib29sIFBsdWdpblZpZXc6OmRpc3BhdGNoTlBF
dmVudChOUEV2ZW50CiAgICAgcmV0dXJuIGFjY2VwdGVkOwogfQogCisjaWZuZGVmIFhQX0RGQgog
dm9pZCBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoWEV2ZW50KiB4RXZlbnQsIFFXaWRnZXQqIG93bmVy
V2lkZ2V0KQogewogICAgIHhFdmVudC0+eGFueS5zZXJpYWwgPSAwOyAvLyB3ZSBhcmUgdW5hd2Fy
ZSBvZiB0aGUgbGFzdCByZXF1ZXN0IHByb2Nlc3NlZCBieSBYIFNlcnZlcgpAQCAtMjk1LDYgKzMz
MSw1MzQgQEAgdm9pZCBzZXRYS2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIAogICAgIHhF
dmVudC0+eGtleS54X3Jvb3QgPSAwOwogICAgIHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQor
I2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KERGQklu
cHV0RXZlbnQqIGRmYkV2ZW50LCBjb25zdCBRS2V5RXZlbnQqIHF0RXZlbnQpCit7CisgICAgZGZi
RXZlbnQtPmNsYXp6ID0gREZFQ19JTlBVVDsKKyAgICBkZmJFdmVudC0+dHlwZSA9IChxdEV2ZW50
LT50eXBlKCkgPT0gUUV2ZW50OjpLZXlQcmVzcyA/IERJRVRfS0VZUFJFU1MgOiBESUVUX0tFWVJF
TEVBU0UpOworICAgIHVuc2lnbmVkIGludCBmbGFncyA9IChESUVGX0tFWVNZTUJPTCB8IERJRUZf
TU9ESUZJRVJTKTsKKyAgICBpZiAocXRFdmVudC0+aXNBdXRvUmVwZWF0KCkpCisgICAgICAgIGZs
YWdzIHw9IERJRUZfUkVQRUFUOworICAgIGNvbnN0IFF0OjpLZXlib2FyZE1vZGlmaWVyIG1vZGlm
aWVyc1tdID0geyBRdDo6U2hpZnRNb2RpZmllciwgUXQ6OkNvbnRyb2xNb2RpZmllciwgUXQ6OkFs
dE1vZGlmaWVyLCBRdDo6TWV0YU1vZGlmaWVyIH07CisgICAgY29uc3QgREZCSW5wdXREZXZpY2VN
b2RpZmllck1hc2sgZGZiTW9kaWZpZXJzW10gPSB7IERJTU1fU0hJRlQsIERJTU1fQ09OVFJPTCwg
RElNTV9BTFQsIERJTU1fTUVUQSB9OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7
CisgICAgICAgIGlmIChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIG1vZGlmaWVyc1tpXSkKKyAgICAg
ICAgICAgIGRmYkV2ZW50LT5tb2RpZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhk
ZmJFdmVudC0+bW9kaWZpZXJzIHwgZGZiTW9kaWZpZXJzW2ldKTsKKyAgICB9CisgICAgc3dpdGNo
IChxdEV2ZW50LT5rZXkoKSkgeworICAgIGNhc2UgUXQ6OktleV9CYWNrc3BhY2U6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19CQUNLU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0JBQ0tTUEFDRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1RhYjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1RBQjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVEFCOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfUmV0dXJuOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVU
VVJOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0VzY2FwZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0VTQ0FQRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRVND
QVBFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVsZXRlOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVMRVRFOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9ERUxFVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZWZ0
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX0xFRlQ7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9SaWdodDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NV
UlNPUl9SSUdIVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUklHSFQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0NVUlNPUl9VUDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
VVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Eb3duOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0RPV047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JbnNl
cnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19JTlNFUlQ7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0lOU0VSVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0hvbWU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IT01F
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9IT01FOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfRU5EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9FTkQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9QYWdlVXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19QQUdFX1VQOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QQUdF
X1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFnZURvd246CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQUdFX0RPV047CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX1BBR0VfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1ByaW50OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUFJJTlQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYXVzZToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1BBVVNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfU2VsZWN0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0VMRUNUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfT3BlblVybDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0dPVE87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9DbGVhcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NMRUFSOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVudToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX01FTlU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9IZWxwOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSEVMUDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hvbWVQYWdlOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfSU5URVJORVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9MYXVuY2hNYWlsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUFJ
TDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Zhdm9yaXRlczoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0ZBVk9SSVRFUzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0JhY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19CQUNLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRm9yd2FyZDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0ZPUldBUkQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVVcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1ZPTFVNRV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVt
ZURvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfRE9XTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZU11dGU6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfTWVkaWFQbGF5OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
UExBWTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhU3RvcDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NUT1A7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9NZWRpYVJlY29yZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1JFQ09SRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUHJl
dmlvdXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QUkVWSU9VUzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhTmV4dDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX05FWFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GMToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0YyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjI7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YyOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRjM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMzsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjM7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9GNDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y0Owor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GNDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0Y1OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjU7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y1OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRjY6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19G
NjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjY7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9GNzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0Y3OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GNzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Y4OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfRjg7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y4OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRjk6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19GOTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9GMTA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19GMTA7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxMToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0YxMTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjExOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjEyOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRjEyOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9G
MTI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TaGlmdDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NISUZUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9TSElGVF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29udHJv
bDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NPTlRST0w7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NPTlRST0xfTDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0FsdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FM
VDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9BbHRHcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0FMVEdSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWV0YToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01FVEE7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX01FVEFfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1N1cGVyX0w6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TVVBFUjsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU1VQRVJfTDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0h5cGVyX0w6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19IWVBFUjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSFlQRVJfTDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NhcHNMb2NrOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQ0FQU19MT0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9DQVBTX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1M
b2NrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTlVNX0xPQ0s7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX05VTV9MT0NLOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfU2Nyb2xsTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NDUk9MTF9MT0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TQ1JP
TExfTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVkb3Q6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FCT1ZFRE9UOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BYm92ZXJpbmc6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FCT1ZFUklORzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWN1dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19ERUFEX0FDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9CcmV2ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQlJF
VkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Nhcm9uOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DQVJPTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2VkaWxsYToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0RFQURfQ0VESUxMQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0RlYWRfQ2lyY3VtZmxleDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0RFQURfQ0lSQ1VNRkxFWDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRf
RGlhZXJlc2lzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ESUFF
UkVTSVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RvdWJsZWFjdXRl
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ET1VCTEVBQ1VURTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfR3JhdmU6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0dSQVZFOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRGVhZF9Jb3RhOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfREVBRF9JT1RBOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9N
YWNyb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX01BQ1JPTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfT2dvbmVrOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9PR09ORUs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9EZWFkX1NlbWl2b2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1NFTUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9EZWFkX1RpbGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfREVBRF9USUxERTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfVm9pY2VkX1NvdW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
REVBRF9WT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TcGFj
ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NQQUNFOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9TUEFDRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0V4Y2xhbToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VYQ0xB
TUFUSU9OX01BUks7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdW90ZURibDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1FVT1RBVElPTjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X051bWJlclNpZ246CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19OVU1CRVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RvbGxhcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RPTExB
Ul9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGVyY2VudDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BFUkNFTlRfU0lHTjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0FtcGVyc2FuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0FNUEVSU0FORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0Fwb3N0cm9waGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BUE9TVFJP
UEhFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFyZW5MZWZ0OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNfTEVGVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVuUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19QQVJFTlRIRVNJU19SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0FzdGVyaXNrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfQVNURVJJU0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QbHVzOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAo
cXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9LUF9QTFVTOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfQ29tbWE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DT01N
QTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQ09NTUE7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9NaW51czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX01JTlVTX1NJR047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01JTlVT
X1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QZXJpb2Q6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QRVJJT0Q7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX1BFUklPRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Ns
YXNoOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0xBU0g7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NMQVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfMDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzA7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV8xOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfMTsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5XzI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU18yOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfMzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzM7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV80OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfNDsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5XzU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU181OworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV81OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfNjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzY7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJXzY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV83OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfNzsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
Xzg6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU184OworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV84OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
OToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzk7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJXzk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9D
b2xvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NPTE9OOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2VtaWNvbG9uOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU0VNSUNPTE9OOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9TRU1JQ09MT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZXNzOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTEVTU19USEFOX1NJR047CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0xFU1NfU0lHTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0VxdWFsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfRVFVQUxTX1NJR047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VRVUFMU19T
SUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfR3JlYXRlcjoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0dSRUFURVJfVEhBTl9TSUdOOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUXVlc3Rpb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19RVUVTVElPTl9NQVJLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQXQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0E6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19TTUFMTF9BOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9BOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQjoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX0I7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9DOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfQzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Q6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9EOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRToKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0U7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfRjsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfRjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0c6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9HOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9HOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfSDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0g7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0g7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9JOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExf
STsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0o6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9KOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9KOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfSzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX0s7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0s7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfU01BTExfTDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X006CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TTUFMTF9NOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9N
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9POgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfTzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1A6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9QOworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1E7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9S
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfUjsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9TOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfVDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Q7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1Q7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9VOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfVTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1Y6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9WOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9WOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX1c7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1c7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9YOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfWDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1k6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9ZOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9ZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfWjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX1o7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0TGVmdDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX0xFRlQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYWNrc2xhc2g6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19CQUNLU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0JBQ0tTTEFTSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0JyYWNrZXRSaWdodDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NRVUFS
RV9CUkFDS0VUX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXNjaWlD
aXJjdW06CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DSVJDVU1GTEVYX0FD
Q0VOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VuZGVyc2NvcmU6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19VTkRFUlNDT1JFOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VMZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfQmFyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVkVSVElD
QUxfQkFSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfUklHSFQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc2NpaVRpbGRlOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVElMREU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBpZiAoKHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OlNoaWZ0TW9kaWZpZXIpICYmIHF0RXZl
bnQtPmtleSgpID49IFF0OjpLZXlfQSAmJiBxdEV2ZW50LT5rZXkoKSA8PSBRdDo6S2V5X1opCisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gREZCSW5wdXREZXZpY2VLZXlTeW1ib2woKGRm
YkV2ZW50LT5rZXlfc3ltYm9sIC0gRElLU19TTUFMTF9BKSArIERJS1NfQ0FQSVRBTF9BKTsKKyAg
ICBpZiAoZGZiRXZlbnQtPmtleV9pZCAhPSBESUtJX1VOS05PV04pIHsKKyAgICAgICAgZmxhZ3Mg
PSBERkJJbnB1dEV2ZW50RmxhZ3MoZGZiRXZlbnQtPmZsYWdzIHwgRElFRl9LRVlJRCk7CisgICAg
ICAgIGlmIChkZmJFdmVudC0+a2V5X2lkID49IERJS0lfMCAmJiBkZmJFdmVudC0+a2V5X2lkIDw9
IERJS0lfOSAmJiBxdEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpLZXlwYWRNb2RpZmllcikKKyAg
ICAgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBERkJJbnB1dERldmljZUtleUlkZW50aWZpZXIo
ZGZiRXZlbnQtPmtleV9pZCAtIERJS0lfMCArIERJS0lfS1BfMCk7CisgICAgfQorICAgIGRmYkV2
ZW50LT5mbGFncyA9IERGQklucHV0RXZlbnRGbGFncyhmbGFncyk7Cit9CisjZW5kaWYKIAogdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ewpAQCAtMzA0LDE0ICs4NjgsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2
ZW50KEtleQogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZl
bnQgJiYgZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkKICAgICAgICAg
cmV0dXJuOwogCisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRY
RXZlbnQoJm5wRXZlbnQpOwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50
LCBldmVudCk7CisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgREZCSW5wdXRFdmVu
dCYgaW5wdXQgPSBucEV2ZW50LmlucHV0OworICAgIGluaXREaXJlY3RGQktleWJvYXJkRXZlbnQo
JmlucHV0LCBldmVudC0+a2V5RXZlbnQoKS0+cXRFdmVudCgpKTsKKyNlbmRpZgogCiAgICAgaWYg
KCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIHVuc2lnbmVkIGludCBpbnB1dEV2
ZW50U3RhdGUoTW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgaW50IHN0YXRlID0g
MDsKQEAgLTM4Niw2ICs5NTcsNDUgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVj
aWZpY0ZpZQogICAgIHhjcm9zc2luZy5zYW1lX3NjcmVlbiA9IHRydWU7CiAgICAgeGNyb3NzaW5n
LmZvY3VzID0gZmFsc2U7CiB9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGluaXREaXJlY3RG
Qk1vdXNlRXZlbnQoREZCV2luZG93RXZlbnQqIGRmYkV2ZW50LCBjb25zdCBNb3VzZUV2ZW50KiBl
dmVudCkKK3sKKyAgICBkZmJFdmVudC0+Y2xhenogPSBERkVDX1dJTkRPVzsKKworICAgIHVuc2ln
bmVkIGludCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC0+Y3RybEtleSgpKQorICAgICAg
ICBtb2RpZmllcnMgfD0gRElNTV9DT05UUk9MOworICAgIGlmIChldmVudC0+c2hpZnRLZXkoKSkK
KyAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fU0hJRlQ7CisgICAgaWYgKGV2ZW50LT5hbHRLZXko
KSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQUxUOworICAgIGlmIChldmVudC0+bWV0YUtl
eSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gRElNTV9NRVRBOworICAgIGRmYkV2ZW50LT5tb2Rp
ZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhtb2RpZmllcnMpOworCisgICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IHx8IGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCkgeworICAgICAgICBkZmJFdmVudC0+
dHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCA/IERX
RVRfQlVUVE9ORE9XTiA6IERXRVRfQlVUVE9OVVApOworICAgICAgICBzd2l0Y2ggKGV2ZW50LT5i
dXR0b24oKSkgeworICAgICAgICBjYXNlIExlZnRCdXR0b246CisgICAgICAgICAgICBkZmJFdmVu
dC0+YnV0dG9uID0gRElCSV9MRUZUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
TWlkZGxlQnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklfTUlERExF
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmlnaHRCdXR0b246CisgICAgICAg
ICAgICBkZmJFdmVudC0+YnV0dG9uID0gRElCSV9SSUdIVDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZGZiRXZlbnQtPmJ1dHRvbnMgPSBERkJJbnB1dERldmljZUJ1dHRvbk1hc2soMCk7CisgICAgfSBl
bHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCkgewor
ICAgICAgICBkZmJFdmVudC0+dHlwZSA9IERXRVRfTU9USU9OOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHJldHVybjsKKyAgICB9Cit9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVN
b3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogewpAQCAtMzk5LDExICsxMDA5LDExIEBAIHZv
aWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUUKIAogICAgICAgICBmb2N1c1Bs
dWdpbkVsZW1lbnQoKTsKICAgICB9Ci0KKyAgICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5k
ZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChldmVudC0+
YWJzb2x1dGVMb2NhdGlvbigpKSk7CisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50
OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCi0gICAgSW50UG9pbnQgcG9zdFpvb21Qb3Mg
PSByb3VuZGVkSW50UG9pbnQobV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwo
ZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSkpOwogCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNldXBFdmVudCkKICAgICAgICAgc2V0WEJ1dHRvbkV2ZW50U3BlY2lmaWNGaWVsZHMo
Jm5wRXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBvcyk7CkBAIC00MTMsMTMgKzEwMjMsNDAgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRQogICAgICAgICBzZXRYQ3Jvc3Np
bmdFdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3MpOwogICAg
IGVsc2UKICAgICAgICAgcmV0dXJuOworICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQp
KQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIAorI2Vsc2UKKyAgICBERkJF
dmVudCBucEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7
CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQg
fHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgeworICAgICAg
ICBucEV2ZW50LmNsYXp6ID0gREZFQ19XSU5ET1c7CisgICAgICAgIG5wRXZlbnQud2luZG93LnR5
cGUgPSAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQgPyBEV0VU
X0VOVEVSIDogRFdFVF9MRUFWRSk7CisgICAgICAgIG5wRXZlbnQud2luZG93LnggPSBucEV2ZW50
LndpbmRvdy5jeCA9IHBvc3Rab29tUG9zLngoKTsKKyAgICAgICAgbnBFdmVudC53aW5kb3cueSA9
IG5wRXZlbnQud2luZG93LmN5ID0gcG9zdFpvb21Qb3MueSgpOwogICAgIGlmICghZGlzcGF0Y2hO
UEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAg
ICAgICAgcmV0dXJuOworfQorCisgICAgREZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5wRXZlbnQu
d2luZG93OworICAgIG1fZGZiV2luZG93LT5HZXRJRChtX2RmYldpbmRvdywgJndpbmRvdy53aW5k
b3dfaWQpOworICAgIGluaXREaXJlY3RGQk1vdXNlRXZlbnQoJndpbmRvdywgZXZlbnQpOworICAg
IHdpbmRvdy54ID0gcG9zdFpvb21Qb3MueCgpOworICAgIHdpbmRvdy55ID0gcG9zdFpvb21Qb3Mu
eSgpOworICAgIGNvbnN0IEludFBvaW50IGFic29sdXRlTG9jYXRpb24gPSBldmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpOworICAgIHdpbmRvdy5jeCA9IGFic29sdXRlTG9jYXRpb24ueCgpOworICAg
IHdpbmRvdy5jeSA9IGFic29sdXRlTG9jYXRpb24ueSgpOworCisgICAgaWYgKCFkaXNwYXRjaE5Q
RXZlbnQobnBFdmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworI2Vu
ZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKIHsKKyNpZm5k
ZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7
CiAKQEAgLTQyNywxMiArMTA2NCwyMSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5F
dmVudCgpCiAgICAgZXZlbnQudHlwZSA9IDk7IC8qIGludCBhcyBRdCB1bnNldHMgRm9jdXNJbiAq
LwogICAgIGV2ZW50Lm1vZGUgPSBOb3RpZnlOb3JtYWw7CiAgICAgZXZlbnQuZGV0YWlsID0gTm90
aWZ5RGV0YWlsTm9uZTsKKyAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7CiAKKyNlbHNlCisg
ICAgREZCRXZlbnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJF
dmVudCkpOworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsKKyAg
ICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKyAgICB3aW5kb3cudHlwZSA9IERXRVRfR09U
Rk9DVVM7CiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2VuZGlmCiB9CiAKIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCgpCiB7CisjaWZuZGVmIFhQX0RGQgogICAg
IFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00NDIsNiAr
MTA4OCwxNSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogICAgIGV2
ZW50LmRldGFpbCA9IE5vdGlmeURldGFpbE5vbmU7CiAKICAgICBkaXNwYXRjaE5QRXZlbnQobnBF
dmVudCk7CisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50
LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gbnBF
dmVudC53aW5kb3c7CisgICAgd2luZG93LmNsYXp6ID0gREZFQ19XSU5ET1c7CisgICAgd2luZG93
LnR5cGUgPSBEV0VUX0xPU1RGT0NVUzsKKyAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7Cisj
ZW5kaWYKKwogfQogCiB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChTY3JvbGxWaWV3KiBwYXJl
bnQpCkBAIC00NTgsNiArMTExMyw0OSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93UmVj
dChjb25zdCBJCiAgICAgICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKIH0KIAorI2lmZGVmIFhQ
X0RGQgorY2xhc3MgV2luZG93TW92ZUV2ZW50RmlsdGVyIDogcHVibGljIFFPYmplY3QgeworcHVi
bGljOgorICAgIFdpbmRvd01vdmVFdmVudEZpbHRlcihib29sKiBnLCBQbHVnaW5WaWV3KiB2aWV3
LCBRV2lkZ2V0KiB3YXRjaGVkKQorICAgICAgICA6IFFPYmplY3QoMCkKKyAgICAgICAgLCBtX2hh
c1BlbmRpbmdHZW9tZXRyeUNoYW5nZShnKQorICAgICAgICAsIG1fcGx1Z2luVmlldyh2aWV3KQor
ICAgIHsKKyAgICAgICAgUV9BU1NFUlQod2F0Y2hlZCk7CisgICAgICAgIGZvcmV2ZXIgeworICAg
ICAgICAgICAgd2F0Y2hlZC0+aW5zdGFsbEV2ZW50RmlsdGVyKHRoaXMpOworICAgICAgICAgICAg
aWYgKHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB3YXRjaGVkID0gd2F0Y2hlZC0+cGFyZW50V2lkZ2V0KCk7CisgICAgICAgICAgICBpZiAo
IXdhdGNoZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBib29sIGV2ZW50RmlsdGVyKFFPYmplY3QgKiwgUUV2ZW50KiBlKQorICAgIHsKKyAgICAgICAg
aWYgKGUtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1vdmUgfHwgZS0+dHlwZSgpID09IFFFdmVudDo6UmVz
aXplKSB7CisgICAgICAgICAgICAqbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UgPSB0cnVlOwor
ICAgICAgICAgICAgbV90aW1lci5zdGFydCgxMCwgdGhpcyk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCog
ZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50aW1lcklkKCkgPT0gbV90aW1lci50aW1lcklkKCkp
IHsKKyAgICAgICAgICAgIG1fdGltZXIuc3RvcCgpOworICAgICAgICAgICAgbV9wbHVnaW5WaWV3
LT5mb3JjZVJlZHJhdygpOworICAgICAgICB9CisgICAgfQorcHJpdmF0ZToKKyAgICBib29sKiBt
X2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZTsKKyAgICBQbHVnaW5WaWV3KiBtX3BsdWdpblZpZXc7
CisgICAgUUJhc2ljVGltZXIgbV90aW1lcjsKK307CisKKyNlbmRpZgorCiB2b2lkIFBsdWdpblZp
ZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogewogICAgIGlmICghbV9pc1N0YXJ0ZWQgfHwgIXBh
cmVudCgpIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+c2V0d2luZG93KQpAQCAtNDk0LDYg
KzExOTIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogICAgICAg
ICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC53aWR0aCgpOwogICAgICAg
ICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IG1fY2xpcFJlY3QuaGVpZ2h0KCk7CiAgICAg
fSBlbHNlIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIG1fbnBXaW5kb3cueCA9IDA7CiAgICAg
ICAgIG1fbnBXaW5kb3cueSA9IDA7CiAKQEAgLTUwMSw2ICsxMjAwLDM5IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3Qu
dG9wID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdodCA9IDA7CiAgICAgICAg
IG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gMDsKKyNlbHNlCisgICAgICAgIFFQb2ludCBw
bHVnaW5WaWV3R2xvYmFsUG9zID0gd2luZG93Q2xpcFJlY3QoKS50b3BMZWZ0KCk7CisgICAgICAg
IFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5k
b3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgICAgIGlmIChRV2lkZ2V0KiBvd25lcldp
ZGdldCA9IGNsaWVudCA/IGNsaWVudC0+b3duZXJXaWRnZXQoKSA6IDApIHsKKyAgICAgICAgICAg
IGlmICghbV9ldmVudEZpbHRlcikKKyAgICAgICAgICAgICAgICBtX2V2ZW50RmlsdGVyID0gbmV3
IFdpbmRvd01vdmVFdmVudEZpbHRlcigmbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UsIHRoaXMs
IG93bmVyV2lkZ2V0KTsKKyAgICAgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQb3MgPSBvd25lcldp
ZGdldC0+bWFwVG9HbG9iYWwocGx1Z2luVmlld0dsb2JhbFBvcyk7CisgICAgICAgICAgICBpZiAo
Y29uc3QgUUdyYXBoaWNzV2ViVmlldyogaXRlbSA9IHFvYmplY3RfY2FzdDxjb25zdCBRR3JhcGhp
Y3NXZWJWaWV3Kj4oY2xpZW50LT5wbHVnaW5QYXJlbnQoKSkpIHsKKyAgICAgICAgICAgICAgICBR
X0FTU0VSVChpdGVtLT5zY2VuZSgpICYmICFpdGVtLT5zY2VuZSgpLT52aWV3cygpLmlzRW1wdHko
KSk7CisgICAgICAgICAgICAgICAgY29uc3QgUUdyYXBoaWNzVmlldyogdmlldyA9IGl0ZW0tPnNj
ZW5lKCktPnZpZXdzKCkudmFsdWUoMCk7CisgICAgICAgICAgICAgICAgY29uc3QgUVBvaW50IGFk
ZCA9IHZpZXctPm1hcEZyb21TY2VuZShpdGVtLT5wb3MoKSk7CisgICAgICAgICAgICAgICAgcGx1
Z2luVmlld0dsb2JhbFBvcyArPSBhZGQ7CisgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KChRU2l6ZSkobV93aW5kb3dSZWN0LnNpemUoKSkgIT0gbV9waXhtYXAuc2l6ZSgpKSB7CisgICAg
ICAgICAgICBtX3BpeG1hcCA9IFFQaXhtYXAobV93aW5kb3dSZWN0LnNpemUoKSk7CisgICAgICAg
ICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgIH0KKworICAgICAg
ICBtX25wV2luZG93LnggPSBwbHVnaW5WaWV3R2xvYmFsUG9zLngoKTsKKyAgICAgICAgbV9ucFdp
bmRvdy55ID0gcGx1Z2luVmlld0dsb2JhbFBvcy55KCk7CisgICAgICAgIGNvbnN0IEludFJlY3Qg
ZnJhbWUgPSBmcmFtZVJlY3QoKTsKKyAgICAgICAgbV9ucFdpbmRvdy53aWR0aCA9IGZyYW1lLndp
ZHRoKCk7CisgICAgICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gZnJhbWUuaGVpZ2h0KCk7CisgICAg
ICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QudG9wID0gbV9jbGlwUmVjdC55KCk7CisgICAgICAgIG1f
bnBXaW5kb3cuY2xpcFJlY3QubGVmdCA9IG1fY2xpcFJlY3QueCgpOworICAgICAgICBtX25wV2lu
ZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC53aWR0aCgpICsgbV9jbGlwUmVjdC54KCkg
LSAxOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IG1fY2xpcFJlY3QuaGVp
Z2h0KCkgKyBtX2NsaXBSZWN0LnkoKSAtIDE7CisgICAgICAgIG1fZGZiU3VyZmFjZSA9IFFUX1BS
RVBFTkRfTkFNRVNQQUNFKHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3BpeG1hcChtX3BpeG1hcCkp
OworICAgICAgICBtX25wV2luZG93LndpbmRvdyA9IG1fZGZiU3VyZmFjZTsKKyAgICAgICAgbV9u
cFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisjZW5kaWYKICAgICB9CiAKICAg
ICAvLyBGTEFTSCBXT1JLQVJPVU5EOiBPbmx5IHNldCBpbml0aWFsbHkuIE11bHRpcGxlIGNhbGxz
IHRvCkBAIC01ODYsMTUgKzEzMTgsMTIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlU3RhdGljKAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxl
IHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KQogewogICAgIHN3aXRjaCAo
dmFyaWFibGUpIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgY2FzZSBOUE5WeERpc3BsYXk6CiAgICAg
ICAgICoodm9pZCAqKil2YWx1ZSA9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgICAgICpyZXN1
bHQgPSBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjYXNlIE5Q
TlZ4dEFwcENvbnRleHQ6Ci0gICAgICAgICpyZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOwot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLQogICAgIGNhc2UgTlBOVm5ldHNjYXBlV2luZG93OiB7CiAg
ICAgICAgIHZvaWQqIHcgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSk7CiAgICAgICAg
IFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5k
b3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CkBAIC02MDIsNyArMTMzMSw3IEBAIGJvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXIKICAgICAgICAgKnJlc3VsdCA9IE5QRVJS
X05PX0VSUk9SOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0KKyNlbmRpZgogICAgIGNh
c2UgTlBOVlRvb2xraXQ6CiAgICAgICAgIGlmIChtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMo
UGx1Z2luUXVpcmtSZXF1aXJlc0d0a1Rvb2xLaXQpKSB7CiAgICAgICAgICAgICAqKCh1aW50MzJf
dCAqKXZhbHVlKSA9IDI7CkBAIC02NDcsNiArMTM3Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9y
Y2VSZWRyYXcoKQogICAgIGludmFsaWRhdGUoKTsKIH0KIAorI2lmbmRlZiBYUF9ERkIKIHN0YXRp
YyBEaXNwbGF5ICpnZXRQbHVnaW5EaXNwbGF5KCkKIHsKICAgICAvLyBUaGUgcGx1Z2luIHRvb2xr
aXQgbWlnaHQgcnVuIHVzaW5nIGEgZGlmZmVyZW50IFggY29ubmVjdGlvbi4gQXQgdGhlIG1vbWVu
dCwgd2Ugb25seQpAQCAtNzEyLDEyICsxNDQyLDE0IEBAIHN0YXRpYyB2b2lkIGdldFZpc3VhbEFu
ZENvbG9ybWFwKGludCBkZXAKICAgICBpZiAoKnZpc3VhbCkKICAgICAgICAgKmNvbG9ybWFwID0g
WENyZWF0ZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIFFYMTFJbmZvOjphcHBSb290V2lu
ZG93KCksICp2aXN1YWwsIEFsbG9jTm9uZSk7CiB9CisjZW5kaWYKIAogYm9vbCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogICAgIEFTU0VS
VChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwogCisjaWZuZGVm
IFhQX0RGQgogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+Z2V0dmFsdWUpIHsKICAg
ICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7CiAgICAgICAgIEpT
Qzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tzKEpTQzo6U2lsZW5jZUFzc2VydGlv
bnNPbmx5KTsKQEAgLTc0MiwxMiArMTQ3NCw3MSBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
U3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgwKTsKICAgICAgICAgbV9wbHVnaW5E
aXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0KKyNlbHNlCisgICAgaWYgKG1faXNX
aW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9
IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgREZCV2luZG93SW5mbyogd3NJbmZvID0gMDsKKyAgICBRV2ViUGFnZUNsaWVudCog
Y2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGllbnQtPm93bmVyV2lkZ2V0KCkpIHsK
KyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0
dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
REZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZtX2RmYik7CisgICAgaWYgKHJlc3Vs
dCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworCisgICAgcmVzdWx0ID0gbV9kZmItPkdl
dERpc3BsYXlMYXllcihtX2RmYiwgRExJRF9QUklNQVJZLCAmbV9kZmJEaXNwbGF5TGF5ZXIpOwor
ICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBnb3RvIGVuZDsKKworICAgIHJlc3Vs
dCA9IG1fZGZiRGlzcGxheUxheWVyLT5HZXRXaW5kb3cobV9kZmJEaXNwbGF5TGF5ZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxERkJXaW5k
b3dJRD4oY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0eSgiX3FfRGlyZWN0RkJXaW5kb3dJ
RCIpLnRvSW50KCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Jm1fZGZiV2luZG93KTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykKKyAgICAgICAgZ290byBl
bmQ7CisgICAgd3NJbmZvID0gbmV3IERGQldpbmRvd0luZm87CisgICAgd3NJbmZvLT5kZmIgPSBt
X2RmYjsKKyAgICB3c0luZm8tPndpbmRvdyA9IG1fZGZiV2luZG93OworICAgIHdzSW5mby0+bGF5
ZXIgPSBtX2RmYkRpc3BsYXlMYXllcjsKKyAgICBtX25wV2luZG93LndzX2luZm8gPSB3c0luZm87
CisgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisgICAgbV9ucFdp
bmRvdy53aW5kb3cgPSAwOyAvLyBOb3QgdXNlZD8KKyAgICBtX25wV2luZG93LnggPSAwOworICAg
IG1fbnBXaW5kb3cueSA9IDA7CisgICAgbV9ucFdpbmRvdy53aWR0aCA9IC0xOworICAgIG1fbnBX
aW5kb3cuaGVpZ2h0ID0gLTE7CisKK2VuZDoKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykgewor
ICAgICAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAgICAgIG1fZGZiV2luZG93LT5SZWxl
YXNlKG1fZGZiV2luZG93KTsKKyAgICAgICAgICAgIG1fZGZiV2luZG93ID0gMDsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChtX2RmYkRpc3BsYXlMYXllcikKKyAgICAgICAgICAgIG1fZGZiRGlz
cGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlzcGxheUxheWVyKTsKKworICAgICAgICBpZiAobV9k
ZmIpIHsKKyAgICAgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1fZGZiKTsKKyAgICAgICAgICAgIG1f
ZGZiID0gMDsKKyAgICAgICAgfQorICAgICAgICBEaXJlY3RGQkVycm9yKCJQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KCkiLCByZXN1bHQpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
ICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHNob3coKTsKIAorI2lmbmRlZiBYUF9E
RkIKICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3c2kgPSBuZXcgTlBTZXRXaW5kb3dD
YWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+dHlwZSA9IDA7Ci0KICAgICBpZiAobV9pc1dpbmRv
d2VkKSB7CiAgICAgICAgIGNvbnN0IFFYMTFJbmZvKiB4MTFJbmZvID0gJnBsYXRmb3JtUGx1Z2lu
V2lkZ2V0KCktPngxMUluZm8oKTsKIApAQCAtNzU1LDcgKzE1NDYsNiBAQCBib29sIFBsdWdpblZp
ZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICB3c2ktPnZpc3VhbCA9IChWaXN1YWwqKXgxMUlu
Zm8tPnZpc3VhbCgpOwogICAgICAgICB3c2ktPmRlcHRoID0geDExSW5mby0+ZGVwdGgoKTsKICAg
ICAgICAgd3NpLT5jb2xvcm1hcCA9IHgxMUluZm8tPmNvbG9ybWFwKCk7Ci0KICAgICAgICAgbV9u
cFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93OwogICAgICAgICBtX25wV2luZG93Lndp
bmRvdyA9ICh2b2lkKilwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5JZCgpOwogICAgICAgICBt
X25wV2luZG93LndpZHRoID0gLTE7CkBAIC03ODQsOCArMTU3NCw4IEBAIGJvb2wgUGx1Z2luVmll
dzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIG1fbnBXaW5kb3cud2lkdGggPSAtMTsKICAgICAg
ICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKICAgICB9Ci0KICAgICBtX25wV2luZG93LndzX2lu
Zm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlu
cyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxsKSkpIHsKICAgICAgICAgdXBkYXRl
UGx1Z2luV2lkZ2V0KCk7CkBAIC04MDAsMTEgKzE1OTAsMzMgQEAgdm9pZCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAg
ICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBp
ZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwg
bV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkKICAgICAgICAgWEZyZWVDb2xvcm1h
cChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsKKyNlbHNlCisgICAgZGVsZXRlIG1f
ZXZlbnRGaWx0ZXI7CisgICAgbV9ldmVudEZpbHRlciA9IDA7CisgICAgZGVsZXRlIHN0YXRpY19j
YXN0PERGQldpbmRvd0luZm8qPihtX25wV2luZG93LndzX2luZm8pOworICAgIG1fbnBXaW5kb3cu
d3NfaW5mbyA9IDA7CisgICAgbV9waXhtYXAgPSBRUGl4bWFwKCk7CisgICAgaWYgKG1fZGZiV2lu
ZG93KSB7CisgICAgICAgIG1fZGZiV2luZG93LT5SZWxlYXNlKG1fZGZiV2luZG93KTsKKyAgICAg
ICAgbV9kZmJXaW5kb3cgPSAwOworfQorCisgICAgaWYgKG1fZGZiRGlzcGxheUxheWVyKSB7Cisg
ICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlzcGxheUxheWVyKTsKKyAg
ICAgICAgbV9kZmJEaXNwbGF5TGF5ZXIgPSAwOworICAgIH0KKworICAgIGlmIChtX2RmYikgewor
ICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAgICAgIG1fZGZiID0gMDsKKyAgICB9
CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56908</attachid>
            <date>2010-05-24 11:33:59 -0700</date>
            <delta_ts>2010-05-24 16:22:25 -0700</delta_ts>
            <desc>Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</desc>
            <filename>dfb_npapi_patch.diff</filename>
            <type>text/plain</type>
            <size>44149</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKyAyMDEwLTAzLTE4ICBBbmRlcnMgQmFra2VuICA8QW5kZXJzIEJha2tl
biA8YWdiYWtrZW5AZ21haWwuY29tPj4KKyAKKyAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorIAorICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2MTcxCisgCisgICAgICAgICBUaGlzIGNvbnRyaWJ1dGlvbiBlbmFibGVzIHdpbmRvd2xl
c3MgTlBBUEkgc3VwcG9ydCBmb3IgUXQvV2ViS2l0IHdoZW4KKyAgICAgICAgIHVzaW5nIERpcmVj
dEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgKKyAg
ICAgICAgIEZsYXNobGl0ZS4gCisgCisgICAgICAgICBUaGUgY29kZSBpcyBsYXJnZWx5IGJhc2Vk
IG9uIHRoZSBRdC9YMTEgaW1wbGVtZW50YXRpb24gb2Ygd2luZG93bGVzcworICAgICAgICAgTlBB
UEkuIEl0IGFkZHMgdGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlh
dGUgYmV0d2VlbgorICAgICAgICAgWDExIGFuZCBEaXJlY3RGQiB3aGVuIFhQX1VOSVggaXMgZGVm
aW5lZC4gVGhpcyBtZWFucyB0aGF0IG5wYXBpLmggd2lsbAorICAgICAgICAgZnVuY3Rpb24gdGhl
IHNhbWUgd2F5IGZvciBYMTEgYnVpbGRzLgorIAorICAgICAgICAgU2luY2UgdGhlIG5vcm1hbCB1
c2UgY2FzZSBmb3IgTlBBUEkgb24gRGlyZWN0RkIgaXMgZm9yIHZpZGVvIG9uIHNpdGVzCisgICAg
ICAgICBsaWtlIHlvdXR1YmUgaXQncyBpbXBvcnRhbnQgdG8gbWFrZSBzdXJlIHRoZSBwbHVnaW4g
Z2V0cyBhbiB1cGRhdGVkCisgICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBt
b3ZlcyBvciByZXNpemVzLiBUaGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgIGZhY3QgdGhhdCB0
aGUgdmlkZW8gd2lsbCBiZSByZW5kZXJlZCBpbnRvIGEgZGlmZmVyZW50IGxheWVyIHJhdGhlcgor
ICAgICAgICAgdGhhbiBhY3R1YWxseSBpbnRvIHRoZSBvZmZzY3JlZW4gc3VyZmFjZSB0aGF0J3Mg
YmVpbmcgcmVuZGVyZWQgdG8uCisgCisgICAgICAgICBJIGhhdmUgYSBtYW51YWwgdGVzdCBjYXNl
IHRoYXQgSSBjb3VsZCBoZWxwIHBlb3BsZSBzZXQgdXAgZm9yIHRlc3RpbmcKKyAgICAgICAgIHdp
dGggUXQvUVdTIERpcmVjdEZCIGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgaXQgYXV0b21h
dGVkLgorIAorICAgICAgICAgVG8gZW5hYmxlIE5QQVBJIGZvciBEaXJlY3RGQiB0aGUgZGV2ZWxv
cGVyIG5lZWRzIHRvIG1ha2Ugc3VyZQorICAgICAgICAgcW1ha2UuY29uZiBjb250YWlucyB0aGlz
IGxpbmU6CisgCisgICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
X0RJUkVDVEZCCisgCisgICAgICAgICBRdCBtdXN0IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRo
ZSAtcXQtZ2Z4LWRpcmVjdGZiIG9wdGlvbiAoYXMKKyAgICAgICAgIG9wcG9zZWQgdG8gLXBsdWdp
bi1nZngtZGlyZWN0ZmIpCisgCisgICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgICogYnJpZGdlL25wYXBpLmg6CisgICAgICAgICAqIGJyaWRn
ZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cDoKKyAgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdG9wKToKKyAgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3Lmg6CisgICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgIChXZWJDb3JlOjppbml0RGlyZWN0
RkJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVL
ZXlib2FyZEV2ZW50KToKKyAgICAgICAgIChXZWJDb3JlOjppbml0RGlyZWN0RkJNb3VzZUV2ZW50
KToKKyAgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQpOgorICAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQpOgorICAgICAgICAg
KFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6V2luZG93TW92ZUV2ZW50RmlsdGVyKToK
KyAgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OmV2ZW50RmlsdGVyKToK
KyAgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OnRpbWVyRXZlbnQpOgor
ICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorICAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisgCiAyMDEwLTA1LTI0ICBKZXJlbXkgT3Js
b3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBDaGVja2Vk
IGluIG1lcmdlIGVycm9yLiAgOi0oCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9X
ZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsMTAgQEAgZ3JlYXRlclRoYW4o
UVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChO
UEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVD
VEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVfTkVU
U0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjogewog
ICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2
aXNpb24gNjAwNzIpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjMwLDE2ICsyMjMwLDE5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU4KICAgICAgICAgICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMKICAgICAgICAg
ICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgKICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAgICAgICAgICAg
ICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBfREZCCisgICAg
ICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJUkVDVEZCCisg
ICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisgICAgICAgICAg
ICAgICAgfSBlbHNlOiFlbWJlZGRlZCB7CiAgICAgICAgICAgICAgICAgICAgIENPTkZJRyArPSB4
MTEKICAgICAgICAgICAgICAgICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAgICAgICAgICAgICAg
ICAgICAgU09VUkNFUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcAorICAgICAg
ICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuaAog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAg
ICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgXAogICAgICAgICAg
ICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAogICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAgICAgICAgICBIRUFE
RVJTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJR
dC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJDb3JlL2JyaWRnZS9u
cGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBACiAjZW5kaWYKICNlbmRpZgog
Ci0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIp
CiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KICNpbmNsdWRl
IDxzdGRpby5oPgpAQCAtMjAxLDcgKzIwMSw3IEBAIHR5cGVkZWYgc3RydWN0IF9OUFJlY3QKICAg
dWludDE2X3QgcmlnaHQ7CiB9IE5QUmVjdDsKIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVk
KFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVj
dHVyZXMgYW5kIGRlZmluaXRpb25zCiAgKi8KQEAgLTQ0Nyw3ICs0NDcsMTAgQEAgdHlwZWRlZiBz
dHJ1Y3QgX05QRXZlbnQKICAgdWludHB0cl90IHdQYXJhbTsKICAgdWludHB0cl90IGxQYXJhbTsK
IH0gTlBFdmVudDsKLSNlbGlmIGRlZmluZWQgKFhQX1VOSVgpCisjZWxpZiBkZWZpbmVkKFhQX0RG
QikKKyNpbmNsdWRlIDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBOUEV2ZW50OworI2Vs
aWYgZGVmaW5lZChYUF9VTklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVudDsKICNlbHNlCiB0eXBl
ZGVmIHZvaWQqICBOUEV2ZW50OwpAQCAtNDYzLDcgKzQ2Niw3IEBAIHR5cGVkZWYgUmduSGFuZGxl
IE5QUURSZWdpb247CiB0eXBlZGVmIENHUGF0aFJlZiBOUENHUmVnaW9uOwogI2VsaWYgZGVmaW5l
ZChYUF9XSU4pCiB0eXBlZGVmIEhSR04gTlBSZWdpb247Ci0jZWxpZiBkZWZpbmVkKFhQX1VOSVgp
CisjZWxpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKIHR5cGVkZWYgUmVn
aW9uIE5QUmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9TWU1CSUFOKQogdHlwZWRlZiBRUmVnaW9u
KiBOUFJlZ2lvbjsKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCShyZXZpc2lv
biA2MDA3MikKKysrIFdlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAibnBmdW5jdGlvbnMuaCIKICNpbmNs
dWRlICJucHJ1bnRpbWUuaCIKIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkIFhQX1VOSVgg
JiYgIWRlZmluZWQoWFBfREZCKQogICAgICNpbmNsdWRlIDxYMTEvWHJlc291cmNlLmg+CiAKICAg
ICAjdW5kZWYgTm9uZQpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkocmV2aXNpb24gNjAwNzIp
CisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
MCw3ICszNjAsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnN0b3AoKQogICAgICAgICBQbHVnaW5WaWV3
OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKICAgICB9CiAKLSNpZmRlZiBYUF9VTklYCisjaWYg
ZGVmaW5lZChYUF9YMTEpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICBpZiAobV9pc1dpbmRvd2Vk
ICYmIG1fbnBXaW5kb3cud3NfaW5mbykKICAgICAgICAgICAgZGVsZXRlIChOUFNldFdpbmRvd0Nh
bGxiYWNrU3RydWN0ICopbV9ucFdpbmRvdy53c19pbmZvOwogICAgIG1fbnBXaW5kb3cud3NfaW5m
byA9IDA7CkBAIC04MTksNyArODE5LDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSog
cGFyZW50RnJhbQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5p
dGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzV2FpdGluZ1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVm
aW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQgKFhQX0RGQikK
ICAgICAsIG1fbmVlZHNYRW1iZWQoZmFsc2UpCiAjZW5kaWYKICNpZiBPUyhXSU5ET1dTKSAmJiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTg0MCwxMCArODQwLDE4IEBAIFBsdWdpblZp
ZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW0KICNlbmRpZgogI2lmIGRlZmluZWQoWFBf
VU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX2hhc1BlbmRpbmdH
ZW9tZXRyeUNoYW5nZSh0cnVlKQorI2lmICFkZWZpbmVkIFhQX0RGQgogICAgICwgbV9kcmF3YWJs
ZSgwKQogICAgICwgbV92aXN1YWwoMCkKICAgICAsIG1fY29sb3JtYXAoMCkKICAgICAsIG1fcGx1
Z2luRGlzcGxheSgwKQorI2Vsc2UKKyAgICAsIG1fZXZlbnRGaWx0ZXIoMCkKKyAgICAsIG1fZGZi
U3VyZmFjZSgwKQorICAgICwgbV9kZmIoMCkKKyAgICAsIG1fZGZiRGlzcGxheUxheWVyKDApCisg
ICAgLCBtX2RmYldpbmRvdygwKQorI2VuZGlmCiAjZW5kaWYKICAgICAsIG1fbG9hZE1hbnVhbGx5
KGxvYWRNYW51YWxseSkKICAgICAsIG1fbWFudWFsU3RyZWFtKDApCkluZGV4OiBXZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmgJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAj
aWZuZGVmIFBsdWdpblZpZXdfaApAQCAtNDQsNiArNDQsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKyNpZiBkZWZpbmVkIFhQX0RGQiAmJiBQTEFURk9STShRVCkKKyNpbmNsdWRlIDxRUGl4
bWFwPgorI2luY2x1ZGUgPGRpcmVjdGZiLmg+CisjZW5kaWYKIAogI2lmIE9TKFdJTkRPV1MpICYm
IChQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQogdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBI
V05EOwpAQCAtMTQzLDcgKzE0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHVzZXJBZ2VudFN0YXRpYygpOwogI2VuZGlmCiAgICAgICAgIHZvaWQg
c3RhdHVzKGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwotICAgICAgICAKKwogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBOUEVycm9yIGdldFZhbHVlKE5QTlZhcmlhYmxlIHZh
cmlhYmxlLCB2b2lkKiB2YWx1ZSk7CiAgICAgICAgIHN0YXRpYyBOUEVycm9yIGdldFZhbHVlU3Rh
dGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CkBAIC0zMTYsNyArMzIwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faGF2ZUluaXRpYWxpemVkOwog
ICAgICAgICBib29sIG1faXNXYWl0aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkK
KyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAgICAgYm9vbCBt
X25lZWRzWEVtYmVkOwogI2VuZGlmCiAKQEAgLTM2NiwxMiArMzcwLDIxIEBAIHByaXZhdGU6CiAK
ICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAg
ICAgICBib29sIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBYUF9ERkIKICAg
ICAgICAgUGl4bWFwIG1fZHJhd2FibGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1YWw7CiAgICAg
ICAgIENvbG9ybWFwIG1fY29sb3JtYXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1Z2luRGlzcGxh
eTsKIAogICAgICAgICB2b2lkIGluaXRYRXZlbnQoWEV2ZW50KiBldmVudCk7CisjZWxzZQorICAg
ICAgICBRT2JqZWN0ICptX2V2ZW50RmlsdGVyOworICAgICAgICBRUGl4bWFwIG1fcGl4bWFwOwor
ICAgICAgICBJRGlyZWN0RkJTdXJmYWNlICptX2RmYlN1cmZhY2U7CisgICAgICAgIElEaXJlY3RG
QiAqbV9kZmI7CisgICAgICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciAqbV9kZmJEaXNwbGF5TGF5
ZXI7CisgICAgICAgIElEaXJlY3RGQldpbmRvdyAqbV9kZmJXaW5kb3c7CisjZW5kaWYKICNlbmRp
ZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVjdCB0byBhcHBs
eSB0byBhIHdpbmRvd2VkIHBsdWctaW4KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5W
aWV3UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oIgotI2luY2x1ZGUgIlBsdWdpbkNvbnRhaW5lclF0LmgiCiAjaW5jbHVkZSAiUGx1
Z2luRGVidWcuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlci5oIgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgPFFLZXlF
dmVudD4KICNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlIDxRV2lkZ2V0PgorI2lmZGVmIFFf
V1NfWDExCiAjaW5jbHVkZSA8UVgxMUluZm8+CiAjaW5jbHVkZSA8WDExL1guaD4KICNpZm5kZWYg
UVRfTk9fWFJFTkRFUgpAQCAtNzQsNiArNzQsMjEgQEAKICNkZWZpbmUgU3RhdHVzIGludAogI2lu
Y2x1ZGUgPFgxMS9leHRlbnNpb25zL1hyZW5kZXIuaD4KICNlbmRpZgorI2VsaWYgZGVmaW5lZCBY
UF9ERkIKKyNpbmNsdWRlIDxRQmFzaWNUaW1lcj4KKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZT4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NWaWV3PgorI2luY2x1ZGUgPFFHcmFwaGljc1dlYlZpZXc+Citz
dHJ1Y3QgREZCV2luZG93SW5mbyB7CisgICAgSURpcmVjdEZCKiBkZmI7CisgICAgSURpcmVjdEZC
RGlzcGxheUxheWVyKiBsYXllcjsKKyAgICBJRGlyZWN0RkJXaW5kb3cqIHdpbmRvdzsKK307CitR
VF9CRUdJTl9OQU1FU1BBQ0UKK2V4dGVybiBRX0dVSV9FWFBPUlQgSURpcmVjdEZCU3VyZmFjZSog
cXRfZGlyZWN0ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKGNvbnN0IFFQaXhtYXAgJnBpeG1hcCk7CitR
VF9FTkRfTkFNRVNQQUNFCisjZW5kaWYKKwogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAKQEAgLTEwOSw2ICsxMjQsNyBAQCB2b2lkIFBs
dWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgaWYgKG1fd2luZG93UmVjdCA9PSBv
bGRXaW5kb3dSZWN0ICYmIG1fY2xpcFJlY3QgPT0gb2xkQ2xpcFJlY3QpCiAgICAgICAgIHJldHVy
bjsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBpZiAoIW1faXNXaW5kb3dlZCAmJiBtX3dpbmRvd1Jl
Y3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CiAgICAgICAgIGlmIChtX2RyYXdh
YmxlKQogICAgICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3
YWJsZSk7CkBAIC0xMTcsNiArMTMzLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5X
aWRnZXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5QU2V0V2luZG93
Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAgICAgICAgUUFw
cGxpY2F0aW9uOjpzeW5jWCgpOyAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgc2VydmVyIGtub3dzIGFi
b3V0IHRoZSBEcmF3YWJsZQogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gZG8gbm90IGNhbGwgc2V0
TlBXaW5kb3dJZk5lZWRlZCBpbW1lZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24gcGFpbnQoKQog
ICAgIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE2OCwxNiArMTg1LDE2
IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAgIHNldE5Q
V2luZG93SWZOZWVkZWQoKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9pc1dpbmRvd2Vk
IHx8ICFtX2RyYXdhYmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBib29sIHN5bmNY
ID0gbV9wbHVnaW5EaXNwbGF5ICYmIG1fcGx1Z2luRGlzcGxheSAhPSBRWDExSW5mbzo6ZGlzcGxh
eSgpOwotCiAgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQo
KTsKICAgICBJbnRSZWN0IGV4cG9zZWRSZWN0KHJlY3QpOwogICAgIGV4cG9zZWRSZWN0LmludGVy
c2VjdChmcmFtZVJlY3QoKSk7CiAgICAgZXhwb3NlZFJlY3QubW92ZSgtZnJhbWVSZWN0KCkueCgp
LCAtZnJhbWVSZWN0KCkueSgpKTsKIAorICAgIGNvbnN0IGJvb2wgc3luY1ggPSBtX3BsdWdpbkRp
c3BsYXkgJiYgbV9wbHVnaW5EaXNwbGF5ICE9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgUVBp
eG1hcCBxdERyYXdhYmxlID0gUVBpeG1hcDo6ZnJvbVgxMVBpeG1hcChtX2RyYXdhYmxlLCBRUGl4
bWFwOjpFeHBsaWNpdGx5U2hhcmVkKTsKICAgICBjb25zdCBpbnQgZHJhd2FibGVEZXB0aCA9ICgo
TlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGg7CiAg
ICAgQVNTRVJUKGRyYXdhYmxlRGVwdGggPT0gcXREcmF3YWJsZS5kZXB0aCgpKTsKQEAgLTIzNiw2
ICsyNTMsMjQgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIAogCiAg
ICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJl
Y3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdhYmxlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlZFJlY3QpOworI2Vsc2UKKyAgICBERkJFdmVu
dCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsK
KyAgICBERkJVc2VyRXZlbnQmIHVzZXJFdmVudCA9IGRmYkV2ZW50LnVzZXI7CisgICAgdXNlckV2
ZW50LmNsYXp6ID0gREZFQ19VU0VSOworICAgIHVzZXJFdmVudC50eXBlID0gMHhkZmI7CisgICAg
dXNlckV2ZW50LmRhdGEgPSAmbV9ucFdpbmRvdzsKKyAgICBkaXNwYXRjaE5QRXZlbnQoZGZiRXZl
bnQpOworICAgIFFQYWludGVyKiBwYWludGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7
CisgICAgSW50UmVjdCBleHBvc2VkUmVjdChyZWN0KTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNl
Y3QoZnJhbWVSZWN0KCkpOworICAgIGV4cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdCgpLngoKSwg
LWZyYW1lUmVjdCgpLnkoKSk7CisgICAgY29uc3QgUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSBv
bGRNb2RlID0gcGFpbnRlci0+Y29tcG9zaXRpb25Nb2RlKCk7CisgICAgcGFpbnRlci0+c2V0Q29t
cG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICBwYWlu
dGVyLT5kcmF3UGl4bWFwKFFQb2ludChmcmFtZVJlY3QoKS54KCkgKyBleHBvc2VkUmVjdC54KCks
IGZyYW1lUmVjdCgpLnkoKSArIGV4cG9zZWRSZWN0LnkoKSksIG1fcGl4bWFwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgZXhwb3NlZFJlY3QpOworICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9u
TW9kZShvbGRNb2RlKTsKKyNlbmRpZgogfQogCiAvLyBUT0RPOiBVbmlmeSBhY3Jvc3MgcG9ydHMu
CkBAIC0yNTQsNiArMjg5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQoTlBF
dmVudAogICAgIHJldHVybiBhY2NlcHRlZDsKIH0KIAorI2lmbmRlZiBYUF9ERkIKIHZvaWQgc2V0
U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCogeEV2ZW50LCBRV2lkZ2V0KiBvd25lcldpZGdldCkK
IHsKICAgICB4RXZlbnQtPnhhbnkuc2VyaWFsID0gMDsgLy8gd2UgYXJlIHVuYXdhcmUgb2YgdGhl
IGxhc3QgcmVxdWVzdCBwcm9jZXNzZWQgYnkgWCBTZXJ2ZXIKQEAgLTI5NSw2ICszMzEsNTM0IEBA
IHZvaWQgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50KiAKICAgICB4RXZlbnQtPnhr
ZXkueF9yb290ID0gMDsKICAgICB4RXZlbnQtPnhrZXkueV9yb290ID0gMDsKIH0KKyNlbHNlCitz
dGF0aWMgaW5saW5lIHZvaWQgaW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudChERkJJbnB1dEV2ZW50
KiBkZmJFdmVudCwgY29uc3QgUUtleUV2ZW50KiBxdEV2ZW50KQoreworICAgIGRmYkV2ZW50LT5j
bGF6eiA9IERGRUNfSU5QVVQ7CisgICAgZGZiRXZlbnQtPnR5cGUgPSAocXRFdmVudC0+dHlwZSgp
ID09IFFFdmVudDo6S2V5UHJlc3MgPyBESUVUX0tFWVBSRVNTIDogRElFVF9LRVlSRUxFQVNFKTsK
KyAgICB1bnNpZ25lZCBpbnQgZmxhZ3MgPSAoRElFRl9LRVlTWU1CT0wgfCBESUVGX01PRElGSUVS
Uyk7CisgICAgaWYgKHF0RXZlbnQtPmlzQXV0b1JlcGVhdCgpKQorICAgICAgICBmbGFncyB8PSBE
SUVGX1JFUEVBVDsKKyAgICBjb25zdCBRdDo6S2V5Ym9hcmRNb2RpZmllciBtb2RpZmllcnNbXSA9
IHsgUXQ6OlNoaWZ0TW9kaWZpZXIsIFF0OjpDb250cm9sTW9kaWZpZXIsIFF0OjpBbHRNb2RpZmll
ciwgUXQ6Ok1ldGFNb2RpZmllciB9OworICAgIGNvbnN0IERGQklucHV0RGV2aWNlTW9kaWZpZXJN
YXNrIGRmYk1vZGlmaWVyc1tdID0geyBESU1NX1NISUZULCBESU1NX0NPTlRST0wsIERJTU1fQUxU
LCBESU1NX01FVEEgfTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgICAg
ICBpZiAocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBtb2RpZmllcnNbaV0pCisgICAgICAgICAgICBk
ZmJFdmVudC0+bW9kaWZpZXJzID0gREZCSW5wdXREZXZpY2VNb2RpZmllck1hc2soZGZiRXZlbnQt
Pm1vZGlmaWVycyB8IGRmYk1vZGlmaWVyc1tpXSk7CisgICAgfQorICAgIHN3aXRjaCAocXRFdmVu
dC0+a2V5KCkpIHsKKyAgICBjYXNlIFF0OjpLZXlfQmFja3NwYWNlOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQkFDS1NQQUNFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9CQUNLU1BBQ0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UYWI6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19UQUI7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1RBQjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1JldHVybjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1JFVFVSTjsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfS1BfRU5URVI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Fc2NhcGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19FU0NBUEU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VTQ0FQRTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlbGV0ZToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0RFTEVURTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfREVMRVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVmdDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9MRUZUOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfUklH
SFQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1JJR0hUOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfVXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19DVVJTT1JfVVA7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1VQOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG93bjoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0NVUlNPUl9ET1dOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSW5zZXJ0OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSU5TRVJUOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9JTlNFUlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9Ib21lOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSE9NRTsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSE9NRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0VuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VORDsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRU5EOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfUGFnZVVwOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfUEFHRV9VUDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUEFHRV9VUDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhZ2VEb3duOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfUEFHRV9ET1dOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9QQUdFX0RPV047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Qcmlu
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BSSU5UOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGF1c2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19QQVVTRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbGVj
dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NFTEVDVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X09wZW5Vcmw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19HT1RPOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2xl
YXI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DTEVBUjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lbnU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19NRU5VOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSGVscDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0hFTFA7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9Ib21lUGFnZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0lOVEVSTkVUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGF1
bmNoTWFpbDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01BSUw7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GYXZvcml0ZXM6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19GQVZPUklURVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9CYWNrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQkFDSzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0ZvcndhcmQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19GT1JXQVJEOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfVm9sdW1lVXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19W
T0xVTUVfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVEb3duOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVk9MVU1FX0RPV047CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVNdXRlOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfTVVURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X01lZGlhUGxheToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BMQVk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVN0b3A6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19TVE9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTWVkaWFSZWNvcmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19S
RUNPUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVByZXZpb3VzOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUFJFVklPVVM7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYU5leHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19ORVhUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjE6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfRjE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YyOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9GMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0YzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjM7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRjQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNDsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GNToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y1OworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0Y2OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjY7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRjc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNzsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjc7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9GODoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y4Owor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GODsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0Y5OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjk7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y5OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRjEwOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
RjEwOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMTA7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9GMTE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19GMTE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxMjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0YxMjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjEyOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2hpZnQ6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TSElGVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
U0hJRlRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbnRyb2w6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DT05UUk9MOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9DT05UUk9MX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9BbHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BTFQ7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0FMVF9MOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfQWx0R3I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19B
TFRHUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01ldGE6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NRVRBOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9NRVRBX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TdXBlcl9M
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1VQRVI7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX1NVUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9IeXBlcl9MOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSFlQ
RVI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0hZUEVSX0w7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9DYXBzTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0NBUFNfTE9DSzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
Q0FQU19MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtTG9jazoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX05VTV9MT0NLOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9OVU1fTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1Njcm9sbExvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19T
Q1JPTExfTE9DSzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0NST0xMX0xPQ0s7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Fib3ZlZG90OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQk9WRURPVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVyaW5nOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQk9WRVJJTkc7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9EZWFkX0FjdXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfREVBRF9BQ1VURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQnJl
dmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0JSRVZFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DYXJvbjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0FST047CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9EZWFkX0NlZGlsbGE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19ERUFEX0NFRElMTEE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFk
X0NpcmN1bWZsZXg6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NJ
UkNVTUZMRVg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RpYWVyZXNp
czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfRElBRVJFU0lTOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Eb3VibGVhY3V0ZToKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfRE9VQkxFQUNVVEU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0dyYXZlOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfREVBRF9HUkFWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfSW90YToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RF
QURfSU9UQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfTWFjcm9uOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9NQUNST047CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX09nb25lazoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0RFQURfT0dPTkVLOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9TZW1pdm9pY2VkX1NvdW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfREVBRF9TRU1JVk9JQ0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRGVhZF9UaWxkZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0RFQURfVElMREU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1Zv
aWNlZF9Tb3VuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfVk9J
Q0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3BhY2U6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TUEFDRTsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfU1BBQ0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9F
eGNsYW06CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FWENMQU1BVElPTl9N
QVJLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUXVvdGVEYmw6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19RVU9UQVRJT047CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9OdW1iZXJTaWduOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfTlVNQkVSX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9E
b2xsYXI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ET0xMQVJfU0lHTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BlcmNlbnQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19QRVJDRU5UX1NJR047CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9BbXBlcnNhbmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19BTVBFUlNBTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BcG9zdHJv
cGhlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQVBPU1RST1BIRTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVuTGVmdDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX0xFRlQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9QYXJlblJpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfUEFSRU5USEVTSVNfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9Bc3RlcmlzazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FTVEVS
SVNLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGx1czoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BMVVNfU0lHTjsKKyAgICAgICAgaWYgKHF0RXZlbnQt
Pm1vZGlmaWVycygpICYgUXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfS1BfUExVUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0NvbW1hOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ09NTUE7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NPTU1BOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTWludXM6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19N
SU5VU19TSUdOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9NSU5VU19TSUdOOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGVyaW9kOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfUEVSSU9EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9QRVJJT0Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TbGFzaDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NMQVNIOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9TTEFTSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
XzA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU18wOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV8wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
MToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzE7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJXzE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8y
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfMjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzM6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU18zOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV8zOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzQ7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJXzQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV81Ogor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfNTsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzY6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU182OworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV82OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNzoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzc7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJXzc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV84OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfODsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfODsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzk6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU185OworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV85OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29sb246Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DT0xPTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1NlbWljb2xvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NFTUlDT0xPTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfU0VN
SUNPTE9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVzczoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0xFU1NfVEhBTl9TSUdOOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9MRVNTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9FcXVhbDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VRVUFM
U19TSUdOOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9FUVVBTFNfU0lHTjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0dyZWF0ZXI6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19HUkVBVEVSX1RIQU5fU0lHTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1F1ZXN0aW9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfUVVFU1RJT05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0F0
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQVQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9BOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfU01BTExfQTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0I6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TTUFMTF9COworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9COworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX0M7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0M7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU01BTExfRDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0U6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9FOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9FOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0Y7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9HOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfRzsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfRzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0g6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9IOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9IOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfSToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0k7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9KOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSjsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFM
TF9LOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9LOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfTDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX0w7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0w7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9NOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfU01BTExfTTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X046CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19TTUFMTF9OOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9OOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTzoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX087CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X087CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfUDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1E6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9ROworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9ROworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUjoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1I7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX1I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfUzsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9UOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfVToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1U7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1U7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9WOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExf
VjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1c6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9XOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9XOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfWDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX1g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1g7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9ZOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfU01BTExfWTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1o6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TTUFMTF9aOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9a
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldExlZnQ6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TUVVBUkVfQlJBQ0tFVF9MRUZUOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFja3NsYXNoOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfQkFDS1NMQVNIOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9CQUNLU0xBU0g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0
UmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TUVVBUkVfQlJBQ0tF
VF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpQ2lyY3VtOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ0lSQ1VNRkxFWF9BQ0NFTlQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VbmRlcnNjb3JlOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVU5ERVJTQ09SRTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0JyYWNlTGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0NVUkxZX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0JhcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1ZFUlRJQ0FMX0JBUjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNlUmlnaHQ6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9CUkFDS0VUX1JJR0hUOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXNjaWlUaWxkZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX1RJTERFOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKChx
dEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyKSAmJiBxdEV2ZW50LT5rZXko
KSA+PSBRdDo6S2V5X0EgJiYgcXRFdmVudC0+a2V5KCkgPD0gUXQ6OktleV9aKQorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERGQklucHV0RGV2aWNlS2V5U3ltYm9sKChkZmJFdmVudC0+
a2V5X3N5bWJvbCAtIERJS1NfU01BTExfQSkgKyBESUtTX0NBUElUQUxfQSk7CisgICAgaWYgKGRm
YkV2ZW50LT5rZXlfaWQgIT0gRElLSV9VTktOT1dOKSB7CisgICAgICAgIGZsYWdzID0gREZCSW5w
dXRFdmVudEZsYWdzKGRmYkV2ZW50LT5mbGFncyB8IERJRUZfS0VZSUQpOworICAgICAgICBpZiAo
ZGZiRXZlbnQtPmtleV9pZCA+PSBESUtJXzAgJiYgZGZiRXZlbnQtPmtleV9pZCA8PSBESUtJXzkg
JiYgcXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gREZCSW5wdXREZXZpY2VLZXlJZGVudGlmaWVyKGRmYkV2ZW50
LT5rZXlfaWQgLSBESUtJXzAgKyBESUtJX0tQXzApOworICAgIH0KKyAgICBkZmJFdmVudC0+Zmxh
Z3MgPSBERkJJbnB1dEV2ZW50RmxhZ3MoZmxhZ3MpOworfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2lu
Vmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKQEAgLTMw
NCwxNCArODY4LDIxIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXkK
ICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2
ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXVwRXZlbnQpCiAgICAgICAgIHJldHVybjsK
IAorI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZu
cEV2ZW50KTsKICAgICBzZXRYS2V5RXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQp
OworI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIERGQklucHV0RXZlbnQmIGlucHV0
ID0gbnBFdmVudC5pbnB1dDsKKyAgICBpbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KCZpbnB1dCwg
ZXZlbnQtPmtleUV2ZW50KCktPnF0RXZlbnQoKSk7CisjZW5kaWYKIAogICAgIGlmICghZGlzcGF0
Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
IH0KIAorI2lmbmRlZiBYUF9ERkIKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVudFN0YXRl
KE1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CkBAIC0z
ODYsNiArOTU3LDQ1IEBAIHN0YXRpYyB2b2lkIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWUK
ICAgICB4Y3Jvc3Npbmcuc2FtZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9
IGZhbHNlOwogfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJNb3VzZUV2
ZW50KERGQldpbmRvd0V2ZW50KiBkZmJFdmVudCwgY29uc3QgTW91c2VFdmVudCogZXZlbnQpCit7
CisgICAgZGZiRXZlbnQtPmNsYXp6ID0gREZFQ19XSU5ET1c7CisKKyAgICB1bnNpZ25lZCBpbnQg
bW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZp
ZXJzIHw9IERJTU1fQ09OVFJPTDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAg
IG1vZGlmaWVycyB8PSBESU1NX1NISUZUOworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAg
ICAgIG1vZGlmaWVycyB8PSBESU1NX0FMVDsKKyAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IERJTU1fTUVUQTsKKyAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0g
REZCSW5wdXREZXZpY2VNb2RpZmllck1hc2sobW9kaWZpZXJzKTsKKworICAgIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JVVFRP
TkRPV04gOiBEV0VUX0JVVFRPTlVQKTsKKyAgICAgICAgc3dpdGNoIChldmVudC0+YnV0dG9uKCkp
IHsKKyAgICAgICAgY2FzZSBMZWZ0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRv
biA9IERJQklfTEVGVDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1pZGRsZUJ1
dHRvbjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX01JRERMRTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgZGZi
RXZlbnQtPmJ1dHRvbiA9IERJQklfUklHSFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRmYkV2ZW50
LT5idXR0b25zID0gREZCSW5wdXREZXZpY2VCdXR0b25NYXNrKDApOworICAgIH0gZWxzZSBpZiAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAg
ZGZiRXZlbnQtPnR5cGUgPSBEV0VUX01PVElPTjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1
cm47CisgICAgfQorfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVu
dChNb3VzZUV2ZW50KiBldmVudCkKIHsKQEAgLTM5OSwxMSArMTAwOSwxMSBAQCB2b2lkIFBsdWdp
blZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFCiAKICAgICAgICAgZm9jdXNQbHVnaW5FbGVt
ZW50KCk7CiAgICAgfQotCisgICAgSW50UG9pbnQgcG9zdFpvb21Qb3MgPSByb3VuZGVkSW50UG9p
bnQobV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRl
TG9jYXRpb24oKSkpOworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBp
bml0WEV2ZW50KCZucEV2ZW50KTsKIAotICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRl
ZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCkpKTsKIAogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQpCiAgICAgICAgIHNldFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50
LCBldmVudCwgcG9zdFpvb21Qb3MpOwpAQCAtNDEzLDEzICsxMDIzLDQwIEBAIHZvaWQgUGx1Z2lu
Vmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUUKICAgICAgICAgc2V0WENyb3NzaW5nRXZlbnRT
cGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKICAgICBlbHNlCiAg
ICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAKKyNlbHNlCisgICAgREZCRXZlbnQgbnBF
dmVudDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworCisgICAg
aWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50IHx8IGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpIHsKKyAgICAgICAgbnBFdmVu
dC5jbGF6eiA9IERGRUNfV0lORE9XOworICAgICAgICBucEV2ZW50LndpbmRvdy50eXBlID0gKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50ID8gRFdFVF9FTlRFUiA6
IERXRVRfTEVBVkUpOworICAgICAgICBucEV2ZW50LndpbmRvdy54ID0gbnBFdmVudC53aW5kb3cu
Y3ggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIG5wRXZlbnQud2luZG93LnkgPSBucEV2ZW50
LndpbmRvdy5jeSA9IHBvc3Rab29tUG9zLnkoKTsKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChu
cEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJl
dHVybjsKK30KKworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRvdzsK
KyAgICBtX2RmYldpbmRvdy0+R2V0SUQobV9kZmJXaW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsK
KyAgICBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KCZ3aW5kb3csIGV2ZW50KTsKKyAgICB3aW5kb3cu
eCA9IHBvc3Rab29tUG9zLngoKTsKKyAgICB3aW5kb3cueSA9IHBvc3Rab29tUG9zLnkoKTsKKyAg
ICBjb25zdCBJbnRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uID0gZXZlbnQtPmFic29sdXRlTG9jYXRp
b24oKTsKKyAgICB3aW5kb3cuY3ggPSBhYnNvbHV0ZUxvY2F0aW9uLngoKTsKKyAgICB3aW5kb3cu
Y3kgPSBhYnNvbHV0ZUxvY2F0aW9uLnkoKTsKKworICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5w
RXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQog
CiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZuZGVmIFhQX0RG
QgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00
MjcsMTIgKzEwNjQsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQoKQog
ICAgIGV2ZW50LnR5cGUgPSA5OyAvKiBpbnQgYXMgUXQgdW5zZXRzIEZvY3VzSW4gKi8KICAgICBl
dmVudC5tb2RlID0gTm90aWZ5Tm9ybWFsOwogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlmeURldGFp
bE5vbmU7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwogCisjZWxzZQorICAgIERGQkV2
ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsK
KyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAgd2luZG93
LmNsYXp6ID0gREZFQ19XSU5ET1c7CisgICAgd2luZG93LnR5cGUgPSBEV0VUX0dPVEZPQ1VTOwog
ICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQg
bnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDQyLDYgKzEwODgsMTUg
QEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKICAgICBldmVudC5kZXRh
aWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwor
I2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVudCwgMCwgc2l6
ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5wRXZlbnQud2lu
ZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAgIHdpbmRvdy50eXBlID0g
RFdFVF9MT1NURk9DVVM7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2VuZGlmCisK
IH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQpAQCAt
NDU4LDYgKzExMTMsNDkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd1JlY3QoY29uc3Qg
SQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiB9CiAKKyNpZmRlZiBYUF9ERkIKK2Ns
YXNzIFdpbmRvd01vdmVFdmVudEZpbHRlciA6IHB1YmxpYyBRT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIoYm9vbCogZywgUGx1Z2luVmlldyogdmlldywgUVdpZGdl
dCogd2F0Y2hlZCkKKyAgICAgICAgOiBRT2JqZWN0KDApCisgICAgICAgICwgbV9oYXNQZW5kaW5n
R2VvbWV0cnlDaGFuZ2UoZykKKyAgICAgICAgLCBtX3BsdWdpblZpZXcodmlldykKKyAgICB7Cisg
ICAgICAgIFFfQVNTRVJUKHdhdGNoZWQpOworICAgICAgICBmb3JldmVyIHsKKyAgICAgICAgICAg
IHdhdGNoZWQtPmluc3RhbGxFdmVudEZpbHRlcih0aGlzKTsKKyAgICAgICAgICAgIGlmICh3YXRj
aGVkLT5pc1dpbmRvdygpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgd2F0
Y2hlZCA9IHdhdGNoZWQtPnBhcmVudFdpZGdldCgpOworICAgICAgICAgICAgaWYgKCF3YXRjaGVk
KQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbCBl
dmVudEZpbHRlcihRT2JqZWN0ICosIFFFdmVudCogZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50
eXBlKCkgPT0gUUV2ZW50OjpNb3ZlIHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6OlJlc2l6ZSkgewor
ICAgICAgICAgICAgKm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIG1fdGltZXIuc3RhcnQoMTAsIHRoaXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGUpCisgICAg
eworICAgICAgICBpZiAoZS0+dGltZXJJZCgpID09IG1fdGltZXIudGltZXJJZCgpKSB7CisgICAg
ICAgICAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICAgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VS
ZWRyYXcoKTsKKyAgICAgICAgfQorICAgIH0KK3ByaXZhdGU6CisgICAgYm9vbCogbV9oYXNQZW5k
aW5nR2VvbWV0cnlDaGFuZ2U7CisgICAgUGx1Z2luVmlldyogbV9wbHVnaW5WaWV3OworICAgIFFC
YXNpY1RpbWVyIG1fdGltZXI7Cit9OworCisjZW5kaWYKKwogdm9pZCBQbHVnaW5WaWV3OjpzZXRO
UFdpbmRvd0lmTmVlZGVkKCkKIHsKICAgICBpZiAoIW1faXNTdGFydGVkIHx8ICFwYXJlbnQoKSB8
fCAhbV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPnNldHdpbmRvdykKQEAgLTQ5NCw2ICsxMTkyLDcg
QEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdp
bmRvdy5jbGlwUmVjdC5yaWdodCA9IG1fY2xpcFJlY3Qud2lkdGgoKTsKICAgICAgICAgbV9ucFdp
bmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0gZWxzZSB7
CisjaWZuZGVmIFhQX0RGQgogICAgICAgICBtX25wV2luZG93LnggPSAwOwogICAgICAgICBtX25w
V2luZG93LnkgPSAwOwogCkBAIC01MDEsNiArMTIwMCwzOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNl
dE5QV2luZG93SWZOZWVkZWQoKQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IDA7
CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSAwOwogICAgICAgICBtX25wV2lu
ZG93LmNsaXBSZWN0LmJvdHRvbSA9IDA7CisjZWxzZQorICAgICAgICBRUG9pbnQgcGx1Z2luVmll
d0dsb2JhbFBvcyA9IHdpbmRvd0NsaXBSZWN0KCkudG9wTGVmdCgpOworICAgICAgICBRV2ViUGFn
ZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOworICAgICAgICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBj
bGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0KCkgOiAwKSB7CisgICAgICAgICAgICBpZiAoIW1f
ZXZlbnRGaWx0ZXIpCisgICAgICAgICAgICAgICAgbV9ldmVudEZpbHRlciA9IG5ldyBXaW5kb3dN
b3ZlRXZlbnRGaWx0ZXIoJm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlLCB0aGlzLCBvd25lcldp
ZGdldCk7CisgICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1h
cFRvR2xvYmFsKHBsdWdpblZpZXdHbG9iYWxQb3MpOworICAgICAgICAgICAgaWYgKGNvbnN0IFFH
cmFwaGljc1dlYlZpZXcqIGl0ZW0gPSBxb2JqZWN0X2Nhc3Q8Y29uc3QgUUdyYXBoaWNzV2ViVmll
dyo+KGNsaWVudC0+cGx1Z2luUGFyZW50KCkpKSB7CisgICAgICAgICAgICAgICAgUV9BU1NFUlQo
aXRlbS0+c2NlbmUoKSAmJiAhaXRlbS0+c2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkpOworICAg
ICAgICAgICAgICAgIGNvbnN0IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52
aWV3cygpLnZhbHVlKDApOworICAgICAgICAgICAgICAgIGNvbnN0IFFQb2ludCBhZGQgPSB2aWV3
LT5tYXBGcm9tU2NlbmUoaXRlbS0+cG9zKCkpOworICAgICAgICAgICAgICAgIHBsdWdpblZpZXdH
bG9iYWxQb3MgKz0gYWRkOworICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgoUVNpemUp
KG1fd2luZG93UmVjdC5zaXplKCkpICE9IG1fcGl4bWFwLnNpemUoKSkgeworICAgICAgICAgICAg
bV9waXhtYXAgPSBRUGl4bWFwKG1fd2luZG93UmVjdC5zaXplKCkpOworICAgICAgICAgICAgbV9w
aXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICB9CisKKyAgICAgICAgbV9ucFdp
bmRvdy54ID0gcGx1Z2luVmlld0dsb2JhbFBvcy54KCk7CisgICAgICAgIG1fbnBXaW5kb3cueSA9
IHBsdWdpblZpZXdHbG9iYWxQb3MueSgpOworICAgICAgICBjb25zdCBJbnRSZWN0IGZyYW1lID0g
ZnJhbWVSZWN0KCk7CisgICAgICAgIG1fbnBXaW5kb3cud2lkdGggPSBmcmFtZS53aWR0aCgpOwor
ICAgICAgICBtX25wV2luZG93LmhlaWdodCA9IGZyYW1lLmhlaWdodCgpOworICAgICAgICBtX25w
V2luZG93LmNsaXBSZWN0LnRvcCA9IG1fY2xpcFJlY3QueSgpOworICAgICAgICBtX25wV2luZG93
LmNsaXBSZWN0LmxlZnQgPSBtX2NsaXBSZWN0LngoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlw
UmVjdC5yaWdodCA9IG1fY2xpcFJlY3Qud2lkdGgoKSArIG1fY2xpcFJlY3QueCgpIC0gMTsKKyAg
ICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LmhlaWdodCgpICsg
bV9jbGlwUmVjdC55KCkgLSAxOworICAgICAgICBtX2RmYlN1cmZhY2UgPSBRVF9QUkVQRU5EX05B
TUVTUEFDRShxdF9kaXJlY3RmYl9zdXJmYWNlX2Zvcl9waXhtYXAobV9waXhtYXApKTsKKyAgICAg
ICAgbV9ucFdpbmRvdy53aW5kb3cgPSBtX2RmYlN1cmZhY2U7CisgICAgICAgIG1fbnBXaW5kb3cu
dHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworI2VuZGlmCiAgICAgfQogCiAgICAgLy8gRkxB
U0ggV09SS0FST1VORDogT25seSBzZXQgaW5pdGlhbGx5LiBNdWx0aXBsZSBjYWxscyB0bwpAQCAt
NTg2LDE1ICsxMzE4LDEyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRp
YygKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJs
ZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkKIHsKICAgICBzd2l0Y2ggKHZhcmlhYmxl
KSB7CisjaWZuZGVmIFhQX0RGQgogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgogICAgICAgICAqKHZv
aWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgICAgICAqcmVzdWx0ID0gTlBF
UlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgY2FzZSBOUE5WeHRBcHBD
b250ZXh0OgotICAgICAgICAqcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2
b2lkKiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpOwogICAgICAgICBRV2ViUGFn
ZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOwpAQCAtNjAyLDcgKzEzMzEsNyBAQCBib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyCiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJP
UjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotCisjZW5kaWYKICAgICBjYXNlIE5QTlZU
b29sa2l0OgogICAgICAgICBpZiAobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1
aXJrUmVxdWlyZXNHdGtUb29sS2l0KSkgewogICAgICAgICAgICAgKigodWludDMyX3QgKil2YWx1
ZSkgPSAyOwpAQCAtNjQ3LDYgKzEzNzYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmZvcmNlUmVkcmF3
KCkKICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKKyNpZm5kZWYgWFBfREZCCiBzdGF0aWMgRGlzcGxh
eSAqZ2V0UGx1Z2luRGlzcGxheSgpCiB7CiAgICAgLy8gVGhlIHBsdWdpbiB0b29sa2l0IG1pZ2h0
IHJ1biB1c2luZyBhIGRpZmZlcmVudCBYIGNvbm5lY3Rpb24uIEF0IHRoZSBtb21lbnQsIHdlIG9u
bHkKQEAgLTcxMiwxMiArMTQ0MiwxNCBAQCBzdGF0aWMgdm9pZCBnZXRWaXN1YWxBbmRDb2xvcm1h
cChpbnQgZGVwCiAgICAgaWYgKCp2aXN1YWwpCiAgICAgICAgICpjb2xvcm1hcCA9IFhDcmVhdGVD
b2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBRWDExSW5mbzo6YXBwUm9vdFdpbmRvdygpLCAq
dmlzdWFsLCBBbGxvY05vbmUpOwogfQorI2VuZGlmCiAKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZv
cm1TdGFydCgpCiB7CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKICAgICBBU1NFUlQobV9zdGF0
dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIAorI2lmbmRlZiBYUF9ERkIK
ICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmdldHZhbHVlKSB7CiAgICAgICAgIFBs
dWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRoaXMpOwogICAgICAgICBKU0M6OkpTTG9j
azo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhKU0M6OlNpbGVuY2VBc3NlcnRpb25zT25seSk7
CkBAIC03NDIsMTIgKzE0NzQsNzEgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkK
ICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQoMCk7CiAgICAgICAgIG1fcGx1Z2luRGlzcGxheSA9
IGdldFBsdWdpbkRpc3BsYXkoKTsKICAgICB9CisjZWxzZQorICAgIGlmIChtX2lzV2luZG93ZWQp
IHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5T
dGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IERGQldpbmRvd0luZm8qIHdzSW5mbyA9IDA7CisgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9
IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KTsKKyAgICBpZiAoIWNsaWVudCB8fCAhY2xpZW50LT5vd25lcldpZGdldCgpKSB7CisgICAgICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90
TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIERGQlJlc3Vs
dCByZXN1bHQgPSBEaXJlY3RGQkNyZWF0ZSgmbV9kZmIpOworICAgIGlmIChyZXN1bHQgIT0gREZC
X09LKQorICAgICAgICBnb3RvIGVuZDsKKworICAgIHJlc3VsdCA9IG1fZGZiLT5HZXREaXNwbGF5
TGF5ZXIobV9kZmIsIERMSURfUFJJTUFSWSwgJm1fZGZiRGlzcGxheUxheWVyKTsKKyAgICBpZiAo
cmVzdWx0ICE9IERGQl9PSykKKyAgICAgICAgZ290byBlbmQ7CisKKyAgICByZXN1bHQgPSBtX2Rm
YkRpc3BsYXlMYXllci0+R2V0V2luZG93KG1fZGZiRGlzcGxheUxheWVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8REZCV2luZG93SUQ+KGNs
aWVudC0+b3duZXJXaWRnZXQoKS0+cHJvcGVydHkoIl9xX0RpcmVjdEZCV2luZG93SUQiKS50b0lu
dCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtX2RmYldp
bmRvdyk7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworICAg
IHdzSW5mbyA9IG5ldyBERkJXaW5kb3dJbmZvOworICAgIHdzSW5mby0+ZGZiID0gbV9kZmI7Cisg
ICAgd3NJbmZvLT53aW5kb3cgPSBtX2RmYldpbmRvdzsKKyAgICB3c0luZm8tPmxheWVyID0gbV9k
ZmJEaXNwbGF5TGF5ZXI7CisgICAgbV9ucFdpbmRvdy53c19pbmZvID0gd3NJbmZvOworICAgIG1f
bnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworICAgIG1fbnBXaW5kb3cud2lu
ZG93ID0gMDsgLy8gTm90IHVzZWQ/CisgICAgbV9ucFdpbmRvdy54ID0gMDsKKyAgICBtX25wV2lu
ZG93LnkgPSAwOworICAgIG1fbnBXaW5kb3cud2lkdGggPSAtMTsKKyAgICBtX25wV2luZG93Lmhl
aWdodCA9IC0xOworCitlbmQ6CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAg
aWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgICAgICBtX2RmYldpbmRvdy0+UmVsZWFzZShtX2Rm
YldpbmRvdyk7CisgICAgICAgICAgICBtX2RmYldpbmRvdyA9IDA7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAobV9kZmJEaXNwbGF5TGF5ZXIpCisgICAgICAgICAgICBtX2RmYkRpc3BsYXlMYXll
ci0+UmVsZWFzZShtX2RmYkRpc3BsYXlMYXllcik7CisKKyAgICAgICAgaWYgKG1fZGZiKSB7Cisg
ICAgICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAgICAgICAgICBtX2RmYiA9IDA7
CisgICAgICAgIH0KKyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2luVmlldzo6cGxhdGZvcm1T
dGFydCgpIiwgcmVzdWx0KTsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9z
dGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorI2VuZGlmCiAKICAgICBzaG93KCk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAg
TlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCogd3NpID0gbmV3IE5QU2V0V2luZG93Q2FsbGJhY2tT
dHJ1Y3QoKTsKICAgICB3c2ktPnR5cGUgPSAwOwotCiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewog
ICAgICAgICBjb25zdCBRWDExSW5mbyogeDExSW5mbyA9ICZwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LT54MTFJbmZvKCk7CiAKQEAgLTc1NSw3ICsxNTQ2LDYgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybVN0YXJ0KCkKICAgICAgICAgd3NpLT52aXN1YWwgPSAoVmlzdWFsKil4MTFJbmZvLT52aXN1
YWwoKTsKICAgICAgICAgd3NpLT5kZXB0aCA9IHgxMUluZm8tPmRlcHRoKCk7CiAgICAgICAgIHdz
aS0+Y29sb3JtYXAgPSB4MTFJbmZvLT5jb2xvcm1hcCgpOwotCiAgICAgICAgIG1fbnBXaW5kb3cu
dHlwZSA9IE5QV2luZG93VHlwZVdpbmRvdzsKICAgICAgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAo
dm9pZCopcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2luSWQoKTsKICAgICAgICAgbV9ucFdpbmRv
dy53aWR0aCA9IC0xOwpAQCAtNzg0LDggKzE1NzQsOCBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtU3RhcnQoKQogICAgICAgICBtX25wV2luZG93LndpZHRoID0gLTE7CiAgICAgICAgIG1fbnBX
aW5kb3cuaGVpZ2h0ID0gLTE7CiAgICAgfQotCiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gd3Np
OworI2VuZGlmCiAKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2lu
UXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKSB7CiAgICAgICAgIHVwZGF0ZVBsdWdpbldp
ZGdldCgpOwpAQCAtODAwLDExICsxNTkwLDMzIEBAIHZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1E
ZXN0cm95KCkKICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkKICAgICAgICAgZGVsZXRl
IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1fZHJh
d2FibGUpCiAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2Fi
bGUpOwogCiAgICAgaWYgKG1fY29sb3JtYXApCiAgICAgICAgIFhGcmVlQ29sb3JtYXAoUVgxMUlu
Zm86OmRpc3BsYXkoKSwgbV9jb2xvcm1hcCk7CisjZWxzZQorICAgIGRlbGV0ZSBtX2V2ZW50Rmls
dGVyOworICAgIG1fZXZlbnRGaWx0ZXIgPSAwOworICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxERkJX
aW5kb3dJbmZvKj4obV9ucFdpbmRvdy53c19pbmZvKTsKKyAgICBtX25wV2luZG93LndzX2luZm8g
PSAwOworICAgIG1fcGl4bWFwID0gUVBpeG1hcCgpOworICAgIGlmIChtX2RmYldpbmRvdykgewor
ICAgICAgICBtX2RmYldpbmRvdy0+UmVsZWFzZShtX2RmYldpbmRvdyk7CisgICAgICAgIG1fZGZi
V2luZG93ID0gMDsKK30KKworICAgIGlmIChtX2RmYkRpc3BsYXlMYXllcikgeworICAgICAgICBt
X2RmYkRpc3BsYXlMYXllci0+UmVsZWFzZShtX2RmYkRpc3BsYXlMYXllcik7CisgICAgICAgIG1f
ZGZiRGlzcGxheUxheWVyID0gMDsKKyAgICB9CisKKyAgICBpZiAobV9kZmIpIHsKKyAgICAgICAg
bV9kZmItPlJlbGVhc2UobV9kZmIpOworICAgICAgICBtX2RmYiA9IDA7CisgICAgfQorI2VuZGlm
CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFsdCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56942</attachid>
            <date>2010-05-24 16:22:25 -0700</date>
            <delta_ts>2010-06-07 10:50:08 -0700</delta_ts>
            <desc>Patch that enables Windowless NPAPI for Qt/QWS with DirectFB</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>46883</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMyICsxLDUzIEBACi0yMDEwLTA1LTI0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIFByZXBhcmUg
SFRNTDVUcmVlQnVpbGRlciBmb3IgYWRkaXRpb24gb2YgbmV3IEhUTUw1IHBhcnNlciBjb2RlCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTYyMwotCi0g
ICAgICAgIEJlZm9yZSB3ZSBzdGFydCB0cmFuc2NyaWJpbmcgdGhlIHBhcnNlciwgd2UgbmVlZCBh
IHBsYWNlIHRvIHB1dCBpdC4KLQotICAgICAgICBUaGlzIGFsc28gY2xlYW5zIHVwIEhUTUw1IHRv
a2VuIHRvIG5vdCBjb252ZXJ0IGNvbW1lbnQgYW5kIGNoYXJhY3RlcgotICAgICAgICBkYXRhIGlu
dG8gQXRvbWljU3RyaW5ncyAod2hpY2ggbWFrZXMgbm8gc2Vuc2UpLgotCi0gICAgICAgIE5vIGZ1
bmN0aW9uYWxpdHkgY2hhbmdlLCBzbyBubyBuZXcgdGVzdHMuCi0KLSAgICAgICAgKiBodG1sL0hU
TUw1VG9rZW4uaDoKLSAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46OmJlZ2luU3RhcnRUYWcp
OgotICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YmVnaW5FbmRUYWcpOgotICAgICAgICAo
V2ViQ29yZTo6SFRNTDVUb2tlbjo6YmVnaW5DaGFyYWN0ZXIpOgotICAgICAgICAoV2ViQ29yZTo6
SFRNTDVUb2tlbjo6YmVnaW5Db21tZW50KToKLSAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46
Om5hbWUpOgotICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YWRvcHREYXRhQXNTdHJpbmdJ
bXBsKToKLSAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46OmNoYXJhY3RlcnMpOgotICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6Y29tbWVudERhdGEpOgotICAgICAgICAoV2ViQ29yZTo6
SFRNTDVUb2tlbjo6Y2xlYXJEYXRhKToKLSAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIu
Y3BwOgotICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvT2xkU3R5bGUpOgotICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbik6Ci0gICAgICAg
IChXZWJDb3JlOjpIVE1MNVRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW4pOgotICAgICAgICAqIGh0
bWwvSFRNTDVUcmVlQnVpbGRlci5oOgorIDIwMTAtMDUtMjQgIEFuZGVycyBCYWtrZW4gIDxBbmRl
cnMgQmFra2VuIDxhZ2Jha2tlbkBnbWFpbC5jb20+PgorIAorICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgCisgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzYxNzEKKyAKKyAgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMg
d2luZG93bGVzcyBOUEFQSSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICAgdXNp
bmcgRGlyZWN0RkIuIEl0J3MgYmVlbiB2ZXJpZmllZCB0byB3b3JrIG9uIE1JUFMgaGFyZHdhcmUg
d2l0aAorICAgICAgICAgRmxhc2hsaXRlLiAKKyAKKyAgICAgICAgIFRoZSBjb2RlIGlzIGxhcmdl
bHkgYmFzZWQgb24gdGhlIFF0L1gxMSBpbXBsZW1lbnRhdGlvbiBvZiB3aW5kb3dsZXNzCisgICAg
ICAgICBOUEFQSS4gSXQgYWRkcyB0aGUgZGVmaW5lIFhQX0RGQiB3aGVuIGVuYWJsZWQgdG8gZGlm
ZmVyZW50aWF0ZSBiZXR3ZWVuCisgICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5J
WCBpcyBkZWZpbmVkLiBUaGlzIG1lYW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgICBmdW5j
dGlvbiB0aGUgc2FtZSB3YXkgZm9yIFgxMSBidWlsZHMuCisgCisgICAgICAgICBTaW5jZSB0aGUg
bm9ybWFsIHVzZSBjYXNlIGZvciBOUEFQSSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0
ZXMKKyAgICAgICAgIGxpa2UgeW91dHViZSBpdCdzIGltcG9ydGFudCB0byBtYWtlIHN1cmUgdGhl
IHBsdWdpbiBnZXRzIGFuIHVwZGF0ZWQKKyAgICAgICAgIGdsb2JhbCBnZW9tZXRyeSBpZiB0aGUg
d2luZG93IG1vdmVzIG9yIHJlc2l6ZXMuIFRoaXMgaXMgZHVlIHRvIHRoZQorICAgICAgICAgZmFj
dCB0aGF0IHRoZSB2aWRlbyB3aWxsIGJlIHJlbmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIg
cmF0aGVyCisgICAgICAgICB0aGFuIGFjdHVhbGx5IGludG8gdGhlIG9mZnNjcmVlbiBzdXJmYWNl
IHRoYXQncyBiZWluZyByZW5kZXJlZCB0by4KKyAKKyAgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0
ZXN0IGNhc2UgdGhhdCBJIGNvdWxkIGhlbHAgcGVvcGxlIHNldCB1cCBmb3IgdGVzdGluZworICAg
ICAgICAgd2l0aCBRdC9RV1MgRGlyZWN0RkIgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gbWFrZSBp
dCBhdXRvbWF0ZWQuCisgCisgICAgICAgICBUbyBlbmFibGUgTlBBUEkgZm9yIERpcmVjdEZCIHRo
ZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFrZSBzdXJlCisgICAgICAgICBxbWFrZS5jb25mIGNvbnRh
aW5zIHRoaXMgbGluZToKKyAKKyAgICAgICAgIERFRklORVMgKz0gRU5BQkxFX05FVFNDQVBFX1BM
VUdJTl9BUElfRElSRUNURkIKKyAKKyAgICAgICAgIFF0IG11c3QgYWxzbyBiZSBjb25maWd1cmVk
IHdpdGggdGhlIC1xdC1nZngtZGlyZWN0ZmIgb3B0aW9uIChhcworICAgICAgICAgb3Bwb3NlZCB0
byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKyAKKyAgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAgKiBicmlkZ2UvbnBhcGkuaDoKKyAgICAgICAg
ICogYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oOgorICAgICAgICAgKiBwbHVnaW5zL1BsdWdp
blZpZXcuY3BwOgorICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAgICAgICAgKiBwbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgor
ICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6CisgICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAgKFdlYkNvcmU6Omlu
aXREaXJlY3RGQktleWJvYXJkRXZlbnQpOgorICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAgKFdlYkNvcmU6OmluaXREaXJlY3RGQk1v
dXNlRXZlbnQpOgorICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZl
bnQpOgorICAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCk6
CisgICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6Cisg
ICAgICAgICAoV2ViQ29yZTo6V2luZG93TW92ZUV2ZW50RmlsdGVyOjpXaW5kb3dNb3ZlRXZlbnRG
aWx0ZXIpOgogCiAyMDEwLTA1LTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CkBAIC04OCw3ICsxMDksNiBAQAogICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyKTogQWRhcHQgdG8gbmV3IGMndG9yLgogICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VU
cmFja2VyOjpEYXRhYmFzZVRyYWNrZXIpOiBEaXR0by4KIAotCiAyMDEwLTA1LTI0ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5wcmkJKHJldmlzaW9uIDYwMDk1KQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtOTEsNiArOTEsMTAgQEAgZ3JlYXRlclRoYW4oUVRfTUlOT1JfVkVSU0lPTiwg
NSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklH
ICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0x
Cit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9Likgewog
ICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjogewogICAgICAgICBERUZJTkVTICs9
IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNjAwOTUpCisrKyBX
ZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMjI4LDE2ICsyMjI4LDE5IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU4KICAgICAgICAgICAgICAg
ICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMKICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQ
X01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAgICAgICAgICAgICBkaXJlY3RmYiB7CisgICAg
ICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBfREZCCisgICAgICAgICAgICAgICAgICAgIFFN
QUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJUkVDVEZCCisgICAgICAgICAgICAgICAgICAg
IExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisgICAgICAgICAgICAgICAgfSBlbHNlOiFlbWJl
ZGRlZCB7CiAgICAgICAgICAgICAgICAgICAgIENPTkZJRyArPSB4MTEKICAgICAgICAgICAgICAg
ICAgICAgTElCUyArPSAtbFhyZW5kZXIKKyAgICAgICAgICAgICAgICAgICAgU09VUkNFUyArPSBw
bHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcAorICAgICAgICAgICAgICAgICAgICBIRUFE
RVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuaAogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lu
cy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgXAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5z
L3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgXAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0
L1BsdWdpblZpZXdRdC5jcHAKLSAgICAgICAgICAgICAgICBIRUFERVJTICs9IFwKLSAgICAgICAg
ICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5oCiAgICAgICAgICAgICAg
ICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdl
YkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGku
aAkocmV2aXNpb24gNjAwOTUpCisrKyBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05OCw3ICs5OCw3IEBACiAjZW5kaWYKICNlbmRpZgogCi0jaWZkZWYgWFBfVU5JWAor
I2lmIGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAjaW5jbHVkZSA8WDExL1hs
aWIuaD4KICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjAx
LDcgKzIwMSw3IEBAIHR5cGVkZWYgc3RydWN0IF9OUFJlY3QKICAgdWludDE2X3QgcmlnaHQ7CiB9
IE5QUmVjdDsKIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZp
bmVkKFhQX0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRp
b25zCiAgKi8KQEAgLTQ0Nyw2ICs0NDcsOSBAQCB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogICB1
aW50cHRyX3Qgd1BhcmFtOwogICB1aW50cHRyX3QgbFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYg
ZGVmaW5lZCAoWFBfREZCKQorI2luY2x1ZGUgPGRpcmVjdGZiLmg+Cit0eXBlZGVmIERGQkV2ZW50
IE5QRXZlbnQ7CiAjZWxpZiBkZWZpbmVkIChYUF9VTklYKQogdHlwZWRlZiBYRXZlbnQgTlBFdmVu
dDsKICNlbHNlCkBAIC00NjMsNyArNDY2LDcgQEAgdHlwZWRlZiBSZ25IYW5kbGUgTlBRRFJlZ2lv
bjsKIHR5cGVkZWYgQ0dQYXRoUmVmIE5QQ0dSZWdpb247CiAjZWxpZiBkZWZpbmVkKFhQX1dJTikK
IHR5cGVkZWYgSFJHTiBOUFJlZ2lvbjsKLSNlbGlmIGRlZmluZWQoWFBfVU5JWCkKKyNlbGlmIGRl
ZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogdHlwZWRlZiBSZWdpb24gTlBSZWdp
b247CiAjZWxpZiBkZWZpbmVkKFhQX1NZTUJJQU4pCiB0eXBlZGVmIFFSZWdpb24qIE5QUmVnaW9u
OwpJbmRleDogV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgJKHJldmlzaW9uIDYwMDk1KQor
KysgV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIm5wcnVu
dGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5l
ZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2UuaD4KIAogICAgICN1bmRlZiBO
b25lCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCShyZXZpc2lvbiA2MDA5NSkKKysrIFdlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYwLDcgKzM2MCw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJl
bnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQ
X1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdp
bmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1
Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAg
LTgxOSw3ICs4MTksNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFt
CiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX2hhdmVJbml0aWFsaXplZChm
YWxzZSkKICAgICAsIG1faXNXYWl0aW5nVG9TdGFydChmYWxzZSkKLSNpZiBkZWZpbmVkKFhQX1VO
SVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZCAoWFBfREZCKQogICAgICwgbV9u
ZWVkc1hFbWJlZChmYWxzZSkKICNlbmRpZgogI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQpAQCAtODQwLDEwICs4NDAsMTggQEAgUGx1Z2luVmlldzo6UGx1Z2lu
VmlldyhGcmFtZSogcGFyZW50RnJhbQogI2VuZGlmCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hh
bmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZCCiAgICAgLCBtX2RyYXdhYmxlKDApCiAgICAg
LCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1hcCgwKQogICAgICwgbV9wbHVnaW5EaXNwbGF5
KDApCisjZWxzZQorICAgICwgbV9ldmVudEZpbHRlcigwKQorICAgICwgbV9kZmJTdXJmYWNlKDAp
CisgICAgLCBtX2RmYigwKQorICAgICwgbV9kZmJEaXNwbGF5TGF5ZXIoMCkKKyAgICAsIG1fZGZi
V2luZG93KDApCisjZW5kaWYKICNlbmRpZgogICAgICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVh
bGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2
aXNpb24gNjAwOTUpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYgUGx1
Z2luVmlld19oCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lm
IGRlZmluZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFQaXhtYXA+CisjaW5j
bHVkZSA8ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYgT1MoV0lORE9XUykgJiYgKFBMQVRGT1JN
KFFUKSB8fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7CkBAIC0x
NDMsNyArMTQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogdXNlckFnZW50U3RhdGljKCk7CiAjZW5kaWYKICAgICAgICAgdm9pZCBzdGF0dXMoY29u
c3QgY2hhciogbWVzc2FnZSk7Ci0gICAgICAgIAorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZv
aWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBOVmFy
aWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKQEAgLTMxNiw3ICszMjAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9oYXZlSW5pdGlhbGl6ZWQ7CiAgICAgICAgIGJv
b2wgbV9pc1dhaXRpbmdUb1N0YXJ0OwogCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmlu
ZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgICAgICBib29sIG1fbmVlZHNYRW1i
ZWQ7CiAjZW5kaWYKIApAQCAtMzY2LDEyICszNzAsMjEgQEAgcHJpdmF0ZToKIAogI2lmIGRlZmlu
ZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIGJvb2wg
bV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2U7CisjaWZuZGVmIFhQX0RGQgogICAgICAgICBQaXht
YXAgbV9kcmF3YWJsZTsKICAgICAgICAgVmlzdWFsKiBtX3Zpc3VhbDsKICAgICAgICAgQ29sb3Jt
YXAgbV9jb2xvcm1hcDsKICAgICAgICAgRGlzcGxheSogbV9wbHVnaW5EaXNwbGF5OwogCiAgICAg
ICAgIHZvaWQgaW5pdFhFdmVudChYRXZlbnQqIGV2ZW50KTsKKyNlbHNlCisgICAgICAgIFFPYmpl
Y3QgKm1fZXZlbnRGaWx0ZXI7CisgICAgICAgIFFQaXhtYXAgbV9waXhtYXA7CisgICAgICAgIElE
aXJlY3RGQlN1cmZhY2UgKm1fZGZiU3VyZmFjZTsKKyAgICAgICAgSURpcmVjdEZCICptX2RmYjsK
KyAgICAgICAgSURpcmVjdEZCRGlzcGxheUxheWVyICptX2RmYkRpc3BsYXlMYXllcjsKKyAgICAg
ICAgSURpcmVjdEZCV2luZG93ICptX2RmYldpbmRvdzsKKyNlbmRpZgogI2VuZGlmCiAKICAgICAg
ICAgSW50UmVjdCBtX2NsaXBSZWN0OyAvLyBUaGUgY2xpcCByZWN0IHRvIGFwcGx5IHRvIGEgd2lu
ZG93ZWQgcGx1Zy1pbgpJbmRleDogV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAJKHJldmlz
aW9uIDYwMDk1KQorKysgV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgpAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKLSNpbmNsdWRlICJQbHVnaW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgIlBsdWdpbkRl
YnVnLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5U
aHJlYWRTY2hlZHVsZXIuaCIKQEAgLTY3LDEzICs2NiwzMCBAQAogI2luY2x1ZGUgPFFLZXlFdmVu
dD4KICNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlIDxRV2lkZ2V0PgorI2lmZGVmIFFfV1Nf
WDExCiAjaW5jbHVkZSA8UVgxMUluZm8+CiAjaW5jbHVkZSA8WDExL1guaD4KKyNpbmNsdWRlICJQ
bHVnaW5Db250YWluZXJRdC5oIgogI2lmbmRlZiBRVF9OT19YUkVOREVSCiAjZGVmaW5lIEJvb2wg
aW50CiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVy
Lmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2ljVGltZXI+
CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNp
bmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8geworICAgIElE
aXJlY3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAgSURp
cmVjdEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCitleHRlcm4gUV9H
VUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3BpeG1h
cChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5EX05BTUVTUEFDRQorI2VuZGlmCisKICNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgog
CkBAIC0xMDksMTQgKzEyNSwxNiBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdl
dCgpCiAgICAgaWYgKG1fd2luZG93UmVjdCA9PSBvbGRXaW5kb3dSZWN0ICYmIG1fY2xpcFJlY3Qg
PT0gb2xkQ2xpcFJlY3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBp
ZiAoIW1faXNXaW5kb3dlZCAmJiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Qu
c2l6ZSgpKSB7CiAgICAgICAgIGlmIChtX2RyYXdhYmxlKQogICAgICAgICAgICAgWEZyZWVQaXht
YXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKLSAgICAgICAgbV9kcmF3YWJs
ZSA9IFhDcmVhdGVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgUVgxMUluZm86OmFwcFJvb3RX
aW5kb3coKSwgbV93aW5kb3dSZWN0LndpZHRoKCksIG1fd2luZG93UmVjdC5oZWlnaHQoKSwgCisg
ICAgICAgIG1fZHJhd2FibGUgPSBYQ3JlYXRlUGl4bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIFFY
MTFJbmZvOjphcHBSb290V2luZG93KCksIG1fd2luZG93UmVjdC53aWR0aCgpLCBtX3dpbmRvd1Jl
Y3QuaGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoTlBTZXRX
aW5kb3dDYWxsYmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGgpOwogICAgICAg
ICBRQXBwbGljYXRpb246OnN5bmNYKCk7IC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBzZXJ2ZXIga25v
d3MgYWJvdXQgdGhlIERyYXdhYmxlCiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBkbyBub3QgY2Fs
bCBzZXROUFdpbmRvd0lmTmVlZGVkIGltbWVkaWF0ZWx5LCB3aWxsIGJlIGNhbGxlZCBvbiBwYWlu
dCgpCiAgICAgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UgPSB0cnVlOwpAQCAtMTY4LDE2ICsx
ODYsMTYgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIAogCiAgICAg
c2V0TlBXaW5kb3dJZk5lZWRlZCgpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX2lzV2lu
ZG93ZWQgfHwgIW1fZHJhd2FibGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGJvb2wg
c3luY1ggPSBtX3BsdWdpbkRpc3BsYXkgJiYgbV9wbHVnaW5EaXNwbGF5ICE9IFFYMTFJbmZvOjpk
aXNwbGF5KCk7Ci0KICAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpOwogICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CiAgICAgZXhwb3NlZFJlY3Qu
aW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3Qo
KS54KCksIC1mcmFtZVJlY3QoKS55KCkpOwogCisgICAgY29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1
Z2luRGlzcGxheSAmJiBtX3BsdWdpbkRpc3BsYXkgIT0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAg
ICBRUGl4bWFwIHF0RHJhd2FibGUgPSBRUGl4bWFwOjpmcm9tWDExUGl4bWFwKG1fZHJhd2FibGUs
IFFQaXhtYXA6OkV4cGxpY2l0bHlTaGFyZWQpOwogICAgIGNvbnN0IGludCBkcmF3YWJsZURlcHRo
ID0gKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5kZXB0
aDsKICAgICBBU1NFUlQoZHJhd2FibGVEZXB0aCA9PSBxdERyYXdhYmxlLmRlcHRoKCkpOwpAQCAt
MTk4LDEyICsyMTYsMTIgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQq
IAogICAgICAgICBRUGl4bWFwKiBiYWNraW5nU3RvcmVQaXhtYXAgPSBzdGF0aWNfY2FzdDxRUGl4
bWFwKj4oYmFja2luZ1N0b3JlRGV2aWNlKTsKIAogICAgICAgICAvLyBXZSBjYW5ub3QgZ3JhYiBj
b250ZW50cyBmcm9tIHRoZSBiYWNraW5nIHN0b3JlIHdoZW4gcGFpbnRpbmcgb24gUUdyYXBoaWNz
VmlldyBpdGVtcwotICAgICAgICAvLyAoYmVjYXVzZSBiYWNraW5nIHN0b3JlIGNvbnRlbnRzIGFy
ZSBhbHJlYWR5IHRyYW5zZm9ybWVkKS4gV2hhdCB3ZSByZWFsbHkgbWVhbiB0byBkbyAKKyAgICAg
ICAgLy8gKGJlY2F1c2UgYmFja2luZyBzdG9yZSBjb250ZW50cyBhcmUgYWxyZWFkeSB0cmFuc2Zv
cm1lZCkuIFdoYXQgd2UgcmVhbGx5IG1lYW4gdG8gZG8KICAgICAgICAgLy8gaGVyZSBpcyB0byBj
aGVjayBpZiB3ZSBhcmUgcGFpbnRpbmcgb24gUVdlYlZpZXcsIGJ1dCBsZXQncyBiZSBhIGxpdHRs
ZSBwZXJtaXNzaXZlIDopCiAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVu
dEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CiAgICAg
ICAgIGNvbnN0IGJvb2wgYmFja2luZ1N0b3JlSGFzVW50cmFuc2Zvcm1lZENvbnRlbnRzID0gY2xp
ZW50ICYmIHFvYmplY3RfY2FzdDxRV2lkZ2V0Kj4oY2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7CiAK
LSAgICAgICAgaWYgKGhhc1ZhbGlkQmFja2luZ1N0b3JlICYmIGJhY2tpbmdTdG9yZVBpeG1hcC0+
ZGVwdGgoKSA9PSBkcmF3YWJsZURlcHRoIAorICAgICAgICBpZiAoaGFzVmFsaWRCYWNraW5nU3Rv
cmUgJiYgYmFja2luZ1N0b3JlUGl4bWFwLT5kZXB0aCgpID09IGRyYXdhYmxlRGVwdGgKICAgICAg
ICAgICAgICYmIGJhY2tpbmdTdG9yZUhhc1VudHJhbnNmb3JtZWRDb250ZW50cykgewogICAgICAg
ICAgICAgR0MgZ2MgPSBYRGVmYXVsdEdDKFFYMTFJbmZvOjpkaXNwbGF5KCksIFFYMTFJbmZvOjph
cHBTY3JlZW4oKSk7CiAgICAgICAgICAgICBYQ29weUFyZWEoUVgxMUluZm86OmRpc3BsYXkoKSwg
YmFja2luZ1N0b3JlUGl4bWFwLT5oYW5kbGUoKSwgbV9kcmF3YWJsZSwgZ2MsCkBAIC0yMzYsNiAr
MjU0LDI0IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKIAogICAg
IHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRSZWN0
LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyNlbHNlCisgICAgREZCRXZlbnQg
ZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7Cisg
ICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQgPSBkZmJFdmVudC51c2VyOworICAgIHVzZXJFdmVu
dC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAgIHVz
ZXJFdmVudC5kYXRhID0gJm1fbnBXaW5kb3c7CisgICAgZGlzcGF0Y2hOUEV2ZW50KGRmYkV2ZW50
KTsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwor
ICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CisgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0
KGZyYW1lUmVjdCgpKTsKKyAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1m
cmFtZVJlY3QoKS55KCkpOworICAgIGNvbnN0IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGUgb2xk
TW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0aW9uTW9kZSgpOworICAgIHBhaW50ZXItPnNldENvbXBv
c2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgcGFpbnRl
ci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBm
cmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBtX3BpeG1hcCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1v
ZGUob2xkTW9kZSk7CisjZW5kaWYKIH0KIAogLy8gVE9ETzogVW5pZnkgYWNyb3NzIHBvcnRzLgpA
QCAtMjU0LDYgKzI5MCw3IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZl
bnQKICAgICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKKyNpZm5kZWYgWFBfREZCCiB2b2lkIHNldFNo
YXJlZFhFdmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwgUVdpZGdldCogb3duZXJXaWRnZXQpCiB7
CiAgICAgeEV2ZW50LT54YW55LnNlcmlhbCA9IDA7IC8vIHdlIGFyZSB1bmF3YXJlIG9mIHRoZSBs
YXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5IFggU2VydmVyCkBAIC0yOTUsNiArMzMyLDUzNCBAQCB2
b2lkIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRzKFhFdmVudCogCiAgICAgeEV2ZW50LT54a2V5
Lnhfcm9vdCA9IDA7CiAgICAgeEV2ZW50LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZWxzZQorc3Rh
dGljIGlubGluZSB2b2lkIGluaXREaXJlY3RGQktleWJvYXJkRXZlbnQoREZCSW5wdXRFdmVudCog
ZGZiRXZlbnQsIGNvbnN0IFFLZXlFdmVudCogcXRFdmVudCkKK3sKKyAgICBkZmJFdmVudC0+Y2xh
enogPSBERkVDX0lOUFVUOworICAgIGRmYkV2ZW50LT50eXBlID0gKHF0RXZlbnQtPnR5cGUoKSA9
PSBRRXZlbnQ6OktleVByZXNzID8gRElFVF9LRVlQUkVTUyA6IERJRVRfS0VZUkVMRUFTRSk7Cisg
ICAgdW5zaWduZWQgaW50IGZsYWdzID0gKERJRUZfS0VZU1lNQk9MIHwgRElFRl9NT0RJRklFUlMp
OworICAgIGlmIChxdEV2ZW50LT5pc0F1dG9SZXBlYXQoKSkKKyAgICAgICAgZmxhZ3MgfD0gRElF
Rl9SRVBFQVQ7CisgICAgY29uc3QgUXQ6OktleWJvYXJkTW9kaWZpZXIgbW9kaWZpZXJzW10gPSB7
IFF0OjpTaGlmdE1vZGlmaWVyLCBRdDo6Q29udHJvbE1vZGlmaWVyLCBRdDo6QWx0TW9kaWZpZXIs
IFF0OjpNZXRhTW9kaWZpZXIgfTsKKyAgICBjb25zdCBERkJJbnB1dERldmljZU1vZGlmaWVyTWFz
ayBkZmJNb2RpZmllcnNbXSA9IHsgRElNTV9TSElGVCwgRElNTV9DT05UUk9MLCBESU1NX0FMVCwg
RElNTV9NRVRBIH07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAg
aWYgKHF0RXZlbnQtPm1vZGlmaWVycygpICYgbW9kaWZpZXJzW2ldKQorICAgICAgICAgICAgZGZi
RXZlbnQtPm1vZGlmaWVycyA9IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNrKGRmYkV2ZW50LT5t
b2RpZmllcnMgfCBkZmJNb2RpZmllcnNbaV0pOworICAgIH0KKyAgICBzd2l0Y2ggKHF0RXZlbnQt
PmtleSgpKSB7CisgICAgY2FzZSBRdDo6S2V5X0JhY2tzcGFjZToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTUEFDRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfQkFDS1NQQUNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVGFiOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVEFCOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9UQUI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9S
ZXR1cm46CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19SRVRVUk47CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0tQX0VOVEVSOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRXNjYXBlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfRVNDQVBFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9FU0NBUEU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWxldGU6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19ERUxFVEU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0RFTEVURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xlZnQ6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfTEVGVDsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1JpZ2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1JJR0hU
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9SSUdIVDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1VwOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfQ1VSU09SX1VQOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9VUDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19DVVJTT1JfRE9XTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0luc2VydDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0lOU0VSVDsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfSU5TRVJUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
SG9tZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0hPTUU7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9FbmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FTkQ7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VORDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BhZ2VVcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1BBR0VfVVA7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BBR0VfVVA7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYWdlRG93bjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1BBR0VfRE9XTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfUEFHRV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUHJpbnQ6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QUklOVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1BhdXNlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfUEFVU0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TZWxlY3Q6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TRUxFQ1Q7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9PcGVuVXJsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfR09UTzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NsZWFy
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ0xFQVI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9NZW51OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfTUVOVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hlbHA6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IRUxQOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfSG9tZVBhZ2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19JTlRFUk5FVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xhdW5j
aE1haWw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRmF2b3JpdGVzOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfRkFWT1JJVEVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQmFjazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0JBQ0s7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Gb3J3YXJkOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfRk9SV0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1ZvbHVtZVVwOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVk9M
VU1FX1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lRG93bjoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1ZPTFVNRV9ET1dOOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lTXV0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX01VVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9N
ZWRpYVBsYXk6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QTEFZOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFTdG9wOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfU1RPUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X01lZGlhUmVjb3JkOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVD
T1JEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFQcmV2aW91czoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BSRVZJT1VTOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFOZXh0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfTkVYVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YxOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0YxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjI6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfRjI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YzOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9GMzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0Y0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjQ7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRjU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNTsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GNjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y2OworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0Y3OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjc7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y3OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRjg6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GODsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9GOToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y5Owor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GOTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0YxMDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Yx
MDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjEwOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRjExOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfRjExOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMTE7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9GMTI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19GMTI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NoaWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU0hJRlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NI
SUZUX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db250cm9sOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ09OVFJPTDsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfQ09OVFJPTF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfQWx0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQUxUOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9BTFRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0FsdEdyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQUxU
R1I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUVUQTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfTUVUQV9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3VwZXJfTDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NVUEVSOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9TVVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfSHlwZXJfTDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0hZUEVS
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9IWVBFUl9MOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fwc0xvY2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19DQVBTX0xPQ0s7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NB
UFNfTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X051bUxvY2s6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19OVU1fTE9DSzsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfTlVNX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9TY3JvbGxMb2NrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0NS
T0xMX0xPQ0s7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NDUk9MTF9MT0NLOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUJPVkVET1Q7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Fib3ZlcmluZzoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0RFQURfQUJPVkVSSU5HOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9BY3V0ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0RFQURfQUNVVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZl
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9CUkVWRTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2Fyb246CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NBUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRGVhZF9DZWRpbGxhOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfREVBRF9DRURJTExBOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9D
aXJjdW1mbGV4OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9DSVJD
VU1GTEVYOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9EaWFlcmVzaXM6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0RJQUVSRVNJUzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfRG91YmxlYWN1dGU6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0RPVUJMRUFDVVRFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9HcmF2ZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0RFQURfR1JBVkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWFkX0lvdGE6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFE
X0lPVEE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX01hY3JvbjoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfTUFDUk9OOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9PZ29uZWs6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19ERUFEX09HT05FSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfU2VtaXZvaWNlZF9Tb3VuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0RFQURfU0VNSVZPSUNFRF9TT1VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlYWRfVGlsZGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19ERUFEX1RJTERFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Wb2lj
ZWRfU291bmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1ZPSUNF
RF9TT1VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NwYWNlOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX1NQQUNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhj
bGFtOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVhDTEFNQVRJT05fTUFS
SzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1F1b3RlRGJsOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUVVPVEFUSU9OOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTnVtYmVyU2lnbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX05VTUJFUl9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG9s
bGFyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRE9MTEFSX1NJR047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QZXJjZW50OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfUEVSQ0VOVF9TSUdOOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfQW1wZXJzYW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfQU1QRVJTQU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3Bo
ZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FQT1NUUk9QSEU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYXJlbkxlZnQ6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19QQVJFTlRIRVNJU19MRUZUOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfUGFyZW5SaWdodDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1BBUkVOVEhFU0lTX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfQXN0ZXJpc2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BU1RFUklT
SzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BsdXM6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19QTFVTX1NJR047CisgICAgICAgIGlmIChxdEV2ZW50LT5t
b2RpZmllcnMoKSAmIFF0OjpLZXlwYWRNb2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0tQX1BMVVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9D
b21tYToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NPTU1BOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DT01NQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X01pbnVzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUlO
VVNfU0lHTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTUlOVVNfU0lHTjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BlcmlvZDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1BFUklPRDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfUEVSSU9EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2xhc2g6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTEFTSDsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfU0xBU0g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8w
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfMDsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzE6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU18xOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV8xOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMjoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzI7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJXzI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8zOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfMzsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfMzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzQ6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU180OworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV80OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzU7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJXzU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV82OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfNjsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzc6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU183OworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV83OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfODoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzg7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJXzg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV85OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfOTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbG9uOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ09MT047CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9TZW1pY29sb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TRU1JQ09MT047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NFTUlD
T0xPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xlc3M6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19MRVNTX1RIQU5fU0lHTjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfTEVTU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfRXF1YWw6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19FUVVBTFNf
U0lHTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRVFVQUxTX1NJR047CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9HcmVhdGVyOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfR1JFQVRFUl9USEFOX1NJR047CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9RdWVzdGlvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1FVRVNUSU9OX01BUks7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BdDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FUOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX0E7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0E7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9COgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfU01BTExfQjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0M6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19TTUFMTF9DOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX0Q7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfRTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9GOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9GOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRzoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0c7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSDsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0k6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9JOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9JOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfSjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0o7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9LOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExf
SzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0w6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9MOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9MOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfTToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX007CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX007CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfU01BTExfTjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X086CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TTUFMTF9POworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9P
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1A7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX1A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9ROgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfUTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfUTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9SOworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9SOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUzoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1M7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX1M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9U
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVDsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9VOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9VOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfVjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Y7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1Y7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9XOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfVzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9YOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9YOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfWToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX1k7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1k7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9aOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfWjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRMZWZ0OgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRfTEVGVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhY2tzbGFzaDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0JBQ0tTTEFTSDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfQkFDS1NMQVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldFJp
Z2h0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRf
UklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc2NpaUNpcmN1bToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NJUkNVTUZMRVhfQUNDRU5UOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVW5kZXJzY29yZToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1VOREVSU0NPUkU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9CcmFjZUxlZnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19DVVJMWV9CUkFDS0VUX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9C
YXI6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19WRVJUSUNBTF9CQVI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZVJpZ2h0OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpVGlsZGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19USUxERTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICgocXRF
dmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6U2hpZnRNb2RpZmllcikgJiYgcXRFdmVudC0+a2V5KCkg
Pj0gUXQ6OktleV9BICYmIHF0RXZlbnQtPmtleSgpIDw9IFF0OjpLZXlfWikKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBERkJJbnB1dERldmljZUtleVN5bWJvbCgoZGZiRXZlbnQtPmtl
eV9zeW1ib2wgLSBESUtTX1NNQUxMX0EpICsgRElLU19DQVBJVEFMX0EpOworICAgIGlmIChkZmJF
dmVudC0+a2V5X2lkICE9IERJS0lfVU5LTk9XTikgeworICAgICAgICBmbGFncyA9IERGQklucHV0
RXZlbnRGbGFncyhkZmJFdmVudC0+ZmxhZ3MgfCBESUVGX0tFWUlEKTsKKyAgICAgICAgaWYgKGRm
YkV2ZW50LT5rZXlfaWQgPj0gRElLSV8wICYmIGRmYkV2ZW50LT5rZXlfaWQgPD0gRElLSV85ICYm
IHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERGQklucHV0RGV2aWNlS2V5SWRlbnRpZmllcihkZmJFdmVudC0+
a2V5X2lkIC0gRElLSV8wICsgRElLSV9LUF8wKTsKKyAgICB9CisgICAgZGZiRXZlbnQtPmZsYWdz
ID0gREZCSW5wdXRFdmVudEZsYWdzKGZsYWdzKTsKK30KKyNlbmRpZgogCiB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CkBAIC0zMDQs
MTQgKzg2OSwyMSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5CiAg
ICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVu
dC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXl1cEV2ZW50KQogICAgICAgICByZXR1cm47CiAK
KyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBF
dmVudCk7CiAgICAgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsK
KyNlbHNlCisgICAgREZCRXZlbnQgbnBFdmVudDsKKyAgICBERkJJbnB1dEV2ZW50JiBpbnB1dCA9
IG5wRXZlbnQuaW5wdXQ7CisgICAgaW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCgmaW5wdXQsIGV2
ZW50LT5rZXlFdmVudCgpLT5xdEV2ZW50KCkpOworI2VuZGlmCiAKICAgICBpZiAoIWRpc3BhdGNo
TlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9
CiAKKyNpZm5kZWYgWFBfREZCCiBzdGF0aWMgdW5zaWduZWQgaW50IGlucHV0RXZlbnRTdGF0ZShN
b3VzZUV2ZW50KiBldmVudCkKIHsKICAgICB1bnNpZ25lZCBpbnQgc3RhdGUgPSAwOwpAQCAtMzg2
LDYgKzk1OCw0NSBAQCBzdGF0aWMgdm9pZCBzZXRYQ3Jvc3NpbmdFdmVudFNwZWNpZmljRmllCiAg
ICAgeGNyb3NzaW5nLnNhbWVfc2NyZWVuID0gdHJ1ZTsKICAgICB4Y3Jvc3NpbmcuZm9jdXMgPSBm
YWxzZTsKIH0KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgaW5pdERpcmVjdEZCTW91c2VFdmVu
dChERkJXaW5kb3dFdmVudCogZGZiRXZlbnQsIGNvbnN0IE1vdXNlRXZlbnQqIGV2ZW50KQorewor
ICAgIGRmYkV2ZW50LT5jbGF6eiA9IERGRUNfV0lORE9XOworCisgICAgdW5zaWduZWQgaW50IG1v
ZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBESU1NX0NPTlRST0w7CisgICAgaWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBt
b2RpZmllcnMgfD0gRElNTV9TSElGVDsKKyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAg
ICBtb2RpZmllcnMgfD0gRElNTV9BTFQ7CisgICAgaWYgKGV2ZW50LT5tZXRhS2V5KCkpCisgICAg
ICAgIG1vZGlmaWVycyB8PSBESU1NX01FVEE7CisgICAgZGZiRXZlbnQtPm1vZGlmaWVycyA9IERG
QklucHV0RGV2aWNlTW9kaWZpZXJNYXNrKG1vZGlmaWVycyk7CisKKyAgICBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2V1cEV2ZW50KSB7CisgICAgICAgIGRmYkV2ZW50LT50eXBlID0gKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05E
T1dOIDogRFdFVF9CVVRUT05VUCk7CisgICAgICAgIHN3aXRjaCAoZXZlbnQtPmJ1dHRvbigpKSB7
CisgICAgICAgIGNhc2UgTGVmdEJ1dHRvbjoKKyAgICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24g
PSBESUJJX0xFRlQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNaWRkbGVCdXR0
b246CisgICAgICAgICAgICBkZmJFdmVudC0+YnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSaWdodEJ1dHRvbjoKKyAgICAgICAgICAgIGRmYkV2
ZW50LT5idXR0b24gPSBESUJJX1JJR0hUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZmJFdmVudC0+
YnV0dG9ucyA9IERGQklucHV0RGV2aWNlQnV0dG9uTWFzaygwKTsKKyAgICB9IGVsc2UgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgIGRm
YkV2ZW50LT50eXBlID0gRFdFVF9NT1RJT047CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KK30KKyNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQo
TW91c2VFdmVudCogZXZlbnQpCiB7CkBAIC0zOTksMTEgKzEwMTAsMTEgQEAgdm9pZCBQbHVnaW5W
aWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRQogCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVu
dCgpOwogICAgIH0KLQorICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50
KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxv
Y2F0aW9uKCkpKTsKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5p
dFhFdmVudCgmbnBFdmVudCk7CiAKLSAgICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJ
bnRQb2ludChtX2VsZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChldmVudC0+YWJz
b2x1dGVMb2NhdGlvbigpKSk7CiAKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1
cEV2ZW50KQogICAgICAgICBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwg
ZXZlbnQsIHBvc3Rab29tUG9zKTsKQEAgLTQxMywxMyArMTAyNCw0MCBAQCB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFCiAgICAgICAgIHNldFhDcm9zc2luZ0V2ZW50U3Bl
Y2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBvcyk7CiAgICAgZWxzZQogICAg
ICAgICByZXR1cm47CisgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCisgICAgICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworCisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZl
bnQ7CisgICAgbWVtc2V0KCZucEV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKworICAgIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8fCBldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50KSB7CisgICAgICAgIG5wRXZlbnQu
Y2xhenogPSBERkVDX1dJTkRPVzsKKyAgICAgICAgbnBFdmVudC53aW5kb3cudHlwZSA9IChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBE
V0VUX0xFQVZFKTsKKyAgICAgICAgbnBFdmVudC53aW5kb3cueCA9IG5wRXZlbnQud2luZG93LmN4
ID0gcG9zdFpvb21Qb3MueCgpOworICAgICAgICBucEV2ZW50LndpbmRvdy55ID0gbnBFdmVudC53
aW5kb3cuY3kgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBF
dmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1
cm47Cit9CisKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7Cisg
ICAgbV9kZmJXaW5kb3ctPkdldElEKG1fZGZiV2luZG93LCAmd2luZG93LndpbmRvd19pZCk7Cisg
ICAgaW5pdERpcmVjdEZCTW91c2VFdmVudCgmd2luZG93LCBldmVudCk7CisgICAgd2luZG93Lngg
PSBwb3N0Wm9vbVBvcy54KCk7CisgICAgd2luZG93LnkgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAg
Y29uc3QgSW50UG9pbnQgYWJzb2x1dGVMb2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9u
KCk7CisgICAgd2luZG93LmN4ID0gYWJzb2x1dGVMb2NhdGlvbi54KCk7CisgICAgd2luZG93LmN5
ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7CiAKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2
ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAog
dm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIK
ICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDI3
LDEyICsxMDY1LDIxIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAg
ICBldmVudC50eXBlID0gOTsgLyogaW50IGFzIFF0IHVuc2V0cyBGb2N1c0luICovCiAgICAgZXZl
bnQubW9kZSA9IE5vdGlmeU5vcm1hbDsKICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxO
b25lOworICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKIAorI2Vsc2UKKyAgICBERkJFdmVu
dCBucEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7Cisg
ICAgREZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5j
bGF6eiA9IERGRUNfV0lORE9XOworICAgIHdpbmRvdy50eXBlID0gRFdFVF9HT1RGT0NVUzsKICAg
ICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3
OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5w
RXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTQ0Miw2ICsxMDg5LDE1IEBA
IHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCgpCiAgICAgZXZlbnQuZGV0YWls
ID0gTm90aWZ5RGV0YWlsTm9uZTsKIAogICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNl
bHNlCisgICAgREZCRXZlbnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVv
ZihERkJFdmVudCkpOworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50LndpbmRv
dzsKKyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKyAgICB3aW5kb3cudHlwZSA9IERX
RVRfTE9TVEZPQ1VTOworICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgorCiB9
CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTQ1
OCw2ICsxMTE0LDQ5IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEkK
ICAgICAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwogfQogCisjaWZkZWYgWFBfREZCCitjbGFz
cyBXaW5kb3dNb3ZlRXZlbnRGaWx0ZXIgOiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAg
V2luZG93TW92ZUV2ZW50RmlsdGVyKGJvb2wqIGcsIFBsdWdpblZpZXcqIHZpZXcsIFFXaWRnZXQq
IHdhdGNoZWQpCisgICAgICAgIDogUU9iamVjdCgwKQorICAgICAgICAsIG1faGFzUGVuZGluZ0dl
b21ldHJ5Q2hhbmdlKGcpCisgICAgICAgICwgbV9wbHVnaW5WaWV3KHZpZXcpCisgICAgeworICAg
ICAgICBRX0FTU0VSVCh3YXRjaGVkKTsKKyAgICAgICAgZm9yZXZlciB7CisgICAgICAgICAgICB3
YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0ZXIodGhpcyk7CisgICAgICAgICAgICBpZiAod2F0Y2hl
ZC0+aXNXaW5kb3coKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHdhdGNo
ZWQgPSB3YXRjaGVkLT5wYXJlbnRXaWRnZXQoKTsKKyAgICAgICAgICAgIGlmICghd2F0Y2hlZCkK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgZXZl
bnRGaWx0ZXIoUU9iamVjdCAqLCBRRXZlbnQqIGUpCisgICAgeworICAgICAgICBpZiAoZS0+dHlw
ZSgpID09IFFFdmVudDo6TW92ZSB8fCBlLT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUpIHsKKyAg
ICAgICAgICAgICptX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7CisgICAgICAgICAg
ICBtX3RpbWVyLnN0YXJ0KDEwLCB0aGlzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQorICAgIHsK
KyAgICAgICAgaWYgKGUtPnRpbWVySWQoKSA9PSBtX3RpbWVyLnRpbWVySWQoKSkgeworICAgICAg
ICAgICAgbV90aW1lci5zdG9wKCk7CisgICAgICAgICAgICBtX3BsdWdpblZpZXctPmZvcmNlUmVk
cmF3KCk7CisgICAgICAgIH0KKyAgICB9Citwcml2YXRlOgorICAgIGJvb2wqIG1faGFzUGVuZGlu
Z0dlb21ldHJ5Q2hhbmdlOworICAgIFBsdWdpblZpZXcqIG1fcGx1Z2luVmlldzsKKyAgICBRQmFz
aWNUaW1lciBtX3RpbWVyOworfTsKKworI2VuZGlmCisKIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBX
aW5kb3dJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX2lzU3RhcnRlZCB8fCAhcGFyZW50KCkgfHwg
IW1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5zZXR3aW5kb3cpCkBAIC00OTQsNiArMTE5Myw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5k
b3cuY2xpcFJlY3QucmlnaHQgPSBtX2NsaXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5k
b3cuY2xpcFJlY3QuYm90dG9tID0gbV9jbGlwUmVjdC5oZWlnaHQoKTsKICAgICB9IGVsc2Ugewor
I2lmbmRlZiBYUF9ERkIKICAgICAgICAgbV9ucFdpbmRvdy54ID0gMDsKICAgICAgICAgbV9ucFdp
bmRvdy55ID0gMDsKIApAQCAtNTAxLDYgKzEyMDEsMzkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRO
UFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSAwOwog
ICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gMDsKICAgICAgICAgbV9ucFdpbmRv
dy5jbGlwUmVjdC5ib3R0b20gPSAwOworI2Vsc2UKKyAgICAgICAgUVBvaW50IHBsdWdpblZpZXdH
bG9iYWxQb3MgPSB3aW5kb3dDbGlwUmVjdCgpLnRvcExlZnQoKTsKKyAgICAgICAgUVdlYlBhZ2VD
bGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAgICAgaWYgKFFXaWRnZXQqIG93bmVyV2lkZ2V0ID0gY2xp
ZW50ID8gY2xpZW50LT5vd25lcldpZGdldCgpIDogMCkgeworICAgICAgICAgICAgaWYgKCFtX2V2
ZW50RmlsdGVyKQorICAgICAgICAgICAgICAgIG1fZXZlbnRGaWx0ZXIgPSBuZXcgV2luZG93TW92
ZUV2ZW50RmlsdGVyKCZtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSwgdGhpcywgb3duZXJXaWRn
ZXQpOworICAgICAgICAgICAgcGx1Z2luVmlld0dsb2JhbFBvcyA9IG93bmVyV2lkZ2V0LT5tYXBU
b0dsb2JhbChwbHVnaW5WaWV3R2xvYmFsUG9zKTsKKyAgICAgICAgICAgIGlmIChjb25zdCBRR3Jh
cGhpY3NXZWJWaWV3KiBpdGVtID0gcW9iamVjdF9jYXN0PGNvbnN0IFFHcmFwaGljc1dlYlZpZXcq
PihjbGllbnQtPnBsdWdpblBhcmVudCgpKSkgeworICAgICAgICAgICAgICAgIFFfQVNTRVJUKGl0
ZW0tPnNjZW5lKCkgJiYgIWl0ZW0tPnNjZW5lKCktPnZpZXdzKCkuaXNFbXB0eSgpKTsKKyAgICAg
ICAgICAgICAgICBjb25zdCBRR3JhcGhpY3NWaWV3KiB2aWV3ID0gaXRlbS0+c2NlbmUoKS0+dmll
d3MoKS52YWx1ZSgwKTsKKyAgICAgICAgICAgICAgICBjb25zdCBRUG9pbnQgYWRkID0gdmlldy0+
bWFwRnJvbVNjZW5lKGl0ZW0tPnBvcygpKTsKKyAgICAgICAgICAgICAgICBwbHVnaW5WaWV3R2xv
YmFsUG9zICs9IGFkZDsKKyAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoKFFTaXplKSht
X3dpbmRvd1JlY3Quc2l6ZSgpKSAhPSBtX3BpeG1hcC5zaXplKCkpIHsKKyAgICAgICAgICAgIG1f
cGl4bWFwID0gUVBpeG1hcChtX3dpbmRvd1JlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fcGl4
bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIG1fbnBXaW5k
b3cueCA9IHBsdWdpblZpZXdHbG9iYWxQb3MueCgpOworICAgICAgICBtX25wV2luZG93LnkgPSBw
bHVnaW5WaWV3R2xvYmFsUG9zLnkoKTsKKyAgICAgICAgY29uc3QgSW50UmVjdCBmcmFtZSA9IGZy
YW1lUmVjdCgpOworICAgICAgICBtX25wV2luZG93LndpZHRoID0gZnJhbWUud2lkdGgoKTsKKyAg
ICAgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSBmcmFtZS5oZWlnaHQoKTsKKyAgICAgICAgbV9ucFdp
bmRvdy5jbGlwUmVjdC50b3AgPSBtX2NsaXBSZWN0LnkoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5j
bGlwUmVjdC5sZWZ0ID0gbV9jbGlwUmVjdC54KCk7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJl
Y3QucmlnaHQgPSBtX2NsaXBSZWN0LndpZHRoKCkgKyBtX2NsaXBSZWN0LngoKSAtIDE7CisgICAg
ICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9jbGlwUmVjdC5oZWlnaHQoKSArIG1f
Y2xpcFJlY3QueSgpIC0gMTsKKyAgICAgICAgbV9kZmJTdXJmYWNlID0gUVRfUFJFUEVORF9OQU1F
U1BBQ0UocXRfZGlyZWN0ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKG1fcGl4bWFwKSk7CisgICAgICAg
IG1fbnBXaW5kb3cud2luZG93ID0gbV9kZmJTdXJmYWNlOworICAgICAgICBtX25wV2luZG93LnR5
cGUgPSBOUFdpbmRvd1R5cGVEcmF3YWJsZTsKKyNlbmRpZgogICAgIH0KIAogICAgIC8vIEZMQVNI
IFdPUktBUk9VTkQ6IE9ubHkgc2V0IGluaXRpYWxseS4gTXVsdGlwbGUgY2FsbHMgdG8KQEAgLTU4
NiwxNSArMTMxOSwxMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMo
CiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpCiB7CiAgICAgc3dpdGNoICh2YXJpYWJsZSkg
eworI2lmbmRlZiBYUF9ERkIKICAgICBjYXNlIE5QTlZ4RGlzcGxheToKICAgICAgICAgKih2b2lk
ICoqKXZhbHVlID0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICAgICAgKnJlc3VsdCA9IE5QRVJS
X05PX0VSUk9SOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGNhc2UgTlBOVnh0QXBwQ29u
dGV4dDoKLSAgICAgICAgKnJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwotCiAgICAgY2FzZSBOUE5WbmV0c2NhcGVXaW5kb3c6IHsKICAgICAgICAgdm9p
ZCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHZhbHVlKTsKICAgICAgICAgUVdlYlBhZ2VD
bGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKTsKQEAgLTYwMiw3ICsxMzMyLDcgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlKE5QTlZhcgogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLQorI2VuZGlmCiAgICAgY2FzZSBOUE5WVG9v
bGtpdDoKICAgICAgICAgaWYgKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWly
a1JlcXVpcmVzR3RrVG9vbEtpdCkpIHsKICAgICAgICAgICAgICooKHVpbnQzMl90ICopdmFsdWUp
ID0gMjsKQEAgLTY0Nyw2ICsxMzc3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygp
CiAgICAgaW52YWxpZGF0ZSgpOwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkg
KmdldFBsdWdpbkRpc3BsYXkoKQogewogICAgIC8vIFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBy
dW4gdXNpbmcgYSBkaWZmZXJlbnQgWCBjb25uZWN0aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5
CkBAIC03MTIsMTIgKzE0NDMsMTQgQEAgc3RhdGljIHZvaWQgZ2V0VmlzdWFsQW5kQ29sb3JtYXAo
aW50IGRlcAogICAgIGlmICgqdmlzdWFsKQogICAgICAgICAqY29sb3JtYXAgPSBYQ3JlYXRlQ29s
b3JtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgUVgxMUluZm86OmFwcFJvb3RXaW5kb3coKSwgKnZp
c3VhbCwgQWxsb2NOb25lKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
U3RhcnQoKQogewogICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CiAgICAgQVNTRVJUKG1fc3RhdHVz
ID09IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiAKKyNpZm5kZWYgWFBfREZCCiAg
ICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVn
aW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6
OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpA
QCAtNzQyLDEyICsxNDc1LDcxIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAg
ICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KDApOwogICAgICAgICBtX3BsdWdpbkRpc3BsYXkgPSBn
ZXRQbHVnaW5EaXNwbGF5KCk7CiAgICAgfQorI2Vsc2UKKyAgICBpZiAobV9pc1dpbmRvd2VkKSB7
CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3Rh
dHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBE
RkJXaW5kb3dJbmZvKiB3c0luZm8gPSAwOworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBt
X3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7
CisgICAgaWYgKCFjbGllbnQgfHwgIWNsaWVudC0+b3duZXJXaWRnZXQoKSkgeworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBERkJSZXN1bHQg
cmVzdWx0ID0gRGlyZWN0RkJDcmVhdGUoJm1fZGZiKTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9P
SykKKyAgICAgICAgZ290byBlbmQ7CisKKyAgICByZXN1bHQgPSBtX2RmYi0+R2V0RGlzcGxheUxh
eWVyKG1fZGZiLCBETElEX1BSSU1BUlksICZtX2RmYkRpc3BsYXlMYXllcik7CisgICAgaWYgKHJl
c3VsdCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworCisgICAgcmVzdWx0ID0gbV9kZmJE
aXNwbGF5TGF5ZXItPkdldFdpbmRvdyhtX2RmYkRpc3BsYXlMYXllciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PERGQldpbmRvd0lEPihjbGll
bnQtPm93bmVyV2lkZ2V0KCktPnByb3BlcnR5KCJfcV9EaXJlY3RGQldpbmRvd0lEIikudG9JbnQo
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9kZmJXaW5k
b3cpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBnb3RvIGVuZDsKKyAgICB3
c0luZm8gPSBuZXcgREZCV2luZG93SW5mbzsKKyAgICB3c0luZm8tPmRmYiA9IG1fZGZiOworICAg
IHdzSW5mby0+d2luZG93ID0gbV9kZmJXaW5kb3c7CisgICAgd3NJbmZvLT5sYXllciA9IG1fZGZi
RGlzcGxheUxheWVyOworICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IHdzSW5mbzsKKyAgICBtX25w
V2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVEcmF3YWJsZTsKKyAgICBtX25wV2luZG93LndpbmRv
dyA9IDA7IC8vIE5vdCB1c2VkPworICAgIG1fbnBXaW5kb3cueCA9IDA7CisgICAgbV9ucFdpbmRv
dy55ID0gMDsKKyAgICBtX25wV2luZG93LndpZHRoID0gLTE7CisgICAgbV9ucFdpbmRvdy5oZWln
aHQgPSAtMTsKKworZW5kOgorICAgIGlmIChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIGlm
IChtX2RmYldpbmRvdykgeworICAgICAgICAgICAgbV9kZmJXaW5kb3ctPlJlbGVhc2UobV9kZmJX
aW5kb3cpOworICAgICAgICAgICAgbV9kZmJXaW5kb3cgPSAwOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKG1fZGZiRGlzcGxheUxheWVyKQorICAgICAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXIt
PlJlbGVhc2UobV9kZmJEaXNwbGF5TGF5ZXIpOworCisgICAgICAgIGlmIChtX2RmYikgeworICAg
ICAgICAgICAgbV9kZmItPlJlbGVhc2UobV9kZmIpOworICAgICAgICAgICAgbV9kZmIgPSAwOwor
ICAgICAgICB9CisgICAgICAgIERpcmVjdEZCRXJyb3IoIlBsdWdpblZpZXc6OnBsYXRmb3JtU3Rh
cnQoKSIsIHJlc3VsdCk7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3Rh
dHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyNlbmRpZgogCiAgICAgc2hvdygpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIE5Q
U2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqIHdzaSA9IG5ldyBOUFNldFdpbmRvd0NhbGxiYWNrU3Ry
dWN0KCk7CiAgICAgd3NpLT50eXBlID0gMDsKLQogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKICAg
ICAgICAgY29uc3QgUVgxMUluZm8qIHgxMUluZm8gPSAmcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+
eDExSW5mbygpOwogCkBAIC03NTUsNyArMTU0Nyw2IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZv
cm1TdGFydCgpCiAgICAgICAgIHdzaS0+dmlzdWFsID0gKFZpc3VhbCopeDExSW5mby0+dmlzdWFs
KCk7CiAgICAgICAgIHdzaS0+ZGVwdGggPSB4MTFJbmZvLT5kZXB0aCgpOwogICAgICAgICB3c2kt
PmNvbG9ybWFwID0geDExSW5mby0+Y29sb3JtYXAoKTsKLQogICAgICAgICBtX25wV2luZG93LnR5
cGUgPSBOUFdpbmRvd1R5cGVXaW5kb3c7CiAgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZv
aWQqKXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndpbklkKCk7CiAgICAgICAgIG1fbnBXaW5kb3cu
d2lkdGggPSAtMTsKQEAgLTc4NCw4ICsxNTc1LDggQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bVN0YXJ0KCkKICAgICAgICAgbV9ucFdpbmRvdy53aWR0aCA9IC0xOwogICAgICAgICBtX25wV2lu
ZG93LmhlaWdodCA9IC0xOwogICAgIH0KLQogICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IHdzaTsK
KyNlbmRpZgogCiAgICAgaWYgKCEobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1
aXJrRGVmZXJGaXJzdFNldFdpbmRvd0NhbGwpKSkgewogICAgICAgICB1cGRhdGVQbHVnaW5XaWRn
ZXQoKTsKQEAgLTgwMCwxMSArMTU5MSwzMyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVz
dHJveSgpCiAgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgIGRlbGV0ZSBw
bGF0Zm9ybVBsdWdpbldpZGdldCgpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX2RyYXdh
YmxlKQogICAgICAgICBYRnJlZVBpeG1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2RyYXdhYmxl
KTsKIAogICAgIGlmIChtX2NvbG9ybWFwKQogICAgICAgICBYRnJlZUNvbG9ybWFwKFFYMTFJbmZv
OjpkaXNwbGF5KCksIG1fY29sb3JtYXApOworI2Vsc2UKKyAgICBkZWxldGUgbV9ldmVudEZpbHRl
cjsKKyAgICBtX2V2ZW50RmlsdGVyID0gMDsKKyAgICBkZWxldGUgc3RhdGljX2Nhc3Q8REZCV2lu
ZG93SW5mbyo+KG1fbnBXaW5kb3cud3NfaW5mbyk7CisgICAgbV9ucFdpbmRvdy53c19pbmZvID0g
MDsKKyAgICBtX3BpeG1hcCA9IFFQaXhtYXAoKTsKKyAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAg
ICAgICAgbV9kZmJXaW5kb3ctPlJlbGVhc2UobV9kZmJXaW5kb3cpOworICAgICAgICBtX2RmYldp
bmRvdyA9IDA7Cit9CisKKyAgICBpZiAobV9kZmJEaXNwbGF5TGF5ZXIpIHsKKyAgICAgICAgbV9k
ZmJEaXNwbGF5TGF5ZXItPlJlbGVhc2UobV9kZmJEaXNwbGF5TGF5ZXIpOworICAgICAgICBtX2Rm
YkRpc3BsYXlMYXllciA9IDA7CisgICAgfQorCisgICAgaWYgKG1fZGZiKSB7CisgICAgICAgIG1f
ZGZiLT5SZWxlYXNlKG1fZGZiKTsKKyAgICAgICAgbV9kZmIgPSAwOworICAgIH0KKyNlbmRpZgog
fQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbHQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58046</attachid>
            <date>2010-06-07 10:50:15 -0700</date>
            <delta_ts>2010-08-03 10:40:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100607104856.patch</filename>
            <type>text/plain</type>
            <size>44115</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjliMThiYzIyMWQ5Y2NlZjNkYmQ0OWMwODk1YWExMTgxOWI1ZTU5MC4uOWI3NWVkZGEzNGE5ZjA2
YzYwZmFhMzQyYWZkODAxOTA2Zjg3YTExNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wNi0wNyAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBRdFdlYktpdCBkb2Vzbid0IHN1cHBvcnQgTlBBUEkg
Zm9yIERpcmVjdEZCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjE3MQorCisgICAgICAgICBUaGlzIGNvbnRyaWJ1dGlvbiBlbmFibGVzIHdpbmRvd2xl
c3MgTlBBUEkgc3VwcG9ydCBmb3IgUXQvV2ViS2l0IHdoZW4KKyAgICAgICAgIHVzaW5nIERpcmVj
dEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgKKyAg
ICAgICAgIEZsYXNobGl0ZS4gCisKKyAgICAgICAgVGhlIGNvZGUgaXMgbGFyZ2VseSBiYXNlZCBv
biB0aGUgUXQvWDExIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd2xlc3MKKyAgICAgICAgTlBBUEku
IEl0IGFkZHMgdGhlIGRlZmluZSBYUF9ERkIgd2hlbiBlbmFibGVkIHRvIGRpZmZlcmVudGlhdGUg
YmV0d2VlbgorICAgICAgICBYMTEgYW5kIERpcmVjdEZCIHdoZW4gWFBfVU5JWCBpcyBkZWZpbmVk
LiBUaGlzIG1lYW5zIHRoYXQgbnBhcGkuaCB3aWxsCisgICAgICAgIGZ1bmN0aW9uIHRoZSBzYW1l
IHdheSBmb3IgWDExIGJ1aWxkcy4KKworICAgICAgICBTaW5jZSB0aGUgbm9ybWFsIHVzZSBjYXNl
IGZvciBOUEFQSSBvbiBEaXJlY3RGQiBpcyBmb3IgdmlkZW8gb24gc2l0ZXMKKyAgICAgICAgbGlr
ZSB5b3V0dWJlIGl0J3MgaW1wb3J0YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGx1Z2luIGdldHMgYW4g
dXBkYXRlZAorICAgICAgICBnbG9iYWwgZ2VvbWV0cnkgaWYgdGhlIHdpbmRvdyBtb3ZlcyBvciBy
ZXNpemVzLiBUaGlzIGlzIGR1ZSB0byB0aGUKKyAgICAgICAgZmFjdCB0aGF0IHRoZSB2aWRlbyB3
aWxsIGJlIHJlbmRlcmVkIGludG8gYSBkaWZmZXJlbnQgbGF5ZXIgcmF0aGVyCisgICAgICAgIHRo
YW4gYWN0dWFsbHkgaW50byB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgdGhhdCdzIGJlaW5nIHJlbmRl
cmVkIHRvLgorCisgICAgICAgIEkgaGF2ZSBhIG1hbnVhbCB0ZXN0IGNhc2UgdGhhdCBJIGNvdWxk
IGhlbHAgcGVvcGxlIHNldCB1cCBmb3IgdGVzdGluZworICAgICAgICB3aXRoIFF0L1FXUyBEaXJl
Y3RGQiBidXQgSSBkb24ndCBrbm93IGhvdyB0byBtYWtlIGl0IGF1dG9tYXRlZC4KKworICAgICAg
ICBUbyBlbmFibGUgTlBBUEkgZm9yIERpcmVjdEZCIHRoZSBkZXZlbG9wZXIgbmVlZHMgdG8gbWFr
ZSBzdXJlCisgICAgICAgIHFtYWtlLmNvbmYgY29udGFpbnMgdGhpcyBsaW5lOgorCisgICAgICAg
IERFRklORVMgKz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUElfRElSRUNURkIKKworICAgICAg
ICBRdCBtdXN0IGFsc28gYmUgY29uZmlndXJlZCB3aXRoIHRoZSAtcXQtZ2Z4LWRpcmVjdGZiIG9w
dGlvbiAoYXMKKyAgICAgICAgb3Bwb3NlZCB0byAtcGx1Z2luLWdmeC1kaXJlY3RmYikKKworICAg
ICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGJy
aWRnZS9ucGFwaS5oOgorICAgICAgICAqIGJyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToK
KyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVn
aW5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6aW5pdERpcmVjdEZCS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omlu
aXREaXJlY3RGQk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1
c0luRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6OldpbmRvd01v
dmVFdmVudEZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dNb3ZlRXZlbnRGaWx0ZXI6
OmV2ZW50RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6
dGltZXJFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEwLTA2LTA3ICBK
dWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyBteSBIVE1MIGNvbW1lbnQgcGFyc2luZyBjaGFuZ2UgYXMgaXQKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4
IDU4MTZjZGM0N2U5YjgyODNmMGVkM2M4YmI0ODYyZjQ3Njg5MjQwMzMuLmY4NDJjOTkxMzc3MjJj
N2Q1NThjMmIyOWZkMTY5NWE3ZmMyYjgxZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTIsNiArOTIsMTAgQEAgZ3JlYXRlclRo
YW4oUVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0
IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJ
UkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFND
QVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjog
ewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDdk
Nzk0NDY3YTJiYzkxYzg4YmU4ZGExM2VjMjcwMjJlNGE0YjQwYTguLjA1OWFmNDAzN2VkMTZhYjUx
MWVkYmY0MDAyOGVhOGM3ZmM3OWNmZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjIzNywxNiArMjIzNywxOSBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAgICAgICAgICAgICAg
ICAgSU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAgICAgIyBOb3RlOiBY
UF9NQUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGlyZWN0ZmIgeworICAg
ICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAgICAgICAgICAgICBR
TUFLRV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgICAg
ICBMSUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgIH0gZWxzZTohZW1i
ZWRkZWQgewogICAgICAgICAgICAgICAgICAgICBDT05GSUcgKz0geDExCiAgICAgICAgICAgICAg
ICAgICAgIExJQlMgKz0gLWxYcmVuZGVyCisgICAgICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0g
cGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKyAgICAgICAgICAgICAgICAgICAgSEVB
REVSUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgU09VUkNFUyArPSBcCi0gICAgICAgICAgICAgICAgICAgIHBsdWdp
bnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lu
cy9xdC9QbHVnaW5QYWNrYWdlUXQuY3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCi0gICAgICAgICAgICAgICAgSEVBREVSUyArPSBcCi0gICAgICAg
ICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuaAogICAgICAgICAgICAg
ICAgIERFRklORVMgKz0gWFBfVU5JWAogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oIGIvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAppbmRl
eCA2NGU4YzRkYjZhMjA1M2FhNmJiM2NkZDYzYzE4OWIyZGMzOGExNGJkLi44NDMzZWUyYTViOTVh
MDI4NDI2MzZkOTRiOTFhMzQwOGUxMTMxMGQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9u
cGFwaS5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgKQEAgLTk4LDcgKzk4LDcgQEAKICNl
bmRpZgogI2VuZGlmCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZCBYUF9VTklYICYmICFk
ZWZpbmVkKFhQX0RGQikKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgogI2luY2x1ZGUgPFgxMS9YdXRp
bC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yMDEsNyArMjAxLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX05QUmVjdAogICB1aW50MTZfdCByaWdodDsKIH0gTlBSZWN0OwogCi0jaWZkZWYgWFBfVU5J
WAorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogLyoKICAqIFVuaXgg
c3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMKICAqLwpAQCAtNDQ3LDYgKzQ0Nyw5
IEBAIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgIHVpbnRwdHJfdCB3UGFyYW07CiAgIHVpbnRw
dHJfdCBsUGFyYW07CiB9IE5QRXZlbnQ7CisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyNpbmNsdWRl
IDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBOUEV2ZW50OwogI2VsaWYgZGVmaW5lZCAo
WFBfVU5JWCkKIHR5cGVkZWYgWEV2ZW50IE5QRXZlbnQ7CiAjZWxzZQpAQCAtNDYzLDcgKzQ2Niw3
IEBAIHR5cGVkZWYgUmduSGFuZGxlIE5QUURSZWdpb247CiB0eXBlZGVmIENHUGF0aFJlZiBOUENH
UmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9XSU4pCiB0eXBlZGVmIEhSR04gTlBSZWdpb247Ci0j
ZWxpZiBkZWZpbmVkKFhQX1VOSVgpCisjZWxpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVk
KFhQX0RGQikKIHR5cGVkZWYgUmVnaW9uIE5QUmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9TWU1C
SUFOKQogdHlwZWRlZiBRUmVnaW9uKiBOUFJlZ2lvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJp
ZGdlL25wcnVudGltZV9pbnRlcm5hbC5oIGIvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVy
bmFsLmgKaW5kZXggNzM2YTdmMTU2Yjc5Y2M2ZTU5ZGQ4NTY5Nzg5MDdhODVmODBkNmExOS4uMDE1
OTMxZTIwNjVlNGZkMjNiY2UxZDdkNDRlYjM2MWU4ZGFkYzU0YyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvbnBydW50
aW1lX2ludGVybmFsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1bmN0aW9ucy5o
IgogI2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQg
WFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2Uu
aD4KIAogICAgICN1bmRlZiBOb25lCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNDBjMzg3MTJh
MDFkMzE2OTQyYTlhNTM4YmVkODhmYjVjYTljMTU2Zi4uM2Y4NDFmNmZhYTVhMzRlOWY5NzM5ZjIy
ZWIwNDRhNmQ1ODQ2MDFlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMzYwLDcgKzM2MCw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJl
bnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQ
X1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdp
bmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1
Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAg
LTgxOSw3ICs4MTksNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFt
ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogICAgICwgbV9pc1RyYW5z
cGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lz
V2FpdGluZ1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQo
WFBfVU5JWCkgJiYgIWRlZmluZWQgKFhQX0RGQikKICAgICAsIG1fbmVlZHNYRW1iZWQoZmFsc2Up
CiAjZW5kaWYKICNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
QEAgLTg0MCwxMCArODQwLDE4IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVu
dEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAjZW5kaWYKICNp
ZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwg
bV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKKyNpZiAhZGVmaW5lZCBYUF9ERkIKICAg
ICAsIG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFsKDApCiAgICAgLCBtX2NvbG9ybWFwKDAp
CiAgICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbHNlCisgICAgLCBtX2V2ZW50RmlsdGVyKDAp
CisgICAgLCBtX2RmYlN1cmZhY2UoMCkKKyAgICAsIG1fZGZiKDApCisgICAgLCBtX2RmYkRpc3Bs
YXlMYXllcigwKQorICAgICwgbV9kZmJXaW5kb3coMCkKKyNlbmRpZgogI2VuZGlmCiAgICAgLCBt
X2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgwKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmgKaW5kZXggNDMxY2UwZTcwMjZjY2Y3OGJjZTIwYWFkNzdiZmUyZGJlNDc4NDgy
NS4uM2FmMTdlMDhlOTU4N2FkN2E3MzRlNGRkOGU3ZDAxNDhiOWZiYWIxOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lmIGRl
ZmluZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVk
ZSA8ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYgT1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7CkBAIC0zMTYs
NyArMzIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faGF2ZUluaXRp
YWxpemVkOwogICAgICAgICBib29sIG1faXNXYWl0aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQo
WFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAg
ICAgYm9vbCBtX25lZWRzWEVtYmVkOwogI2VuZGlmCiAKQEAgLTM2NiwxMiArMzcwLDIxIEBAIHBy
aXZhdGU6CiAKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgICAgICBib29sIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBY
UF9ERkIKICAgICAgICAgUGl4bWFwIG1fZHJhd2FibGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1
YWw7CiAgICAgICAgIENvbG9ybWFwIG1fY29sb3JtYXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1
Z2luRGlzcGxheTsKIAogICAgICAgICB2b2lkIGluaXRYRXZlbnQoWEV2ZW50KiBldmVudCk7Cisj
ZWxzZQorICAgICAgICBRT2JqZWN0ICptX2V2ZW50RmlsdGVyOworICAgICAgICBRUGl4bWFwIG1f
cGl4bWFwOworICAgICAgICBJRGlyZWN0RkJTdXJmYWNlICptX2RmYlN1cmZhY2U7CisgICAgICAg
IElEaXJlY3RGQiAqbV9kZmI7CisgICAgICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciAqbV9kZmJE
aXNwbGF5TGF5ZXI7CisgICAgICAgIElEaXJlY3RGQldpbmRvdyAqbV9kZmJXaW5kb3c7CisjZW5k
aWYKICNlbmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVj
dCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdR
dC5jcHAKaW5kZXggZmY1MjA3MGZiM2Y2ZjNkNmYyOTE4OWUzZGZlOTI1YjIyOTE5NzA5Mi4uZThm
ZGFiYmZhOWYwZDRmZDQxYWNiNzljODcxNWJjMjhkYjZkNDhkMCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdC5jcHAKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNpbmNsdWRlICJQbHVnaW5E
ZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5NYWlu
VGhyZWFkU2NoZWR1bGVyLmgiCkBAIC02Nyw2ICs2Niw4IEBACiAjaW5jbHVkZSA8UUtleUV2ZW50
PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CisjaWZkZWYgUV9XU19Y
MTEKKyNpbmNsdWRlICJQbHVnaW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgPFFYMTFJbmZvPgog
I2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc0LDYgKzc1LDIy
IEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVy
Lmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2ljVGltZXI+
CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNp
bmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8geworICAgIElE
aXJlY3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAgSURp
cmVjdEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCisjd2FybmluZyBm
b29vYmFyCitleHRlcm4gUV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZi
X3N1cmZhY2VfZm9yX3BpeG1hcChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5EX05BTUVT
UEFDRQorI2VuZGlmCisKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNWYWx1ZS5oPgogCkBAIC0xMDksNiArMTI2LDggQEAgdm9pZCBQbHVnaW5WaWV3Ojp1
cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVj
dCAmJiBtX2NsaXBSZWN0ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5k
ZWYgWFBfREZCCisjd2FybmluZyBmb28KICAgICBpZiAoIW1faXNXaW5kb3dlZCAmJiBtX3dpbmRv
d1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CiAgICAgICAgIGlmIChtX2Ry
YXdhYmxlKQogICAgICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9k
cmF3YWJsZSk7CkBAIC0xMTcsNiArMTM2LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVn
aW5XaWRnZXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5QU2V0V2lu
ZG93Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAgICAgICAg
UUFwcGxpY2F0aW9uOjpzeW5jWCgpOyAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgc2VydmVyIGtub3dz
IGFib3V0IHRoZSBEcmF3YWJsZQogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gZG8gbm90IGNhbGwg
c2V0TlBXaW5kb3dJZk5lZWRlZCBpbW1lZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24gcGFpbnQo
KQogICAgIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE2OCwxNiArMTg4
LDE2IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByZWN0KQogCiAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwogCisjaWZu
ZGVmIFhQX0RGQgogICAgIGlmIChtX2lzV2luZG93ZWQgfHwgIW1fZHJhd2FibGUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNvbnN0IGJvb2wgc3luY1ggPSBtX3BsdWdpbkRpc3BsYXkgJiYgbV9w
bHVnaW5EaXNwbGF5ICE9IFFYMTFJbmZvOjpkaXNwbGF5KCk7Ci0KICAgICBRUGFpbnRlciogcGFp
bnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIEludFJlY3QgZXhwb3NlZFJl
Y3QocmVjdCk7CiAgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICAgICBl
eHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOwogCisg
ICAgY29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1Z2luRGlzcGxheSAmJiBtX3BsdWdpbkRpc3BsYXkg
IT0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICBRUGl4bWFwIHF0RHJhd2FibGUgPSBRUGl4bWFw
Ojpmcm9tWDExUGl4bWFwKG1fZHJhd2FibGUsIFFQaXhtYXA6OkV4cGxpY2l0bHlTaGFyZWQpOwog
ICAgIGNvbnN0IGludCBkcmF3YWJsZURlcHRoID0gKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0
KiltX25wV2luZG93LndzX2luZm8pLT5kZXB0aDsKICAgICBBU1NFUlQoZHJhd2FibGVEZXB0aCA9
PSBxdERyYXdhYmxlLmRlcHRoKCkpOwpAQCAtMjM2LDYgKzI1NiwyNCBAQCB2b2lkIFBsdWdpblZp
ZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkK
IAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9z
ZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJs
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyNlbHNlCisgICAgREZC
RXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50
KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQgPSBkZmJFdmVudC51c2VyOworICAgIHVz
ZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOwor
ICAgIHVzZXJFdmVudC5kYXRhID0gJm1fbnBXaW5kb3c7CisgICAgZGlzcGF0Y2hOUEV2ZW50KGRm
YkV2ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpOworICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CisgICAgZXhwb3NlZFJlY3QuaW50
ZXJzZWN0KGZyYW1lUmVjdCgpKTsKKyAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54
KCksIC1mcmFtZVJlY3QoKS55KCkpOworICAgIGNvbnN0IFFQYWludGVyOjpDb21wb3NpdGlvbk1v
ZGUgb2xkTW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0aW9uTW9kZSgpOworICAgIHBhaW50ZXItPnNl
dENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAg
cGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3Qu
eCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBtX3BpeG1hcCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3Np
dGlvbk1vZGUob2xkTW9kZSk7CisjZW5kaWYKIH0KIAogLy8gVE9ETzogVW5pZnkgYWNyb3NzIHBv
cnRzLgpAQCAtMjU0LDYgKzI5Miw3IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50
KE5QRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBhY2NlcHRlZDsKIH0KIAorI2lmbmRlZiBYUF9E
RkIKIHZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCogeEV2ZW50LCBRV2lkZ2V0KiBv
d25lcldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnkuc2VyaWFsID0gMDsgLy8gd2UgYXJlIHVu
YXdhcmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNzZWQgYnkgWCBTZXJ2ZXIKQEAgLTI5NSw2
ICszMzQsNTM0IEBAIHZvaWQgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50KiB4RXZl
bnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIHhFdmVudC0+eGtleS54X3Jvb3QgPSAwOwog
ICAgIHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBpbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KERGQklucHV0RXZlbnQqIGRmYkV2ZW50LCBjb25z
dCBRS2V5RXZlbnQqIHF0RXZlbnQpCit7CisgICAgZGZiRXZlbnQtPmNsYXp6ID0gREZFQ19JTlBV
VDsKKyAgICBkZmJFdmVudC0+dHlwZSA9IChxdEV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpLZXlQ
cmVzcyA/IERJRVRfS0VZUFJFU1MgOiBESUVUX0tFWVJFTEVBU0UpOworICAgIHVuc2lnbmVkIGlu
dCBmbGFncyA9IChESUVGX0tFWVNZTUJPTCB8IERJRUZfTU9ESUZJRVJTKTsKKyAgICBpZiAocXRF
dmVudC0+aXNBdXRvUmVwZWF0KCkpCisgICAgICAgIGZsYWdzIHw9IERJRUZfUkVQRUFUOworICAg
IGNvbnN0IFF0OjpLZXlib2FyZE1vZGlmaWVyIG1vZGlmaWVyc1tdID0geyBRdDo6U2hpZnRNb2Rp
ZmllciwgUXQ6OkNvbnRyb2xNb2RpZmllciwgUXQ6OkFsdE1vZGlmaWVyLCBRdDo6TWV0YU1vZGlm
aWVyIH07CisgICAgY29uc3QgREZCSW5wdXREZXZpY2VNb2RpZmllck1hc2sgZGZiTW9kaWZpZXJz
W10gPSB7IERJTU1fU0hJRlQsIERJTU1fQ09OVFJPTCwgRElNTV9BTFQsIERJTU1fTUVUQSB9Owor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIGlmIChxdEV2ZW50LT5t
b2RpZmllcnMoKSAmIG1vZGlmaWVyc1tpXSkKKyAgICAgICAgICAgIGRmYkV2ZW50LT5tb2RpZmll
cnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhkZmJFdmVudC0+bW9kaWZpZXJzIHwgZGZi
TW9kaWZpZXJzW2ldKTsKKyAgICB9CisgICAgc3dpdGNoIChxdEV2ZW50LT5rZXkoKSkgeworICAg
IGNhc2UgUXQ6OktleV9CYWNrc3BhY2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19CQUNLU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0JBQ0tTUEFD
RTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1RhYjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1RBQjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfVEFCOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmV0dXJuOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVUVVJOOworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0VzY2FwZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VTQ0FQRTsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRVNDQVBFOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRGVsZXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfREVMRVRFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ERUxFVEU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfQ1VSU09SX0xFRlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SaWdodDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9SSUdIVDsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9VcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9VUDsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVVA7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9Eb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
Q1VSU09SX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0RPV047CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JbnNlcnQ6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19JTlNFUlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0lOU0VSVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hvbWU6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IT01FOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9IT01FOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRW5kOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRU5EOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9FTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Q
YWdlVXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQUdFX1VQOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QQUdFX1VQOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfUGFnZURvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19QQUdFX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BBR0VfRE9X
TjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ByaW50OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUFJJTlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9QYXVzZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBVVNF
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2VsZWN0OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0VMRUNUOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfT3BlblVybDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0dP
VE87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9DbGVhcjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NMRUFSOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfTWVudToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01FTlU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IZWxwOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfSEVMUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0hvbWVQYWdlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSU5URVJO
RVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MYXVuY2hNYWlsOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUFJTDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0Zhdm9yaXRlczoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0ZBVk9SSVRFUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhY2s6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19CQUNLOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRm9yd2FyZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0ZPUldBUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVV
cDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1ZPTFVNRV9VUDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZURvd246CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1ZvbHVtZU11dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19NVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFQbGF5OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUExBWTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X01lZGlhU3RvcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NUT1A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVJlY29y
ZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1JFQ09SRDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUHJldmlvdXM6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19QUkVWSU9VUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X01lZGlhTmV4dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX05F
WFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0YxOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9GMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YyOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0YyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjM6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfRjM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y0OworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9GNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y1OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX0Y1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjY6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNjsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRjY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNzoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y3OworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9GNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y4Ogor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjg7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0Y4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjk6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GOTsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MTA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTA7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0YxMToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMTsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjExOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRjEyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjEyOwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMTI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9TaGlmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1NISUZUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TSElGVF9MOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29udHJvbDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0NPTlRST0w7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0NPTlRST0xfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FMVDsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbHRH
cjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FMVEdSOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWV0YToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX01FVEE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01FVEFfTDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1N1cGVyX0w6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19TVVBFUjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfU1VQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0h5cGVyX0w6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IWVBFUjsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfSFlQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0NhcHNMb2NrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ0FQ
U19MT0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DQVBTX0xPQ0s7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1Mb2NrOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfTlVNX0xPQ0s7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX05VTV9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2Nyb2xsTG9j
azoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NDUk9MTF9MT0NLOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TQ1JPTExfTE9DSzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVkb3Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19ERUFEX0FCT1ZFRE9UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfRGVhZF9BYm92ZXJpbmc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19ERUFEX0FCT1ZFUklORzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRf
QWN1dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FDVVRFOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9CcmV2ZToKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQlJFVkU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EZWFkX0Nhcm9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfREVBRF9DQVJPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRf
Q2VkaWxsYToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0VESUxM
QTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2lyY3VtZmxleDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0lSQ1VNRkxFWDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfRGlhZXJlc2lzOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ESUFFUkVTSVM7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9EZWFkX0RvdWJsZWFjdXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfREVBRF9ET1VCTEVBQ1VURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlYWRfR3JhdmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19ERUFEX0dSQVZFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Jb3Rh
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9JT1RBOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9NYWNyb246CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX01BQ1JPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlYWRfT2dvbmVrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfREVBRF9PR09ORUs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1Nl
bWl2b2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFE
X1NFTUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFk
X1RpbGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9USUxERTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVm9pY2VkX1NvdW5kOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9WT0lDRURfU09VTkQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TcGFjZToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX1NQQUNFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9T
UEFDRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0V4Y2xhbToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VYQ0xBTUFUSU9OX01BUks7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9RdW90ZURibDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1FVT1RBVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X051bWJlclNpZ246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19OVU1CRVJf
U0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RvbGxhcjoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RPTExBUl9TSUdOOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUGVyY2VudDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1BFUkNFTlRfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Ft
cGVyc2FuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FNUEVSU0FORDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fwb3N0cm9waGU6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BUE9TVFJPUEhFOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfUGFyZW5MZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfUEFSRU5USEVTSVNfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1BhcmVuUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVJFTlRI
RVNJU19SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzdGVyaXNrOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQVNURVJJU0s7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9QbHVzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBR
dDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9L
UF9QTFVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29tbWE6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DT01NQTsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfQ09NTUE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NaW51
czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01JTlVTX1NJR047CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01JTlVTX1NJR047CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9QZXJpb2Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19QRVJJT0Q7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BFUklPRDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NsYXNoOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X1NMQVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzA7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJXzA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8xOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfMTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzI6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU18yOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV8yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMzoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTXzM7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
XzM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV80OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfNDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
NDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzU6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU181OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV81
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTXzY7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzY7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV83OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfNzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzg6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU184OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV84Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfOToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTXzk7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db2xvbjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0NPTE9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfU2VtaWNvbG9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0VNSUNP
TE9OOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TRU1JQ09MT047CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZXNzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfTEVTU19USEFOX1NJR047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0xFU1NfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0VxdWFsOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVFVQUxTX1NJR047CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VRVUFMU19TSUdOOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfR3JlYXRlcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0dSRUFURVJfVEhBTl9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
UXVlc3Rpb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19RVUVTVElPTl9N
QVJLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19BVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0E6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9BOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9BOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfQjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0I7
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0I7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9DOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfQzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfRjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0c6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9HOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9HOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSTsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0o6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9KOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9KOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSzoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0s7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9MOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTDsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X006CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9NOwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9NOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX047CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9POgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfTzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1A6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9QOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1E7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1E7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU01BTExfUjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
UjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1M6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9TOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9TOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Q7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVTsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Y6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9WOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9WOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
VzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1c7CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9YOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWDsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1k6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9Z
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ZOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfWjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NN
QUxMX1o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1o7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0TGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9CYWNrc2xhc2g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19CQUNLU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0JBQ0tTTEFTSDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRSaWdodDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX1JJR0hUOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXNjaWlDaXJjdW06CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19DSVJDVU1GTEVYX0FDQ0VOVDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1VuZGVyc2NvcmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19VTkRFUlNDT1JFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJh
Y2VMZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tF
VF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFyOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVkVSVElDQUxfQkFSOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Bc2NpaVRpbGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
VElMREU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoKHF0RXZlbnQtPm1vZGlmaWVy
cygpICYgUXQ6OlNoaWZ0TW9kaWZpZXIpICYmIHF0RXZlbnQtPmtleSgpID49IFF0OjpLZXlfQSAm
JiBxdEV2ZW50LT5rZXkoKSA8PSBRdDo6S2V5X1opCisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gREZCSW5wdXREZXZpY2VLZXlTeW1ib2woKGRmYkV2ZW50LT5rZXlfc3ltYm9sIC0gRElL
U19TTUFMTF9BKSArIERJS1NfQ0FQSVRBTF9BKTsKKyAgICBpZiAoZGZiRXZlbnQtPmtleV9pZCAh
PSBESUtJX1VOS05PV04pIHsKKyAgICAgICAgZmxhZ3MgPSBERkJJbnB1dEV2ZW50RmxhZ3MoZGZi
RXZlbnQtPmZsYWdzIHwgRElFRl9LRVlJRCk7CisgICAgICAgIGlmIChkZmJFdmVudC0+a2V5X2lk
ID49IERJS0lfMCAmJiBkZmJFdmVudC0+a2V5X2lkIDw9IERJS0lfOSAmJiBxdEV2ZW50LT5tb2Rp
ZmllcnMoKSAmIFF0OjpLZXlwYWRNb2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBERkJJbnB1dERldmljZUtleUlkZW50aWZpZXIoZGZiRXZlbnQtPmtleV9pZCAtIERJS0lf
MCArIERJS0lfS1BfMCk7CisgICAgfQorICAgIGRmYkV2ZW50LT5mbGFncyA9IERGQklucHV0RXZl
bnRGbGFncyhmbGFncyk7Cit9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMzA0LDE0ICs4NzEsMjEgQEAg
dm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50
KQogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYg
ZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkKICAgICAgICAgcmV0dXJu
OwogCisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQo
Jm5wRXZlbnQpOwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVu
dCk7CisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgREZCSW5wdXRFdmVudCYgaW5w
dXQgPSBucEV2ZW50LmlucHV0OworICAgIGluaXREaXJlY3RGQktleWJvYXJkRXZlbnQoJmlucHV0
LCBldmVudC0+a2V5RXZlbnQoKS0+cXRFdmVudCgpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFkaXNw
YXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIHVuc2lnbmVkIGludCBpbnB1dEV2ZW50U3Rh
dGUoTW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgaW50IHN0YXRlID0gMDsKQEAg
LTM4Niw2ICs5NjAsNDUgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0Zp
ZWxkcyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGMKICAgICB4Y3Jvc3Npbmcu
c2FtZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2Vs
c2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KERGQldpbmRvd0V2
ZW50KiBkZmJFdmVudCwgY29uc3QgTW91c2VFdmVudCogZXZlbnQpCit7CisgICAgZGZiRXZlbnQt
PmNsYXp6ID0gREZFQ19XSU5ET1c7CisKKyAgICB1bnNpZ25lZCBpbnQgbW9kaWZpZXJzID0gMDsK
KyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQ09O
VFJPTDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBE
SU1NX1NISUZUOworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8
PSBESU1NX0FMVDsKKyAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJz
IHw9IERJTU1fTUVUQTsKKyAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0gREZCSW5wdXREZXZpY2VN
b2RpZmllck1hc2sobW9kaWZpZXJzKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZXVwRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JVVFRPTkRPV04gOiBEV0VUX0JV
VFRPTlVQKTsKKyAgICAgICAgc3dpdGNoIChldmVudC0+YnV0dG9uKCkpIHsKKyAgICAgICAgY2Fz
ZSBMZWZ0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklfTEVGVDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAg
ICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX01JRERMRTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9
IERJQklfUklHSFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRmYkV2ZW50LT5idXR0b25zID0gREZC
SW5wdXREZXZpY2VCdXR0b25NYXNrKDApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUg
PSBEV0VUX01PVElPTjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm47CisgICAgfQorfQor
I2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBl
dmVudCkKIHsKQEAgLTM5OSwxMSArMTAxMiwxMSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1v
dXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAKICAgICAgICAgZm9jdXNQbHVnaW5FbGVtZW50
KCk7CiAgICAgfQotCisgICAgSW50UG9pbnQgcG9zdFpvb21Qb3MgPSByb3VuZGVkSW50UG9pbnQo
bV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9j
YXRpb24oKSkpOworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0
WEV2ZW50KCZucEV2ZW50KTsKIAotICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZElu
dFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNv
bHV0ZUxvY2F0aW9uKCkpKTsKIAogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVw
RXZlbnQpCiAgICAgICAgIHNldFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBl
dmVudCwgcG9zdFpvb21Qb3MpOwpAQCAtNDEzLDEzICsxMDI2LDQwIEBAIHZvaWQgUGx1Z2luVmll
dzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICAgICAgc2V0WENyb3Nz
aW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKICAg
ICBlbHNlCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50
KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAKKyNlbHNlCisgICAgREZC
RXZlbnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkp
OworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50
IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpIHsKKyAgICAg
ICAgbnBFdmVudC5jbGF6eiA9IERGRUNfV0lORE9XOworICAgICAgICBucEV2ZW50LndpbmRvdy50
eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50ID8gRFdF
VF9FTlRFUiA6IERXRVRfTEVBVkUpOworICAgICAgICBucEV2ZW50LndpbmRvdy54ID0gbnBFdmVu
dC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIG5wRXZlbnQud2luZG93Lnkg
PSBucEV2ZW50LndpbmRvdy5jeSA9IHBvc3Rab29tUG9zLnkoKTsKICAgICBpZiAoIWRpc3BhdGNo
TlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cisg
ICAgICAgIHJldHVybjsKK30KKworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50
LndpbmRvdzsKKyAgICBtX2RmYldpbmRvdy0+R2V0SUQobV9kZmJXaW5kb3csICZ3aW5kb3cud2lu
ZG93X2lkKTsKKyAgICBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KCZ3aW5kb3csIGV2ZW50KTsKKyAg
ICB3aW5kb3cueCA9IHBvc3Rab29tUG9zLngoKTsKKyAgICB3aW5kb3cueSA9IHBvc3Rab29tUG9z
LnkoKTsKKyAgICBjb25zdCBJbnRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uID0gZXZlbnQtPmFic29s
dXRlTG9jYXRpb24oKTsKKyAgICB3aW5kb3cuY3ggPSBhYnNvbHV0ZUxvY2F0aW9uLngoKTsKKyAg
ICB3aW5kb3cuY3kgPSBhYnNvbHV0ZUxvY2F0aW9uLnkoKTsKKworICAgIGlmICghZGlzcGF0Y2hO
UEV2ZW50KG5wRXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNl
bmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZu
ZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQp
OwogCkBAIC00MjcsMTIgKzEwNjcsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0lu
RXZlbnQoKQogICAgIGV2ZW50LnR5cGUgPSA5OyAvKiBpbnQgYXMgUXQgdW5zZXRzIEZvY3VzSW4g
Ki8KICAgICBldmVudC5tb2RlID0gTm90aWZ5Tm9ybWFsOwogICAgIGV2ZW50LmRldGFpbCA9IE5v
dGlmeURldGFpbE5vbmU7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwogCisjZWxzZQor
ICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50LCAwLCBzaXplb2YoREZC
RXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7Cisg
ICAgd2luZG93LmNsYXp6ID0gREZFQ19XSU5ET1c7CisgICAgd2luZG93LnR5cGUgPSBEV0VUX0dP
VEZPQ1VTOwogICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgogfQogCiB2b2lk
IFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAg
ICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDQyLDYg
KzEwOTEsMTUgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKICAgICBl
dmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5w
RXZlbnQpOworI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVu
dCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5w
RXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAgIHdpbmRv
dy50eXBlID0gRFdFVF9MT1NURk9DVVM7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwor
I2VuZGlmCisKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFy
ZW50KQpAQCAtNDU4LDYgKzExMTYsNDkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd1Jl
Y3QoY29uc3QgSW50UmVjdCYpCiAgICAgICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKIH0KIAor
I2lmZGVmIFhQX0RGQgorY2xhc3MgV2luZG93TW92ZUV2ZW50RmlsdGVyIDogcHVibGljIFFPYmpl
Y3QgeworcHVibGljOgorICAgIFdpbmRvd01vdmVFdmVudEZpbHRlcihib29sKiBnLCBQbHVnaW5W
aWV3KiB2aWV3LCBRV2lkZ2V0KiB3YXRjaGVkKQorICAgICAgICA6IFFPYmplY3QoMCkKKyAgICAg
ICAgLCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZShnKQorICAgICAgICAsIG1fcGx1Z2luVmll
dyh2aWV3KQorICAgIHsKKyAgICAgICAgUV9BU1NFUlQod2F0Y2hlZCk7CisgICAgICAgIGZvcmV2
ZXIgeworICAgICAgICAgICAgd2F0Y2hlZC0+aW5zdGFsbEV2ZW50RmlsdGVyKHRoaXMpOworICAg
ICAgICAgICAgaWYgKHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB3YXRjaGVkID0gd2F0Y2hlZC0+cGFyZW50V2lkZ2V0KCk7CisgICAgICAg
ICAgICBpZiAoIXdhdGNoZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBib29sIGV2ZW50RmlsdGVyKFFPYmplY3QgKiwgUUV2ZW50KiBlKQorICAgIHsK
KyAgICAgICAgaWYgKGUtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1vdmUgfHwgZS0+dHlwZSgpID09IFFF
dmVudDo6UmVzaXplKSB7CisgICAgICAgICAgICAqbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2Ug
PSB0cnVlOworICAgICAgICAgICAgbV90aW1lci5zdGFydCgxMCwgdGhpcyk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgdGltZXJFdmVudChRVGlt
ZXJFdmVudCogZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50aW1lcklkKCkgPT0gbV90aW1lci50
aW1lcklkKCkpIHsKKyAgICAgICAgICAgIG1fdGltZXIuc3RvcCgpOworICAgICAgICAgICAgbV9w
bHVnaW5WaWV3LT5mb3JjZVJlZHJhdygpOworICAgICAgICB9CisgICAgfQorcHJpdmF0ZToKKyAg
ICBib29sKiBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZTsKKyAgICBQbHVnaW5WaWV3KiBtX3Bs
dWdpblZpZXc7CisgICAgUUJhc2ljVGltZXIgbV90aW1lcjsKK307CisKKyNlbmRpZgorCiB2b2lk
IFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogewogICAgIGlmICghbV9pc1N0YXJ0
ZWQgfHwgIXBhcmVudCgpIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+c2V0d2luZG93KQpA
QCAtNDk0LDYgKzExOTUsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQo
KQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC53aWR0aCgp
OwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IG1fY2xpcFJlY3QuaGVpZ2h0
KCk7CiAgICAgfSBlbHNlIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIG1fbnBXaW5kb3cueCA9
IDA7CiAgICAgICAgIG1fbnBXaW5kb3cueSA9IDA7CiAKQEAgLTUwMSw2ICsxMjAzLDM5IEBAIHZv
aWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cu
Y2xpcFJlY3QudG9wID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdodCA9IDA7
CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gMDsKKyNlbHNlCisgICAgICAg
IFFQb2ludCBwbHVnaW5WaWV3R2xvYmFsUG9zID0gd2luZG93Q2xpcFJlY3QoKS50b3BMZWZ0KCk7
CisgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgICAgIGlmIChRV2lkZ2V0
KiBvd25lcldpZGdldCA9IGNsaWVudCA/IGNsaWVudC0+b3duZXJXaWRnZXQoKSA6IDApIHsKKyAg
ICAgICAgICAgIGlmICghbV9ldmVudEZpbHRlcikKKyAgICAgICAgICAgICAgICBtX2V2ZW50Rmls
dGVyID0gbmV3IFdpbmRvd01vdmVFdmVudEZpbHRlcigmbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFu
Z2UsIHRoaXMsIG93bmVyV2lkZ2V0KTsKKyAgICAgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQb3Mg
PSBvd25lcldpZGdldC0+bWFwVG9HbG9iYWwocGx1Z2luVmlld0dsb2JhbFBvcyk7CisgICAgICAg
ICAgICBpZiAoY29uc3QgUUdyYXBoaWNzV2ViVmlldyogaXRlbSA9IHFvYmplY3RfY2FzdDxjb25z
dCBRR3JhcGhpY3NXZWJWaWV3Kj4oY2xpZW50LT5wbHVnaW5QYXJlbnQoKSkpIHsKKyAgICAgICAg
ICAgICAgICBRX0FTU0VSVChpdGVtLT5zY2VuZSgpICYmICFpdGVtLT5zY2VuZSgpLT52aWV3cygp
LmlzRW1wdHkoKSk7CisgICAgICAgICAgICAgICAgY29uc3QgUUdyYXBoaWNzVmlldyogdmlldyA9
IGl0ZW0tPnNjZW5lKCktPnZpZXdzKCkudmFsdWUoMCk7CisgICAgICAgICAgICAgICAgY29uc3Qg
UVBvaW50IGFkZCA9IHZpZXctPm1hcEZyb21TY2VuZShpdGVtLT5wb3MoKSk7CisgICAgICAgICAg
ICAgICAgcGx1Z2luVmlld0dsb2JhbFBvcyArPSBhZGQ7CisgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgaWYgKChRU2l6ZSkobV93aW5kb3dSZWN0LnNpemUoKSkgIT0gbV9waXhtYXAuc2l6ZSgp
KSB7CisgICAgICAgICAgICBtX3BpeG1hcCA9IFFQaXhtYXAobV93aW5kb3dSZWN0LnNpemUoKSk7
CisgICAgICAgICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgIH0K
KworICAgICAgICBtX25wV2luZG93LnggPSBwbHVnaW5WaWV3R2xvYmFsUG9zLngoKTsKKyAgICAg
ICAgbV9ucFdpbmRvdy55ID0gcGx1Z2luVmlld0dsb2JhbFBvcy55KCk7CisgICAgICAgIGNvbnN0
IEludFJlY3QgZnJhbWUgPSBmcmFtZVJlY3QoKTsKKyAgICAgICAgbV9ucFdpbmRvdy53aWR0aCA9
IGZyYW1lLndpZHRoKCk7CisgICAgICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gZnJhbWUuaGVpZ2h0
KCk7CisgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QudG9wID0gbV9jbGlwUmVjdC55KCk7Cisg
ICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QubGVmdCA9IG1fY2xpcFJlY3QueCgpOworICAgICAg
ICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC53aWR0aCgpICsgbV9jbGlw
UmVjdC54KCkgLSAxOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IG1fY2xp
cFJlY3QuaGVpZ2h0KCkgKyBtX2NsaXBSZWN0LnkoKSAtIDE7CisgICAgICAgIG1fZGZiU3VyZmFj
ZSA9IFFUX1BSRVBFTkRfTkFNRVNQQUNFKHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3BpeG1hcCht
X3BpeG1hcCkpOworICAgICAgICBtX25wV2luZG93LndpbmRvdyA9IG1fZGZiU3VyZmFjZTsKKyAg
ICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisjZW5kaWYKICAg
ICB9CiAKICAgICAvLyBGTEFTSCBXT1JLQVJPVU5EOiBPbmx5IHNldCBpbml0aWFsbHkuIE11bHRp
cGxlIGNhbGxzIHRvCkBAIC01ODYsMTUgKzEzMjEsMTIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBF
cnIKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJs
ZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkKIHsKICAgICBzd2l0Y2ggKHZhcmlhYmxl
KSB7CisjaWZuZGVmIFhQX0RGQgogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgogICAgICAgICAqKHZv
aWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgICAgICAqcmVzdWx0ID0gTlBF
UlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgY2FzZSBOUE5WeHRBcHBD
b250ZXh0OgotICAgICAgICAqcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2
b2lkKiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpOwogICAgICAgICBRV2ViUGFn
ZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOwpAQCAtNjAyLDcgKzEzMzQsNyBAQCBib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVy
cm9yKiByZQogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KLQorI2VuZGlmCiAgICAgY2FzZSBOUE5WVG9vbGtpdDoKICAgICAgICAg
aWYgKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya1JlcXVpcmVzR3RrVG9v
bEtpdCkpIHsKICAgICAgICAgICAgICooKHVpbnQzMl90ICopdmFsdWUpID0gMjsKQEAgLTY0Nyw2
ICsxMzc5LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgaW52YWxpZGF0
ZSgpOwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkgKmdldFBsdWdpbkRpc3Bs
YXkoKQogewogICAgIC8vIFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNpbmcgYSBkaWZm
ZXJlbnQgWCBjb25uZWN0aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC03MTIsMTIgKzE0
NDUsMTQgQEAgc3RhdGljIHZvaWQgZ2V0VmlzdWFsQW5kQ29sb3JtYXAoaW50IGRlcHRoLCBWaXN1
YWwgKip2aXN1YWwsIENvbG9ybWFwICpjb2xvcm1hcCkKICAgICBpZiAoKnZpc3VhbCkKICAgICAg
ICAgKmNvbG9ybWFwID0gWENyZWF0ZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIFFYMTFJ
bmZvOjphcHBSb290V2luZG93KCksICp2aXN1YWwsIEFsbG9jTm9uZSk7CiB9CisjZW5kaWYKIAog
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0
ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVs
bHkpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+
Z2V0dmFsdWUpIHsKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcodGhp
cyk7CiAgICAgICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tzKEpTQzo6
U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKQEAgLTc0MiwxMiArMTQ3Nyw3MSBAQCBib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgwKTsKICAg
ICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0KKyNlbHNl
CisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
ICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgREZCV2luZG93SW5mbyogd3NJbmZvID0gMDsKKyAgICBR
V2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93
KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGllbnQtPm93
bmVyV2lkZ2V0KCkpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0
dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgREZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZtX2RmYik7
CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAgICAgIGdvdG8gZW5kOworCisgICAgcmVz
dWx0ID0gbV9kZmItPkdldERpc3BsYXlMYXllcihtX2RmYiwgRExJRF9QUklNQVJZLCAmbV9kZmJE
aXNwbGF5TGF5ZXIpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBnb3RvIGVu
ZDsKKworICAgIHJlc3VsdCA9IG1fZGZiRGlzcGxheUxheWVyLT5HZXRXaW5kb3cobV9kZmJEaXNw
bGF5TGF5ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxERkJXaW5kb3dJRD4oY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0eSgiX3Ff
RGlyZWN0RkJXaW5kb3dJRCIpLnRvSW50KCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJm1fZGZiV2luZG93KTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykK
KyAgICAgICAgZ290byBlbmQ7CisgICAgd3NJbmZvID0gbmV3IERGQldpbmRvd0luZm87CisgICAg
d3NJbmZvLT5kZmIgPSBtX2RmYjsKKyAgICB3c0luZm8tPndpbmRvdyA9IG1fZGZiV2luZG93Owor
ICAgIHdzSW5mby0+bGF5ZXIgPSBtX2RmYkRpc3BsYXlMYXllcjsKKyAgICBtX25wV2luZG93Lndz
X2luZm8gPSB3c0luZm87CisgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2Fi
bGU7CisgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAwOyAvLyBOb3QgdXNlZD8KKyAgICBtX25wV2lu
ZG93LnggPSAwOworICAgIG1fbnBXaW5kb3cueSA9IDA7CisgICAgbV9ucFdpbmRvdy53aWR0aCA9
IC0xOworICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gLTE7CisKK2VuZDoKKyAgICBpZiAocmVzdWx0
ICE9IERGQl9PSykgeworICAgICAgICBpZiAobV9kZmJXaW5kb3cpIHsKKyAgICAgICAgICAgIG1f
ZGZiV2luZG93LT5SZWxlYXNlKG1fZGZiV2luZG93KTsKKyAgICAgICAgICAgIG1fZGZiV2luZG93
ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2RmYkRpc3BsYXlMYXllcikKKyAgICAg
ICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlzcGxheUxheWVyKTsKKwor
ICAgICAgICBpZiAobV9kZmIpIHsKKyAgICAgICAgICAgIG1fZGZiLT5SZWxlYXNlKG1fZGZiKTsK
KyAgICAgICAgICAgIG1fZGZiID0gMDsKKyAgICAgICAgfQorICAgICAgICBEaXJlY3RGQkVycm9y
KCJQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkiLCByZXN1bHQpOworICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVn
aW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHNob3coKTsK
IAorI2lmbmRlZiBYUF9ERkIKICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3c2kgPSBu
ZXcgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+dHlwZSA9IDA7Ci0KICAg
ICBpZiAobV9pc1dpbmRvd2VkKSB7CiAgICAgICAgIGNvbnN0IFFYMTFJbmZvKiB4MTFJbmZvID0g
JnBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKTsKIApAQCAtNzU1LDcgKzE1NDksNiBA
QCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICB3c2ktPnZpc3VhbCA9
IChWaXN1YWwqKXgxMUluZm8tPnZpc3VhbCgpOwogICAgICAgICB3c2ktPmRlcHRoID0geDExSW5m
by0+ZGVwdGgoKTsKICAgICAgICAgd3NpLT5jb2xvcm1hcCA9IHgxMUluZm8tPmNvbG9ybWFwKCk7
Ci0KICAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93OwogICAgICAg
ICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5J
ZCgpOwogICAgICAgICBtX25wV2luZG93LndpZHRoID0gLTE7CkBAIC03ODQsOCArMTU3Nyw4IEBA
IGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIG1fbnBXaW5kb3cud2lk
dGggPSAtMTsKICAgICAgICAgbV9ucFdpbmRvdy5oZWlnaHQgPSAtMTsKICAgICB9Ci0KICAgICBt
X25wV2luZG93LndzX2luZm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1Z2luLT5x
dWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxsKSkpIHsK
ICAgICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7CkBAIC04MDAsMTEgKzE1OTMsMzMgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldp
ZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAorI2lmbmRl
ZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUlu
Zm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkKICAgICAg
ICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsKKyNlbHNl
CisgICAgZGVsZXRlIG1fZXZlbnRGaWx0ZXI7CisgICAgbV9ldmVudEZpbHRlciA9IDA7CisgICAg
ZGVsZXRlIHN0YXRpY19jYXN0PERGQldpbmRvd0luZm8qPihtX25wV2luZG93LndzX2luZm8pOwor
ICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7CisgICAgbV9waXhtYXAgPSBRUGl4bWFwKCk7Cisg
ICAgaWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgIG1fZGZiV2luZG93LT5SZWxlYXNlKG1fZGZi
V2luZG93KTsKKyAgICAgICAgbV9kZmJXaW5kb3cgPSAwOworfQorCisgICAgaWYgKG1fZGZiRGlz
cGxheUxheWVyKSB7CisgICAgICAgIG1fZGZiRGlzcGxheUxheWVyLT5SZWxlYXNlKG1fZGZiRGlz
cGxheUxheWVyKTsKKyAgICAgICAgbV9kZmJEaXNwbGF5TGF5ZXIgPSAwOworICAgIH0KKworICAg
IGlmIChtX2RmYikgeworICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAgICAgIG1f
ZGZiID0gMDsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63350</attachid>
            <date>2010-08-03 10:40:48 -0700</date>
            <delta_ts>2010-08-03 10:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100803103634.patch</filename>
            <type>text/plain</type>
            <size>44914</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTZlZjdjNTFmZjgxM2IyMmRiYmM2ODc3MTkzYWIwNjc3ZWMzMTdlMi4uMjdjZmI3Nzg2Y2NkZDM3
ZTgxMmZkMjdiN2VjMmMxYzFmYjU1ODM2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wNi0wNyAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBRdFdlYktpdCBkb2Vzbid0IHN1cHBvcnQgTlBBUEkg
Zm9yIERpcmVjdEZCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVz
cyBOUEFQSSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RG
Qi4gSXQncyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAg
ICAgIEZsYXNobGl0ZS4KKworICAgICAgICBUaGUgY29kZSBpcyBsYXJnZWx5IGJhc2VkIG9uIHRo
ZSBRdC9YMTEgaW1wbGVtZW50YXRpb24gb2Ygd2luZG93bGVzcworICAgICAgICBOUEFQSS4gSXQg
YWRkcyB0aGUgZGVmaW5lIFhQX0RGQiB3aGVuIGVuYWJsZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuCisgICAgICAgIFgxMSBhbmQgRGlyZWN0RkIgd2hlbiBYUF9VTklYIGlzIGRlZmluZWQuIFRo
aXMgbWVhbnMgdGhhdCBucGFwaS5oIHdpbGwKKyAgICAgICAgZnVuY3Rpb24gdGhlIHNhbWUgd2F5
IGZvciBYMTEgYnVpbGRzLgorCisgICAgICAgIFNpbmNlIHRoZSBub3JtYWwgdXNlIGNhc2UgZm9y
IE5QQVBJIG9uIERpcmVjdEZCIGlzIGZvciB2aWRlbyBvbiBzaXRlcworICAgICAgICBsaWtlIHlv
dXR1YmUgaXQncyBpbXBvcnRhbnQgdG8gbWFrZSBzdXJlIHRoZSBwbHVnaW4gZ2V0cyBhbiB1cGRh
dGVkCisgICAgICAgIGdsb2JhbCBnZW9tZXRyeSBpZiB0aGUgd2luZG93IG1vdmVzIG9yIHJlc2l6
ZXMuIFRoaXMgaXMgZHVlIHRvIHRoZQorICAgICAgICBmYWN0IHRoYXQgdGhlIHZpZGVvIHdpbGwg
YmUgcmVuZGVyZWQgaW50byBhIGRpZmZlcmVudCBsYXllciByYXRoZXIKKyAgICAgICAgdGhhbiBh
Y3R1YWxseSBpbnRvIHRoZSBvZmZzY3JlZW4gc3VyZmFjZSB0aGF0J3MgYmVpbmcgcmVuZGVyZWQg
dG8uCisKKyAgICAgICAgSSBoYXZlIGEgbWFudWFsIHRlc3QgY2FzZSB0aGF0IEkgY291bGQgaGVs
cCBwZW9wbGUgc2V0IHVwIGZvciB0ZXN0aW5nCisgICAgICAgIHdpdGggUXQvUVdTIERpcmVjdEZC
IGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgaXQgYXV0b21hdGVkLgorCisgICAgICAgIFRv
IGVuYWJsZSBOUEFQSSBmb3IgRGlyZWN0RkIgdGhlIGRldmVsb3BlciBuZWVkcyB0byBtYWtlIHN1
cmUKKyAgICAgICAgcW1ha2UuY29uZiBjb250YWlucyB0aGlzIGxpbmU6CisKKyAgICAgICAgREVG
SU5FUyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSV9ESVJFQ1RGQgorCisgICAgICAgIFF0
IG11c3QgYWxzbyBiZSBjb25maWd1cmVkIHdpdGggdGhlIC1xdC1nZngtZGlyZWN0ZmIgb3B0aW9u
IChhcworICAgICAgICBvcHBvc2VkIHRvIC1wbHVnaW4tZ2Z4LWRpcmVjdGZiKQorCisgICAgICAg
ICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogYnJpZGdl
L25wYXBpLmg6CisgICAgICAgICogYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oOgorICAgICAg
ICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAg
ICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldp
ZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjppbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdERp
cmVjdEZCTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVN
b3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5F
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6V2luZG93TW92ZUV2
ZW50RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6ZXZl
bnRGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93TW92ZUV2ZW50RmlsdGVyOjp0aW1l
ckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisKIDIwMTAtMDgtMDMgIEtldmlu
IE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgW3d4XSBCdWls
ZCBmaXgsIGRvbid0IGJ1aWxkIHNvbWUgRE9NIGJpbmRpbmdzIHdlIGRvbid0IHVzZS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDJm
ZGZjZDEzMGI4NjE2ZDI5NjMyOTY2NDZkNDY5ODc1NTBiZjY4MGEuLmFkYzg0NGM0YTFlNzZlMWQ2
YzcxYTcyZDVlN2UyNjBjMmNiMDYwY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTcsNiArOTcsMTAgQEAgZ3JlYXRlclRoYW4o
UVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChO
UEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVD
VEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVfTkVU
U0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjogewog
ICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBiZWI1
ZmY1ZWQyNDdhYWRjNjA4ZGI0NGI0NmQ2YmZhNDM4N2NkNTUuLmQyNDRjZjY5NTIyNDg1ZDg4NjE4
MDE1YmE4MWQ3OTI2ZjBjNDY4NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjMyMSwxNiArMjMyMSwxOSBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAgICAgICAgICAgICAgICAg
SU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAgICAgIyBOb3RlOiBYUF9N
QUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGlyZWN0ZmIgeworICAgICAg
ICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAgICAgICAgICAgICBRTUFL
RV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgICAgICBM
SUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgIH0gZWxzZTohZW1iZWRk
ZWQgewogICAgICAgICAgICAgICAgICAgICBDT05GSUcgKz0geDExCiAgICAgICAgICAgICAgICAg
ICAgIExJQlMgKz0gLWxYcmVuZGVyCisgICAgICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gcGx1
Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKyAgICAgICAgICAgICAgICAgICAgSEVBREVS
UyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgU09VUkNFUyArPSBcCi0gICAgICAgICAgICAgICAgICAgIHBsdWdpbnMv
cXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9x
dC9QbHVnaW5QYWNrYWdlUXQuY3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXQuY3BwCi0gICAgICAgICAgICAgICAgSEVBREVSUyArPSBcCi0gICAgICAgICAg
ICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuaAogICAgICAgICAgICAgICAg
IERFRklORVMgKz0gWFBfVU5JWAogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oIGIvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAppbmRleCA1
ZmM4ZTQ2MTk5OGU4ZGQ1MGVjMzgwNzkyYjM3YjU5N2Y3ZDEyZjdiLi5mODMxNDhmYzBjYmIxM2Uw
ZmM0YmZlOWU3YWU0NDZkYzgxODQyYjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ucGFw
aS5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgKQEAgLTg5LDcgKzg5LDcgQEAKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAm
JiAhZGVmaW5lZChYUF9ERkIpCiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KICNpbmNsdWRlIDxYMTEv
WHV0aWwuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQzLDcgKzI0Myw3IEBAIHR5cGVkZWYg
c3RydWN0IF9OUFNpemUKIC8qIEV4YWN0IG1lYW5pbmcgbXVzdCBiZSBzcGVjJ2QgaW4gZXZlbnQg
bW9kZWwuICovCiAjZGVmaW5lIGtOUEV2ZW50U3RhcnRJTUUgMgogCi0jaWYgZGVmaW5lZChYUF9V
TklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogLyoKICAqIFVu
aXggc3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMKICAqLwpAQCAtNTIzLDYgKzUy
Myw5IEBAIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgIHVpbnRwdHJfdCB3UGFyYW07CiAgIHVp
bnRwdHJfdCBsUGFyYW07CiB9IE5QRXZlbnQ7CisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyNpbmNs
dWRlIDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBOUEV2ZW50OwogI2VsaWYgZGVmaW5l
ZChYUF9PUzIpCiB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogewpAQCAtNTQ0LDcgKzU0Nyw3IEBA
IHR5cGVkZWYgUmduSGFuZGxlIE5QUURSZWdpb247CiB0eXBlZGVmIENHUGF0aFJlZiBOUENHUmVn
aW9uOwogI2VsaWYgZGVmaW5lZChYUF9XSU4pCiB0eXBlZGVmIEhSR04gTlBSZWdpb247Ci0jZWxp
ZiBkZWZpbmVkKFhQX1VOSVgpCisjZWxpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQ
X0RGQikKIHR5cGVkZWYgUmVnaW9uIE5QUmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9TWU1CSUFO
KQogdHlwZWRlZiBRUmVnaW9uKiBOUFJlZ2lvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdl
L25wcnVudGltZV9pbnRlcm5hbC5oIGIvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFs
LmgKaW5kZXggNzM2YTdmMTU2Yjc5Y2M2ZTU5ZGQ4NTY5Nzg5MDdhODVmODBkNmExOS4uMDE1OTMx
ZTIwNjVlNGZkMjNiY2UxZDdkNDRlYjM2MWU4ZGFkYzU0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
cmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1l
X2ludGVybmFsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1bmN0aW9ucy5oIgog
I2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQgWFBf
VU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2UuaD4K
IAogICAgICN1bmRlZiBOb25lCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNTBlY2E3ZWVlNjgz
ODg2N2JjYzA0ODZmZmM0YzkwN2NiNTYxNTQ1Yy4uNDE4NmMxOTU1YzFhN2NlOGZmY2E5MmJmNWQx
NmIxMjc5ZmEzYjIzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMzYzLDcgKzM2Myw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQ
bHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1gx
MSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRv
dy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3Qg
KiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAgLTgy
Myw3ICs4MjMsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogICAgICwgbV9pc1RyYW5zcGFy
ZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzV2Fp
dGluZ1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBf
VU5JWCkgJiYgIWRlZmluZWQgKFhQX0RGQikKICAgICAsIG1fbmVlZHNYRW1iZWQoZmFsc2UpCiAj
ZW5kaWYKICNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAg
LTg0NCwxMCArODQ0LDE4IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAjZW5kaWYKICNpZiBk
ZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV9o
YXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKKyNpZiAhZGVmaW5lZCBYUF9ERkIKICAgICAs
IG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFsKDApCiAgICAgLCBtX2NvbG9ybWFwKDApCiAg
ICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbHNlCisgICAgLCBtX2V2ZW50RmlsdGVyKDApCisg
ICAgLCBtX2RmYlN1cmZhY2UoMCkKKyAgICAsIG1fZGZiKDApCisgICAgLCBtX2RmYkRpc3BsYXlM
YXllcigwKQorICAgICwgbV9kZmJXaW5kb3coMCkKKyNlbmRpZgogI2VuZGlmCiAgICAgLCBtX2xv
YWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgwKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKaW5kZXggNDMxY2UwZTcwMjZjY2Y3OGJjZTIwYWFkNzdiZmUyZGJlNDc4NDgyNS4u
M2FmMTdlMDhlOTU4N2FkN2E3MzRlNGRkOGU3ZDAxNDhiOWZiYWIxOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lmIGRlZmlu
ZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8
ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYgT1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKFFUKSB8
fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7CkBAIC0zMTYsNyAr
MzIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faGF2ZUluaXRpYWxp
emVkOwogICAgICAgICBib29sIG1faXNXYWl0aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQoWFBf
VU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAgICAg
Ym9vbCBtX25lZWRzWEVtYmVkOwogI2VuZGlmCiAKQEAgLTM2NiwxMiArMzcwLDIxIEBAIHByaXZh
dGU6CiAKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgICAgICBib29sIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBYUF9E
RkIKICAgICAgICAgUGl4bWFwIG1fZHJhd2FibGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1YWw7
CiAgICAgICAgIENvbG9ybWFwIG1fY29sb3JtYXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1Z2lu
RGlzcGxheTsKIAogICAgICAgICB2b2lkIGluaXRYRXZlbnQoWEV2ZW50KiBldmVudCk7CisjZWxz
ZQorICAgICAgICBRT2JqZWN0ICptX2V2ZW50RmlsdGVyOworICAgICAgICBRUGl4bWFwIG1fcGl4
bWFwOworICAgICAgICBJRGlyZWN0RkJTdXJmYWNlICptX2RmYlN1cmZhY2U7CisgICAgICAgIElE
aXJlY3RGQiAqbV9kZmI7CisgICAgICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciAqbV9kZmJEaXNw
bGF5TGF5ZXI7CisgICAgICAgIElEaXJlY3RGQldpbmRvdyAqbV9kZmJXaW5kb3c7CisjZW5kaWYK
ICNlbmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVjdCB0
byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5QYWNrYWdlUXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblBhY2th
Z2VRdC5jcHAKaW5kZXggMDcxNDlmMzQ3MzMyYzM2NTBjNjM0ODliNGJhYjNhNTNmMzFmZmY3ZS4u
YTQ0ZjExY2JkZWY5Yzg3OTFmOGM2ZDgxZmJiNDg0YzkyZWFhMjUzMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblBhY2thZ2VRdC5jcHAKQEAgLTEwMSw3ICsxMDEsOSBAQCBib29sIFBsdWdpblBh
Y2thZ2U6OmxvYWQoKQogCiAgICAgbV9tb2R1bGUgPSBuZXcgUUxpYnJhcnkoKFFTdHJpbmcpbV9w
YXRoKTsKICAgICBtX21vZHVsZS0+c2V0TG9hZEhpbnRzKFFMaWJyYXJ5OjpSZXNvbHZlQWxsU3lt
Ym9sc0hpbnQpOworICAgIHFEZWJ1ZygpIDw8IG1fcGF0aDsKICAgICBpZiAoIW1fbW9kdWxlLT5s
b2FkKCkpIHsKKyAgICAgICAgcURlYnVnKCkgPDwgbV9tb2R1bGUtPmVycm9yU3RyaW5nKCk7CiAg
ICAgICAgIExPRyhQbHVnaW5zLCAiJXMgbm90IGxvYWRlZCAoJXMpIiwgbV9wYXRoLnV0ZjgoKS5k
YXRhKCksCiAgICAgICAgICAgICAgICAgbV9tb2R1bGUtPmVycm9yU3RyaW5nKCkudG9MYXRpbjEo
KS5jb25zdERhdGEoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAKaW5kZXggMGNhMzU2YjRlNDE2M2Q5YmNmNTE4YzE3NjI2NjYzZWY0ZGI4MGI0
MC4uN2I2ODk0YjdjZTg3NDRkZDhjYTUzZDI4YTViZTFhMDQwNzY1OGVlOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNpbmNsdWRlICJQ
bHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJQbHVn
aW5NYWluVGhyZWFkU2NoZWR1bGVyLmgiCkBAIC02OCw2ICs2Nyw4IEBACiAjaW5jbHVkZSA8UUtl
eUV2ZW50PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CisjaWZkZWYg
UV9XU19YMTEKKyNpbmNsdWRlICJQbHVnaW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgPFFYMTFJ
bmZvPgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc1LDYg
Kzc2LDIyIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9Y
cmVuZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2lj
VGltZXI+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmll
dz4KKyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8gewor
ICAgIElEaXJlY3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7Cisg
ICAgSURpcmVjdEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCisjd2Fy
bmluZyBmb29vYmFyCitleHRlcm4gUV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2Rp
cmVjdGZiX3N1cmZhY2VfZm9yX3BpeG1hcChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5E
X05BTUVTUEFDRQorI2VuZGlmCisKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgogCkBAIC0xMTAsNiArMTI3LDggQEAgdm9pZCBQbHVnaW5W
aWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2lu
ZG93UmVjdCAmJiBtX2NsaXBSZWN0ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAK
KyNpZm5kZWYgWFBfREZCCisjd2FybmluZyBmb28KICAgICBpZiAoIW1faXNXaW5kb3dlZCAmJiBt
X3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CiAgICAgICAgIGlm
IChtX2RyYXdhYmxlKQogICAgICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXko
KSwgbV9kcmF3YWJsZSk7CkBAIC0xMTgsNiArMTM3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRh
dGVQbHVnaW5XaWRnZXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5Q
U2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAg
ICAgICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOyAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgc2VydmVy
IGtub3dzIGFib3V0IHRoZSBEcmF3YWJsZQogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gZG8gbm90
IGNhbGwgc2V0TlBXaW5kb3dJZk5lZWRlZCBpbW1lZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24g
cGFpbnQoKQogICAgIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE3Miwx
NiArMTkyLDE2IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwog
CisjaWZuZGVmIFhQX0RGQgogICAgIGlmIChtX2lzV2luZG93ZWQgfHwgIW1fZHJhd2FibGUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGJvb2wgc3luY1ggPSBtX3BsdWdpbkRpc3BsYXkg
JiYgbV9wbHVnaW5EaXNwbGF5ICE9IFFYMTFJbmZvOjpkaXNwbGF5KCk7Ci0KICAgICBRUGFpbnRl
ciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIEludFJlY3QgZXhw
b3NlZFJlY3QocmVjdCk7CiAgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsK
ICAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkp
OwogCisgICAgY29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1Z2luRGlzcGxheSAmJiBtX3BsdWdpbkRp
c3BsYXkgIT0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICBRUGl4bWFwIHF0RHJhd2FibGUgPSBR
UGl4bWFwOjpmcm9tWDExUGl4bWFwKG1fZHJhd2FibGUsIFFQaXhtYXA6OkV4cGxpY2l0bHlTaGFy
ZWQpOwogICAgIGNvbnN0IGludCBkcmF3YWJsZURlcHRoID0gKChOUFNldFdpbmRvd0NhbGxiYWNr
U3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5kZXB0aDsKICAgICBBU1NFUlQoZHJhd2FibGVE
ZXB0aCA9PSBxdERyYXdhYmxlLmRlcHRoKCkpOwpAQCAtMjQwLDYgKzI2MCwyNCBAQCB2b2lkIFBs
dWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgpLngoKSAr
IGV4cG9zZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgcXRE
cmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyNlbHNlCisg
ICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERG
QkV2ZW50KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQgPSBkZmJFdmVudC51c2VyOwor
ICAgIHVzZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1c2VyRXZlbnQudHlwZSA9IDB4
ZGZiOworICAgIHVzZXJFdmVudC5kYXRhID0gJm1fbnBXaW5kb3c7CisgICAgZGlzcGF0Y2hOUEV2
ZW50KGRmYkV2ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOworICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CisgICAgZXhwb3NlZFJl
Y3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKKyAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJl
Y3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOworICAgIGNvbnN0IFFQYWludGVyOjpDb21wb3Np
dGlvbk1vZGUgb2xkTW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0aW9uTW9kZSgpOworICAgIHBhaW50
ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7
CisgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3Nl
ZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBtX3BpeG1hcCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyAgICBwYWludGVyLT5zZXRD
b21wb3NpdGlvbk1vZGUob2xkTW9kZSk7CisjZW5kaWYKIH0KIAogLy8gVE9ETzogVW5pZnkgYWNy
b3NzIHBvcnRzLgpAQCAtMjU4LDYgKzI5Niw3IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hO
UEV2ZW50KE5QRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBhY2NlcHRlZDsKIH0KIAorI2lmbmRl
ZiBYUF9ERkIKIHZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCogeEV2ZW50LCBRV2lk
Z2V0KiBvd25lcldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnkuc2VyaWFsID0gMDsgLy8gd2Ug
YXJlIHVuYXdhcmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNzZWQgYnkgWCBTZXJ2ZXIKQEAg
LTI5OSw2ICszMzgsNTM0IEBAIHZvaWQgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50
KiB4RXZlbnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIHhFdmVudC0+eGtleS54X3Jvb3Qg
PSAwOwogICAgIHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQorI2Vsc2UKK3N0YXRpYyBpbmxp
bmUgdm9pZCBpbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KERGQklucHV0RXZlbnQqIGRmYkV2ZW50
LCBjb25zdCBRS2V5RXZlbnQqIHF0RXZlbnQpCit7CisgICAgZGZiRXZlbnQtPmNsYXp6ID0gREZF
Q19JTlBVVDsKKyAgICBkZmJFdmVudC0+dHlwZSA9IChxdEV2ZW50LT50eXBlKCkgPT0gUUV2ZW50
OjpLZXlQcmVzcyA/IERJRVRfS0VZUFJFU1MgOiBESUVUX0tFWVJFTEVBU0UpOworICAgIHVuc2ln
bmVkIGludCBmbGFncyA9IChESUVGX0tFWVNZTUJPTCB8IERJRUZfTU9ESUZJRVJTKTsKKyAgICBp
ZiAocXRFdmVudC0+aXNBdXRvUmVwZWF0KCkpCisgICAgICAgIGZsYWdzIHw9IERJRUZfUkVQRUFU
OworICAgIGNvbnN0IFF0OjpLZXlib2FyZE1vZGlmaWVyIG1vZGlmaWVyc1tdID0geyBRdDo6U2hp
ZnRNb2RpZmllciwgUXQ6OkNvbnRyb2xNb2RpZmllciwgUXQ6OkFsdE1vZGlmaWVyLCBRdDo6TWV0
YU1vZGlmaWVyIH07CisgICAgY29uc3QgREZCSW5wdXREZXZpY2VNb2RpZmllck1hc2sgZGZiTW9k
aWZpZXJzW10gPSB7IERJTU1fU0hJRlQsIERJTU1fQ09OVFJPTCwgRElNTV9BTFQsIERJTU1fTUVU
QSB9OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIGlmIChxdEV2
ZW50LT5tb2RpZmllcnMoKSAmIG1vZGlmaWVyc1tpXSkKKyAgICAgICAgICAgIGRmYkV2ZW50LT5t
b2RpZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhkZmJFdmVudC0+bW9kaWZpZXJz
IHwgZGZiTW9kaWZpZXJzW2ldKTsKKyAgICB9CisgICAgc3dpdGNoIChxdEV2ZW50LT5rZXkoKSkg
eworICAgIGNhc2UgUXQ6OktleV9CYWNrc3BhY2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19CQUNLU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0JB
Q0tTUEFDRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1RhYjoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1RBQjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfVEFCOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmV0dXJuOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVUVVJOOworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0VzY2FwZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VTQ0FQ
RTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRVNDQVBFOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRGVsZXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfREVMRVRFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ERUxFVEU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZWZ0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX0xFRlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SaWdodDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9SSUdIVDsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9VcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNP
Ul9VUDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVVA7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9Eb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfQ1VSU09SX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0RPV047
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JbnNlcnQ6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19JTlNFUlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0lOU0VSVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hvbWU6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IT01FOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9IT01FOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RW5kOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRU5EOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9FTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYWdlVXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQUdFX1VQ
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QQUdFX1VQOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfUGFnZURvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19QQUdFX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BB
R0VfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ByaW50OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUFJJTlQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9QYXVzZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1BBVVNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2VsZWN0OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0VMRUNUOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfT3BlblVybDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0dPVE87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9DbGVhcjoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NMRUFSOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTWVudToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X01FTlU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IZWxwOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSEVMUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0hvbWVQYWdlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
SU5URVJORVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MYXVuY2hNYWlsOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUFJTDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Zhdm9yaXRlczoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0ZBVk9SSVRFUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Jh
Y2s6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19CQUNLOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRm9yd2FyZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0ZPUldBUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9W
b2x1bWVVcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1ZPTFVNRV9VUDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZURvd246CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfRE9XTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1ZvbHVtZU11dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19NVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFQbGF5
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUExBWTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhU3RvcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NUT1A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRp
YVJlY29yZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1JFQ09SRDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUHJldmlvdXM6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QUkVWSU9VUzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X01lZGlhTmV4dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX05FWFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMToKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9GMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YyOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX0YyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjM6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMzsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfRjM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y0OworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9GNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y1Ogor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjU7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX0Y1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjY6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfRjY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
NzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y3OworICAgICAgICBkZmJF
dmVudC0+a2V5X2lkID0gRElLSV9GNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0Y4OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjg7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0Y4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRjk6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GOTsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GMTA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTA7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0YxMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0YxMToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMTsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjExOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRjEyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
RjEyOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMTI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9TaGlmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NISUZUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TSElGVF9MOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29udHJvbDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0NPTlRST0w7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0NPTlRST0xfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FMVDsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9BbHRHcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FMVEdSOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWV0YToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX01FVEE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01F
VEFfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1N1cGVyX0w6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TVVBFUjsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfU1VQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0h5
cGVyX0w6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IWVBFUjsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfSFlQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0NhcHNMb2NrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfQ0FQU19MT0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DQVBTX0xPQ0s7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1Mb2NrOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTlVNX0xPQ0s7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX05VTV9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2Ny
b2xsTG9jazoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NDUk9MTF9MT0NL
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TQ1JPTExfTE9DSzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVkb3Q6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FCT1ZFRE9UOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRGVhZF9BYm92ZXJpbmc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX0FCT1ZFUklORzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfQWN1dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FD
VVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9CcmV2ZToKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQlJFVkU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Nhcm9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfREVBRF9DQVJPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfQ2VkaWxsYToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURf
Q0VESUxMQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2lyY3VtZmxl
eDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0lSQ1VNRkxFWDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfRGlhZXJlc2lzOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ESUFFUkVTSVM7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RvdWJsZWFjdXRlOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ET1VCTEVBQ1VURTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0RlYWRfR3JhdmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX0dSQVZFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9Jb3RhOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9JT1RBOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9NYWNyb246CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX01BQ1JPTjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0RlYWRfT2dvbmVrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfREVBRF9PR09ORUs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9E
ZWFkX1NlbWl2b2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19ERUFEX1NFTUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9EZWFkX1RpbGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9U
SUxERTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVm9pY2VkX1NvdW5k
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9WT0lDRURfU09VTkQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TcGFjZToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NQQUNFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9TUEFDRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0V4Y2xhbToKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VYQ0xBTUFUSU9OX01BUks7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdW90ZURibDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1FVT1RBVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X051bWJlclNpZ246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19O
VU1CRVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RvbGxhcjoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RPTExBUl9TSUdOOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGVyY2VudDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1BFUkNFTlRfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0FtcGVyc2FuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FNUEVS
U0FORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fwb3N0cm9waGU6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BUE9TVFJPUEhFOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfUGFyZW5MZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfUEFSRU5USEVTSVNfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1BhcmVuUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19Q
QVJFTlRIRVNJU19SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzdGVy
aXNrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQVNURVJJU0s7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QbHVzOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZpZXJz
KCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9LUF9QTFVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29tbWE6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DT01NQTsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfQ09NTUE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9NaW51czoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01JTlVTX1NJR047
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01JTlVTX1NJR047CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9QZXJpb2Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19QRVJJT0Q7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BFUklP
RDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NsYXNoOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX1NMQVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzA7CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJXzA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8xOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfMTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzI6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU18yOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV8yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMzoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzM7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJXzM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV80OgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfNDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzU6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU181OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV81OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTXzY7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJXzY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV83OgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfNzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzg6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU184OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV84OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfOToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTXzk7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
Xzk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db2xvbjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NPTE9OOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfU2VtaWNvbG9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
U0VNSUNPTE9OOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TRU1JQ09MT047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZXNzOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfTEVTU19USEFOX1NJR047CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
aWQgPSBESUtJX0xFU1NfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Vx
dWFsOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVFVQUxTX1NJR047Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0VRVUFMU19TSUdOOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfR3JlYXRlcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX0dSRUFURVJfVEhBTl9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfUXVlc3Rpb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19RVUVT
VElPTl9NQVJLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXQ6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19BVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0E6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9B
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9BOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NN
QUxMX0I7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0I7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9DOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfU01BTExfQzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19TTUFMTF9EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9EOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0U7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfU01BTExfRjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfRjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0c6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9HOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9HOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0g7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSTsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0o6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9KOworICAgICAgICBk
ZmJFdmVudC0+a2V5X2lkID0gRElLSV9KOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfSzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0s7CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9MOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTDsK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X006CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFM
TF9NOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9NOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfTjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX047CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9POgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfU01BTExfTzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1A6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19TTUFMTF9QOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUToKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX1E7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X1E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfUjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9
IERJS0lfUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1M6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9TOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9TOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Q7CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBESUtJX1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVTsKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9pZCA9IERJS0lfVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1Y6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9WOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9WOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfVzoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1c7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1c7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9YOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExf
WDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1k6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9ZOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ZOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfWjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX1o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1o7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0TGVmdDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX0xFRlQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9CYWNrc2xhc2g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gRElLU19CQUNLU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0JBQ0tT
TEFTSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRSaWdodDoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX1JJR0hUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXNjaWlDaXJjdW06CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DSVJDVU1GTEVYX0FDQ0VOVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1VuZGVyc2NvcmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19VTkRFUlNDT1JFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfQnJhY2VMZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlf
QlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFyOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVkVSVElDQUxfQkFSOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9Bc2NpaVRpbGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfVElMREU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoKHF0RXZlbnQtPm1v
ZGlmaWVycygpICYgUXQ6OlNoaWZ0TW9kaWZpZXIpICYmIHF0RXZlbnQtPmtleSgpID49IFF0OjpL
ZXlfQSAmJiBxdEV2ZW50LT5rZXkoKSA8PSBRdDo6S2V5X1opCisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gREZCSW5wdXREZXZpY2VLZXlTeW1ib2woKGRmYkV2ZW50LT5rZXlfc3ltYm9s
IC0gRElLU19TTUFMTF9BKSArIERJS1NfQ0FQSVRBTF9BKTsKKyAgICBpZiAoZGZiRXZlbnQtPmtl
eV9pZCAhPSBESUtJX1VOS05PV04pIHsKKyAgICAgICAgZmxhZ3MgPSBERkJJbnB1dEV2ZW50Rmxh
Z3MoZGZiRXZlbnQtPmZsYWdzIHwgRElFRl9LRVlJRCk7CisgICAgICAgIGlmIChkZmJFdmVudC0+
a2V5X2lkID49IERJS0lfMCAmJiBkZmJFdmVudC0+a2V5X2lkIDw9IERJS0lfOSAmJiBxdEV2ZW50
LT5tb2RpZmllcnMoKSAmIFF0OjpLZXlwYWRNb2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50
LT5rZXlfaWQgPSBERkJJbnB1dERldmljZUtleUlkZW50aWZpZXIoZGZiRXZlbnQtPmtleV9pZCAt
IERJS0lfMCArIERJS0lfS1BfMCk7CisgICAgfQorICAgIGRmYkV2ZW50LT5mbGFncyA9IERGQklu
cHV0RXZlbnRGbGFncyhmbGFncyk7Cit9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5k
bGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMzA4LDE0ICs4NzUs
MjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQq
IGV2ZW50KQogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZl
bnQgJiYgZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkKICAgICAgICAg
cmV0dXJuOwogCisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRY
RXZlbnQoJm5wRXZlbnQpOwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50
LCBldmVudCk7CisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgREZCSW5wdXRFdmVu
dCYgaW5wdXQgPSBucEV2ZW50LmlucHV0OworICAgIGluaXREaXJlY3RGQktleWJvYXJkRXZlbnQo
JmlucHV0LCBldmVudC0+a2V5RXZlbnQoKS0+cXRFdmVudCgpKTsKKyNlbmRpZgogCiAgICAgaWYg
KCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIHVuc2lnbmVkIGludCBpbnB1dEV2
ZW50U3RhdGUoTW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgaW50IHN0YXRlID0g
MDsKQEAgLTM5MCw2ICs5NjQsNDUgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVj
aWZpY0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGMKICAgICB4Y3Jv
c3Npbmcuc2FtZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwog
fQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KERGQldp
bmRvd0V2ZW50KiBkZmJFdmVudCwgY29uc3QgTW91c2VFdmVudCogZXZlbnQpCit7CisgICAgZGZi
RXZlbnQtPmNsYXp6ID0gREZFQ19XSU5ET1c7CisKKyAgICB1bnNpZ25lZCBpbnQgbW9kaWZpZXJz
ID0gMDsKKyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJ
TU1fQ09OVFJPTDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBESU1NX1NISUZUOworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlm
aWVycyB8PSBESU1NX0FMVDsKKyAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IERJTU1fTUVUQTsKKyAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0gREZCSW5wdXRE
ZXZpY2VNb2RpZmllck1hc2sobW9kaWZpZXJzKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5tb3VzZXVwRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JVVFRPTkRPV04gOiBE
V0VUX0JVVFRPTlVQKTsKKyAgICAgICAgc3dpdGNoIChldmVudC0+YnV0dG9uKCkpIHsKKyAgICAg
ICAgY2FzZSBMZWZ0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklf
TEVGVDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAg
ICAgICAgICAgIGRmYkV2ZW50LT5idXR0b24gPSBESUJJX01JRERMRTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1
dHRvbiA9IERJQklfUklHSFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRmYkV2ZW50LT5idXR0b25z
ID0gREZCSW5wdXREZXZpY2VCdXR0b25NYXNrKDApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQt
PnR5cGUgPSBEV0VUX01PVElPTjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm47CisgICAg
fQorfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2
ZW50KiBldmVudCkKIHsKQEAgLTQwMywxMSArMTAxNiwxMSBAQCB2b2lkIFBsdWdpblZpZXc6Omhh
bmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAKICAgICAgICAgZm9jdXNQbHVnaW5F
bGVtZW50KCk7CiAgICAgfQotCisgICAgSW50UG9pbnQgcG9zdFpvb21Qb3MgPSByb3VuZGVkSW50
UG9pbnQobV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29s
dXRlTG9jYXRpb24oKSkpOworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAg
ICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIAotICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91
bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50
LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKIAogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZXVwRXZlbnQpCiAgICAgICAgIHNldFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZucEV2
ZW50LCBldmVudCwgcG9zdFpvb21Qb3MpOwpAQCAtNDE3LDEzICsxMDMwLDQwIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICAgICAgc2V0
WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9z
KTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChu
cEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisKKyNlbHNlCisg
ICAgREZCRXZlbnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJF
dmVudCkpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3Zl
ckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpIHsK
KyAgICAgICAgbnBFdmVudC5jbGF6eiA9IERGRUNfV0lORE9XOworICAgICAgICBucEV2ZW50Lndp
bmRvdy50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50
ID8gRFdFVF9FTlRFUiA6IERXRVRfTEVBVkUpOworICAgICAgICBucEV2ZW50LndpbmRvdy54ID0g
bnBFdmVudC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIG5wRXZlbnQud2lu
ZG93LnkgPSBucEV2ZW50LndpbmRvdy5jeSA9IHBvc3Rab29tUG9zLnkoKTsKKyAgICBpZiAoIWRp
c3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVk
KCk7CisgICAgICAgIHJldHVybjsKK30KKworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBu
cEV2ZW50LndpbmRvdzsKKyAgICBtX2RmYldpbmRvdy0+R2V0SUQobV9kZmJXaW5kb3csICZ3aW5k
b3cud2luZG93X2lkKTsKKyAgICBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KCZ3aW5kb3csIGV2ZW50
KTsKKyAgICB3aW5kb3cueCA9IHBvc3Rab29tUG9zLngoKTsKKyAgICB3aW5kb3cueSA9IHBvc3Ra
b29tUG9zLnkoKTsKKyAgICBjb25zdCBJbnRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uID0gZXZlbnQt
PmFic29sdXRlTG9jYXRpb24oKTsKKyAgICB3aW5kb3cuY3ggPSBhYnNvbHV0ZUxvY2F0aW9uLngo
KTsKKyAgICB3aW5kb3cuY3kgPSBhYnNvbHV0ZUxvY2F0aW9uLnkoKTsKIAogICAgIGlmICghZGlz
cGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQo
KTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiB7
CisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5w
RXZlbnQpOwogCkBAIC00MzEsMTIgKzEwNzEsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVG
b2N1c0luRXZlbnQoKQogICAgIGV2ZW50LnR5cGUgPSA5OyAvKiBpbnQgYXMgUXQgdW5zZXRzIEZv
Y3VzSW4gKi8KICAgICBldmVudC5tb2RlID0gTm90aWZ5Tm9ybWFsOwogICAgIGV2ZW50LmRldGFp
bCA9IE5vdGlmeURldGFpbE5vbmU7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwogCisj
ZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50LCAwLCBzaXpl
b2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gbnBFdmVudC53aW5k
b3c7CisgICAgd2luZG93LmNsYXp6ID0gREZFQ19XSU5ET1c7CisgICAgd2luZG93LnR5cGUgPSBE
V0VUX0dPVEZPQ1VTOwogICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgogfQog
CiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogeworI2lmbmRlZiBYUF9E
RkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAt
NDQ2LDYgKzEwOTUsMTUgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkK
ICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2
ZW50KG5wRXZlbnQpOworI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgm
bnBFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRv
dyA9IG5wRXZlbnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAg
IHdpbmRvdy50eXBlID0gRFdFVF9MT1NURk9DVVM7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZl
bnQpOworI2VuZGlmCisKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmll
dyogcGFyZW50KQpAQCAtNDYyLDYgKzExMjAsNDkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdp
bmRvd1JlY3QoY29uc3QgSW50UmVjdCYpCiAgICAgICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsK
IH0KIAorI2lmZGVmIFhQX0RGQgorY2xhc3MgV2luZG93TW92ZUV2ZW50RmlsdGVyIDogcHVibGlj
IFFPYmplY3QgeworcHVibGljOgorICAgIFdpbmRvd01vdmVFdmVudEZpbHRlcihib29sKiBnLCBQ
bHVnaW5WaWV3KiB2aWV3LCBRV2lkZ2V0KiB3YXRjaGVkKQorICAgICAgICA6IFFPYmplY3QoMCkK
KyAgICAgICAgLCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZShnKQorICAgICAgICAsIG1fcGx1
Z2luVmlldyh2aWV3KQorICAgIHsKKyAgICAgICAgUV9BU1NFUlQod2F0Y2hlZCk7CisgICAgICAg
IGZvcmV2ZXIgeworICAgICAgICAgICAgd2F0Y2hlZC0+aW5zdGFsbEV2ZW50RmlsdGVyKHRoaXMp
OworICAgICAgICAgICAgaWYgKHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB3YXRjaGVkID0gd2F0Y2hlZC0+cGFyZW50V2lkZ2V0KCk7Cisg
ICAgICAgICAgICBpZiAoIXdhdGNoZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBib29sIGV2ZW50RmlsdGVyKFFPYmplY3QgKiwgUUV2ZW50KiBlKQor
ICAgIHsKKyAgICAgICAgaWYgKGUtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1vdmUgfHwgZS0+dHlwZSgp
ID09IFFFdmVudDo6UmVzaXplKSB7CisgICAgICAgICAgICAqbV9oYXNQZW5kaW5nR2VvbWV0cnlD
aGFuZ2UgPSB0cnVlOworICAgICAgICAgICAgbV90aW1lci5zdGFydCgxMCwgdGhpcyk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgdGltZXJFdmVu
dChRVGltZXJFdmVudCogZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50aW1lcklkKCkgPT0gbV90
aW1lci50aW1lcklkKCkpIHsKKyAgICAgICAgICAgIG1fdGltZXIuc3RvcCgpOworICAgICAgICAg
ICAgbV9wbHVnaW5WaWV3LT5mb3JjZVJlZHJhdygpOworICAgICAgICB9CisgICAgfQorcHJpdmF0
ZToKKyAgICBib29sKiBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZTsKKyAgICBQbHVnaW5WaWV3
KiBtX3BsdWdpblZpZXc7CisgICAgUUJhc2ljVGltZXIgbV90aW1lcjsKK307CisKKyNlbmRpZgor
CiB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogewogICAgIGlmICghbV9p
c1N0YXJ0ZWQgfHwgIXBhcmVudCgpIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+c2V0d2lu
ZG93KQpAQCAtNDk4LDYgKzExOTksNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZO
ZWVkZWQoKQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC54
KCkgKyBtX2NsaXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90
dG9tID0gbV9jbGlwUmVjdC55KCkgKyBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0gZWxzZSB7
CisjaWZuZGVmIFhQX0RGQgogICAgICAgICBtX25wV2luZG93LnggPSAwOwogICAgICAgICBtX25w
V2luZG93LnkgPSAwOwogCkBAIC01MDUsNiArMTIwNywzOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNl
dE5QV2luZG93SWZOZWVkZWQoKQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IDA7
CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSAwOwogICAgICAgICBtX25wV2lu
ZG93LmNsaXBSZWN0LmJvdHRvbSA9IDA7CisjZWxzZQorICAgICAgICBRUG9pbnQgcGx1Z2luVmll
d0dsb2JhbFBvcyA9IHdpbmRvd0NsaXBSZWN0KCkudG9wTGVmdCgpOworICAgICAgICBRV2ViUGFn
ZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOworICAgICAgICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBj
bGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0KCkgOiAwKSB7CisgICAgICAgICAgICBpZiAoIW1f
ZXZlbnRGaWx0ZXIpCisgICAgICAgICAgICAgICAgbV9ldmVudEZpbHRlciA9IG5ldyBXaW5kb3dN
b3ZlRXZlbnRGaWx0ZXIoJm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlLCB0aGlzLCBvd25lcldp
ZGdldCk7CisgICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1h
cFRvR2xvYmFsKHBsdWdpblZpZXdHbG9iYWxQb3MpOworICAgICAgICAgICAgaWYgKGNvbnN0IFFH
cmFwaGljc1dlYlZpZXcqIGl0ZW0gPSBxb2JqZWN0X2Nhc3Q8Y29uc3QgUUdyYXBoaWNzV2ViVmll
dyo+KGNsaWVudC0+cGx1Z2luUGFyZW50KCkpKSB7CisgICAgICAgICAgICAgICAgUV9BU1NFUlQo
aXRlbS0+c2NlbmUoKSAmJiAhaXRlbS0+c2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkpOworICAg
ICAgICAgICAgICAgIGNvbnN0IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52
aWV3cygpLnZhbHVlKDApOworICAgICAgICAgICAgICAgIGNvbnN0IFFQb2ludCBhZGQgPSB2aWV3
LT5tYXBGcm9tU2NlbmUoaXRlbS0+cG9zKCkpOworICAgICAgICAgICAgICAgIHBsdWdpblZpZXdH
bG9iYWxQb3MgKz0gYWRkOworICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgoUVNpemUp
KG1fd2luZG93UmVjdC5zaXplKCkpICE9IG1fcGl4bWFwLnNpemUoKSkgeworICAgICAgICAgICAg
bV9waXhtYXAgPSBRUGl4bWFwKG1fd2luZG93UmVjdC5zaXplKCkpOworICAgICAgICAgICAgbV9w
aXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICB9CisKKyAgICAgICAgbV9ucFdp
bmRvdy54ID0gcGx1Z2luVmlld0dsb2JhbFBvcy54KCk7CisgICAgICAgIG1fbnBXaW5kb3cueSA9
IHBsdWdpblZpZXdHbG9iYWxQb3MueSgpOworICAgICAgICBjb25zdCBJbnRSZWN0IGZyYW1lID0g
ZnJhbWVSZWN0KCk7CisgICAgICAgIG1fbnBXaW5kb3cud2lkdGggPSBmcmFtZS53aWR0aCgpOwor
ICAgICAgICBtX25wV2luZG93LmhlaWdodCA9IGZyYW1lLmhlaWdodCgpOworICAgICAgICBtX25w
V2luZG93LmNsaXBSZWN0LnRvcCA9IG1fY2xpcFJlY3QueSgpOworICAgICAgICBtX25wV2luZG93
LmNsaXBSZWN0LmxlZnQgPSBtX2NsaXBSZWN0LngoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlw
UmVjdC5yaWdodCA9IG1fY2xpcFJlY3Qud2lkdGgoKSArIG1fY2xpcFJlY3QueCgpIC0gMTsKKyAg
ICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LmhlaWdodCgpICsg
bV9jbGlwUmVjdC55KCkgLSAxOworICAgICAgICBtX2RmYlN1cmZhY2UgPSBRVF9QUkVQRU5EX05B
TUVTUEFDRShxdF9kaXJlY3RmYl9zdXJmYWNlX2Zvcl9waXhtYXAobV9waXhtYXApKTsKKyAgICAg
ICAgbV9ucFdpbmRvdy53aW5kb3cgPSBtX2RmYlN1cmZhY2U7CisgICAgICAgIG1fbnBXaW5kb3cu
dHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG1f
cGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRDYWxsU2V0V2luZG93TW9y
ZVRoYW5PbmNlKSkgewpAQCAtNTk1LDE1ICsxMzMwLDEyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5Q
RXJyCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFi
bGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpCiB7CiAgICAgc3dpdGNoICh2YXJpYWJs
ZSkgeworI2lmbmRlZiBYUF9ERkIKICAgICBjYXNlIE5QTlZ4RGlzcGxheToKICAgICAgICAgKih2
b2lkICoqKXZhbHVlID0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICAgICAgKnJlc3VsdCA9IE5Q
RVJSX05PX0VSUk9SOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGNhc2UgTlBOVnh0QXBw
Q29udGV4dDoKLSAgICAgICAgKnJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotCiAgICAgY2FzZSBOUE5WbmV0c2NhcGVXaW5kb3c6IHsKICAgICAgICAg
dm9pZCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHZhbHVlKTsKICAgICAgICAgUVdlYlBh
Z2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKTsKQEAgLTYxMSw3ICsxMzQzLDcgQEAgYm9vbCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBF
cnJvciogcmUKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0KKyNlbmRpZgogICAgIGNhc2UgTlBOVlRvb2xraXQ6CiAgICAgICAg
IGlmIChtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtSZXF1aXJlc0d0a1Rv
b2xLaXQpKSB7CiAgICAgICAgICAgICAqKCh1aW50MzJfdCAqKXZhbHVlKSA9IDI7CkBAIC02NTYs
NiArMTM4OCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIGludmFsaWRh
dGUoKTsKIH0KIAorI2lmbmRlZiBYUF9ERkIKIHN0YXRpYyBEaXNwbGF5ICpnZXRQbHVnaW5EaXNw
bGF5KCkKIHsKICAgICAvLyBUaGUgcGx1Z2luIHRvb2xraXQgbWlnaHQgcnVuIHVzaW5nIGEgZGlm
ZmVyZW50IFggY29ubmVjdGlvbi4gQXQgdGhlIG1vbWVudCwgd2Ugb25seQpAQCAtNzIxLDEyICsx
NDU0LDE0IEBAIHN0YXRpYyB2b2lkIGdldFZpc3VhbEFuZENvbG9ybWFwKGludCBkZXB0aCwgVmlz
dWFsICoqdmlzdWFsLCBDb2xvcm1hcCAqY29sb3JtYXApCiAgICAgaWYgKCp2aXN1YWwpCiAgICAg
ICAgICpjb2xvcm1hcCA9IFhDcmVhdGVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBRWDEx
SW5mbzo6YXBwUm9vdFdpbmRvdygpLCAqdmlzdWFsLCBBbGxvY05vbmUpOwogfQorI2VuZGlmCiAK
IGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7CiAgICAgQVNTRVJUKG1faXNTdGFy
dGVkKTsKICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1
bGx5KTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCkt
PmdldHZhbHVlKSB7CiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRo
aXMpOwogICAgICAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhKU0M6
OlNpbGVuY2VBc3NlcnRpb25zT25seSk7CkBAIC03NTEsMTIgKzE0ODYsNzEgQEAgYm9vbCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQoMCk7CiAg
ICAgICAgIG1fcGx1Z2luRGlzcGxheSA9IGdldFBsdWdpbkRpc3BsYXkoKTsKICAgICB9CisjZWxz
ZQorICAgIGlmIChtX2lzV2luZG93ZWQpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIERGQldpbmRvd0luZm8qIHdzSW5mbyA9IDA7CisgICAg
UVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRv
dygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCB8fCAhY2xpZW50LT5v
d25lcldpZGdldCgpKSB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3Rh
dHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIERGQlJlc3VsdCByZXN1bHQgPSBEaXJlY3RGQkNyZWF0ZSgmbV9kZmIp
OworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBnb3RvIGVuZDsKKworICAgIHJl
c3VsdCA9IG1fZGZiLT5HZXREaXNwbGF5TGF5ZXIobV9kZmIsIERMSURfUFJJTUFSWSwgJm1fZGZi
RGlzcGxheUxheWVyKTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykKKyAgICAgICAgZ290byBl
bmQ7CisKKyAgICByZXN1bHQgPSBtX2RmYkRpc3BsYXlMYXllci0+R2V0V2luZG93KG1fZGZiRGlz
cGxheUxheWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8REZCV2luZG93SUQ+KGNsaWVudC0+b3duZXJXaWRnZXQoKS0+cHJvcGVydHkoIl9x
X0RpcmVjdEZCV2luZG93SUQiKS50b0ludCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZtX2RmYldpbmRvdyk7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0sp
CisgICAgICAgIGdvdG8gZW5kOworICAgIHdzSW5mbyA9IG5ldyBERkJXaW5kb3dJbmZvOworICAg
IHdzSW5mby0+ZGZiID0gbV9kZmI7CisgICAgd3NJbmZvLT53aW5kb3cgPSBtX2RmYldpbmRvdzsK
KyAgICB3c0luZm8tPmxheWVyID0gbV9kZmJEaXNwbGF5TGF5ZXI7CisgICAgbV9ucFdpbmRvdy53
c19pbmZvID0gd3NJbmZvOworICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURyYXdh
YmxlOworICAgIG1fbnBXaW5kb3cud2luZG93ID0gMDsgLy8gTm90IHVzZWQ/CisgICAgbV9ucFdp
bmRvdy54ID0gMDsKKyAgICBtX25wV2luZG93LnkgPSAwOworICAgIG1fbnBXaW5kb3cud2lkdGgg
PSAtMTsKKyAgICBtX25wV2luZG93LmhlaWdodCA9IC0xOworCitlbmQ6CisgICAgaWYgKHJlc3Vs
dCAhPSBERkJfT0spIHsKKyAgICAgICAgaWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgICAgICBt
X2RmYldpbmRvdy0+UmVsZWFzZShtX2RmYldpbmRvdyk7CisgICAgICAgICAgICBtX2RmYldpbmRv
dyA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9kZmJEaXNwbGF5TGF5ZXIpCisgICAg
ICAgICAgICBtX2RmYkRpc3BsYXlMYXllci0+UmVsZWFzZShtX2RmYkRpc3BsYXlMYXllcik7CisK
KyAgICAgICAgaWYgKG1fZGZiKSB7CisgICAgICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7
CisgICAgICAgICAgICBtX2RmYiA9IDA7CisgICAgICAgIH0KKyAgICAgICAgRGlyZWN0RkJFcnJv
cigiUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpIiwgcmVzdWx0KTsKKyAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1
Z2luOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCiAKICAgICBzaG93KCk7
CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCogd3NpID0g
bmV3IE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QoKTsKICAgICB3c2ktPnR5cGUgPSAwOwotCiAg
ICAgaWYgKG1faXNXaW5kb3dlZCkgewogICAgICAgICBjb25zdCBRWDExSW5mbyogeDExSW5mbyA9
ICZwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT54MTFJbmZvKCk7CiAKQEAgLTc2NCw3ICsxNTU4LDYg
QEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgd3NpLT52aXN1YWwg
PSAoVmlzdWFsKil4MTFJbmZvLT52aXN1YWwoKTsKICAgICAgICAgd3NpLT5kZXB0aCA9IHgxMUlu
Zm8tPmRlcHRoKCk7CiAgICAgICAgIHdzaS0+Y29sb3JtYXAgPSB4MTFJbmZvLT5jb2xvcm1hcCgp
OwotCiAgICAgICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZVdpbmRvdzsKICAgICAg
ICAgbV9ucFdpbmRvdy53aW5kb3cgPSAodm9pZCopcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2lu
SWQoKTsKICAgICAgICAgbV9ucFdpbmRvdy53aWR0aCA9IC0xOwpAQCAtNzkzLDggKzE1ODYsOCBA
QCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBtX25wV2luZG93Lndp
ZHRoID0gLTE7CiAgICAgICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gLTE7CiAgICAgfQotCiAgICAg
bV9ucFdpbmRvdy53c19pbmZvID0gd3NpOworI2VuZGlmCiAKICAgICBpZiAoIShtX3BsdWdpbi0+
cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKSB7
CiAgICAgICAgIHVwZGF0ZVBsdWdpbldpZGdldCgpOwpAQCAtODA5LDExICsxNjAyLDMzIEBAIHZv
aWQgUGx1Z2luVmlldzo6cGxhdGZvcm1EZXN0cm95KCkKICAgICBpZiAocGxhdGZvcm1QbHVnaW5X
aWRnZXQoKSkKICAgICAgICAgZGVsZXRlIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCk7CiAKKyNpZm5k
ZWYgWFBfREZCCiAgICAgaWYgKG1fZHJhd2FibGUpCiAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJ
bmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwogCiAgICAgaWYgKG1fY29sb3JtYXApCiAgICAg
ICAgIFhGcmVlQ29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9jb2xvcm1hcCk7CisjZWxz
ZQorICAgIGRlbGV0ZSBtX2V2ZW50RmlsdGVyOworICAgIG1fZXZlbnRGaWx0ZXIgPSAwOworICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxERkJXaW5kb3dJbmZvKj4obV9ucFdpbmRvdy53c19pbmZvKTsK
KyAgICBtX25wV2luZG93LndzX2luZm8gPSAwOworICAgIG1fcGl4bWFwID0gUVBpeG1hcCgpOwor
ICAgIGlmIChtX2RmYldpbmRvdykgeworICAgICAgICBtX2RmYldpbmRvdy0+UmVsZWFzZShtX2Rm
YldpbmRvdyk7CisgICAgICAgIG1fZGZiV2luZG93ID0gMDsKK30KKworICAgIGlmIChtX2RmYkRp
c3BsYXlMYXllcikgeworICAgICAgICBtX2RmYkRpc3BsYXlMYXllci0+UmVsZWFzZShtX2RmYkRp
c3BsYXlMYXllcik7CisgICAgICAgIG1fZGZiRGlzcGxheUxheWVyID0gMDsKKyAgICB9CisKKyAg
ICBpZiAobV9kZmIpIHsKKyAgICAgICAgbV9kZmItPlJlbGVhc2UobV9kZmIpOworICAgICAgICBt
X2RmYiA9IDA7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFsdCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63351</attachid>
            <date>2010-08-03 10:48:46 -0700</date>
            <delta_ts>2010-08-03 15:04:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100803104431.patch</filename>
            <type>text/plain</type>
            <size>44221</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTZlZjdjNTFmZjgxM2IyMmRiYmM2ODc3MTkzYWIwNjc3ZWMzMTdlMi4uMjdjZmI3Nzg2Y2NkZDM3
ZTgxMmZkMjdiN2VjMmMxYzFmYjU1ODM2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wNi0wNyAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBRdFdlYktpdCBkb2Vzbid0IHN1cHBvcnQgTlBBUEkg
Zm9yIERpcmVjdEZCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVz
cyBOUEFQSSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RG
Qi4gSXQncyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAg
ICAgIEZsYXNobGl0ZS4KKworICAgICAgICBUaGUgY29kZSBpcyBsYXJnZWx5IGJhc2VkIG9uIHRo
ZSBRdC9YMTEgaW1wbGVtZW50YXRpb24gb2Ygd2luZG93bGVzcworICAgICAgICBOUEFQSS4gSXQg
YWRkcyB0aGUgZGVmaW5lIFhQX0RGQiB3aGVuIGVuYWJsZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuCisgICAgICAgIFgxMSBhbmQgRGlyZWN0RkIgd2hlbiBYUF9VTklYIGlzIGRlZmluZWQuIFRo
aXMgbWVhbnMgdGhhdCBucGFwaS5oIHdpbGwKKyAgICAgICAgZnVuY3Rpb24gdGhlIHNhbWUgd2F5
IGZvciBYMTEgYnVpbGRzLgorCisgICAgICAgIFNpbmNlIHRoZSBub3JtYWwgdXNlIGNhc2UgZm9y
IE5QQVBJIG9uIERpcmVjdEZCIGlzIGZvciB2aWRlbyBvbiBzaXRlcworICAgICAgICBsaWtlIHlv
dXR1YmUgaXQncyBpbXBvcnRhbnQgdG8gbWFrZSBzdXJlIHRoZSBwbHVnaW4gZ2V0cyBhbiB1cGRh
dGVkCisgICAgICAgIGdsb2JhbCBnZW9tZXRyeSBpZiB0aGUgd2luZG93IG1vdmVzIG9yIHJlc2l6
ZXMuIFRoaXMgaXMgZHVlIHRvIHRoZQorICAgICAgICBmYWN0IHRoYXQgdGhlIHZpZGVvIHdpbGwg
YmUgcmVuZGVyZWQgaW50byBhIGRpZmZlcmVudCBsYXllciByYXRoZXIKKyAgICAgICAgdGhhbiBh
Y3R1YWxseSBpbnRvIHRoZSBvZmZzY3JlZW4gc3VyZmFjZSB0aGF0J3MgYmVpbmcgcmVuZGVyZWQg
dG8uCisKKyAgICAgICAgSSBoYXZlIGEgbWFudWFsIHRlc3QgY2FzZSB0aGF0IEkgY291bGQgaGVs
cCBwZW9wbGUgc2V0IHVwIGZvciB0ZXN0aW5nCisgICAgICAgIHdpdGggUXQvUVdTIERpcmVjdEZC
IGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgaXQgYXV0b21hdGVkLgorCisgICAgICAgIFRv
IGVuYWJsZSBOUEFQSSBmb3IgRGlyZWN0RkIgdGhlIGRldmVsb3BlciBuZWVkcyB0byBtYWtlIHN1
cmUKKyAgICAgICAgcW1ha2UuY29uZiBjb250YWlucyB0aGlzIGxpbmU6CisKKyAgICAgICAgREVG
SU5FUyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSV9ESVJFQ1RGQgorCisgICAgICAgIFF0
IG11c3QgYWxzbyBiZSBjb25maWd1cmVkIHdpdGggdGhlIC1xdC1nZngtZGlyZWN0ZmIgb3B0aW9u
IChhcworICAgICAgICBvcHBvc2VkIHRvIC1wbHVnaW4tZ2Z4LWRpcmVjdGZiKQorCisgICAgICAg
ICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogYnJpZGdl
L25wYXBpLmg6CisgICAgICAgICogYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oOgorICAgICAg
ICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAg
ICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldp
ZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjppbml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdERp
cmVjdEZCTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVN
b3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5F
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6V2luZG93TW92ZUV2
ZW50RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd01vdmVFdmVudEZpbHRlcjo6ZXZl
bnRGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93TW92ZUV2ZW50RmlsdGVyOjp0aW1l
ckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisKIDIwMTAtMDgtMDMgIEtldmlu
IE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgW3d4XSBCdWls
ZCBmaXgsIGRvbid0IGJ1aWxkIHNvbWUgRE9NIGJpbmRpbmdzIHdlIGRvbid0IHVzZS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDJm
ZGZjZDEzMGI4NjE2ZDI5NjMyOTY2NDZkNDY5ODc1NTBiZjY4MGEuLmFkYzg0NGM0YTFlNzZlMWQ2
YzcxYTcyZDVlN2UyNjBjMmNiMDYwY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTcsNiArOTcsMTAgQEAgZ3JlYXRlclRoYW4o
UVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChO
UEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVD
VEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVfTkVU
U0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjogewog
ICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBiZWI1
ZmY1ZWQyNDdhYWRjNjA4ZGI0NGI0NmQ2YmZhNDM4N2NkNTUuLmQyNDRjZjY5NTIyNDg1ZDg4NjE4
MDE1YmE4MWQ3OTI2ZjBjNDY4NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjMyMSwxNiArMjMyMSwxOSBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAgICAgICAgICAgICAgICAg
SU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAgICAgIyBOb3RlOiBYUF9N
QUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGlyZWN0ZmIgeworICAgICAg
ICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAgICAgICAgICAgICBRTUFL
RV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgICAgICBM
SUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgIH0gZWxzZTohZW1iZWRk
ZWQgewogICAgICAgICAgICAgICAgICAgICBDT05GSUcgKz0geDExCiAgICAgICAgICAgICAgICAg
ICAgIExJQlMgKz0gLWxYcmVuZGVyCisgICAgICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gcGx1
Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKyAgICAgICAgICAgICAgICAgICAgSEVBREVS
UyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgU09VUkNFUyArPSBcCi0gICAgICAgICAgICAgICAgICAgIHBsdWdpbnMv
cXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9x
dC9QbHVnaW5QYWNrYWdlUXQuY3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXQuY3BwCi0gICAgICAgICAgICAgICAgSEVBREVSUyArPSBcCi0gICAgICAgICAg
ICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuaAogICAgICAgICAgICAgICAg
IERFRklORVMgKz0gWFBfVU5JWAogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oIGIvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAppbmRleCA1
ZmM4ZTQ2MTk5OGU4ZGQ1MGVjMzgwNzkyYjM3YjU5N2Y3ZDEyZjdiLi5mODMxNDhmYzBjYmIxM2Uw
ZmM0YmZlOWU3YWU0NDZkYzgxODQyYjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ucGFw
aS5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgKQEAgLTg5LDcgKzg5LDcgQEAKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAm
JiAhZGVmaW5lZChYUF9ERkIpCiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KICNpbmNsdWRlIDxYMTEv
WHV0aWwuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQzLDcgKzI0Myw3IEBAIHR5cGVkZWYg
c3RydWN0IF9OUFNpemUKIC8qIEV4YWN0IG1lYW5pbmcgbXVzdCBiZSBzcGVjJ2QgaW4gZXZlbnQg
bW9kZWwuICovCiAjZGVmaW5lIGtOUEV2ZW50U3RhcnRJTUUgMgogCi0jaWYgZGVmaW5lZChYUF9V
TklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogLyoKICAqIFVu
aXggc3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMKICAqLwpAQCAtNTIzLDYgKzUy
Myw5IEBAIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgIHVpbnRwdHJfdCB3UGFyYW07CiAgIHVp
bnRwdHJfdCBsUGFyYW07CiB9IE5QRXZlbnQ7CisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyNpbmNs
dWRlIDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBOUEV2ZW50OwogI2VsaWYgZGVmaW5l
ZChYUF9PUzIpCiB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogewpAQCAtNTQ0LDcgKzU0Nyw3IEBA
IHR5cGVkZWYgUmduSGFuZGxlIE5QUURSZWdpb247CiB0eXBlZGVmIENHUGF0aFJlZiBOUENHUmVn
aW9uOwogI2VsaWYgZGVmaW5lZChYUF9XSU4pCiB0eXBlZGVmIEhSR04gTlBSZWdpb247Ci0jZWxp
ZiBkZWZpbmVkKFhQX1VOSVgpCisjZWxpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQ
X0RGQikKIHR5cGVkZWYgUmVnaW9uIE5QUmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9TWU1CSUFO
KQogdHlwZWRlZiBRUmVnaW9uKiBOUFJlZ2lvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdl
L25wcnVudGltZV9pbnRlcm5hbC5oIGIvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFs
LmgKaW5kZXggNzM2YTdmMTU2Yjc5Y2M2ZTU5ZGQ4NTY5Nzg5MDdhODVmODBkNmExOS4uMDE1OTMx
ZTIwNjVlNGZkMjNiY2UxZDdkNDRlYjM2MWU4ZGFkYzU0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
cmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1l
X2ludGVybmFsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJucGZ1bmN0aW9ucy5oIgog
I2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQgWFBf
VU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2UuaD4K
IAogICAgICN1bmRlZiBOb25lCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNTBlY2E3ZWVlNjgz
ODg2N2JjYzA0ODZmZmM0YzkwN2NiNTYxNTQ1Yy4uNDE4NmMxOTU1YzFhN2NlOGZmY2E5MmJmNWQx
NmIxMjc5ZmEzYjIzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMzYzLDcgKzM2Myw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQ
bHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1gx
MSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRv
dy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3Qg
KiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKQEAgLTgy
Myw3ICs4MjMsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogICAgICwgbV9pc1RyYW5zcGFy
ZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzV2Fp
dGluZ1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBf
VU5JWCkgJiYgIWRlZmluZWQgKFhQX0RGQikKICAgICAsIG1fbmVlZHNYRW1iZWQoZmFsc2UpCiAj
ZW5kaWYKICNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAg
LTg0NCwxMCArODQ0LDE4IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAjZW5kaWYKICNpZiBk
ZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV9o
YXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKKyNpZiAhZGVmaW5lZCBYUF9ERkIKICAgICAs
IG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFsKDApCiAgICAgLCBtX2NvbG9ybWFwKDApCiAg
ICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbHNlCisgICAgLCBtX2V2ZW50RmlsdGVyKDApCisg
ICAgLCBtX2RmYlN1cmZhY2UoMCkKKyAgICAsIG1fZGZiKDApCisgICAgLCBtX2RmYkRpc3BsYXlM
YXllcigwKQorICAgICwgbV9kZmJXaW5kb3coMCkKKyNlbmRpZgogI2VuZGlmCiAgICAgLCBtX2xv
YWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgwKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKaW5kZXggNDMxY2UwZTcwMjZjY2Y3OGJjZTIwYWFkNzdiZmUyZGJlNDc4NDgyNS4u
M2FmMTdlMDhlOTU4N2FkN2E3MzRlNGRkOGU3ZDAxNDhiOWZiYWIxOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCkBAIC00NCw2ICs0NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lmIGRlZmlu
ZWQgWFBfREZCICYmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8
ZGlyZWN0ZmIuaD4KKyNlbmRpZgogCiAjaWYgT1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKFFUKSB8
fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7CkBAIC0zMTYsNyAr
MzIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faGF2ZUluaXRpYWxp
emVkOwogICAgICAgICBib29sIG1faXNXYWl0aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQoWFBf
VU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAgICAg
Ym9vbCBtX25lZWRzWEVtYmVkOwogI2VuZGlmCiAKQEAgLTM2NiwxMiArMzcwLDIxIEBAIHByaXZh
dGU6CiAKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgICAgICBib29sIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBYUF9E
RkIKICAgICAgICAgUGl4bWFwIG1fZHJhd2FibGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1YWw7
CiAgICAgICAgIENvbG9ybWFwIG1fY29sb3JtYXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1Z2lu
RGlzcGxheTsKIAogICAgICAgICB2b2lkIGluaXRYRXZlbnQoWEV2ZW50KiBldmVudCk7CisjZWxz
ZQorICAgICAgICBRT2JqZWN0ICptX2V2ZW50RmlsdGVyOworICAgICAgICBRUGl4bWFwIG1fcGl4
bWFwOworICAgICAgICBJRGlyZWN0RkJTdXJmYWNlICptX2RmYlN1cmZhY2U7CisgICAgICAgIElE
aXJlY3RGQiAqbV9kZmI7CisgICAgICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciAqbV9kZmJEaXNw
bGF5TGF5ZXI7CisgICAgICAgIElEaXJlY3RGQldpbmRvdyAqbV9kZmJXaW5kb3c7CisjZW5kaWYK
ICNlbmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVjdCB0
byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5j
cHAKaW5kZXggMGNhMzU2YjRlNDE2M2Q5YmNmNTE4YzE3NjI2NjYzZWY0ZGI4MGI0MC4uN2I2ODk0
YjdjZTg3NDRkZDhjYTUzZDI4YTViZTFhMDQwNzY1OGVlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNpbmNsdWRlICJQbHVnaW5EZWJ1
Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5NYWluVGhy
ZWFkU2NoZWR1bGVyLmgiCkBAIC02OCw2ICs2Nyw4IEBACiAjaW5jbHVkZSA8UUtleUV2ZW50Pgog
I2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CisjaWZkZWYgUV9XU19YMTEK
KyNpbmNsdWRlICJQbHVnaW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgPFFYMTFJbmZvPgogI2lu
Y2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc1LDYgKzc2LDIyIEBA
CiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVyLmg+
CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgWFBfREZCCisjaW5jbHVkZSA8UUJhc2ljVGltZXI+Cisj
aW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNpbmNs
dWRlIDxRR3JhcGhpY3NXZWJWaWV3Pgorc3RydWN0IERGQldpbmRvd0luZm8geworICAgIElEaXJl
Y3RGQiogZGZiOworICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAgSURpcmVj
dEZCV2luZG93KiB3aW5kb3c7Cit9OworUVRfQkVHSU5fTkFNRVNQQUNFCisjd2FybmluZyBmb29v
YmFyCitleHRlcm4gUV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZiX3N1
cmZhY2VfZm9yX3BpeG1hcChjb25zdCBRUGl4bWFwICZwaXhtYXApOworUVRfRU5EX05BTUVTUEFD
RQorI2VuZGlmCisKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNWYWx1ZS5oPgogCkBAIC0xMTAsNiArMTI3LDggQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRh
dGVQbHVnaW5XaWRnZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVjdCAm
JiBtX2NsaXBSZWN0ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYg
WFBfREZCCisjd2FybmluZyBmb28KICAgICBpZiAoIW1faXNXaW5kb3dlZCAmJiBtX3dpbmRvd1Jl
Y3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CiAgICAgICAgIGlmIChtX2RyYXdh
YmxlKQogICAgICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3
YWJsZSk7CkBAIC0xMTgsNiArMTM3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5X
aWRnZXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5QU2V0V2luZG93
Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAgICAgICAgUUFw
cGxpY2F0aW9uOjpzeW5jWCgpOyAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgc2VydmVyIGtub3dzIGFi
b3V0IHRoZSBEcmF3YWJsZQogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gZG8gbm90IGNhbGwgc2V0
TlBXaW5kb3dJZk5lZWRlZCBpbW1lZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24gcGFpbnQoKQog
ICAgIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE3MiwxNiArMTkyLDE2
IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiByZWN0KQogCiAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwogCisjaWZuZGVm
IFhQX0RGQgogICAgIGlmIChtX2lzV2luZG93ZWQgfHwgIW1fZHJhd2FibGUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNvbnN0IGJvb2wgc3luY1ggPSBtX3BsdWdpbkRpc3BsYXkgJiYgbV9wbHVn
aW5EaXNwbGF5ICE9IFFYMTFJbmZvOjpkaXNwbGF5KCk7Ci0KICAgICBRUGFpbnRlciogcGFpbnRl
ciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIEludFJlY3QgZXhwb3NlZFJlY3Qo
cmVjdCk7CiAgICAgZXhwb3NlZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICAgICBleHBv
c2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOwogCisgICAg
Y29uc3QgYm9vbCBzeW5jWCA9IG1fcGx1Z2luRGlzcGxheSAmJiBtX3BsdWdpbkRpc3BsYXkgIT0g
UVgxMUluZm86OmRpc3BsYXkoKTsKICAgICBRUGl4bWFwIHF0RHJhd2FibGUgPSBRUGl4bWFwOjpm
cm9tWDExUGl4bWFwKG1fZHJhd2FibGUsIFFQaXhtYXA6OkV4cGxpY2l0bHlTaGFyZWQpOwogICAg
IGNvbnN0IGludCBkcmF3YWJsZURlcHRoID0gKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0Kilt
X25wV2luZG93LndzX2luZm8pLT5kZXB0aDsKICAgICBBU1NFUlQoZHJhd2FibGVEZXB0aCA9PSBx
dERyYXdhYmxlLmRlcHRoKCkpOwpAQCAtMjQwLDYgKzI2MCwyNCBAQCB2b2lkIFBsdWdpblZpZXc6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAog
ICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRS
ZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyNlbHNlCisgICAgREZCRXZl
bnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7
CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQgPSBkZmJFdmVudC51c2VyOworICAgIHVzZXJF
dmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAg
IHVzZXJFdmVudC5kYXRhID0gJm1fbnBXaW5kb3c7CisgICAgZGlzcGF0Y2hOUEV2ZW50KGRmYkV2
ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
OworICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CisgICAgZXhwb3NlZFJlY3QuaW50ZXJz
ZWN0KGZyYW1lUmVjdCgpKTsKKyAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QoKS54KCks
IC1mcmFtZVJlY3QoKS55KCkpOworICAgIGNvbnN0IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGUg
b2xkTW9kZSA9IHBhaW50ZXItPmNvbXBvc2l0aW9uTW9kZSgpOworICAgIHBhaW50ZXItPnNldENv
bXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgcGFp
bnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgp
LCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBtX3BpeG1hcCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlv
bk1vZGUob2xkTW9kZSk7CisjZW5kaWYKIH0KIAogLy8gVE9ETzogVW5pZnkgYWNyb3NzIHBvcnRz
LgpAQCAtMjU4LDYgKzI5Niw3IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5Q
RXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBhY2NlcHRlZDsKIH0KIAorI2lmbmRlZiBYUF9ERkIK
IHZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCogeEV2ZW50LCBRV2lkZ2V0KiBvd25l
cldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnkuc2VyaWFsID0gMDsgLy8gd2UgYXJlIHVuYXdh
cmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNzZWQgYnkgWCBTZXJ2ZXIKQEAgLTI5OSw2ICsz
MzgsNTM0IEBAIHZvaWQgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50KiB4RXZlbnQs
IEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIHhFdmVudC0+eGtleS54X3Jvb3QgPSAwOwogICAg
IHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBp
bml0RGlyZWN0RkJLZXlib2FyZEV2ZW50KERGQklucHV0RXZlbnQqIGRmYkV2ZW50LCBjb25zdCBR
S2V5RXZlbnQqIHF0RXZlbnQpCit7CisgICAgZGZiRXZlbnQtPmNsYXp6ID0gREZFQ19JTlBVVDsK
KyAgICBkZmJFdmVudC0+dHlwZSA9IChxdEV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpLZXlQcmVz
cyA/IERJRVRfS0VZUFJFU1MgOiBESUVUX0tFWVJFTEVBU0UpOworICAgIHVuc2lnbmVkIGludCBm
bGFncyA9IChESUVGX0tFWVNZTUJPTCB8IERJRUZfTU9ESUZJRVJTKTsKKyAgICBpZiAocXRFdmVu
dC0+aXNBdXRvUmVwZWF0KCkpCisgICAgICAgIGZsYWdzIHw9IERJRUZfUkVQRUFUOworICAgIGNv
bnN0IFF0OjpLZXlib2FyZE1vZGlmaWVyIG1vZGlmaWVyc1tdID0geyBRdDo6U2hpZnRNb2RpZmll
ciwgUXQ6OkNvbnRyb2xNb2RpZmllciwgUXQ6OkFsdE1vZGlmaWVyLCBRdDo6TWV0YU1vZGlmaWVy
IH07CisgICAgY29uc3QgREZCSW5wdXREZXZpY2VNb2RpZmllck1hc2sgZGZiTW9kaWZpZXJzW10g
PSB7IERJTU1fU0hJRlQsIERJTU1fQ09OVFJPTCwgRElNTV9BTFQsIERJTU1fTUVUQSB9OworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIGlmIChxdEV2ZW50LT5tb2Rp
ZmllcnMoKSAmIG1vZGlmaWVyc1tpXSkKKyAgICAgICAgICAgIGRmYkV2ZW50LT5tb2RpZmllcnMg
PSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhkZmJFdmVudC0+bW9kaWZpZXJzIHwgZGZiTW9k
aWZpZXJzW2ldKTsKKyAgICB9CisgICAgc3dpdGNoIChxdEV2ZW50LT5rZXkoKSkgeworICAgIGNh
c2UgUXQ6OktleV9CYWNrc3BhY2U6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19CQUNLU1BBQ0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0JBQ0tTUEFDRTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1RhYjoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1RBQjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
VEFCOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmV0dXJuOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUkVUVVJOOworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Vz
Y2FwZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VTQ0FQRTsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRVNDQVBFOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRGVsZXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
REVMRVRFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ERUxFVEU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfQ1VSU09SX0xFRlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SaWdodDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9SSUdIVDsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9VcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9VUDsKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9Eb3duOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VS
U09SX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0RPV047CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JbnNlcnQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19JTlNFUlQ7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0lO
U0VSVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hvbWU6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IT01FOworICAgICAgICBkZmJFdmVudC0+a2V5X2lk
ID0gRElLSV9IT01FOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRW5kOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRU5EOworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9FTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYWdl
VXA6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQUdFX1VQOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QQUdFX1VQOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUGFnZURvd246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19QQUdFX0RPV047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BBR0VfRE9XTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ByaW50OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfUFJJTlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYXVzZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1BBVVNFOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2VsZWN0OgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfU0VMRUNUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfT3BlblVybDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0dPVE87
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9DbGVhcjoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0NMRUFSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTWVudToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01FTlU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IZWxwOgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfSEVMUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0hvbWVQYWdlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfSU5URVJORVQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MYXVuY2hNYWlsOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfTUFJTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0Zhdm9yaXRlczoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0ZBVk9SSVRFUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhY2s6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19CQUNLOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRm9yd2FyZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX0ZPUldBUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVVcDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1ZPTFVNRV9VUDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZURvd246CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19WT0xVTUVfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1ZvbHVtZU11dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19N
VVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFQbGF5OgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfUExBWTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X01lZGlhU3RvcDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1NUT1A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVJlY29yZDoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1JFQ09SRDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUHJldmlvdXM6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19QUkVWSU9VUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X01lZGlhTmV4dDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX05FWFQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMToKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX0YxOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9G
MTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0YyOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfRjI7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0YyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjM6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfRjM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y0OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0g
RElLSV9GNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y1OgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjU7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX0Y1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjY6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GNjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfRjY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNzoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0Y3OworICAgICAgICBkZmJFdmVudC0+a2V5
X2lkID0gRElLSV9GNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y4OgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjg7CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfaWQgPSBESUtJX0Y4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjk6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GOTsKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9pZCA9IERJS0lfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMTA6
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19GMTA7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX0YxMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0YxMToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0YxMTsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjExOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfRjEyOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRjEyOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9GMTI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9TaGlmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NI
SUZUOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TSElGVF9MOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29udHJvbDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX0NPTlRST0w7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0NP
TlRST0xfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdDoKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FMVDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbHRHcjoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FMVEdSOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfTWV0YToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX01FVEE7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01FVEFfTDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1N1cGVyX0w6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19TVVBFUjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJ
S0lfU1VQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0h5cGVyX0w6Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19IWVBFUjsKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9pZCA9IERJS0lfSFlQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0NhcHNMb2NrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ0FQU19M
T0NLOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9DQVBTX0xPQ0s7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1Mb2NrOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfTlVNX0xPQ0s7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X05VTV9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2Nyb2xsTG9jazoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NDUk9MTF9MT0NLOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TQ1JPTExfTE9DSzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVkb3Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3lt
Ym9sID0gRElLU19ERUFEX0FCT1ZFRE9UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRGVhZF9BYm92ZXJpbmc6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19E
RUFEX0FCT1ZFUklORzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWN1
dGU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FDVVRFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9CcmV2ZToKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQlJFVkU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9EZWFkX0Nhcm9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfREVBRF9DQVJPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2Vk
aWxsYToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0VESUxMQTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2lyY3VtZmxleDoKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0lSQ1VNRkxFWDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfRGlhZXJlc2lzOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ESUFFUkVTSVM7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EZWFkX0RvdWJsZWFjdXRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfREVBRF9ET1VCTEVBQ1VURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfR3JhdmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19E
RUFEX0dSQVZFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Jb3RhOgor
ICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9JT1RBOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9NYWNyb246CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19ERUFEX01BQ1JPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfT2dvbmVrOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1Nf
REVBRF9PR09ORUs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1NlbWl2
b2ljZWRfU291bmQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19ERUFEX1NF
TUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1Rp
bGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9USUxERTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVm9pY2VkX1NvdW5kOgorICAgICAg
ICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfREVBRF9WT0lDRURfU09VTkQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TcGFjZToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTX1NQQUNFOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TUEFD
RTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0V4Y2xhbToKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0VYQ0xBTUFUSU9OX01BUks7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9RdW90ZURibDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1FVT1RBVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X051
bWJlclNpZ246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19OVU1CRVJfU0lH
TjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RvbGxhcjoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0RPTExBUl9TSUdOOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfUGVyY2VudDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1BFUkNFTlRfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FtcGVy
c2FuZDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX0FNUEVSU0FORDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fwb3N0cm9waGU6CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfc3ltYm9sID0gRElLU19BUE9TVFJPUEhFOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfUGFyZW5MZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJ
S1NfUEFSRU5USEVTSVNfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Bh
cmVuUmlnaHQ6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19QQVJFTlRIRVNJ
U19SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzdGVyaXNrOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQVNURVJJU0s7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9QbHVzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9
IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6
S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9LUF9Q
TFVTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29tbWE6CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19DT01NQTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfQ09NTUE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NaW51czoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX01JTlVTX1NJR047CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX01JTlVTX1NJR047CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9QZXJpb2Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19QRVJJT0Q7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1BFUklPRDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NsYXNoOgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1NM
QVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTXzA7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
XzA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8xOgorICAgICAgICBkZmJFdmVu
dC0+a2V5X3N5bWJvbCA9IERJS1NfMTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lf
MTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzI6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU18yOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV8y
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMzoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTXzM7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV80OgorICAgICAgICBkZmJFdmVudC0+
a2V5X3N5bWJvbCA9IERJS1NfNDsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzU6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU181OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV81Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNjoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTXzY7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzY7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV83OgorICAgICAgICBkZmJFdmVudC0+a2V5
X3N5bWJvbCA9IERJS1NfNzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfNzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzg6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU184OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV84OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfOToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9z
eW1ib2wgPSBESUtTXzk7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJXzk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db2xvbjoKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9zeW1ib2wgPSBESUtTX0NPTE9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
U2VtaWNvbG9uOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU0VNSUNPTE9O
OworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9TRU1JQ09MT047CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9MZXNzOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfTEVTU19USEFOX1NJR047CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJ
X0xFU1NfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0VxdWFsOgorICAg
ICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfRVFVQUxTX1NJR047CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX0VRVUFMU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfR3JlYXRlcjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtT
X0dSRUFURVJfVEhBTl9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUXVl
c3Rpb246CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19RVUVTVElPTl9NQVJL
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXQ6CisgICAgICAgIGRmYkV2ZW50
LT5rZXlfc3ltYm9sID0gRElLU19BVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0E6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9BOworICAgICAg
ICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9BOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0I7Cisg
ICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0I7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9DOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExf
QzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfQzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0Q6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9EOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9EOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX0U7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJv
bCA9IERJS1NfU01BTExfRjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfRjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0c6CisgICAgICAgIGRmYkV2ZW50LT5rZXlf
c3ltYm9sID0gRElLU19TTUFMTF9HOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9H
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSDoKKyAgICAgICAgZGZiRXZlbnQt
PmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBE
SUtJX0g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfSTsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9p
ZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0o6CisgICAgICAg
IGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9KOworICAgICAgICBkZmJFdmVudC0+
a2V5X2lkID0gRElLSV9KOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSzoKKyAg
ICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0s7CisgICAgICAgIGRmYkV2
ZW50LT5rZXlfaWQgPSBESUtJX0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9M
OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfTDsKKyAgICAgICAg
ZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X006CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9NOworICAg
ICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9NOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfTjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX047
CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX047CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9POgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01B
TExfTzsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfTzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1A6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9QOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9QOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUToKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX1E7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1E7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5
bWJvbCA9IERJS1NfU01BTExfUjsKKyAgICAgICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfUjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1M6CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9TOworICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElL
SV9TOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVDoKKyAgICAgICAgZGZiRXZl
bnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Q7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBESUtJX1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VOgorICAgICAgICBk
ZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVTsKKyAgICAgICAgZGZiRXZlbnQtPmtl
eV9pZCA9IERJS0lfVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Y6CisgICAg
ICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9WOworICAgICAgICBkZmJFdmVu
dC0+a2V5X2lkID0gRElLSV9WOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVzoK
KyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1c7CisgICAgICAgIGRm
YkV2ZW50LT5rZXlfaWQgPSBESUtJX1c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9YOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfU01BTExfWDsKKyAgICAg
ICAgZGZiRXZlbnQtPmtleV9pZCA9IERJS0lfWDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1k6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9ZOwor
ICAgICAgICBkZmJFdmVudC0+a2V5X2lkID0gRElLSV9ZOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfWjoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X1o7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX1o7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9CcmFja2V0TGVmdDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1i
b2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9CYWNrc2xhc2g6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0gRElLU19C
QUNLU0xBU0g7CisgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQgPSBESUtJX0JBQ0tTTEFTSDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRSaWdodDoKKyAgICAgICAgZGZi
RXZlbnQtPmtleV9zeW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX1JJR0hUOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXNjaWlDaXJjdW06CisgICAgICAgIGRmYkV2ZW50LT5r
ZXlfc3ltYm9sID0gRElLU19DSVJDVU1GTEVYX0FDQ0VOVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1VuZGVyc2NvcmU6CisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9sID0g
RElLU19VTkRFUlNDT1JFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VM
ZWZ0OgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tFVF9M
RUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFyOgorICAgICAgICBkZmJF
dmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVkVSVElDQUxfQkFSOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAgICAgICAgZGZiRXZlbnQtPmtleV9zeW1ib2wg
PSBESUtTX0NVUkxZX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9Bc2NpaVRpbGRlOgorICAgICAgICBkZmJFdmVudC0+a2V5X3N5bWJvbCA9IERJS1NfVElM
REU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoKHF0RXZlbnQtPm1vZGlmaWVycygp
ICYgUXQ6OlNoaWZ0TW9kaWZpZXIpICYmIHF0RXZlbnQtPmtleSgpID49IFF0OjpLZXlfQSAmJiBx
dEV2ZW50LT5rZXkoKSA8PSBRdDo6S2V5X1opCisgICAgICAgIGRmYkV2ZW50LT5rZXlfc3ltYm9s
ID0gREZCSW5wdXREZXZpY2VLZXlTeW1ib2woKGRmYkV2ZW50LT5rZXlfc3ltYm9sIC0gRElLU19T
TUFMTF9BKSArIERJS1NfQ0FQSVRBTF9BKTsKKyAgICBpZiAoZGZiRXZlbnQtPmtleV9pZCAhPSBE
SUtJX1VOS05PV04pIHsKKyAgICAgICAgZmxhZ3MgPSBERkJJbnB1dEV2ZW50RmxhZ3MoZGZiRXZl
bnQtPmZsYWdzIHwgRElFRl9LRVlJRCk7CisgICAgICAgIGlmIChkZmJFdmVudC0+a2V5X2lkID49
IERJS0lfMCAmJiBkZmJFdmVudC0+a2V5X2lkIDw9IERJS0lfOSAmJiBxdEV2ZW50LT5tb2RpZmll
cnMoKSAmIFF0OjpLZXlwYWRNb2RpZmllcikKKyAgICAgICAgICAgIGRmYkV2ZW50LT5rZXlfaWQg
PSBERkJJbnB1dERldmljZUtleUlkZW50aWZpZXIoZGZiRXZlbnQtPmtleV9pZCAtIERJS0lfMCAr
IERJS0lfS1BfMCk7CisgICAgfQorICAgIGRmYkV2ZW50LT5mbGFncyA9IERGQklucHV0RXZlbnRG
bGFncyhmbGFncyk7Cit9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2Fy
ZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMzA4LDE0ICs4NzUsMjEgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZl
bnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkKICAgICAgICAgcmV0dXJuOwog
CisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5w
RXZlbnQpOwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVudCk7
CisjZWxzZQorICAgIERGQkV2ZW50IG5wRXZlbnQ7CisgICAgREZCSW5wdXRFdmVudCYgaW5wdXQg
PSBucEV2ZW50LmlucHV0OworICAgIGluaXREaXJlY3RGQktleWJvYXJkRXZlbnQoJmlucHV0LCBl
dmVudC0+a2V5RXZlbnQoKS0+cXRFdmVudCgpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFkaXNwYXRj
aE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwog
fQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIHVuc2lnbmVkIGludCBpbnB1dEV2ZW50U3RhdGUo
TW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgaW50IHN0YXRlID0gMDsKQEAgLTM5
MCw2ICs5NjQsNDUgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxk
cyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGMKICAgICB4Y3Jvc3Npbmcuc2Ft
ZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2Vsc2UK
K3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KERGQldpbmRvd0V2ZW50
KiBkZmJFdmVudCwgY29uc3QgTW91c2VFdmVudCogZXZlbnQpCit7CisgICAgZGZiRXZlbnQtPmNs
YXp6ID0gREZFQ19XSU5ET1c7CisKKyAgICB1bnNpZ25lZCBpbnQgbW9kaWZpZXJzID0gMDsKKyAg
ICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQ09OVFJP
TDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBESU1N
X1NISUZUOworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBE
SU1NX0FMVDsKKyAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9
IERJTU1fTUVUQTsKKyAgICBkZmJFdmVudC0+bW9kaWZpZXJzID0gREZCSW5wdXREZXZpY2VNb2Rp
Zmllck1hc2sobW9kaWZpZXJzKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JVVFRPTkRPV04gOiBEV0VUX0JVVFRP
TlVQKTsKKyAgICAgICAgc3dpdGNoIChldmVudC0+YnV0dG9uKCkpIHsKKyAgICAgICAgY2FzZSBM
ZWZ0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJQklfTEVGVDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAg
IGRmYkV2ZW50LT5idXR0b24gPSBESUJJX01JRERMRTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgZGZiRXZlbnQtPmJ1dHRvbiA9IERJ
QklfUklHSFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRmYkV2ZW50LT5idXR0b25zID0gREZCSW5w
dXREZXZpY2VCdXR0b25NYXNrKDApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgZGZiRXZlbnQtPnR5cGUgPSBE
V0VUX01PVElPTjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm47CisgICAgfQorfQorI2Vu
ZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVu
dCkKIHsKQEAgLTQwMywxMSArMTAxNiwxMSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNl
RXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAKICAgICAgICAgZm9jdXNQbHVnaW5FbGVtZW50KCk7
CiAgICAgfQotCisgICAgSW50UG9pbnQgcG9zdFpvb21Qb3MgPSByb3VuZGVkSW50UG9pbnQobV9l
bGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRp
b24oKSkpOworI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2
ZW50KCZucEV2ZW50KTsKIAotICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBv
aW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0
ZUxvY2F0aW9uKCkpKTsKIAogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZl
bnQpCiAgICAgICAgIHNldFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVu
dCwgcG9zdFpvb21Qb3MpOwpAQCAtNDE3LDEzICsxMDMwLDQwIEBAIHZvaWQgUGx1Z2luVmlldzo6
aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICAgICAgc2V0WENyb3NzaW5n
RXZlbnRTcGVjaWZpY0ZpZWxkcygmbnBFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zKTsKICAgICBl
bHNlCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkK
KyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisKKyNlbHNlCisgICAgREZCRXZl
bnQgbnBFdmVudDsKKyAgICBtZW1zZXQoJm5wRXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOwor
CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50IHx8
IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpIHsKKyAgICAgICAg
bnBFdmVudC5jbGF6eiA9IERGRUNfV0lORE9XOworICAgICAgICBucEV2ZW50LndpbmRvdy50eXBl
ID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50ID8gRFdFVF9F
TlRFUiA6IERXRVRfTEVBVkUpOworICAgICAgICBucEV2ZW50LndpbmRvdy54ID0gbnBFdmVudC53
aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIG5wRXZlbnQud2luZG93LnkgPSBu
cEV2ZW50LndpbmRvdy5jeSA9IHBvc3Rab29tUG9zLnkoKTsKKyAgICBpZiAoIWRpc3BhdGNoTlBF
dmVudChucEV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAg
ICAgIHJldHVybjsKK30KKworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBucEV2ZW50Lndp
bmRvdzsKKyAgICBtX2RmYldpbmRvdy0+R2V0SUQobV9kZmJXaW5kb3csICZ3aW5kb3cud2luZG93
X2lkKTsKKyAgICBpbml0RGlyZWN0RkJNb3VzZUV2ZW50KCZ3aW5kb3csIGV2ZW50KTsKKyAgICB3
aW5kb3cueCA9IHBvc3Rab29tUG9zLngoKTsKKyAgICB3aW5kb3cueSA9IHBvc3Rab29tUG9zLnko
KTsKKyAgICBjb25zdCBJbnRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uID0gZXZlbnQtPmFic29sdXRl
TG9jYXRpb24oKTsKKyAgICB3aW5kb3cuY3ggPSBhYnNvbHV0ZUxvY2F0aW9uLngoKTsKKyAgICB3
aW5kb3cuY3kgPSBhYnNvbHV0ZUxvY2F0aW9uLnkoKTsKIAogICAgIGlmICghZGlzcGF0Y2hOUEV2
ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRp
ZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZuZGVm
IFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwog
CkBAIC00MzEsMTIgKzEwNzEsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZl
bnQoKQogICAgIGV2ZW50LnR5cGUgPSA5OyAvKiBpbnQgYXMgUXQgdW5zZXRzIEZvY3VzSW4gKi8K
ICAgICBldmVudC5tb2RlID0gTm90aWZ5Tm9ybWFsOwogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlm
eURldGFpbE5vbmU7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwogCisjZWxzZQorICAg
IERGQkV2ZW50IG5wRXZlbnQ7CisgICAgbWVtc2V0KCZucEV2ZW50LCAwLCBzaXplb2YoREZCRXZl
bnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gbnBFdmVudC53aW5kb3c7CisgICAg
d2luZG93LmNsYXp6ID0gREZFQ19XSU5ET1c7CisgICAgd2luZG93LnR5cGUgPSBEV0VUX0dPVEZP
Q1VTOwogICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbmRpZgogfQogCiB2b2lkIFBs
dWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogeworI2lmbmRlZiBYUF9ERkIKICAgICBY
RXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDQ2LDYgKzEw
OTUsMTUgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKICAgICBldmVu
dC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZl
bnQpOworI2Vsc2UKKyAgICBERkJFdmVudCBucEV2ZW50OworICAgIG1lbXNldCgmbnBFdmVudCwg
MCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRvdyA9IG5wRXZl
bnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAgIHdpbmRvdy50
eXBlID0gRFdFVF9MT1NURk9DVVM7CisgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2Vu
ZGlmCisKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50
KQpAQCAtNDYyLDYgKzExMjAsNDkgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd1JlY3Qo
Y29uc3QgSW50UmVjdCYpCiAgICAgICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKIH0KIAorI2lm
ZGVmIFhQX0RGQgorY2xhc3MgV2luZG93TW92ZUV2ZW50RmlsdGVyIDogcHVibGljIFFPYmplY3Qg
eworcHVibGljOgorICAgIFdpbmRvd01vdmVFdmVudEZpbHRlcihib29sKiBnLCBQbHVnaW5WaWV3
KiB2aWV3LCBRV2lkZ2V0KiB3YXRjaGVkKQorICAgICAgICA6IFFPYmplY3QoMCkKKyAgICAgICAg
LCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZShnKQorICAgICAgICAsIG1fcGx1Z2luVmlldyh2
aWV3KQorICAgIHsKKyAgICAgICAgUV9BU1NFUlQod2F0Y2hlZCk7CisgICAgICAgIGZvcmV2ZXIg
eworICAgICAgICAgICAgd2F0Y2hlZC0+aW5zdGFsbEV2ZW50RmlsdGVyKHRoaXMpOworICAgICAg
ICAgICAgaWYgKHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB3YXRjaGVkID0gd2F0Y2hlZC0+cGFyZW50V2lkZ2V0KCk7CisgICAgICAgICAg
ICBpZiAoIXdhdGNoZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBib29sIGV2ZW50RmlsdGVyKFFPYmplY3QgKiwgUUV2ZW50KiBlKQorICAgIHsKKyAg
ICAgICAgaWYgKGUtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1vdmUgfHwgZS0+dHlwZSgpID09IFFFdmVu
dDo6UmVzaXplKSB7CisgICAgICAgICAgICAqbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UgPSB0
cnVlOworICAgICAgICAgICAgbV90aW1lci5zdGFydCgxMCwgdGhpcyk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJF
dmVudCogZSkKKyAgICB7CisgICAgICAgIGlmIChlLT50aW1lcklkKCkgPT0gbV90aW1lci50aW1l
cklkKCkpIHsKKyAgICAgICAgICAgIG1fdGltZXIuc3RvcCgpOworICAgICAgICAgICAgbV9wbHVn
aW5WaWV3LT5mb3JjZVJlZHJhdygpOworICAgICAgICB9CisgICAgfQorcHJpdmF0ZToKKyAgICBi
b29sKiBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZTsKKyAgICBQbHVnaW5WaWV3KiBtX3BsdWdp
blZpZXc7CisgICAgUUJhc2ljVGltZXIgbV90aW1lcjsKK307CisKKyNlbmRpZgorCiB2b2lkIFBs
dWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogewogICAgIGlmICghbV9pc1N0YXJ0ZWQg
fHwgIXBhcmVudCgpIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+c2V0d2luZG93KQpAQCAt
NDk4LDYgKzExOTksNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQog
ICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC54KCkgKyBtX2Ns
aXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9j
bGlwUmVjdC55KCkgKyBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0gZWxzZSB7CisjaWZuZGVm
IFhQX0RGQgogICAgICAgICBtX25wV2luZG93LnggPSAwOwogICAgICAgICBtX25wV2luZG93Lnkg
PSAwOwogCkBAIC01MDUsNiArMTIwNywzOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93
SWZOZWVkZWQoKQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IDA7CiAgICAgICAg
IG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBS
ZWN0LmJvdHRvbSA9IDA7CisjZWxzZQorICAgICAgICBRUG9pbnQgcGx1Z2luVmlld0dsb2JhbFBv
cyA9IHdpbmRvd0NsaXBSZWN0KCkudG9wTGVmdCgpOworICAgICAgICBRV2ViUGFnZUNsaWVudCog
Y2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpOworICAgICAgICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGllbnQgPyBj
bGllbnQtPm93bmVyV2lkZ2V0KCkgOiAwKSB7CisgICAgICAgICAgICBpZiAoIW1fZXZlbnRGaWx0
ZXIpCisgICAgICAgICAgICAgICAgbV9ldmVudEZpbHRlciA9IG5ldyBXaW5kb3dNb3ZlRXZlbnRG
aWx0ZXIoJm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlLCB0aGlzLCBvd25lcldpZGdldCk7Cisg
ICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1hcFRvR2xvYmFs
KHBsdWdpblZpZXdHbG9iYWxQb3MpOworICAgICAgICAgICAgaWYgKGNvbnN0IFFHcmFwaGljc1dl
YlZpZXcqIGl0ZW0gPSBxb2JqZWN0X2Nhc3Q8Y29uc3QgUUdyYXBoaWNzV2ViVmlldyo+KGNsaWVu
dC0+cGx1Z2luUGFyZW50KCkpKSB7CisgICAgICAgICAgICAgICAgUV9BU1NFUlQoaXRlbS0+c2Nl
bmUoKSAmJiAhaXRlbS0+c2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkpOworICAgICAgICAgICAg
ICAgIGNvbnN0IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52aWV3cygpLnZh
bHVlKDApOworICAgICAgICAgICAgICAgIGNvbnN0IFFQb2ludCBhZGQgPSB2aWV3LT5tYXBGcm9t
U2NlbmUoaXRlbS0+cG9zKCkpOworICAgICAgICAgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQb3Mg
Kz0gYWRkOworICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgoUVNpemUpKG1fd2luZG93
UmVjdC5zaXplKCkpICE9IG1fcGl4bWFwLnNpemUoKSkgeworICAgICAgICAgICAgbV9waXhtYXAg
PSBRUGl4bWFwKG1fd2luZG93UmVjdC5zaXplKCkpOworICAgICAgICAgICAgbV9waXhtYXAuZmls
bChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICB9CisKKyAgICAgICAgbV9ucFdpbmRvdy54ID0g
cGx1Z2luVmlld0dsb2JhbFBvcy54KCk7CisgICAgICAgIG1fbnBXaW5kb3cueSA9IHBsdWdpblZp
ZXdHbG9iYWxQb3MueSgpOworICAgICAgICBjb25zdCBJbnRSZWN0IGZyYW1lID0gZnJhbWVSZWN0
KCk7CisgICAgICAgIG1fbnBXaW5kb3cud2lkdGggPSBmcmFtZS53aWR0aCgpOworICAgICAgICBt
X25wV2luZG93LmhlaWdodCA9IGZyYW1lLmhlaWdodCgpOworICAgICAgICBtX25wV2luZG93LmNs
aXBSZWN0LnRvcCA9IG1fY2xpcFJlY3QueSgpOworICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0
LmxlZnQgPSBtX2NsaXBSZWN0LngoKTsKKyAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdo
dCA9IG1fY2xpcFJlY3Qud2lkdGgoKSArIG1fY2xpcFJlY3QueCgpIC0gMTsKKyAgICAgICAgbV9u
cFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LmhlaWdodCgpICsgbV9jbGlwUmVj
dC55KCkgLSAxOworICAgICAgICBtX2RmYlN1cmZhY2UgPSBRVF9QUkVQRU5EX05BTUVTUEFDRShx
dF9kaXJlY3RmYl9zdXJmYWNlX2Zvcl9waXhtYXAobV9waXhtYXApKTsKKyAgICAgICAgbV9ucFdp
bmRvdy53aW5kb3cgPSBtX2RmYlN1cmZhY2U7CisgICAgICAgIG1fbnBXaW5kb3cudHlwZSA9IE5Q
V2luZG93VHlwZURyYXdhYmxlOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG1fcGx1Z2luLT5x
dWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRDYWxsU2V0V2luZG93TW9yZVRoYW5PbmNl
KSkgewpAQCAtNTk1LDE1ICsxMzMwLDEyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRW
YWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyCiBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQq
IHZhbHVlLCBOUEVycm9yKiByZXN1bHQpCiB7CiAgICAgc3dpdGNoICh2YXJpYWJsZSkgeworI2lm
bmRlZiBYUF9ERkIKICAgICBjYXNlIE5QTlZ4RGlzcGxheToKICAgICAgICAgKih2b2lkICoqKXZh
bHVlID0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VS
Uk9SOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDoK
LSAgICAgICAgKnJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotCiAgICAgY2FzZSBOUE5WbmV0c2NhcGVXaW5kb3c6IHsKICAgICAgICAgdm9pZCogdyA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHZhbHVlKTsKICAgICAgICAgUVdlYlBhZ2VDbGllbnQq
IGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBh
Z2VDbGllbnQoKTsKQEAgLTYxMSw3ICsxMzQzLDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUK
ICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9Ci0KKyNlbmRpZgogICAgIGNhc2UgTlBOVlRvb2xraXQ6CiAgICAgICAgIGlmIChtX3Bs
dWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtSZXF1aXJlc0d0a1Rvb2xLaXQpKSB7
CiAgICAgICAgICAgICAqKCh1aW50MzJfdCAqKXZhbHVlKSA9IDI7CkBAIC02NTYsNiArMTM4OCw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIGludmFsaWRhdGUoKTsKIH0K
IAorI2lmbmRlZiBYUF9ERkIKIHN0YXRpYyBEaXNwbGF5ICpnZXRQbHVnaW5EaXNwbGF5KCkKIHsK
ICAgICAvLyBUaGUgcGx1Z2luIHRvb2xraXQgbWlnaHQgcnVuIHVzaW5nIGEgZGlmZmVyZW50IFgg
Y29ubmVjdGlvbi4gQXQgdGhlIG1vbWVudCwgd2Ugb25seQpAQCAtNzIxLDEyICsxNDU0LDE0IEBA
IHN0YXRpYyB2b2lkIGdldFZpc3VhbEFuZENvbG9ybWFwKGludCBkZXB0aCwgVmlzdWFsICoqdmlz
dWFsLCBDb2xvcm1hcCAqY29sb3JtYXApCiAgICAgaWYgKCp2aXN1YWwpCiAgICAgICAgICpjb2xv
cm1hcCA9IFhDcmVhdGVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBRWDExSW5mbzo6YXBw
Um9vdFdpbmRvdygpLCAqdmlzdWFsLCBBbGxvY05vbmUpOwogfQorI2VuZGlmCiAKIGJvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKICAg
ICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIAor
I2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmdldHZhbHVl
KSB7CiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRoaXMpOwogICAg
ICAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhKU0M6OlNpbGVuY2VB
c3NlcnRpb25zT25seSk7CkBAIC03NTEsMTIgKzE0ODYsNzEgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQoMCk7CiAgICAgICAgIG1f
cGx1Z2luRGlzcGxheSA9IGdldFBsdWdpbkRpc3BsYXkoKTsKICAgICB9CisjZWxzZQorICAgIGlm
IChtX2lzV2luZG93ZWQpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9z
dGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIERGQldpbmRvd0luZm8qIHdzSW5mbyA9IDA7CisgICAgUVdlYlBhZ2VD
bGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCB8fCAhY2xpZW50LT5vd25lcldpZGdl
dCgpKSB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1
Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIERGQlJlc3VsdCByZXN1bHQgPSBEaXJlY3RGQkNyZWF0ZSgmbV9kZmIpOworICAgIGlm
IChyZXN1bHQgIT0gREZCX09LKQorICAgICAgICBnb3RvIGVuZDsKKworICAgIHJlc3VsdCA9IG1f
ZGZiLT5HZXREaXNwbGF5TGF5ZXIobV9kZmIsIERMSURfUFJJTUFSWSwgJm1fZGZiRGlzcGxheUxh
eWVyKTsKKyAgICBpZiAocmVzdWx0ICE9IERGQl9PSykKKyAgICAgICAgZ290byBlbmQ7CisKKyAg
ICByZXN1bHQgPSBtX2RmYkRpc3BsYXlMYXllci0+R2V0V2luZG93KG1fZGZiRGlzcGxheUxheWVy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
REZCV2luZG93SUQ+KGNsaWVudC0+b3duZXJXaWRnZXQoKS0+cHJvcGVydHkoIl9xX0RpcmVjdEZC
V2luZG93SUQiKS50b0ludCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZtX2RmYldpbmRvdyk7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spCisgICAgICAg
IGdvdG8gZW5kOworICAgIHdzSW5mbyA9IG5ldyBERkJXaW5kb3dJbmZvOworICAgIHdzSW5mby0+
ZGZiID0gbV9kZmI7CisgICAgd3NJbmZvLT53aW5kb3cgPSBtX2RmYldpbmRvdzsKKyAgICB3c0lu
Zm8tPmxheWVyID0gbV9kZmJEaXNwbGF5TGF5ZXI7CisgICAgbV9ucFdpbmRvdy53c19pbmZvID0g
d3NJbmZvOworICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworICAg
IG1fbnBXaW5kb3cud2luZG93ID0gMDsgLy8gTm90IHVzZWQ/CisgICAgbV9ucFdpbmRvdy54ID0g
MDsKKyAgICBtX25wV2luZG93LnkgPSAwOworICAgIG1fbnBXaW5kb3cud2lkdGggPSAtMTsKKyAg
ICBtX25wV2luZG93LmhlaWdodCA9IC0xOworCitlbmQ6CisgICAgaWYgKHJlc3VsdCAhPSBERkJf
T0spIHsKKyAgICAgICAgaWYgKG1fZGZiV2luZG93KSB7CisgICAgICAgICAgICBtX2RmYldpbmRv
dy0+UmVsZWFzZShtX2RmYldpbmRvdyk7CisgICAgICAgICAgICBtX2RmYldpbmRvdyA9IDA7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAobV9kZmJEaXNwbGF5TGF5ZXIpCisgICAgICAgICAgICBt
X2RmYkRpc3BsYXlMYXllci0+UmVsZWFzZShtX2RmYkRpc3BsYXlMYXllcik7CisKKyAgICAgICAg
aWYgKG1fZGZiKSB7CisgICAgICAgICAgICBtX2RmYi0+UmVsZWFzZShtX2RmYik7CisgICAgICAg
ICAgICBtX2RmYiA9IDA7CisgICAgICAgIH0KKyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2lu
Vmlldzo6cGxhdGZvcm1TdGFydCgpIiwgcmVzdWx0KTsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCiAKICAgICBzaG93KCk7CiAKKyNpZm5k
ZWYgWFBfREZCCiAgICAgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCogd3NpID0gbmV3IE5QU2V0
V2luZG93Q2FsbGJhY2tTdHJ1Y3QoKTsKICAgICB3c2ktPnR5cGUgPSAwOwotCiAgICAgaWYgKG1f
aXNXaW5kb3dlZCkgewogICAgICAgICBjb25zdCBRWDExSW5mbyogeDExSW5mbyA9ICZwbGF0Zm9y
bVBsdWdpbldpZGdldCgpLT54MTFJbmZvKCk7CiAKQEAgLTc2NCw3ICsxNTU4LDYgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgd3NpLT52aXN1YWwgPSAoVmlzdWFs
Kil4MTFJbmZvLT52aXN1YWwoKTsKICAgICAgICAgd3NpLT5kZXB0aCA9IHgxMUluZm8tPmRlcHRo
KCk7CiAgICAgICAgIHdzaS0+Y29sb3JtYXAgPSB4MTFJbmZvLT5jb2xvcm1hcCgpOwotCiAgICAg
ICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZVdpbmRvdzsKICAgICAgICAgbV9ucFdp
bmRvdy53aW5kb3cgPSAodm9pZCopcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2luSWQoKTsKICAg
ICAgICAgbV9ucFdpbmRvdy53aWR0aCA9IC0xOwpAQCAtNzkzLDggKzE1ODYsOCBAQCBib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBtX25wV2luZG93LndpZHRoID0gLTE7
CiAgICAgICAgIG1fbnBXaW5kb3cuaGVpZ2h0ID0gLTE7CiAgICAgfQotCiAgICAgbV9ucFdpbmRv
dy53c19pbmZvID0gd3NpOworI2VuZGlmCiAKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCku
Y29udGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKSB7CiAgICAgICAg
IHVwZGF0ZVBsdWdpbldpZGdldCgpOwpAQCAtODA5LDExICsxNjAyLDMzIEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1EZXN0cm95KCkKICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkK
ICAgICAgICAgZGVsZXRlIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCk7CiAKKyNpZm5kZWYgWFBfREZC
CiAgICAgaWYgKG1fZHJhd2FibGUpCiAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZvOjpkaXNw
bGF5KCksIG1fZHJhd2FibGUpOwogCiAgICAgaWYgKG1fY29sb3JtYXApCiAgICAgICAgIFhGcmVl
Q29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9jb2xvcm1hcCk7CisjZWxzZQorICAgIGRl
bGV0ZSBtX2V2ZW50RmlsdGVyOworICAgIG1fZXZlbnRGaWx0ZXIgPSAwOworICAgIGRlbGV0ZSBz
dGF0aWNfY2FzdDxERkJXaW5kb3dJbmZvKj4obV9ucFdpbmRvdy53c19pbmZvKTsKKyAgICBtX25w
V2luZG93LndzX2luZm8gPSAwOworICAgIG1fcGl4bWFwID0gUVBpeG1hcCgpOworICAgIGlmICht
X2RmYldpbmRvdykgeworICAgICAgICBtX2RmYldpbmRvdy0+UmVsZWFzZShtX2RmYldpbmRvdyk7
CisgICAgICAgIG1fZGZiV2luZG93ID0gMDsKK30KKworICAgIGlmIChtX2RmYkRpc3BsYXlMYXll
cikgeworICAgICAgICBtX2RmYkRpc3BsYXlMYXllci0+UmVsZWFzZShtX2RmYkRpc3BsYXlMYXll
cik7CisgICAgICAgIG1fZGZiRGlzcGxheUxheWVyID0gMDsKKyAgICB9CisKKyAgICBpZiAobV9k
ZmIpIHsKKyAgICAgICAgbV9kZmItPlJlbGVhc2UobV9kZmIpOworICAgICAgICBtX2RmYiA9IDA7
CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFsdCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63382</attachid>
            <date>2010-08-03 15:04:48 -0700</date>
            <delta_ts>2010-08-03 15:26:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100803150031.patch</filename>
            <type>text/plain</type>
            <size>45353</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmlu
ZGV4IGNlMGY3MDEyYTM1Yjc4ODQxYzNiZmI2NWQyNWRhN2U2MTg4N2NkNmMuLjdmYTFjNGU2Mzli
NDFjNWUyMGRkYzA4YWViMmRkNWJjN2MwNmRiZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTcsNiArOTcsMTAgQEAgZ3JlYXRl
clRoYW4oUVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBw
b3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
X0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05F
VFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNl
KjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IGVkNWUyZGE2YmM2MWFhODMyZjJhYzgwYzI5MWM2NGM1ZGMzMDJmZjEuLjZjZDE5Y2EyYjllNDYz
NzU5MzMwYzRhMjAzNGY2Zjg2NjllZWFkZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjMyMSwxNiArMjMyMSwyMSBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAgICAgICAgICAg
ICAgICAgSU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAgICAgIyBOb3Rl
OiBYUF9NQUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGlyZWN0ZmIgewor
ICAgICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAgICAgICAgICAg
ICBRTUFLRV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAgICAgICAgICAg
ICAgICBMSUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgICAgICBTT1VS
Q0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmNwcAorICAgICAgICAgICAgICAgICAg
ICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmgKKyAgICAgICAgICAgICAg
ICB9IGVsc2U6IWVtYmVkZGVkIHsKICAgICAgICAgICAgICAgICAgICAgQ09ORklHICs9IHgxMQog
ICAgICAgICAgICAgICAgICAgICBMSUJTICs9IC1sWHJlbmRlcgorICAgICAgICAgICAgICAgICAg
ICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCisgICAgICAgICAg
ICAgICAgICAgIEhFQURFUlMgKz0gcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5oCiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gXAotICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcCBcCiAgICAgICAgICAgICAg
ICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcCBcCiAgICAgICAgICAgICAgICAg
ICAgIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAotICAgICAgICAgICAgICAgIEhFQURFUlMg
Kz0gXAotICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgK
ICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX1VOSVgKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaCBiL1dlYkNvcmUvYnJpZGdl
L25wYXBpLmgKaW5kZXggNWZjOGU0NjE5OThlOGRkNTBlYzM4MDc5MmIzN2I1OTdmN2QxMmY3Yi4u
ZjgzMTQ4ZmMwY2JiMTNlMGZjNGJmZTllN2FlNDQ2ZGM4MTg0MmI5MSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9icmlkZ2UvbnBhcGkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oCkBAIC04OSw3
ICs4OSw3IEBACiAjZW5kaWYKICNlbmRpZgogCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRl
ZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogI2luY2x1ZGUgPFgxMS9YbGliLmg+
CiAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTI0Myw3ICsy
NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfTlBTaXplCiAvKiBFeGFjdCBtZWFuaW5nIG11c3QgYmUg
c3BlYydkIGluIGV2ZW50IG1vZGVsLiAqLwogI2RlZmluZSBrTlBFdmVudFN0YXJ0SU1FIDIKIAot
I2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQ
X0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zCiAg
Ki8KQEAgLTUyMyw2ICs1MjMsOSBAQCB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogICB1aW50cHRy
X3Qgd1BhcmFtOwogICB1aW50cHRyX3QgbFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYgZGVmaW5l
ZChYUF9ERkIpCisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KK3R5cGVkZWYgREZCRXZlbnQgTlBFdmVu
dDsKICNlbGlmIGRlZmluZWQoWFBfT1MyKQogdHlwZWRlZiBzdHJ1Y3QgX05QRXZlbnQKIHsKQEAg
LTU0NCw3ICs1NDcsNyBAQCB0eXBlZGVmIFJnbkhhbmRsZSBOUFFEUmVnaW9uOwogdHlwZWRlZiBD
R1BhdGhSZWYgTlBDR1JlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlwZWRlZiBIUkdO
IE5QUmVnaW9uOwotI2VsaWYgZGVmaW5lZChYUF9VTklYKQorI2VsaWYgZGVmaW5lZChYUF9VTklY
KSAmJiAhZGVmaW5lZChYUF9ERkIpCiB0eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsKICNlbGlmIGRl
ZmluZWQoWFBfU1lNQklBTikKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaCBiL1dlYkNvcmUvYnJpZGdlL25w
cnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDczNmE3ZjE1NmI3OWNjNmU1OWRkODU2OTc4OTA3YTg1
ZjgwZDZhMTkuLjAxNTkzMWUyMDY1ZTRmZDIzYmNlMWQ3ZDQ0ZWIzNjFlOGRhZGM1NGMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUv
YnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
bnBmdW5jdGlvbnMuaCIKICNpbmNsdWRlICJucHJ1bnRpbWUuaCIKIAotI2lmZGVmIFhQX1VOSVgK
KyNpZiBkZWZpbmVkIFhQX1VOSVggJiYgIWRlZmluZWQoWFBfREZCKQogICAgICNpbmNsdWRlIDxY
MTEvWHJlc291cmNlLmg+CiAKICAgICAjdW5kZWYgTm9uZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmlu
ZGV4IDUwZWNhN2VlZTY4Mzg4NjdiY2MwNDg2ZmZjNGM5MDdjYjU2MTU0NWMuLjhmN2Q1YTQ5ZjRi
NDUxMjg4MjUxYzgwOTU3ZjkzOWQwOTcxNWMxYTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAg
LTM2Myw3ICszNjMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnN0b3AoKQogICAgICAgICBQbHVnaW5W
aWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKICAgICB9CiAKLSNpZmRlZiBYUF9VTklYCisj
aWYgZGVmaW5lZChYUF9YMTEpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICBpZiAobV9pc1dpbmRv
d2VkICYmIG1fbnBXaW5kb3cud3NfaW5mbykKICAgICAgICAgICAgZGVsZXRlIChOUFNldFdpbmRv
d0NhbGxiYWNrU3RydWN0ICopbV9ucFdpbmRvdy53c19pbmZvOwogICAgIG1fbnBXaW5kb3cud3Nf
aW5mbyA9IDA7CkBAIC04MjMsNyArODIzLDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFt
ZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICAg
ICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkKGZhbHNl
KQogICAgICwgbV9pc1dhaXRpbmdUb1N0YXJ0KGZhbHNlKQotI2lmIGRlZmluZWQoWFBfVU5JWCkK
KyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkIChYUF9ERkIpCiAgICAgLCBtX25lZWRz
WEVtYmVkKGZhbHNlKQogI2VuZGlmCiAjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCkBAIC04NDQsMTAgKzg0NCwxNCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3
KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSog
cAogI2VuZGlmCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmlu
ZWQgWFBfREZCCiAgICAgLCBtX2RyYXdhYmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwg
bV9jb2xvcm1hcCgwKQogICAgICwgbV9wbHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9k
ZmJOUEFQSU9iamVjdCgwKQorI2VuZGlmCiAjZW5kaWYKICAgICAsIG1fbG9hZE1hbnVhbGx5KGxv
YWRNYW51YWxseSkKICAgICAsIG1fbWFudWFsU3RyZWFtKDApCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRl
eCA0MzFjZTBlNzAyNmNjZjc4YmNlMjBhYWQ3N2JmZTJkYmU0Nzg0ODI1Li5jOWYwZjYxNGEzNjU0
OTU4NTk1NzcxODIxMDc2MDgxMWM0Y2MxYmIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTc4LDYg
Kzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsdWdpblN0cmVhbTsKICAg
ICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisjaWYg
ZGVmaW5lZCBYUF9ERkIgJiYgUExBVEZPUk0oUVQpCisgICAgY2xhc3MgRGlyZWN0RkJOUEFQSU9i
amVjdDsKKyNlbmRpZgogCiAgICAgZW51bSBQbHVnaW5TdGF0dXMgewogICAgICAgICBQbHVnaW5T
dGF0dXNDYW5Ob3RGaW5kUGx1Z2luLApAQCAtMzE2LDcgKzMxOSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX2hhdmVJbml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lz
V2FpdGluZ1RvU3RhcnQ7CiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9V
TklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNl
bmRpZgogCkBAIC0zNjYsMTIgKzM2OSwxNyBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9V
TklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1Bl
bmRpbmdHZW9tZXRyeUNoYW5nZTsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2Ry
YXdhYmxlOwogICAgICAgICBWaXN1YWwqIG1fdmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2Nv
bG9ybWFwOwogICAgICAgICBEaXNwbGF5KiBtX3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9p
ZCBpbml0WEV2ZW50KFhFdmVudCogZXZlbnQpOworI2Vsc2UKKyAgICAgICAgZnJpZW5kIGNsYXNz
IERpcmVjdEZCTlBBUElPYmplY3Q7CisgICAgICAgIERpcmVjdEZCTlBBUElPYmplY3QgKm1fZGZi
TlBBUElPYmplY3Q7CisjZW5kaWYKICNlbmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVj
dDsgLy8gVGhlIGNsaXAgcmVjdCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggMGNhMzU2YjRlNDE2M2Q5YmNmNTE4YzE3NjI2
NjYzZWY0ZGI4MGI0MC4uMTM2MjZjYjYyNGQ4ZWZhMmRjZWZkNDY2MThkZWUyNTAwNjc5OTQyNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJk
Ymlhcy5pbj4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBBbmRlcnMgQmFra2VuIDxhZ2Jha2tlbkBn
bWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDcgKzUyLDYg
QEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFp
bmVyUXQuaCIKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2th
Z2UuaCIKICNpbmNsdWRlICJQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgiCkBAIC02OCw2ICs2
OCw4IEBACiAjaW5jbHVkZSA8UUtleUV2ZW50PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1
ZGUgPFFXaWRnZXQ+CisjaWZkZWYgUV9XU19YMTEKKyNpbmNsdWRlICJQbHVnaW5Db250YWluZXJR
dC5oIgogI2luY2x1ZGUgPFFYMTFJbmZvPgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFU
X05PX1hSRU5ERVIKQEAgLTc1LDYgKzc3LDEwIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNs
dWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQoWFBf
REZCKQorI2luY2x1ZGUgIlBsdWdpblZpZXdRdERGQi5oIgorI2VuZGlmCisKICNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgogCkBAIC0xMTAs
NiArMTE2LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIGlm
IChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVjdCAmJiBtX2NsaXBSZWN0ID09IG9sZENsaXBS
ZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKCFtX2lzV2lu
ZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0LnNpemUoKSkgewog
ICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZv
OjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwpAQCAtMTE4LDYgKzEyNSw3IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5k
ZXB0aCk7CiAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFrZSBzdXJlIHRoYXQg
dGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9CisjZW5kaWYKIAogICAg
IC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRlbHksIHdpbGwgYmUg
Y2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7
CkBAIC0xNzIsNiArMTgwLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICBzZXROUFdpbmRvd0lmTmVl
ZGVkKCk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3
YWJsZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNDAsNiArMjQ5LDEwIEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQogCiAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhw
b3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdh
YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlZFJlY3QpOworI2Vsc2UgLy8gWFBf
REZCCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpCisgICAgICAgIG1fZGZiTlBBUElPYmplY3Qt
PnBhaW50KGNvbnRleHQsIHJlY3QpOworI2VuZGlmCiB9CiAKIC8vIFRPRE86IFVuaWZ5IGFjcm9z
cyBwb3J0cy4KQEAgLTI1OCw2ICsyNzEsNyBAQCBib29sIFBsdWdpblZpZXc6OmRpc3BhdGNoTlBF
dmVudChOUEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKKyNpZm5kZWYg
WFBfREZCCiB2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwgUVdpZGdl
dCogb3duZXJXaWRnZXQpCiB7CiAgICAgeEV2ZW50LT54YW55LnNlcmlhbCA9IDA7IC8vIHdlIGFy
ZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5IFggU2VydmVyCkBAIC0y
OTksNiArMzEzLDcgQEAgdm9pZCBzZXRYS2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhF
dmVudCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9IDA7
CiAgICAgeEV2ZW50LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5W
aWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMzA4
LDE0ICszMjMsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQqIGV2ZW50KQogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQgJiYgZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkK
ICAgICAgICAgcmV0dXJuOwogCisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50Owog
ICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRz
KCZucEV2ZW50LCBldmVudCk7CiAKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkK
ICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisjZWxzZQorICAgIGlmICghbV9k
ZmJOUEFQSU9iamVjdCB8fCAhbV9kZmJOUEFQSU9iamVjdC0+ZGlzcGF0Y2hFdmVudChldmVudCkp
CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworI2VuZGlmCisKIH0KIAorI2lm
bmRlZiBYUF9ERkIKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVudFN0YXRlKE1vdXNlRXZl
bnQqIGV2ZW50KQogewogICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CkBAIC0zOTAsNiArNDEy
LDcgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGMKICAgICB4Y3Jvc3Npbmcuc2FtZV9zY3JlZW4g
PSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2VuZGlmCiAKIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIHsKQEAgLTQw
NCw2ICs0MjcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVu
dCogZXZlbnQpCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgIH0KIAorI2lmbmRl
ZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsK
IApAQCAtNDIwLDEwICs0NDQsMTUgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50
KE1vdXNlRXZlbnQqIGV2ZW50KQogCiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkp
CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworI2Vsc2UKKyAgICBpZiAoIW1f
ZGZiTlBBUElPYmplY3QgfHwgIW1fZGZiTlBBUElPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQp
KQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQogCiB2b2lk
IFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZuZGVmIFhQX0RGQgogICAg
IFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00MzMsMTAg
KzQ2MiwxNSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiAgICAgZXZl
bnQuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKIAogICAgIGRpc3BhdGNoTlBFdmVudChucEV2
ZW50KTsKKyNlbHNlCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpCisgICAgICAgIG1fZGZiTlBB
UElPYmplY3QtPmRpc3BhdGNoRXZlbnQoRGlyZWN0RkJOUEFQSU9iamVjdDo6Rm9jdXNJbik7Cisj
ZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIHsKKyNp
Zm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVu
dCk7CiAKQEAgLTQ0Niw2ICs0ODAsMTAgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091
dEV2ZW50KCkKICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlz
cGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2Vsc2UKKyAgICBpZiAobV9kZmJOUEFQSU9iamVjdCkK
KyAgICAgICAgbV9kZmJOUEFQSU9iamVjdC0+ZGlzcGF0Y2hFdmVudChEaXJlY3RGQk5QQVBJT2Jq
ZWN0OjpGb2N1c091dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQo
U2Nyb2xsVmlldyogcGFyZW50KQpAQCAtNDk4LDYgKzUzNiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6
c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQg
PSBtX2NsaXBSZWN0LngoKSArIG1fY2xpcFJlY3Qud2lkdGgoKTsKICAgICAgICAgbV9ucFdpbmRv
dy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LnkoKSArIG1fY2xpcFJlY3QuaGVpZ2h0KCk7
CiAgICAgfSBlbHNlIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIG1fbnBXaW5kb3cueCA9IDA7
CiAgICAgICAgIG1fbnBXaW5kb3cueSA9IDA7CiAKQEAgLTUwNSw2ICs1NDQsMTAgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5jbGlw
UmVjdC50b3AgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gMDsKICAg
ICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSAwOworI2Vsc2UKKyAgICAgICAgaWYg
KG1fZGZiTlBBUElPYmplY3QpCisgICAgICAgICAgICBtX2RmYk5QQVBJT2JqZWN0LT5zZXROUFdp
bmRvd0lmTmVlZGVkKCk7CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAobV9wbHVnaW4tPnF1aXJr
cygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udENhbGxTZXRXaW5kb3dNb3JlVGhhbk9uY2UpKSB7
CkBAIC01NzIsMTAgKzYxNSwxMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVT
dGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycgogICAgICAgICAq
cmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwogCisjaWZuZGVm
IFhQX0RGQgogICAgIGNhc2UgTlBOVlN1cHBvcnRzWEVtYmVkQm9vbDoKICAgICAgICAgKnN0YXRp
Y19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9IHRydWU7CiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9O
T19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKIAogICAgIGNhc2UgTlBOVmph
dmFzY3JpcHRFbmFibGVkQm9vbDoKICAgICAgICAgKnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVl
KSA9IHRydWU7CkBAIC01OTQsNiArNjM5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKIAog
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2
b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KQogeworI2lmbmRlZiBYUF9ERkIKICAgICBzd2l0
Y2ggKHZhcmlhYmxlKSB7CiAgICAgY2FzZSBOUE5WeERpc3BsYXk6CiAgICAgICAgICoodm9pZCAq
Kil2YWx1ZSA9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CkBAIC02MjMsNiArNjY5LDkgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSwgTlBFcnJvciogcmUKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQorI2Vsc2UKKyAgICByZXR1cm4gbV9kZmJOUEFQSU9iamVjdCAmJiBtX2RmYk5QQVBJT2Jq
ZWN0LT5wbGF0Zm9ybUdldFZhbHVlKHZhcmlhYmxlLCB2YWx1ZSwgcmVzdWx0KTsKKyNlbmRpZgog
fQogCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CkBAIC02NTYsNiArNzA1LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAg
aW52YWxpZGF0ZSgpOwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkgKmdldFBs
dWdpbkRpc3BsYXkoKQogewogICAgIC8vIFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNp
bmcgYSBkaWZmZXJlbnQgWCBjb25uZWN0aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC03
MjEsMTIgKzc3MSwxNCBAQCBzdGF0aWMgdm9pZCBnZXRWaXN1YWxBbmRDb2xvcm1hcChpbnQgZGVw
dGgsIFZpc3VhbCAqKnZpc3VhbCwgQ29sb3JtYXAgKmNvbG9ybWFwKQogICAgIGlmICgqdmlzdWFs
KQogICAgICAgICAqY29sb3JtYXAgPSBYQ3JlYXRlQ29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXko
KSwgUVgxMUluZm86OmFwcFJvb3RXaW5kb3coKSwgKnZpc3VhbCwgQWxsb2NOb25lKTsKIH0KKyNl
bmRpZgogCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VSVCht
X2lzU3RhcnRlZCk7CiAgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRlZFN1
Y2Nlc3NmdWxseSk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5G
dW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2lu
Vmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9j
a3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtNzUxLDkgKzgwMywyNSBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgw
KTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0K
KyNlbHNlCisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtX2RmYk5QQVBJT2JqZWN0ID0gRGlyZWN0
RkJOUEFQSU9iamVjdDo6Y3JlYXRlKHRoaXMpOworCisgICAgaWYgKCFtX2RmYk5QQVBJT2JqZWN0
KSB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2lu
U3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNl
bmRpZgogCiAgICAgc2hvdygpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIE5QU2V0V2luZG93Q2Fs
bGJhY2tTdHJ1Y3QqIHdzaSA9IG5ldyBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KCk7CiAgICAg
d3NpLT50eXBlID0gMDsKIApAQCAtNzk1LDYgKzg2Myw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1TdGFydCgpCiAgICAgfQogCiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gd3NpOworI2Vu
ZGlmCiAKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtE
ZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKSB7CiAgICAgICAgIHVwZGF0ZVBsdWdpbldpZGdldCgp
OwpAQCAtODA5LDExICs4NzgsMTggQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3ko
KQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZv
cm1QbHVnaW5XaWRnZXQoKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkK
ICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAK
ICAgICBpZiAobV9jb2xvcm1hcCkKICAgICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlz
cGxheSgpLCBtX2NvbG9ybWFwKTsKKyNlbHNlCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpIHsK
KyAgICAgICAgZGVsZXRlIG1fZGZiTlBBUElPYmplY3Q7CisgICAgICAgIG1fZGZiTlBBUElPYmpl
Y3QgPSAwOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbHQoKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDU4MGJkZjRjODdk
ZmM3OGZlMzJlZGUxM2E0ZTM2YjQwODg3YTBmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5jcHAKQEAgLTAsMCArMSw4MTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQW5kZXJzIEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29tPgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3UXRERkIuaCIKKwor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIktleWJv
YXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVk
ZSAiUGx1Z2luVmlldy5oIgorI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNpbmNsdWRlIDxRR3Jh
cGhpY3NXZWJWaWV3PgorI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTW91c2VFdmVu
dD4KKyNpbmNsdWRlIDxRVmFyaWFudD4KKyNpbmNsdWRlIDxRV2lkZ2V0PgorCitRVF9CRUdJTl9O
QU1FU1BBQ0UKK2V4dGVybiBRX0dVSV9FWFBPUlQgSURpcmVjdEZCU3VyZmFjZSogcXRfZGlyZWN0
ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKGNvbnN0IFFQaXhtYXAgJnBpeG1hcCk7CitRVF9FTkRfTkFN
RVNQQUNFCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3ZvaWQgRGlyZWN0RkJOUEFQSU9iamVjdDo6
Y2xlYXJXaW5kb3dJbmZvKERpcmVjdEZCTlBBUElPYmplY3Q6OkRGQldpbmRvd0luZm8gKndpbmRv
d0luZm8pCit7CisgICAgaWYgKHdpbmRvd0luZm8tPndpbmRvdykKKyAgICAgICAgd2luZG93SW5m
by0+d2luZG93LT5SZWxlYXNlKHdpbmRvd0luZm8tPndpbmRvdyk7CisgICAgaWYgKHdpbmRvd0lu
Zm8tPmxheWVyKQorICAgICAgICB3aW5kb3dJbmZvLT5sYXllci0+UmVsZWFzZSh3aW5kb3dJbmZv
LT5sYXllcik7CisgICAgaWYgKHdpbmRvd0luZm8tPmRmYikKKyAgICAgICAgd2luZG93SW5mby0+
ZGZiLT5SZWxlYXNlKHdpbmRvd0luZm8tPmRmYik7Cit9CisKK0RpcmVjdEZCTlBBUElPYmplY3Q6
OkRpcmVjdEZCTlBBUElPYmplY3QoUGx1Z2luVmlldyogcGx1Z2luVmlldywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgREZCV2luZG93SW5mbyYgd2luZG93
SW5mbykKKyAgICA6IG1fcGx1Z2luVmlldyhwbHVnaW5WaWV3KSwgbV9kZmJTdXJmYWNlKDApLCBt
X2luc3RhbGxlZEV2ZW50RmlsdGVyKGZhbHNlKSwgbV9kZmJXaW5kb3dJbmZvKHdpbmRvd0luZm8p
Cit7Cit9CisKK0RpcmVjdEZCTlBBUElPYmplY3Q6On5EaXJlY3RGQk5QQVBJT2JqZWN0KCkKK3sK
KyAgICBjbGVhcldpbmRvd0luZm8oJm1fZGZiV2luZG93SW5mbyk7Cit9CisKK0RpcmVjdEZCTlBB
UElPYmplY3QqIERpcmVjdEZCTlBBUElPYmplY3Q6OmNyZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3KQoreworICAgIEFTU0VSVChwbHVnaW5WaWV3KTsKKyAgICBRV2ViUGFnZUNsaWVudCogY2xp
ZW50ID0gcGx1Z2luVmlldy0+bV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGllbnQtPm93bmVyV2lk
Z2V0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgREZCV2luZG93SW5mbyB3aW5kb3dJbmZv
ID0geyAwLCAwLCAwIH07CisgICAgREZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZ3
aW5kb3dJbmZvLmRmYik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAgRGly
ZWN0RkJFcnJvcigiRGlyZWN0RkJOUEFQSU9iamVjdDo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmVzdWx0ID0gd2luZG93SW5mby5kZmItPkdldERp
c3BsYXlMYXllcih3aW5kb3dJbmZvLmRmYiwgRExJRF9QUklNQVJZLCAmd2luZG93SW5mby5sYXll
cik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigi
RGlyZWN0RkJOUEFQSU9iamVjdDo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAgICAgY2xlYXJXaW5k
b3dJbmZvKCZ3aW5kb3dJbmZvKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmVz
dWx0ID0gd2luZG93SW5mby5sYXllci0+R2V0V2luZG93KHdpbmRvd0luZm8ubGF5ZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC0+b3duZXJXaWRnZXQo
KS0+cHJvcGVydHkoIl9xX0RpcmVjdEZCV2luZG93SUQiKS50b0ludCgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd2luZG93SW5mby53aW5kb3cpOworICAgIGlm
IChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIERpcmVjdEZCRXJyb3IoIkRpcmVjdEZCTlBB
UElPYmplY3Q6OmNyZWF0ZSIsIHJlc3VsdCk7CisgICAgICAgIGNsZWFyV2luZG93SW5mbygmd2lu
ZG93SW5mbyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBuZXcgRGly
ZWN0RkJOUEFQSU9iamVjdChwbHVnaW5WaWV3LCB3aW5kb3dJbmZvKTsKK30KKwordm9pZCBEaXJl
Y3RGQk5QQVBJT2JqZWN0OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCit7CisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJF
dmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQg
PSBkZmJFdmVudC51c2VyOworICAgIHVzZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1
c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAgIHVzZXJFdmVudC5kYXRhID0gJm1fcGx1Z2luVmll
dy0+bV9ucFdpbmRvdzsKKyAgICBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBFdmVudChkZmJFdmVu
dCk7CisgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsK
KyAgICBJbnRSZWN0IGV4cG9zZWRSZWN0KHJlY3QpOworICAgIGNvbnN0IEludFJlY3QgZnJhbWVS
ZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFtZVJlY3QoKTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNl
Y3QoZnJhbWVSZWN0KTsKKyAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QueCgpLCAtZnJh
bWVSZWN0LnkoKSk7CisgICAgY29uc3QgUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSBvbGRNb2Rl
ID0gcGFpbnRlci0+Y29tcG9zaXRpb25Nb2RlKCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICBwYWludGVyLT5k
cmF3UGl4bWFwKFFQb2ludChmcmFtZVJlY3QueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJl
Y3QueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgbV9waXhtYXAsCisgICAgICAgICAgICAgICAgICAg
ICAgICBleHBvc2VkUmVjdCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKG9sZE1v
ZGUpOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OmRpc3BhdGNoRXZlbnQoY29uc3Qg
S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgY29uc3QgUUtleUV2ZW50KiBxdEV2ZW50ID0g
ZXZlbnQtPmtleUV2ZW50KCktPnF0RXZlbnQoKTsKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAg
ICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJJbnB1dEV2
ZW50JiBpbnB1dCA9IGRmYkV2ZW50LmlucHV0OworICAgIGlucHV0LmNsYXp6ID0gREZFQ19JTlBV
VDsKKyAgICBpbnB1dC50eXBlID0gKHF0RXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNz
ID8gRElFVF9LRVlQUkVTUyA6IERJRVRfS0VZUkVMRUFTRSk7CisgICAgdW5zaWduZWQgaW50IGZs
YWdzID0gKERJRUZfS0VZU1lNQk9MIHwgRElFRl9NT0RJRklFUlMpOworICAgIGlmIChxdEV2ZW50
LT5pc0F1dG9SZXBlYXQoKSkKKyAgICAgICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisgICAgY29u
c3QgUXQ6OktleWJvYXJkTW9kaWZpZXIgbW9kaWZpZXJzW10gPSB7IFF0OjpTaGlmdE1vZGlmaWVy
LCBRdDo6Q29udHJvbE1vZGlmaWVyLCBRdDo6QWx0TW9kaWZpZXIsIFF0OjpNZXRhTW9kaWZpZXIg
fTsKKyAgICBjb25zdCBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayBkZmJNb2RpZmllcnNbXSA9
IHsgRElNTV9TSElGVCwgRElNTV9DT05UUk9MLCBESU1NX0FMVCwgRElNTV9NRVRBIH07CisgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlm
aWVycygpICYgbW9kaWZpZXJzW2ldKQorICAgICAgICAgICAgaW5wdXQubW9kaWZpZXJzID0gREZC
SW5wdXREZXZpY2VNb2RpZmllck1hc2soaW5wdXQubW9kaWZpZXJzIHwgZGZiTW9kaWZpZXJzW2ld
KTsKKyAgICB9CisgICAgc3dpdGNoIChxdEV2ZW50LT5rZXkoKSkgeworICAgIGNhc2UgUXQ6Oktl
eV9CYWNrc3BhY2U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTUEFDRTsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9CQUNLU1BBQ0U7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9UYWI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1RB
QjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9UQUI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9SZXR1cm46CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1JF
VFVSTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0VzY2FwZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRVNDQVBFOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0VTQ0FQRTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlbGV0ZToKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfREVMRVRFOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0RFTEVURTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xlZnQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0NVUlNPUl9MRUZUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJ
X0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SaWdodDoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1JJR0hUOworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVXA6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9VUDsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rvd246
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9ET1dOOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX0RPV047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9JbnNlcnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0lOU0VSVDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9JTlNFUlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Ib21lOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19IT01FOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9FbmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0VORDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9FTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYWdlVXA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BBR0VfVVA7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUEFHRV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BhZ2VEb3duOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19Q
QUdFX0RPV047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUEFHRV9ET1dOOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUHJpbnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1BSSU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGF1c2U6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BBVVNFOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfU2VsZWN0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19TRUxFQ1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9PcGVuVXJsOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19HT1RPOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfQ2xlYXI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NMRUFS
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVudToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfTUVOVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0hlbHA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0hFTFA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Ib21lUGFnZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfSU5URVJORVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MYXVu
Y2hNYWlsOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRmF2b3JpdGVzOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19GQVZPUklURVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9C
YWNrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19CQUNLOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRm9yd2FyZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRk9SV0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZVVw
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfVVA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVEb3duOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19WT0xVTUVfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1ZvbHVtZU11dGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX01VVEU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVBsYXk6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1BMQVk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9N
ZWRpYVN0b3A6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NUT1A7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVJlY29yZDoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfUkVDT1JEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
TWVkaWFQcmV2aW91czoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUFJFVklPVVM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYU5leHQ6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX05FWFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GMToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfRjE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjI7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfRjI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMzoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjM7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfRjM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNDoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
RjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfRjU7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNjoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfRjY7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjY7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRjc7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjc7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9GODoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
Rjg7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9GOToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjk7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9GMTA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GMTE6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMTsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV9GMTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9GMTI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMjsKKyAgICAgICAgaW5w
dXQua2V5X2lkID0gRElLSV9GMTI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9T
aGlmdDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU0hJRlQ7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfU0hJRlRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0NvbnRyb2w6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NPTlRST0w7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQ09OVFJPTF9MOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQWx0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19BTFQ7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9BbHRHcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQUxU
R1I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19NRVRBOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX01F
VEFfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1N1cGVyX0w6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NVUEVSOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX1NVUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IeXBlcl9MOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19IWVBFUjsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9IWVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fw
c0xvY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NBUFNfTE9DSzsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9DQVBTX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9OdW1Mb2NrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19OVU1f
TE9DSzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9OVU1fTE9DSzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1Njcm9sbExvY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NDUk9MTF9MT0NLOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NDUk9M
TF9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQk9WRURPVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVyaW5nOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19ERUFEX0FCT1ZFUklORzsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlYWRfQWN1dGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RF
QURfQUNVVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZlOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0JSRVZFOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DYXJvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfREVBRF9DQVJPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rl
YWRfQ2VkaWxsYToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9DRURJTExB
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DaXJjdW1mbGV4OgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NJUkNVTUZMRVg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RpYWVyZXNpczoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfREVBRF9ESUFFUkVTSVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9EZWFkX0RvdWJsZWFjdXRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19ERUFEX0RPVUJMRUFDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9HcmF2ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9HUkFWRTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfSW90YToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfREVBRF9JT1RBOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfRGVhZF9NYWNyb246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURf
TUFDUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9PZ29uZWs6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfT0dPTkVLOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9TZW1pdm9pY2VkX1NvdW5kOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX1NFTUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9EZWFkX1RpbGRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX1RJTERFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9Wb2ljZWRfU291bmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfVk9J
Q0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3BhY2U6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NQQUNFOworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJX1NQQUNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhjbGFtOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19FWENMQU1BVElPTl9NQVJLOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUXVvdGVEYmw6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1FVT1RBVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X051bWJlclNpZ246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX05VTUJFUl9TSUdO
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG9sbGFyOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19ET0xMQVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BlcmNlbnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BFUkNF
TlRfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FtcGVyc2FuZDoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQU1QRVJTQU5EOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfQVBPU1RST1BIRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVu
TGVmdDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNfTEVGVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVuUmlnaHQ6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX1JJR0hUOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQXN0ZXJpc2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX0FTVEVSSVNLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGx1czoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAocXRF
dmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0tQX1BMVVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9Db21tYToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ09NTUE7CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfQ09NTUE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9NaW51czoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTUlOVVNfU0lHTjsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9NSU5VU19TSUdOOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUGVyaW9kOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19QRVJJT0Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUEVSSU9EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2xhc2g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NMQVNIOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NMQVNIOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfMDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV8wOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfMToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMTsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV8xOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfMjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMjsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV8yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
MzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMzsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV8zOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNDoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfNDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV80OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfNTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV81OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfNjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV82OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfNzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
NzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV83OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfODoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfODsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV84OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfOToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfOTsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV85OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29sb246
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NPTE9OOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfU2VtaWNvbG9uOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19TRU1JQ09MT047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfU0VNSUNPTE9OOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVzczoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfTEVTU19USEFOX1NJR047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfTEVTU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXF1YWw6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0VRVUFMU19TSUdOOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0VRVUFMU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfR3JlYXRlcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfR1JFQVRFUl9U
SEFOX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdWVzdGlvbjoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUVVFU1RJT05fTUFSSzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0F0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19BVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0E6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0E7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
QTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0I6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX0I7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0M6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX0M7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Q6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX0Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0U7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX0Y7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0c6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX0c7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NN
QUxMX0g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0k6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X0k7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0o6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0s7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0w6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0w7CisgICAg
ICAgIGlucHV0LmtleV9pZCA9IERJS0lfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X006CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX007CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfTTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X046CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX047CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X086
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX087CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfTzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1A6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1A7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1E6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1E7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfUTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1I7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1M6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1M7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Q6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1U6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX1U7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Y6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX1Y7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1c6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1c7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX1g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfWDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1k6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX1k7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfWTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1o6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX1o7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfWjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRMZWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19TUVVBUkVfQlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQmFja3NsYXNoOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19CQUNLU0xB
U0g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQkFDS1NMQVNIOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldFJpZ2h0OgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19TUVVBUkVfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0FzY2lpQ2lyY3VtOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19D
SVJDVU1GTEVYX0FDQ0VOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VuZGVy
c2NvcmU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1VOREVSU0NPUkU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZUxlZnQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0JhcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVkVSVElD
QUxfQkFSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpVGlsZGU6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1RJTERFOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKChx
dEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyKSAmJiBxdEV2ZW50LT5rZXko
KSA+PSBRdDo6S2V5X0EgJiYgcXRFdmVudC0+a2V5KCkgPD0gUXQ6OktleV9aKQorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gREZCSW5wdXREZXZpY2VLZXlTeW1ib2woKGlucHV0LmtleV9zeW1i
b2wgLSBESUtTX1NNQUxMX0EpICsgRElLU19DQVBJVEFMX0EpOworICAgIGlmIChpbnB1dC5rZXlf
aWQgIT0gRElLSV9VTktOT1dOKSB7CisgICAgICAgIGZsYWdzIHw9IERJRUZfS0VZSUQ7CisgICAg
ICAgIGlmIChpbnB1dC5rZXlfaWQgPj0gRElLSV8wICYmIGlucHV0LmtleV9pZCA8PSBESUtJXzkg
JiYgcXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBERkJJbnB1dERldmljZUtleUlkZW50aWZpZXIoaW5wdXQua2V5X2lk
IC0gRElLSV8wICsgRElLSV9LUF8wKTsKKyAgICB9CisgICAgaW5wdXQuZmxhZ3MgPSBERkJJbnB1
dEV2ZW50RmxhZ3MoZmxhZ3MpOworICAgIHJldHVybiBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBF
dmVudChkZmJFdmVudCk7Cit9CisKK2Jvb2wgRGlyZWN0RkJOUEFQSU9iamVjdDo6ZGlzcGF0Y2hF
dmVudChjb25zdCBNb3VzZUV2ZW50KiBldmVudCkKK3sKKyAgICBERkJFdmVudCBkZmJFdmVudDsK
KyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5k
b3dFdmVudCYgd2luZG93ID0gZGZiRXZlbnQud2luZG93OworICAgIG1fZGZiV2luZG93SW5mby53
aW5kb3ctPkdldElEKG1fZGZiV2luZG93SW5mby53aW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsK
KyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKyAgICBJbnRQb2ludCBwb3N0Wm9vbVBv
cyA9IHJvdW5kZWRJbnRQb2ludChtX3BsdWdpblZpZXctPm1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKKyAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgeworICAgICAgICAvLyBlbnRlci9sZWF2
ZQorICAgICAgICB3aW5kb3cudHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBEV0VUX0xFQVZFKTsKKyAgICAgICAgd2luZG93
LnggPSBkZmJFdmVudC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIHdpbmRv
dy55ID0gZGZiRXZlbnQud2luZG93LmN5ID0gcG9zdFpvb21Qb3MueSgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIG1vdXNlCisgICAgICAgIHVuc2lnbmVkIGludCBtb2RpZmllcnMgPSAwOwor
ICAgICAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBE
SU1NX0NPTlRST0w7CisgICAgICAgIGlmIChldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAg
IG1vZGlmaWVycyB8PSBESU1NX1NISUZUOworICAgICAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQor
ICAgICAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQUxUOworICAgICAgICBpZiAoZXZlbnQtPm1l
dGFLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX01FVEE7CisgICAgICAgIHdp
bmRvdy5tb2RpZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhtb2RpZmllcnMpOwor
CisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVu
dCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpIHsKKyAgICAg
ICAgICAgIHdpbmRvdy50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNl
ZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dOIDogRFdFVF9CVVRUT05VUCk7CisgICAgICAgICAg
ICBzd2l0Y2ggKGV2ZW50LT5idXR0b24oKSkgeworICAgICAgICAgICAgY2FzZSBMZWZ0QnV0dG9u
OgorICAgICAgICAgICAgICAgIHdpbmRvdy5idXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAg
ICAgICB3aW5kb3cuYnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5i
dXR0b24gPSBESUJJX1JJR0hUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHdpbmRvdy5idXR0b25zID0gREZCSW5wdXREZXZpY2VCdXR0b25NYXNrKDApOworICAgICAg
ICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50
KSB7CisgICAgICAgICAgICB3aW5kb3cudHlwZSA9IERXRVRfTU9USU9OOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAg
d2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgd2luZG93LnkgPSBwb3N0Wm9vbVBvcy55
KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJzb2x1dGVMb2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0
ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4ID0gYWJzb2x1dGVMb2NhdGlvbi54KCk7CisgICAg
d2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7CisKKyAgICByZXR1cm4gbV9wbHVnaW5W
aWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCitib29sIERpcmVjdEZCTlBBUElP
YmplY3Q6OmRpc3BhdGNoRXZlbnQoRXZlbnRUeXBlIHR5cGUpCit7CisgICAgREZCRXZlbnQgZGZi
RXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAg
REZCV2luZG93RXZlbnQmIHdpbmRvdyA9IGRmYkV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xh
enogPSBERkVDX1dJTkRPVzsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEZvY3VzSW46
IHdpbmRvdy50eXBlID0gRFdFVF9HT1RGT0NVUzsgYnJlYWs7CisgICAgY2FzZSBGb2N1c091dDog
d2luZG93LnR5cGUgPSBEV0VUX0xPU1RGT0NVUzsgYnJlYWs7CisgICAgZGVmYXVsdDogcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQo
ZGZiRXZlbnQpOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OmV2ZW50RmlsdGVyKFFP
YmplY3QqICwgUUV2ZW50KiBlKQoreworICAgIGlmIChlLT50eXBlKCkgPT0gUUV2ZW50OjpNb3Zl
IHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6OlJlc2l6ZSkgeworICAgICAgICBtX3BsdWdpblZpZXct
Pm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKKyAgICAgICAgbV90aW1lci5zdGFy
dCgxMCwgdGhpcyk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEaXJlY3RG
Qk5QQVBJT2JqZWN0Ojp0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQoreworICAgIGlmIChlLT50
aW1lcklkKCkgPT0gbV90aW1lci50aW1lcklkKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7
CisgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VSZWRyYXcoKTsKKyAgICB9Cit9CisKK3ZvaWQg
RGlyZWN0RkJOUEFQSU9iamVjdDo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCit7CisgICAgUVBvaW50
IHBsdWdpblZpZXdHbG9iYWxQb3MgPSBtX3BsdWdpblZpZXctPndpbmRvd0NsaXBSZWN0KCkudG9w
TGVmdCgpOworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BsdWdpblZpZXctPm1fcGFy
ZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAg
ICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0
KCkgOiAwKSB7CisgICAgICAgIGlmICghbV9pbnN0YWxsZWRFdmVudEZpbHRlcikgeworICAgICAg
ICAgICAgUVdpZGdldCogd2F0Y2hlZCA9IG93bmVyV2lkZ2V0OworICAgICAgICAgICAgd2hpbGUg
KHRydWUpIHsKKyAgICAgICAgICAgICAgICB3YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0ZXIodGhp
cyk7CisgICAgICAgICAgICAgICAgaWYgKHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJl
bnRXaWRnZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIXdhdGNoZWQpCisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9pbnN0YWxsZWRFdmVu
dEZpbHRlciA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9z
ID0gb3duZXJXaWRnZXQtPm1hcFRvR2xvYmFsKHBsdWdpblZpZXdHbG9iYWxQb3MpOworICAgICAg
ICBpZiAoY29uc3QgUUdyYXBoaWNzV2ViVmlldyogaXRlbSA9IHFvYmplY3RfY2FzdDxjb25zdCBR
R3JhcGhpY3NXZWJWaWV3Kj4oY2xpZW50LT5wbHVnaW5QYXJlbnQoKSkpIHsKKyAgICAgICAgICAg
IFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkgJiYgIWl0ZW0tPnNjZW5lKCktPnZpZXdzKCkuaXNFbXB0
eSgpKTsKKyAgICAgICAgICAgIGNvbnN0IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2Vu
ZSgpLT52aWV3cygpLnZhbHVlKDApOworICAgICAgICAgICAgY29uc3QgUVBvaW50IGFkZCA9IHZp
ZXctPm1hcEZyb21TY2VuZShpdGVtLT5wb3MoKSk7CisgICAgICAgICAgICBwbHVnaW5WaWV3R2xv
YmFsUG9zICs9IGFkZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgoUVNpemUpKG1fcGx1
Z2luVmlldy0+bV93aW5kb3dSZWN0LnNpemUoKSkgIT0gbV9waXhtYXAuc2l6ZSgpKSB7CisgICAg
ICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3BsdWdpblZpZXctPm1fd2luZG93UmVjdC5zaXplKCkp
OworICAgICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgIG1fZGZi
U3VyZmFjZSA9IFFUX1BSRVBFTkRfTkFNRVNQQUNFKHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3Bp
eG1hcChtX3BpeG1hcCkpOworICAgIH0KKworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy53
c19pbmZvID0gJm1fZGZiV2luZG93SW5mbzsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cu
dHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworCisgICAgbV9wbHVnaW5WaWV3LT5tX25wV2lu
ZG93LnggPSBwbHVnaW5WaWV3R2xvYmFsUG9zLngoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBX
aW5kb3cueSA9IHBsdWdpblZpZXdHbG9iYWxQb3MueSgpOworICAgIGNvbnN0IEludFJlY3QgZnJh
bWVSZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFtZVJlY3QoKTsKKyAgICBtX3BsdWdpblZpZXctPm1f
bnBXaW5kb3cud2lkdGggPSBmcmFtZVJlY3Qud2lkdGgoKTsKKyAgICBtX3BsdWdpblZpZXctPm1f
bnBXaW5kb3cuaGVpZ2h0ID0gZnJhbWVSZWN0LmhlaWdodCgpOworICAgIG1fcGx1Z2luVmlldy0+
bV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QueSgpOwor
ICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gbV9wbHVnaW5WaWV3
LT5tX2NsaXBSZWN0LngoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cuY2xpcFJlY3Qu
cmlnaHQgPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3Qud2lkdGgoKSArIG1fcGx1Z2luVmlldy0+
bV9jbGlwUmVjdC54KCkgLSAxOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVj
dC5ib3R0b20gPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QuaGVpZ2h0KCkgKyBtX3BsdWdpblZp
ZXctPm1fY2xpcFJlY3QueSgpIC0gMTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cud2lu
ZG93ID0gbV9kZmJTdXJmYWNlOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpCit7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVnhEaXNwbGF5
OgorICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHZhbHVlKSA9IG1fZGZiV2luZG93
SW5mby5kZmI7CisgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBjYXNlIE5QTlZ4dEFwcENvbnRleHQ6CisgICAgICAgICpyZXN1bHQg
PSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2Ug
TlBOVm5ldHNjYXBlV2luZG93OgorICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHZh
bHVlKSA9IG1fZGZiV2luZG93SW5mby53aW5kb3c7CisgICAgICAgICpyZXN1bHQgPSBOUEVSUl9O
T19FUlJPUjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5oIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdERGQi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YjIwNGZmODg3ODhlZjRhY2QzMjhj
MzA3NGUwMWQ4YjVhYjgzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQv
UGx1Z2luVmlld1F0REZCLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBbmRlcnMgQmFra2VuIDxhZ2Jha2tlbkBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQ
bHVnaW5WaWV3UXRERkJfaAorI2RlZmluZSBQbHVnaW5WaWV3UXRERkJfaAorCisjaW5jbHVkZSAi
bnBhcGkuaCIKKyNpbmNsdWRlIDxRQmFzaWNUaW1lcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2lu
Y2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CitjbGFzcyBNb3VzZUV2ZW50OworY2xhc3MgS2V5Ym9hcmRFdmVudDsKK2NsYXNzIERp
cmVjdEZCTlBBUElPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IERpcmVjdEZCTlBBUElPYmplY3QqIGNyZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KTsKKyAg
ICB+RGlyZWN0RkJOUEFQSU9iamVjdCgpOworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KTsKKyAgICB2b2lkIHNldE5QV2luZG93SWZO
ZWVkZWQoKTsKKyAgICBib29sIHBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9i
amVjdCogb2JqZWN0LCBRRXZlbnQqIGV2ZW50KTsKKyAgICB2b2lkIHRpbWVyRXZlbnQoUVRpbWVy
RXZlbnQqIGUpOworCisgICAgYm9vbCBkaXNwYXRjaEV2ZW50KGNvbnN0IE1vdXNlRXZlbnQqIGV2
ZW50KTsKKyAgICBib29sIGRpc3BhdGNoRXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQp
OworICAgIGVudW0gRXZlbnRUeXBlIHsKKyAgICAgICAgRm9jdXNJbiwKKyAgICAgICAgRm9jdXNP
dXQKKyAgICB9OworCisgICAgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50VHlwZSB0eXBlKTsKK3By
aXZhdGU6CisgICAgUGx1Z2luVmlldyogbV9wbHVnaW5WaWV3OworICAgIFFQaXhtYXAgbV9waXht
YXA7CisgICAgSURpcmVjdEZCU3VyZmFjZSAqbV9kZmJTdXJmYWNlOworICAgIFFCYXNpY1RpbWVy
IG1fdGltZXI7CisgICAgYm9vbCBtX2luc3RhbGxlZEV2ZW50RmlsdGVyOworICAgIHN0cnVjdCBE
RkJXaW5kb3dJbmZvIHsKKyAgICAgICAgSURpcmVjdEZCKiBkZmI7CisgICAgICAgIElEaXJlY3RG
QkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAgICAgIElEaXJlY3RGQldpbmRvdyogd2luZG93Owor
ICAgIH0gbV9kZmJXaW5kb3dJbmZvOworCisgICAgRGlyZWN0RkJOUEFQSU9iamVjdChQbHVnaW5W
aWV3KiBwbHVnaW5WaWV3LCBjb25zdCBERkJXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKTsKKyAgICBz
dGF0aWMgdm9pZCBjbGVhcldpbmRvd0luZm8oREZCV2luZG93SW5mbyAqd2luZG93SW5mbyk7Cit9
OworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63384</attachid>
            <date>2010-08-03 15:27:01 -0700</date>
            <delta_ts>2010-08-03 15:29:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100803152243.patch</filename>
            <type>text/plain</type>
            <size>45351</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmlu
ZGV4IGNlMGY3MDEyYTM1Yjc4ODQxYzNiZmI2NWQyNWRhN2U2MTg4N2NkNmMuLjdmYTFjNGU2Mzli
NDFjNWUyMGRkYzA4YWViMmRkNWJjN2MwNmRiZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTcsNiArOTcsMTAgQEAgZ3JlYXRl
clRoYW4oUVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBw
b3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
X0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05F
VFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNl
KjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IGVkNWUyZGE2YmM2MWFhODMyZjJhYzgwYzI5MWM2NGM1ZGMzMDJmZjEuLjZjZDE5Y2EyYjllNDYz
NzU5MzMwYzRhMjAzNGY2Zjg2NjllZWFkZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjMyMSwxNiArMjMyMSwyMSBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAgICAgICAgICAg
ICAgICAgSU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAgICAgIyBOb3Rl
OiBYUF9NQUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGlyZWN0ZmIgewor
ICAgICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAgICAgICAgICAg
ICBRTUFLRV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAgICAgICAgICAg
ICAgICBMSUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgICAgICBTT1VS
Q0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmNwcAorICAgICAgICAgICAgICAgICAg
ICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmgKKyAgICAgICAgICAgICAg
ICB9IGVsc2U6IWVtYmVkZGVkIHsKICAgICAgICAgICAgICAgICAgICAgQ09ORklHICs9IHgxMQog
ICAgICAgICAgICAgICAgICAgICBMSUJTICs9IC1sWHJlbmRlcgorICAgICAgICAgICAgICAgICAg
ICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCisgICAgICAgICAg
ICAgICAgICAgIEhFQURFUlMgKz0gcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5oCiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gXAotICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcCBcCiAgICAgICAgICAgICAg
ICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcCBcCiAgICAgICAgICAgICAgICAg
ICAgIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAotICAgICAgICAgICAgICAgIEhFQURFUlMg
Kz0gXAotICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgK
ICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX1VOSVgKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaCBiL1dlYkNvcmUvYnJpZGdl
L25wYXBpLmgKaW5kZXggNWZjOGU0NjE5OThlOGRkNTBlYzM4MDc5MmIzN2I1OTdmN2QxMmY3Yi4u
ZjgzMTQ4ZmMwY2JiMTNlMGZjNGJmZTllN2FlNDQ2ZGM4MTg0MmI5MSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9icmlkZ2UvbnBhcGkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oCkBAIC04OSw3
ICs4OSw3IEBACiAjZW5kaWYKICNlbmRpZgogCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRl
ZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogI2luY2x1ZGUgPFgxMS9YbGliLmg+
CiAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTI0Myw3ICsy
NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfTlBTaXplCiAvKiBFeGFjdCBtZWFuaW5nIG11c3QgYmUg
c3BlYydkIGluIGV2ZW50IG1vZGVsLiAqLwogI2RlZmluZSBrTlBFdmVudFN0YXJ0SU1FIDIKIAot
I2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQ
X0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zCiAg
Ki8KQEAgLTUyMyw2ICs1MjMsOSBAQCB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogICB1aW50cHRy
X3Qgd1BhcmFtOwogICB1aW50cHRyX3QgbFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYgZGVmaW5l
ZChYUF9ERkIpCisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KK3R5cGVkZWYgREZCRXZlbnQgTlBFdmVu
dDsKICNlbGlmIGRlZmluZWQoWFBfT1MyKQogdHlwZWRlZiBzdHJ1Y3QgX05QRXZlbnQKIHsKQEAg
LTU0NCw3ICs1NDcsNyBAQCB0eXBlZGVmIFJnbkhhbmRsZSBOUFFEUmVnaW9uOwogdHlwZWRlZiBD
R1BhdGhSZWYgTlBDR1JlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlwZWRlZiBIUkdO
IE5QUmVnaW9uOwotI2VsaWYgZGVmaW5lZChYUF9VTklYKQorI2VsaWYgZGVmaW5lZChYUF9VTklY
KSAmJiAhZGVmaW5lZChYUF9ERkIpCiB0eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsKICNlbGlmIGRl
ZmluZWQoWFBfU1lNQklBTikKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaCBiL1dlYkNvcmUvYnJpZGdlL25w
cnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDczNmE3ZjE1NmI3OWNjNmU1OWRkODU2OTc4OTA3YTg1
ZjgwZDZhMTkuLjAxNTkzMWUyMDY1ZTRmZDIzYmNlMWQ3ZDQ0ZWIzNjFlOGRhZGM1NGMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUv
YnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
bnBmdW5jdGlvbnMuaCIKICNpbmNsdWRlICJucHJ1bnRpbWUuaCIKIAotI2lmZGVmIFhQX1VOSVgK
KyNpZiBkZWZpbmVkIFhQX1VOSVggJiYgIWRlZmluZWQoWFBfREZCKQogICAgICNpbmNsdWRlIDxY
MTEvWHJlc291cmNlLmg+CiAKICAgICAjdW5kZWYgTm9uZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmlu
ZGV4IDUwZWNhN2VlZTY4Mzg4NjdiY2MwNDg2ZmZjNGM5MDdjYjU2MTU0NWMuLjhmN2Q1YTQ5ZjRi
NDUxMjg4MjUxYzgwOTU3ZjkzOWQwOTcxNWMxYTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAg
LTM2Myw3ICszNjMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnN0b3AoKQogICAgICAgICBQbHVnaW5W
aWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKICAgICB9CiAKLSNpZmRlZiBYUF9VTklYCisj
aWYgZGVmaW5lZChYUF9YMTEpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICBpZiAobV9pc1dpbmRv
d2VkICYmIG1fbnBXaW5kb3cud3NfaW5mbykKICAgICAgICAgICAgZGVsZXRlIChOUFNldFdpbmRv
d0NhbGxiYWNrU3RydWN0ICopbV9ucFdpbmRvdy53c19pbmZvOwogICAgIG1fbnBXaW5kb3cud3Nf
aW5mbyA9IDA7CkBAIC04MjMsNyArODIzLDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFt
ZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICAg
ICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkKGZhbHNl
KQogICAgICwgbV9pc1dhaXRpbmdUb1N0YXJ0KGZhbHNlKQotI2lmIGRlZmluZWQoWFBfVU5JWCkK
KyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkIChYUF9ERkIpCiAgICAgLCBtX25lZWRz
WEVtYmVkKGZhbHNlKQogI2VuZGlmCiAjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCkBAIC04NDQsMTAgKzg0NCwxNCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3
KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSog
cAogI2VuZGlmCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmlu
ZWQgWFBfREZCCiAgICAgLCBtX2RyYXdhYmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwg
bV9jb2xvcm1hcCgwKQogICAgICwgbV9wbHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9k
ZmJOUEFQSU9iamVjdCgwKQorI2VuZGlmCiAjZW5kaWYKICAgICAsIG1fbG9hZE1hbnVhbGx5KGxv
YWRNYW51YWxseSkKICAgICAsIG1fbWFudWFsU3RyZWFtKDApCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRl
eCA0MzFjZTBlNzAyNmNjZjc4YmNlMjBhYWQ3N2JmZTJkYmU0Nzg0ODI1Li5jOWYwZjYxNGEzNjU0
OTU4NTk1NzcxODIxMDc2MDgxMWM0Y2MxYmIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTc4LDYg
Kzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsdWdpblN0cmVhbTsKICAg
ICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisjaWYg
ZGVmaW5lZCBYUF9ERkIgJiYgUExBVEZPUk0oUVQpCisgICAgY2xhc3MgRGlyZWN0RkJOUEFQSU9i
amVjdDsKKyNlbmRpZgogCiAgICAgZW51bSBQbHVnaW5TdGF0dXMgewogICAgICAgICBQbHVnaW5T
dGF0dXNDYW5Ob3RGaW5kUGx1Z2luLApAQCAtMzE2LDcgKzMxOSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX2hhdmVJbml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lz
V2FpdGluZ1RvU3RhcnQ7CiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9V
TklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNl
bmRpZgogCkBAIC0zNjYsMTIgKzM2OSwxNyBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9V
TklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1Bl
bmRpbmdHZW9tZXRyeUNoYW5nZTsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2Ry
YXdhYmxlOwogICAgICAgICBWaXN1YWwqIG1fdmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2Nv
bG9ybWFwOwogICAgICAgICBEaXNwbGF5KiBtX3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9p
ZCBpbml0WEV2ZW50KFhFdmVudCogZXZlbnQpOworI2Vsc2UKKyAgICAgICAgZnJpZW5kIGNsYXNz
IERpcmVjdEZCTlBBUElPYmplY3Q7CisgICAgICAgIERpcmVjdEZCTlBBUElPYmplY3QgKm1fZGZi
TlBBUElPYmplY3Q7CisjZW5kaWYKICNlbmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVj
dDsgLy8gVGhlIGNsaXAgcmVjdCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggMGNhMzU2YjRlNDE2M2Q5YmNmNTE4YzE3NjI2
NjYzZWY0ZGI4MGI0MC4uMTM2MjZjYjYyNGQ4ZWZhMmRjZWZkNDY2MThkZWUyNTAwNjc5OTQyNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJk
Ymlhcy5pbj4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBBbmRlcnMgQmFra2VuIDxhZ2Jha2tlbkBn
bWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDcgKzUyLDYg
QEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFp
bmVyUXQuaCIKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2th
Z2UuaCIKICNpbmNsdWRlICJQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgiCkBAIC02OCw2ICs2
OCw4IEBACiAjaW5jbHVkZSA8UUtleUV2ZW50PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1
ZGUgPFFXaWRnZXQ+CisjaWZkZWYgUV9XU19YMTEKKyNpbmNsdWRlICJQbHVnaW5Db250YWluZXJR
dC5oIgogI2luY2x1ZGUgPFFYMTFJbmZvPgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFU
X05PX1hSRU5ERVIKQEAgLTc1LDYgKzc3LDEwIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNs
dWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQoWFBf
REZCKQorI2luY2x1ZGUgIlBsdWdpblZpZXdRdERGQi5oIgorI2VuZGlmCisKICNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgogCkBAIC0xMTAs
NiArMTE2LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIGlm
IChtX3dpbmRvd1JlY3QgPT0gb2xkV2luZG93UmVjdCAmJiBtX2NsaXBSZWN0ID09IG9sZENsaXBS
ZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKCFtX2lzV2lu
ZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0LnNpemUoKSkgewog
ICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZv
OjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwpAQCAtMTE4LDYgKzEyNSw3IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5k
ZXB0aCk7CiAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFrZSBzdXJlIHRoYXQg
dGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9CisjZW5kaWYKIAogICAg
IC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRlbHksIHdpbGwgYmUg
Y2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7
CkBAIC0xNzIsNiArMTgwLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICBzZXROUFdpbmRvd0lmTmVl
ZGVkKCk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3
YWJsZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNDAsNiArMjQ5LDEwIEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQogCiAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhw
b3NlZFJlY3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdh
YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlZFJlY3QpOworI2Vsc2UgLy8gWFBf
REZCCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpCisgICAgICAgIG1fZGZiTlBBUElPYmplY3Qt
PnBhaW50KGNvbnRleHQsIHJlY3QpOworI2VuZGlmCiB9CiAKIC8vIFRPRE86IFVuaWZ5IGFjcm9z
cyBwb3J0cy4KQEAgLTI1OCw2ICsyNzEsNyBAQCBib29sIFBsdWdpblZpZXc6OmRpc3BhdGNoTlBF
dmVudChOUEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKKyNpZm5kZWYg
WFBfREZCCiB2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwgUVdpZGdl
dCogb3duZXJXaWRnZXQpCiB7CiAgICAgeEV2ZW50LT54YW55LnNlcmlhbCA9IDA7IC8vIHdlIGFy
ZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5IFggU2VydmVyCkBAIC0y
OTksNiArMzEzLDcgQEAgdm9pZCBzZXRYS2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhF
dmVudCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9IDA7
CiAgICAgeEV2ZW50LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5W
aWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMzA4
LDE0ICszMjMsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQqIGV2ZW50KQogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQgJiYgZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkK
ICAgICAgICAgcmV0dXJuOwogCisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50Owog
ICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRz
KCZucEV2ZW50LCBldmVudCk7CiAKICAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkK
ICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisjZWxzZQorICAgIGlmICghbV9k
ZmJOUEFQSU9iamVjdCB8fCAhbV9kZmJOUEFQSU9iamVjdC0+ZGlzcGF0Y2hFdmVudChldmVudCkp
CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworI2VuZGlmCisKIH0KIAorI2lm
bmRlZiBYUF9ERkIKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVudFN0YXRlKE1vdXNlRXZl
bnQqIGV2ZW50KQogewogICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CkBAIC0zOTAsNiArNDEy
LDcgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGMKICAgICB4Y3Jvc3Npbmcuc2FtZV9zY3JlZW4g
PSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2VuZGlmCiAKIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIHsKQEAgLTQw
NCw2ICs0MjcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVu
dCogZXZlbnQpCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgIH0KIAorI2lmbmRl
ZiBYUF9ERkIKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsK
IApAQCAtNDIwLDEwICs0NDQsMTUgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50
KE1vdXNlRXZlbnQqIGV2ZW50KQogCiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkp
CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworI2Vsc2UKKyAgICBpZiAoIW1f
ZGZiTlBBUElPYmplY3QgfHwgIW1fZGZiTlBBUElPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQp
KQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQogCiB2b2lk
IFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZuZGVmIFhQX0RGQgogICAg
IFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00MzMsMTAg
KzQ2MiwxNSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiAgICAgZXZl
bnQuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKIAogICAgIGRpc3BhdGNoTlBFdmVudChucEV2
ZW50KTsKKyNlbHNlCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpCisgICAgICAgIG1fZGZiTlBB
UElPYmplY3QtPmRpc3BhdGNoRXZlbnQoRGlyZWN0RkJOUEFQSU9iamVjdDo6Rm9jdXNJbik7Cisj
ZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIHsKKyNp
Zm5kZWYgWFBfREZCCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVu
dCk7CiAKQEAgLTQ0Niw2ICs0ODAsMTAgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091
dEV2ZW50KCkKICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlz
cGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2Vsc2UKKyAgICBpZiAobV9kZmJOUEFQSU9iamVjdCkK
KyAgICAgICAgbV9kZmJOUEFQSU9iamVjdC0+ZGlzcGF0Y2hFdmVudChEaXJlY3RGQk5QQVBJT2Jq
ZWN0OjpGb2N1c091dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQo
U2Nyb2xsVmlldyogcGFyZW50KQpAQCAtNDk4LDYgKzUzNiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6
c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQg
PSBtX2NsaXBSZWN0LngoKSArIG1fY2xpcFJlY3Qud2lkdGgoKTsKICAgICAgICAgbV9ucFdpbmRv
dy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LnkoKSArIG1fY2xpcFJlY3QuaGVpZ2h0KCk7
CiAgICAgfSBlbHNlIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgICAgIG1fbnBXaW5kb3cueCA9IDA7
CiAgICAgICAgIG1fbnBXaW5kb3cueSA9IDA7CiAKQEAgLTUwNSw2ICs1NDQsMTAgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5jbGlw
UmVjdC50b3AgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gMDsKICAg
ICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSAwOworI2Vsc2UKKyAgICAgICAgaWYg
KG1fZGZiTlBBUElPYmplY3QpCisgICAgICAgICAgICBtX2RmYk5QQVBJT2JqZWN0LT5zZXROUFdp
bmRvd0lmTmVlZGVkKCk7CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAobV9wbHVnaW4tPnF1aXJr
cygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udENhbGxTZXRXaW5kb3dNb3JlVGhhbk9uY2UpKSB7
CkBAIC01NzIsMTAgKzYxNSwxMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVT
dGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycgogICAgICAgICAq
cmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwogCisjaWZuZGVm
IFhQX0RGQgogICAgIGNhc2UgTlBOVlN1cHBvcnRzWEVtYmVkQm9vbDoKICAgICAgICAgKnN0YXRp
Y19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9IHRydWU7CiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9O
T19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKIAogICAgIGNhc2UgTlBOVmph
dmFzY3JpcHRFbmFibGVkQm9vbDoKICAgICAgICAgKnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVl
KSA9IHRydWU7CkBAIC01OTQsNiArNjM5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKIAog
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2
b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KQogeworI2lmbmRlZiBYUF9ERkIKICAgICBzd2l0
Y2ggKHZhcmlhYmxlKSB7CiAgICAgY2FzZSBOUE5WeERpc3BsYXk6CiAgICAgICAgICoodm9pZCAq
Kil2YWx1ZSA9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CkBAIC02MjMsNiArNjY5LDkgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSwgTlBFcnJvciogcmUKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQorI2Vsc2UKKyAgICByZXR1cm4gbV9kZmJOUEFQSU9iamVjdCAmJiBtX2RmYk5QQVBJT2Jq
ZWN0LT5wbGF0Zm9ybUdldFZhbHVlKHZhcmlhYmxlLCB2YWx1ZSwgcmVzdWx0KTsKKyNlbmRpZgog
fQogCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CkBAIC02NTYsNiArNzA1LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAg
aW52YWxpZGF0ZSgpOwogfQogCisjaWZuZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkgKmdldFBs
dWdpbkRpc3BsYXkoKQogewogICAgIC8vIFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNp
bmcgYSBkaWZmZXJlbnQgWCBjb25uZWN0aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC03
MjEsMTIgKzc3MSwxNCBAQCBzdGF0aWMgdm9pZCBnZXRWaXN1YWxBbmRDb2xvcm1hcChpbnQgZGVw
dGgsIFZpc3VhbCAqKnZpc3VhbCwgQ29sb3JtYXAgKmNvbG9ybWFwKQogICAgIGlmICgqdmlzdWFs
KQogICAgICAgICAqY29sb3JtYXAgPSBYQ3JlYXRlQ29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXko
KSwgUVgxMUluZm86OmFwcFJvb3RXaW5kb3coKSwgKnZpc3VhbCwgQWxsb2NOb25lKTsKIH0KKyNl
bmRpZgogCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VSVCht
X2lzU3RhcnRlZCk7CiAgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRlZFN1
Y2Nlc3NmdWxseSk7CiAKKyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5G
dW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2lu
Vmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9j
a3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtNzUxLDkgKzgwMywyNSBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgw
KTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0K
KyNlbHNlCisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtX2RmYk5QQVBJT2JqZWN0ID0gRGlyZWN0
RkJOUEFQSU9iamVjdDo6Y3JlYXRlKHRoaXMpOworCisgICAgaWYgKCFtX2RmYk5QQVBJT2JqZWN0
KSB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2lu
U3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNl
bmRpZgogCiAgICAgc2hvdygpOwogCisjaWZuZGVmIFhQX0RGQgogICAgIE5QU2V0V2luZG93Q2Fs
bGJhY2tTdHJ1Y3QqIHdzaSA9IG5ldyBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KCk7CiAgICAg
d3NpLT50eXBlID0gMDsKIApAQCAtNzk1LDYgKzg2Myw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1TdGFydCgpCiAgICAgfQogCiAgICAgbV9ucFdpbmRvdy53c19pbmZvID0gd3NpOworI2Vu
ZGlmCiAKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtE
ZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKSB7CiAgICAgICAgIHVwZGF0ZVBsdWdpbldpZGdldCgp
OwpAQCAtODA5LDExICs4NzgsMTggQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3ko
KQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZv
cm1QbHVnaW5XaWRnZXQoKTsKIAorI2lmbmRlZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkK
ICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAK
ICAgICBpZiAobV9jb2xvcm1hcCkKICAgICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlz
cGxheSgpLCBtX2NvbG9ybWFwKTsKKyNlbHNlCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpIHsK
KyAgICAgICAgZGVsZXRlIG1fZGZiTlBBUElPYmplY3Q7CisgICAgICAgIG1fZGZiTlBBUElPYmpl
Y3QgPSAwOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbHQoKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDU4MGJkZjRjODdk
ZmM3OGZlMzJlZGUxM2E0ZTM2YjQwODg3YTBmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5jcHAKQEAgLTAsMCArMSw4MTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQW5kZXJzIEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29tPgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3UXRERkIuaCIKKwor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIktleWJv
YXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVk
ZSAiUGx1Z2luVmlldy5oIgorI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNpbmNsdWRlIDxRR3Jh
cGhpY3NXZWJWaWV3PgorI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTW91c2VFdmVu
dD4KKyNpbmNsdWRlIDxRVmFyaWFudD4KKyNpbmNsdWRlIDxRV2lkZ2V0PgorCitRVF9CRUdJTl9O
QU1FU1BBQ0UKK2V4dGVybiBRX0dVSV9FWFBPUlQgSURpcmVjdEZCU3VyZmFjZSogcXRfZGlyZWN0
ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKGNvbnN0IFFQaXhtYXAgJnBpeG1hcCk7CitRVF9FTkRfTkFN
RVNQQUNFCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3ZvaWQgRGlyZWN0RkJOUEFQSU9iamVjdDo6
Y2xlYXJXaW5kb3dJbmZvKERpcmVjdEZCTlBBUElPYmplY3Q6OkRGQldpbmRvd0luZm8gKndpbmRv
d0luZm8pCit7CisgICAgaWYgKHdpbmRvd0luZm8tPndpbmRvdykKKyAgICAgICAgd2luZG93SW5m
by0+d2luZG93LT5SZWxlYXNlKHdpbmRvd0luZm8tPndpbmRvdyk7CisgICAgaWYgKHdpbmRvd0lu
Zm8tPmxheWVyKQorICAgICAgICB3aW5kb3dJbmZvLT5sYXllci0+UmVsZWFzZSh3aW5kb3dJbmZv
LT5sYXllcik7CisgICAgaWYgKHdpbmRvd0luZm8tPmRmYikKKyAgICAgICAgd2luZG93SW5mby0+
ZGZiLT5SZWxlYXNlKHdpbmRvd0luZm8tPmRmYik7Cit9CisKK0RpcmVjdEZCTlBBUElPYmplY3Q6
OkRpcmVjdEZCTlBBUElPYmplY3QoUGx1Z2luVmlldyogcGx1Z2luVmlldywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgREZCV2luZG93SW5mbyYgd2luZG93
SW5mbykKKyAgICA6IG1fcGx1Z2luVmlldyhwbHVnaW5WaWV3KSwgbV9kZmJTdXJmYWNlKDApLCBt
X2luc3RhbGxlZEV2ZW50RmlsdGVyKGZhbHNlKSwgbV9kZmJXaW5kb3dJbmZvKHdpbmRvd0luZm8p
Cit7Cit9CisKK0RpcmVjdEZCTlBBUElPYmplY3Q6On5EaXJlY3RGQk5QQVBJT2JqZWN0KCkKK3sK
KyAgICBjbGVhcldpbmRvd0luZm8oJm1fZGZiV2luZG93SW5mbyk7Cit9CisKK0RpcmVjdEZCTlBB
UElPYmplY3QqIERpcmVjdEZCTlBBUElPYmplY3Q6OmNyZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3KQoreworICAgIEFTU0VSVChwbHVnaW5WaWV3KTsKKyAgICBRV2ViUGFnZUNsaWVudCogY2xp
ZW50ID0gcGx1Z2luVmlldy0+bV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmICghY2xpZW50IHx8ICFjbGllbnQtPm93bmVyV2lk
Z2V0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgREZCV2luZG93SW5mbyB3aW5kb3dJbmZv
ID0geyAwLCAwLCAwIH07CisgICAgREZCUmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZ3
aW5kb3dJbmZvLmRmYik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAgRGly
ZWN0RkJFcnJvcigiRGlyZWN0RkJOUEFQSU9iamVjdDo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmVzdWx0ID0gd2luZG93SW5mby5kZmItPkdldERp
c3BsYXlMYXllcih3aW5kb3dJbmZvLmRmYiwgRExJRF9QUklNQVJZLCAmd2luZG93SW5mby5sYXll
cik7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigi
RGlyZWN0RkJOUEFQSU9iamVjdDo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAgICAgY2xlYXJXaW5k
b3dJbmZvKCZ3aW5kb3dJbmZvKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmVz
dWx0ID0gd2luZG93SW5mby5sYXllci0+R2V0V2luZG93KHdpbmRvd0luZm8ubGF5ZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC0+b3duZXJXaWRnZXQo
KS0+cHJvcGVydHkoIl9xX0RpcmVjdEZCV2luZG93SUQiKS50b0ludCgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd2luZG93SW5mby53aW5kb3cpOworICAgIGlm
IChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIERpcmVjdEZCRXJyb3IoIkRpcmVjdEZCTlBB
UElPYmplY3Q6OmNyZWF0ZSIsIHJlc3VsdCk7CisgICAgICAgIGNsZWFyV2luZG93SW5mbygmd2lu
ZG93SW5mbyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBuZXcgRGly
ZWN0RkJOUEFQSU9iamVjdChwbHVnaW5WaWV3LCB3aW5kb3dJbmZvKTsKK30KKwordm9pZCBEaXJl
Y3RGQk5QQVBJT2JqZWN0OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCit7CisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJF
dmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQg
PSBkZmJFdmVudC51c2VyOworICAgIHVzZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1
c2VyRXZlbnQudHlwZSA9IDB4ZGZiOworICAgIHVzZXJFdmVudC5kYXRhID0gJm1fcGx1Z2luVmll
dy0+bV9ucFdpbmRvdzsKKyAgICBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBFdmVudChkZmJFdmVu
dCk7CisgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsK
KyAgICBJbnRSZWN0IGV4cG9zZWRSZWN0KHJlY3QpOworICAgIGNvbnN0IEludFJlY3QgZnJhbWVS
ZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFtZVJlY3QoKTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNl
Y3QoZnJhbWVSZWN0KTsKKyAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QueCgpLCAtZnJh
bWVSZWN0LnkoKSk7CisgICAgY29uc3QgUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSBvbGRNb2Rl
ID0gcGFpbnRlci0+Y29tcG9zaXRpb25Nb2RlKCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICBwYWludGVyLT5k
cmF3UGl4bWFwKFFQb2ludChmcmFtZVJlY3QueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJl
Y3QueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgbV9waXhtYXAsCisgICAgICAgICAgICAgICAgICAg
ICAgICBleHBvc2VkUmVjdCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKG9sZE1v
ZGUpOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OmRpc3BhdGNoRXZlbnQoY29uc3Qg
S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgY29uc3QgUUtleUV2ZW50KiBxdEV2ZW50ID0g
ZXZlbnQtPmtleUV2ZW50KCktPnF0RXZlbnQoKTsKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAg
ICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJJbnB1dEV2
ZW50JiBpbnB1dCA9IGRmYkV2ZW50LmlucHV0OworICAgIGlucHV0LmNsYXp6ID0gREZFQ19JTlBV
VDsKKyAgICBpbnB1dC50eXBlID0gKHF0RXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNz
ID8gRElFVF9LRVlQUkVTUyA6IERJRVRfS0VZUkVMRUFTRSk7CisgICAgdW5zaWduZWQgaW50IGZs
YWdzID0gKERJRUZfS0VZU1lNQk9MIHwgRElFRl9NT0RJRklFUlMpOworICAgIGlmIChxdEV2ZW50
LT5pc0F1dG9SZXBlYXQoKSkKKyAgICAgICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisgICAgY29u
c3QgUXQ6OktleWJvYXJkTW9kaWZpZXIgbW9kaWZpZXJzW10gPSB7IFF0OjpTaGlmdE1vZGlmaWVy
LCBRdDo6Q29udHJvbE1vZGlmaWVyLCBRdDo6QWx0TW9kaWZpZXIsIFF0OjpNZXRhTW9kaWZpZXIg
fTsKKyAgICBjb25zdCBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayBkZmJNb2RpZmllcnNbXSA9
IHsgRElNTV9TSElGVCwgRElNTV9DT05UUk9MLCBESU1NX0FMVCwgRElNTV9NRVRBIH07CisgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlm
aWVycygpICYgbW9kaWZpZXJzW2ldKQorICAgICAgICAgICAgaW5wdXQubW9kaWZpZXJzID0gREZC
SW5wdXREZXZpY2VNb2RpZmllck1hc2soaW5wdXQubW9kaWZpZXJzIHwgZGZiTW9kaWZpZXJzW2ld
KTsKKyAgICB9CisgICAgc3dpdGNoIChxdEV2ZW50LT5rZXkoKSkgeworICAgIGNhc2UgUXQ6Oktl
eV9CYWNrc3BhY2U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTUEFDRTsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9CQUNLU1BBQ0U7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9UYWI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1RB
QjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9UQUI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9SZXR1cm46CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1JF
VFVSTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0VzY2FwZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRVNDQVBFOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0VTQ0FQRTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlbGV0ZToKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfREVMRVRFOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0RFTEVURTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xlZnQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0NVUlNPUl9MRUZUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJ
X0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SaWdodDoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1JJR0hUOworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVXA6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9VUDsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rvd246
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9ET1dOOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX0RPV047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9JbnNlcnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0lOU0VSVDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9JTlNFUlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Ib21lOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19IT01FOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9FbmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0VORDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9FTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9QYWdlVXA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BBR0VfVVA7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUEFHRV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1BhZ2VEb3duOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19Q
QUdFX0RPV047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUEFHRV9ET1dOOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUHJpbnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1BSSU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGF1c2U6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BBVVNFOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfU2VsZWN0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19TRUxFQ1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9PcGVuVXJsOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19HT1RPOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfQ2xlYXI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NMRUFS
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVudToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfTUVOVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0hlbHA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0hFTFA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Ib21lUGFnZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfSU5URVJORVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MYXVu
Y2hNYWlsOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRmF2b3JpdGVzOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19GQVZPUklURVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9C
YWNrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19CQUNLOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRm9yd2FyZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRk9SV0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZVVw
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfVVA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVEb3duOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19WT0xVTUVfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1ZvbHVtZU11dGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX01VVEU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVBsYXk6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1BMQVk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9N
ZWRpYVN0b3A6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NUT1A7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVJlY29yZDoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfUkVDT1JEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
TWVkaWFQcmV2aW91czoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUFJFVklPVVM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYU5leHQ6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX05FWFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GMToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfRjE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9G
MjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjI7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfRjI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMzoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjM7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfRjM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNDoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
RjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfRjU7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNjoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfRjY7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjY7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GNzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRjc7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjc7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9GODoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
Rjg7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9GOToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjk7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9GMTA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9GMTE6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMTsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV9GMTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9GMTI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMjsKKyAgICAgICAgaW5w
dXQua2V5X2lkID0gRElLSV9GMTI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9T
aGlmdDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU0hJRlQ7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfU0hJRlRfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0NvbnRyb2w6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NPTlRST0w7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQ09OVFJPTF9MOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQWx0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19BTFQ7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9BbHRHcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQUxU
R1I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19NRVRBOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX01F
VEFfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1N1cGVyX0w6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NVUEVSOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX1NVUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IeXBlcl9MOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19IWVBFUjsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9IWVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fw
c0xvY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NBUFNfTE9DSzsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9DQVBTX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9OdW1Mb2NrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19OVU1f
TE9DSzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9OVU1fTE9DSzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1Njcm9sbExvY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NDUk9MTF9MT0NLOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NDUk9M
TF9MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQk9WRURPVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVyaW5nOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19ERUFEX0FCT1ZFUklORzsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0RlYWRfQWN1dGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RF
QURfQUNVVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZlOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0JSRVZFOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DYXJvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfREVBRF9DQVJPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rl
YWRfQ2VkaWxsYToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9DRURJTExB
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9DaXJjdW1mbGV4OgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NJUkNVTUZMRVg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RpYWVyZXNpczoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfREVBRF9ESUFFUkVTSVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9EZWFkX0RvdWJsZWFjdXRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19ERUFEX0RPVUJMRUFDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9HcmF2ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9HUkFWRTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfSW90YToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfREVBRF9JT1RBOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfRGVhZF9NYWNyb246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURf
TUFDUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9PZ29uZWs6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfT0dPTkVLOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9TZW1pdm9pY2VkX1NvdW5kOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX1NFTUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9EZWFkX1RpbGRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX1RJTERFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9Wb2ljZWRfU291bmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfVk9J
Q0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3BhY2U6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NQQUNFOworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJX1NQQUNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhjbGFtOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19FWENMQU1BVElPTl9NQVJLOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUXVvdGVEYmw6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1FVT1RBVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X051bWJlclNpZ246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX05VTUJFUl9TSUdO
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRG9sbGFyOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19ET0xMQVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BlcmNlbnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BFUkNF
TlRfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FtcGVyc2FuZDoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQU1QRVJTQU5EOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfQVBPU1RST1BIRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVu
TGVmdDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNfTEVGVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVuUmlnaHQ6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX1JJR0hUOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQXN0ZXJpc2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX0FTVEVSSVNLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGx1czoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAocXRF
dmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0tQX1BMVVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9Db21tYToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ09NTUE7CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfQ09NTUE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9NaW51czoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTUlOVVNfU0lHTjsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9NSU5VU19TSUdOOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUGVyaW9kOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19QRVJJT0Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUEVSSU9EOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2xhc2g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NMQVNIOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NMQVNIOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfMDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV8wOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfMToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMTsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV8xOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfMjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMjsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV8yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
MzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMzsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV8zOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNDoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfNDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV80OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfNTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV81OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfNjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV82OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfNzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
NzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV83OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfODoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfODsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV84OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfOToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfOTsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV85OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29sb246
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NPTE9OOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfU2VtaWNvbG9uOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19TRU1JQ09MT047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfU0VNSUNPTE9OOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVzczoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfTEVTU19USEFOX1NJR047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfTEVTU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXF1YWw6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0VRVUFMU19TSUdOOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0VRVUFMU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfR3JlYXRlcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfR1JFQVRFUl9U
SEFOX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdWVzdGlvbjoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUVVFU1RJT05fTUFSSzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0F0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19BVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0E6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0E7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
QTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0I6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX0I7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0M6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX0M7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Q6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX0Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX0U7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX0Y7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0c6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX0c7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NN
QUxMX0g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0k6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X0k7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0o6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0s7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0w6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0w7CisgICAg
ICAgIGlucHV0LmtleV9pZCA9IERJS0lfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X006CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX007CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfTTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X046CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX047CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X086
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX087CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfTzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1A6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1A7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1E6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1E7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfUTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1I7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1M6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1M7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Q6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
VDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1U6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX1U7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Y6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX1Y7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1c6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX1c7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX1g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfWDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1k6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX1k7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfWTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1o6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX1o7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfWjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRMZWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19TUVVBUkVfQlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQmFja3NsYXNoOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19CQUNLU0xB
U0g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQkFDS1NMQVNIOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldFJpZ2h0OgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19TUVVBUkVfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0FzY2lpQ2lyY3VtOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19D
SVJDVU1GTEVYX0FDQ0VOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VuZGVy
c2NvcmU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1VOREVSU0NPUkU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZUxlZnQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0JhcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVkVSVElD
QUxfQkFSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpVGlsZGU6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1RJTERFOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKChx
dEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyKSAmJiBxdEV2ZW50LT5rZXko
KSA+PSBRdDo6S2V5X0EgJiYgcXRFdmVudC0+a2V5KCkgPD0gUXQ6OktleV9aKQorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gREZCSW5wdXREZXZpY2VLZXlTeW1ib2woKGlucHV0LmtleV9zeW1i
b2wgLSBESUtTX1NNQUxMX0EpICsgRElLU19DQVBJVEFMX0EpOworICAgIGlmIChpbnB1dC5rZXlf
aWQgIT0gRElLSV9VTktOT1dOKSB7CisgICAgICAgIGZsYWdzIHw9IERJRUZfS0VZSUQ7CisgICAg
ICAgIGlmIChpbnB1dC5rZXlfaWQgPj0gRElLSV8wICYmIGlucHV0LmtleV9pZCA8PSBESUtJXzkg
JiYgcXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBERkJJbnB1dERldmljZUtleUlkZW50aWZpZXIoaW5wdXQua2V5X2lk
IC0gRElLSV8wICsgRElLSV9LUF8wKTsKKyAgICB9CisgICAgaW5wdXQuZmxhZ3MgPSBERkJJbnB1
dEV2ZW50RmxhZ3MoZmxhZ3MpOworICAgIHJldHVybiBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBF
dmVudChkZmJFdmVudCk7Cit9CisKK2Jvb2wgRGlyZWN0RkJOUEFQSU9iamVjdDo6ZGlzcGF0Y2hF
dmVudChjb25zdCBNb3VzZUV2ZW50KiBldmVudCkKK3sKKyAgICBERkJFdmVudCBkZmJFdmVudDsK
KyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5k
b3dFdmVudCYgd2luZG93ID0gZGZiRXZlbnQud2luZG93OworICAgIG1fZGZiV2luZG93SW5mby53
aW5kb3ctPkdldElEKG1fZGZiV2luZG93SW5mby53aW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsK
KyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKyAgICBJbnRQb2ludCBwb3N0Wm9vbVBv
cyA9IHJvdW5kZWRJbnRQb2ludChtX3BsdWdpblZpZXctPm1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKKyAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgeworICAgICAgICAvLyBlbnRlci9sZWF2
ZQorICAgICAgICB3aW5kb3cudHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBEV0VUX0xFQVZFKTsKKyAgICAgICAgd2luZG93
LnggPSBkZmJFdmVudC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIHdpbmRv
dy55ID0gZGZiRXZlbnQud2luZG93LmN5ID0gcG9zdFpvb21Qb3MueSgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIG1vdXNlCisgICAgICAgIHVuc2lnbmVkIGludCBtb2RpZmllcnMgPSAwOwor
ICAgICAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBE
SU1NX0NPTlRST0w7CisgICAgICAgIGlmIChldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAg
IG1vZGlmaWVycyB8PSBESU1NX1NISUZUOworICAgICAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQor
ICAgICAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQUxUOworICAgICAgICBpZiAoZXZlbnQtPm1l
dGFLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX01FVEE7CisgICAgICAgIHdp
bmRvdy5tb2RpZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayhtb2RpZmllcnMpOwor
CisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVu
dCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpIHsKKyAgICAg
ICAgICAgIHdpbmRvdy50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNl
ZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dOIDogRFdFVF9CVVRUT05VUCk7CisgICAgICAgICAg
ICBzd2l0Y2ggKGV2ZW50LT5idXR0b24oKSkgeworICAgICAgICAgICAgY2FzZSBMZWZ0QnV0dG9u
OgorICAgICAgICAgICAgICAgIHdpbmRvdy5idXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAg
ICAgICB3aW5kb3cuYnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5i
dXR0b24gPSBESUJJX1JJR0hUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHdpbmRvdy5idXR0b25zID0gREZCSW5wdXREZXZpY2VCdXR0b25NYXNrKDApOworICAgICAg
ICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50
KSB7CisgICAgICAgICAgICB3aW5kb3cudHlwZSA9IERXRVRfTU9USU9OOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAg
d2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgd2luZG93LnkgPSBwb3N0Wm9vbVBvcy55
KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJzb2x1dGVMb2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0
ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4ID0gYWJzb2x1dGVMb2NhdGlvbi54KCk7CisgICAg
d2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7CisKKyAgICByZXR1cm4gbV9wbHVnaW5W
aWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCitib29sIERpcmVjdEZCTlBBUElP
YmplY3Q6OmRpc3BhdGNoRXZlbnQoRXZlbnRUeXBlIHR5cGUpCit7CisgICAgREZCRXZlbnQgZGZi
RXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAg
REZCV2luZG93RXZlbnQmIHdpbmRvdyA9IGRmYkV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xh
enogPSBERkVDX1dJTkRPVzsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEZvY3VzSW46
IHdpbmRvdy50eXBlID0gRFdFVF9HT1RGT0NVUzsgYnJlYWs7CisgICAgY2FzZSBGb2N1c091dDog
d2luZG93LnR5cGUgPSBEV0VUX0xPU1RGT0NVUzsgYnJlYWs7CisgICAgZGVmYXVsdDogcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQo
ZGZiRXZlbnQpOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OmV2ZW50RmlsdGVyKFFP
YmplY3QqICwgUUV2ZW50KiBlKQoreworICAgIGlmIChlLT50eXBlKCkgPT0gUUV2ZW50OjpNb3Zl
IHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6OlJlc2l6ZSkgeworICAgICAgICBtX3BsdWdpblZpZXct
Pm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKKyAgICAgICAgbV90aW1lci5zdGFy
dCgxMCwgdGhpcyk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEaXJlY3RG
Qk5QQVBJT2JqZWN0Ojp0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQoreworICAgIGlmIChlLT50
aW1lcklkKCkgPT0gbV90aW1lci50aW1lcklkKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7
CisgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VSZWRyYXcoKTsKKyAgICB9Cit9CisKK3ZvaWQg
RGlyZWN0RkJOUEFQSU9iamVjdDo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCit7CisgICAgUVBvaW50
IHBsdWdpblZpZXdHbG9iYWxQb3MgPSBtX3BsdWdpblZpZXctPndpbmRvd0NsaXBSZWN0KCkudG9w
TGVmdCgpOworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BsdWdpblZpZXctPm1fcGFy
ZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAg
ICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0
KCkgOiAwKSB7CisgICAgICAgIGlmICghbV9pbnN0YWxsZWRFdmVudEZpbHRlcikgeworICAgICAg
ICAgICAgUVdpZGdldCogd2F0Y2hlZCA9IG93bmVyV2lkZ2V0OworICAgICAgICAgICAgd2hpbGUg
KHRydWUpIHsKKyAgICAgICAgICAgICAgICB3YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0ZXIodGhp
cyk7CisgICAgICAgICAgICAgICAgaWYgKHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJl
bnRXaWRnZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIXdhdGNoZWQpCisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9pbnN0YWxsZWRFdmVu
dEZpbHRlciA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9z
ID0gb3duZXJXaWRnZXQtPm1hcFRvR2xvYmFsKHBsdWdpblZpZXdHbG9iYWxQb3MpOworICAgICAg
ICBpZiAoY29uc3QgUUdyYXBoaWNzV2ViVmlldyogaXRlbSA9IHFvYmplY3RfY2FzdDxjb25zdCBR
R3JhcGhpY3NXZWJWaWV3Kj4oY2xpZW50LT5wbHVnaW5QYXJlbnQoKSkpIHsKKyAgICAgICAgICAg
IFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkgJiYgIWl0ZW0tPnNjZW5lKCktPnZpZXdzKCkuaXNFbXB0
eSgpKTsKKyAgICAgICAgICAgIGNvbnN0IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2Vu
ZSgpLT52aWV3cygpLnZhbHVlKDApOworICAgICAgICAgICAgY29uc3QgUVBvaW50IGFkZCA9IHZp
ZXctPm1hcEZyb21TY2VuZShpdGVtLT5wb3MoKSk7CisgICAgICAgICAgICBwbHVnaW5WaWV3R2xv
YmFsUG9zICs9IGFkZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgoUVNpemUpKG1fcGx1
Z2luVmlldy0+bV93aW5kb3dSZWN0LnNpemUoKSkgIT0gbV9waXhtYXAuc2l6ZSgpKSB7CisgICAg
ICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3BsdWdpblZpZXctPm1fd2luZG93UmVjdC5zaXplKCkp
OworICAgICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgIG1fZGZi
U3VyZmFjZSA9IFFUX1BSRVBFTkRfTkFNRVNQQUNFKHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3Bp
eG1hcChtX3BpeG1hcCkpOworICAgIH0KKworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy53
c19pbmZvID0gJm1fZGZiV2luZG93SW5mbzsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cu
dHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworCisgICAgbV9wbHVnaW5WaWV3LT5tX25wV2lu
ZG93LnggPSBwbHVnaW5WaWV3R2xvYmFsUG9zLngoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBX
aW5kb3cueSA9IHBsdWdpblZpZXdHbG9iYWxQb3MueSgpOworICAgIGNvbnN0IEludFJlY3QgZnJh
bWVSZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFtZVJlY3QoKTsKKyAgICBtX3BsdWdpblZpZXctPm1f
bnBXaW5kb3cud2lkdGggPSBmcmFtZVJlY3Qud2lkdGgoKTsKKyAgICBtX3BsdWdpblZpZXctPm1f
bnBXaW5kb3cuaGVpZ2h0ID0gZnJhbWVSZWN0LmhlaWdodCgpOworICAgIG1fcGx1Z2luVmlldy0+
bV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QueSgpOwor
ICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gbV9wbHVnaW5WaWV3
LT5tX2NsaXBSZWN0LngoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cuY2xpcFJlY3Qu
cmlnaHQgPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3Qud2lkdGgoKSArIG1fcGx1Z2luVmlldy0+
bV9jbGlwUmVjdC54KCkgLSAxOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVj
dC5ib3R0b20gPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QuaGVpZ2h0KCkgKyBtX3BsdWdpblZp
ZXctPm1fY2xpcFJlY3QueSgpIC0gMTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cud2lu
ZG93ID0gbV9kZmJTdXJmYWNlOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpCit7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVnhEaXNwbGF5
OgorICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHZhbHVlKSA9IG1fZGZiV2luZG93
SW5mby5kZmI7CisgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBjYXNlIE5QTlZ4dEFwcENvbnRleHQ6CisgICAgICAgICpyZXN1bHQg
PSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2Ug
TlBOVm5ldHNjYXBlV2luZG93OgorICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHZh
bHVlKSA9IG1fZGZiV2luZG93SW5mby53aW5kb3c7CisgICAgICAgICpyZXN1bHQgPSBOUEVSUl9O
T19FUlJPUjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5oIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdERGQi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5YzE1MzFkOTA4ZjE1MGU4NzIzMzI2
MDI0MzFiZGRhMzViOGM0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQv
UGx1Z2luVmlld1F0REZCLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBbmRlcnMgQmFra2VuIDxhZ2Jha2tlbkBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQ
bHVnaW5WaWV3UXRERkJfaAorI2RlZmluZSBQbHVnaW5WaWV3UXRERkJfaAorCisjaW5jbHVkZSAi
bnBhcGkuaCIKKyNpbmNsdWRlIDxRQmFzaWNUaW1lcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2lu
Y2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CitjbGFzcyBNb3VzZUV2ZW50OworY2xhc3MgS2V5Ym9hcmRFdmVudDsKK2NsYXNzIERp
cmVjdEZCTlBBUElPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IERpcmVjdEZCTlBBUElPYmplY3QqIGNyZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KTsKKyAg
ICB+RGlyZWN0RkJOUEFQSU9iamVjdCgpOworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KTsKKyAgICB2b2lkIHNldE5QV2luZG93SWZO
ZWVkZWQoKTsKKyAgICBib29sIHBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9i
amVjdCogb2JqZWN0LCBRRXZlbnQqIGV2ZW50KTsKKyAgICB2b2lkIHRpbWVyRXZlbnQoUVRpbWVy
RXZlbnQqIGUpOworCisgICAgYm9vbCBkaXNwYXRjaEV2ZW50KGNvbnN0IE1vdXNlRXZlbnQqIGV2
ZW50KTsKKyAgICBib29sIGRpc3BhdGNoRXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQp
OworICAgIGVudW0gRXZlbnRUeXBlIHsKKyAgICAgICAgRm9jdXNJbiwKKyAgICAgICAgRm9jdXNP
dXQKKyAgICB9OworCisgICAgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50VHlwZSB0eXBlKTsKK3By
aXZhdGU6CisgICAgUGx1Z2luVmlldyogbV9wbHVnaW5WaWV3OworICAgIFFQaXhtYXAgbV9waXht
YXA7CisgICAgSURpcmVjdEZCU3VyZmFjZSAqbV9kZmJTdXJmYWNlOworICAgIFFCYXNpY1RpbWVy
IG1fdGltZXI7CisgICAgYm9vbCBtX2luc3RhbGxlZEV2ZW50RmlsdGVyOworICAgIHN0cnVjdCBE
RkJXaW5kb3dJbmZvIHsKKyAgICAgICAgSURpcmVjdEZCKiBkZmI7CisgICAgICAgIElEaXJlY3RG
QkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAgICAgIElEaXJlY3RGQldpbmRvdyogd2luZG93Owor
ICAgIH0gbV9kZmJXaW5kb3dJbmZvOworCisgICAgRGlyZWN0RkJOUEFQSU9iamVjdChQbHVnaW5W
aWV3KiBwbHVnaW5WaWV3LCBjb25zdCBERkJXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKTsKKyAgICBz
dGF0aWMgdm9pZCBjbGVhcldpbmRvd0luZm8oREZCV2luZG93SW5mbyAqd2luZG93SW5mbyk7Cit9
OworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63385</attachid>
            <date>2010-08-03 15:29:57 -0700</date>
            <delta_ts>2010-08-05 11:06:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100803152540.patch</filename>
            <type>text/plain</type>
            <size>48747</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGNmOTkyYjlhNDY2YWE4YjgyMzk5MWY5Y2Q2MGZlNmNlMTZkNTM5Mi4uMGJjYjBlOTY0ZmI3Mzg2
ZWJiZWM3OTg4YTI0YjdkYWUyMzg5NzMwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0wOC0wMyAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUVRdIFF0V2ViS2l0IGRvZXNuJ3Qgc3VwcG9ydCBO
UEFQSSBmb3IgRGlyZWN0RkIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2MTcxCisKKyAgICAgICAgVGhpcyBjb250cmlidXRpb24gZW5hYmxlcyB3aW5k
b3dsZXNzIE5QQVBJIHN1cHBvcnQgZm9yIFF0L1dlYktpdCB3aGVuCisgICAgICAgIHVzaW5nIERp
cmVjdEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgK
KyAgICAgICAgRmxhc2hsaXRlLgorCisgICAgICAgIFRoZSBjb2RlIGlzIGxhcmdlbHkgYmFzZWQg
b24gdGhlIFF0L1gxMSBpbXBsZW1lbnRhdGlvbiBvZiB3aW5kb3dsZXNzCisgICAgICAgIE5QQVBJ
LiBJdCBhZGRzIHRoZSBkZWZpbmUgWFBfREZCIHdoZW4gZW5hYmxlZCB0byBkaWZmZXJlbnRpYXRl
IGJldHdlZW4KKyAgICAgICAgWDExIGFuZCBEaXJlY3RGQiB3aGVuIFhQX1VOSVggaXMgZGVmaW5l
ZC4gVGhpcyBtZWFucyB0aGF0IG5wYXBpLmggd2lsbAorICAgICAgICBmdW5jdGlvbiB0aGUgc2Ft
ZSB3YXkgZm9yIFgxMSBidWlsZHMuCisKKyAgICAgICAgU2luY2UgdGhlIG5vcm1hbCB1c2UgY2Fz
ZSBmb3IgTlBBUEkgb24gRGlyZWN0RkIgaXMgZm9yIHZpZGVvIG9uIHNpdGVzCisgICAgICAgIGxp
a2UgeW91dHViZSBpdCdzIGltcG9ydGFudCB0byBtYWtlIHN1cmUgdGhlIHBsdWdpbiBnZXRzIGFu
IHVwZGF0ZWQKKyAgICAgICAgZ2xvYmFsIGdlb21ldHJ5IGlmIHRoZSB3aW5kb3cgbW92ZXMgb3Ig
cmVzaXplcy4gVGhpcyBpcyBkdWUgdG8gdGhlCisgICAgICAgIGZhY3QgdGhhdCB0aGUgdmlkZW8g
d2lsbCBiZSByZW5kZXJlZCBpbnRvIGEgZGlmZmVyZW50IGxheWVyIHJhdGhlcgorICAgICAgICB0
aGFuIGFjdHVhbGx5IGludG8gdGhlIG9mZnNjcmVlbiBzdXJmYWNlIHRoYXQncyBiZWluZyByZW5k
ZXJlZCB0by4KKworICAgICAgICBJIGhhdmUgYSBtYW51YWwgdGVzdCBjYXNlIHRoYXQgSSBjb3Vs
ZCBoZWxwIHBlb3BsZSBzZXQgdXAgZm9yIHRlc3RpbmcKKyAgICAgICAgd2l0aCBRdC9RV1MgRGly
ZWN0RkIgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gbWFrZSBpdCBhdXRvbWF0ZWQuCisKKyAgICAg
ICAgVG8gZW5hYmxlIE5QQVBJIGZvciBEaXJlY3RGQiB0aGUgZGV2ZWxvcGVyIG5lZWRzIHRvIG1h
a2Ugc3VyZQorICAgICAgICBxbWFrZS5jb25mIGNvbnRhaW5zIHRoaXMgbGluZToKKworICAgICAg
ICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVDVEZCCisKKyAgICAg
ICAgUXQgbXVzdCBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLXF0LWdmeC1kaXJlY3RmYiBv
cHRpb24gKGFzCisgICAgICAgIG9wcG9zZWQgdG8gLXBsdWdpbi1nZngtZGlyZWN0ZmIpCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBicmlkZ2UvbnBhcGkuaDoKKyAgICAgICAg
KiBicmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5WaWV3Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1
c0luRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgICogcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXRERkIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBB
UElPYmplY3Q6OmNsZWFyV2luZG93SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RGQk5Q
QVBJT2JqZWN0OjpEaXJlY3RGQk5QQVBJT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVj
dEZCTlBBUElPYmplY3Q6On5EaXJlY3RGQk5QQVBJT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpcmVjdEZCTlBBUElPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RG
Qk5QQVBJT2JqZWN0OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RGQk5QQVBJT2Jq
ZWN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBBUElPYmpl
Y3Q6OmV2ZW50RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBBUElPYmplY3Q6
OnRpbWVyRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0RkJOUEFQSU9iamVjdDo6c2V0
TlBXaW5kb3dJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RGQk5QQVBJT2JqZWN0
OjpwbGF0Zm9ybUdldFZhbHVlKToKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdERG
Qi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBBUElPYmplY3Q6Oik6CisK
IDIwMTAtMDctMzAgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IGNlMGY3MDEyYTM1Yjc4ODQxYzNi
ZmI2NWQyNWRhN2U2MTg4N2NkNmMuLjdmYTFjNGU2MzliNDFjNWUyMGRkYzA4YWViMmRkNWJjN2Mw
NmRiZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnByaQpAQCAtOTcsNiArOTcsMTAgQEAgZ3JlYXRlclRoYW4oUVRfTUlOT1JfVkVSU0lPTiwg
NSkgewogfQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklH
ICs9IGRpcmVjdGZiCisgICAgREVGSU5FUyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0x
Cit9CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9Likgewog
ICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjogewogICAgICAgICBERUZJTkVTICs9
IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGVkNWUyZGE2YmM2MWFhODMyZjJhYzgw
YzI5MWM2NGM1ZGMzMDJmZjEuLjZjZDE5Y2EyYjllNDYzNzU5MzMwYzRhMjAzNGY2Zjg2NjllZWFk
ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMjMyMSwxNiArMjMyMSwyMSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTkVU
U0NBUEVfUExVR0lOX0FQST0xKSB7CiAgICAgICAgICAgICAgICAgSU5DTFVERVBBVEggKz0gcGxh
dGZvcm0vbWFjCiAgICAgICAgICAgICAgICAgIyBOb3RlOiBYUF9NQUNPU1ggaXMgZGVmaW5lZCBp
biBucGFwaS5oCiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICFlbWJlZGRl
ZCB7CisgICAgICAgICAgICAgICAgZGlyZWN0ZmIgeworICAgICAgICAgICAgICAgICAgICBERUZJ
TkVTICs9IFhQX0RGQgorICAgICAgICAgICAgICAgICAgICBRTUFLRV9DWFhGTEFHUyArPSAkJFFU
X0NGTEFHU19ESVJFQ1RGQgorICAgICAgICAgICAgICAgICAgICBMSUJTICs9ICQkUVRfTElCU19E
SVJFQ1RGQgorICAgICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0REZCLmNwcAorICAgICAgICAgICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQv
UGx1Z2luVmlld1F0REZCLmgKKyAgICAgICAgICAgICAgICB9IGVsc2U6IWVtYmVkZGVkIHsKICAg
ICAgICAgICAgICAgICAgICAgQ09ORklHICs9IHgxMQogICAgICAgICAgICAgICAgICAgICBMSUJT
ICs9IC1sWHJlbmRlcgorICAgICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQv
UGx1Z2luQ29udGFpbmVyUXQuY3BwCisgICAgICAgICAgICAgICAgICAgIEhFQURFUlMgKz0gcGx1
Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIFNPVVJDRVMgKz0gXAotICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdp
bkNvbnRhaW5lclF0LmNwcCBcCiAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2lu
UGFja2FnZVF0LmNwcCBcCiAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luVmll
d1F0LmNwcAotICAgICAgICAgICAgICAgIEhFQURFUlMgKz0gXAotICAgICAgICAgICAgICAgICAg
ICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgKICAgICAgICAgICAgICAgICBERUZJTkVT
ICs9IFhQX1VOSVgKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9icmlkZ2UvbnBhcGkuaCBiL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgKaW5kZXggNWZjOGU0NjE5
OThlOGRkNTBlYzM4MDc5MmIzN2I1OTdmN2QxMmY3Yi4uZjgzMTQ4ZmMwY2JiMTNlMGZjNGJmZTll
N2FlNDQ2ZGM4MTg0MmI5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAorKysg
Yi9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oCkBAIC04OSw3ICs4OSw3IEBACiAjZW5kaWYKICNlbmRp
ZgogCi0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmlu
ZWQoWFBfREZCKQogI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAjaW5jbHVkZSA8WDExL1h1dGlsLmg+
CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTI0Myw3ICsyNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBf
TlBTaXplCiAvKiBFeGFjdCBtZWFuaW5nIG11c3QgYmUgc3BlYydkIGluIGV2ZW50IG1vZGVsLiAq
LwogI2RlZmluZSBrTlBFdmVudFN0YXJ0SU1FIDIKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNp
ZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKIC8qCiAgKiBVbml4IHNwZWNp
ZmljIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zCiAgKi8KQEAgLTUyMyw2ICs1MjMsOSBAQCB0
eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogICB1aW50cHRyX3Qgd1BhcmFtOwogICB1aW50cHRyX3Qg
bFBhcmFtOwogfSBOUEV2ZW50OworI2VsaWYgZGVmaW5lZChYUF9ERkIpCisjaW5jbHVkZSA8ZGly
ZWN0ZmIuaD4KK3R5cGVkZWYgREZCRXZlbnQgTlBFdmVudDsKICNlbGlmIGRlZmluZWQoWFBfT1My
KQogdHlwZWRlZiBzdHJ1Y3QgX05QRXZlbnQKIHsKQEAgLTU0NCw3ICs1NDcsNyBAQCB0eXBlZGVm
IFJnbkhhbmRsZSBOUFFEUmVnaW9uOwogdHlwZWRlZiBDR1BhdGhSZWYgTlBDR1JlZ2lvbjsKICNl
bGlmIGRlZmluZWQoWFBfV0lOKQogdHlwZWRlZiBIUkdOIE5QUmVnaW9uOwotI2VsaWYgZGVmaW5l
ZChYUF9VTklYKQorI2VsaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiB0
eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfU1lNQklBTikKIHR5cGVk
ZWYgUVJlZ2lvbiogTlBSZWdpb247CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaCBiL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCmluZGV4
IDczNmE3ZjE1NmI3OWNjNmU1OWRkODU2OTc4OTA3YTg1ZjgwZDZhMTkuLjAxNTkzMWUyMDY1ZTRm
ZDIzYmNlMWQ3ZDQ0ZWIzNjFlOGRhZGM1NGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL25w
cnVudGltZV9pbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5h
bC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAibnBmdW5jdGlvbnMuaCIKICNpbmNsdWRl
ICJucHJ1bnRpbWUuaCIKIAotI2lmZGVmIFhQX1VOSVgKKyNpZiBkZWZpbmVkIFhQX1VOSVggJiYg
IWRlZmluZWQoWFBfREZCKQogICAgICNpbmNsdWRlIDxYMTEvWHJlc291cmNlLmg+CiAKICAgICAj
dW5kZWYgTm9uZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDUwZWNhN2VlZTY4Mzg4NjdiY2Mw
NDg2ZmZjNGM5MDdjYjU2MTU0NWMuLjhmN2Q1YTQ5ZjRiNDUxMjg4MjUxYzgwOTU3ZjkzOWQwOTcx
NWMxYTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCB2b2lkIFBs
dWdpblZpZXc6OnN0b3AoKQogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmll
dygwKTsKICAgICB9CiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9YMTEpICYmICFk
ZWZpbmVkKFhQX0RGQikKICAgICBpZiAobV9pc1dpbmRvd2VkICYmIG1fbnBXaW5kb3cud3NfaW5m
bykKICAgICAgICAgICAgZGVsZXRlIChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0ICopbV9ucFdp
bmRvdy53c19pbmZvOwogICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7CkBAIC04MjMsNyArODIz
LDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IElu
dFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxz
ZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9pc1dhaXRpbmdUb1N0
YXJ0KGZhbHNlKQotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYm
ICFkZWZpbmVkIChYUF9ERkIpCiAgICAgLCBtX25lZWRzWEVtYmVkKGZhbHNlKQogI2VuZGlmCiAj
aWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC04NDQsMTAg
Kzg0NCwxNCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogI2VuZGlmCiAjaWYgZGVmaW5lZChY
UF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1faGFzUGVuZGlu
Z0dlb21ldHJ5Q2hhbmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZCCiAgICAgLCBtX2RyYXdh
YmxlKDApCiAgICAgLCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1hcCgwKQogICAgICwgbV9w
bHVnaW5EaXNwbGF5KDApCisjZWxzZQorICAgICwgbV9kZmJOUEFQSU9iamVjdCgwKQorI2VuZGlm
CiAjZW5kaWYKICAgICAsIG1fbG9hZE1hbnVhbGx5KGxvYWRNYW51YWxseSkKICAgICAsIG1fbWFu
dWFsU3RyZWFtKDApCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCA0MzFjZTBlNzAyNmNjZjc4YmNlMjBh
YWQ3N2JmZTJkYmU0Nzg0ODI1Li5jOWYwZjYxNGEzNjU0OTU4NTk1NzcxODIxMDc2MDgxMWM0Y2Mx
YmIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTc4LDYgKzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIFBsdWdpblN0cmVhbTsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwog
ICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisjaWYgZGVmaW5lZCBYUF9ERkIgJiYgUExBVEZP
Uk0oUVQpCisgICAgY2xhc3MgRGlyZWN0RkJOUEFQSU9iamVjdDsKKyNlbmRpZgogCiAgICAgZW51
bSBQbHVnaW5TdGF0dXMgewogICAgICAgICBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luLApA
QCAtMzE2LDcgKzMxOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hh
dmVJbml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lzV2FpdGluZ1RvU3RhcnQ7CiAKLSNpZiBk
ZWZpbmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIp
CiAgICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNlbmRpZgogCkBAIC0zNjYsMTIgKzM2OSwx
NyBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZTsKKyNp
Zm5kZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2RyYXdhYmxlOwogICAgICAgICBWaXN1YWwq
IG1fdmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2NvbG9ybWFwOwogICAgICAgICBEaXNwbGF5
KiBtX3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9pZCBpbml0WEV2ZW50KFhFdmVudCogZXZl
bnQpOworI2Vsc2UKKyAgICAgICAgZnJpZW5kIGNsYXNzIERpcmVjdEZCTlBBUElPYmplY3Q7Cisg
ICAgICAgIERpcmVjdEZCTlBBUElPYmplY3QgKm1fZGZiTlBBUElPYmplY3Q7CisjZW5kaWYKICNl
bmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVjdCB0byBh
cHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAK
aW5kZXggMGNhMzU2YjRlNDE2M2Q5YmNmNTE4YzE3NjI2NjYzZWY0ZGI4MGI0MC4uMTM2MjZjYjYy
NGQ4ZWZhMmRjZWZkNDY2MThkZWUyNTAwNjc5OTQyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVn
aW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xs
YWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdp
cmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBbmRlcnMgQmFra2VuIDxhZ2Jha2tlbkBnbWFpbC5jb20+CiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDcgKzUyLDYgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNpbmNsdWRlICJQbHVn
aW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyLmgiCkBAIC02OCw2ICs2OCw4IEBACiAjaW5jbHVkZSA8UUtleUV2
ZW50PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CisjaWZkZWYgUV9X
U19YMTEKKyNpbmNsdWRlICJQbHVnaW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgPFFYMTFJbmZv
PgogI2luY2x1ZGUgPFgxMS9YLmg+CiAjaWZuZGVmIFFUX05PX1hSRU5ERVIKQEAgLTc1LDYgKzc3
LDEwIEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVu
ZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorI2luY2x1ZGUgIlBsdWdpblZp
ZXdRdERGQi5oIgorI2VuZGlmCisKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgogCkBAIC0xMTAsNiArMTE2LDcgQEAgdm9pZCBQbHVnaW5W
aWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIGlmIChtX3dpbmRvd1JlY3QgPT0gb2xkV2lu
ZG93UmVjdCAmJiBtX2NsaXBSZWN0ID09IG9sZENsaXBSZWN0KQogICAgICAgICByZXR1cm47CiAK
KyNpZm5kZWYgWFBfREZCCiAgICAgaWYgKCFtX2lzV2luZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNp
emUoKSAhPSBvbGRXaW5kb3dSZWN0LnNpemUoKSkgewogICAgICAgICBpZiAobV9kcmF3YWJsZSkK
ICAgICAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUp
OwpAQCAtMTE4LDYgKzEyNSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxi
YWNrU3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5kZXB0aCk7CiAgICAgICAgIFFBcHBsaWNh
dGlvbjo6c3luY1goKTsgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0
aGUgRHJhd2FibGUKICAgICB9CisjZW5kaWYKIAogICAgIC8vIGRvIG5vdCBjYWxsIHNldE5QV2lu
ZG93SWZOZWVkZWQgaW1tZWRpYXRlbHksIHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50KCkKICAgICBt
X2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7CkBAIC0xNzIsNiArMTgwLDcgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAKKyNpZm5kZWYgWFBfREZC
CiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3YWJsZSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0yNDAsNiArMjQ5LDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiAgICAgcGFpbnRlci0+ZHJhd1Bp
eG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3Qo
KS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdhYmxlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgZXhwb3NlZFJlY3QpOworI2Vsc2UgLy8gWFBfREZCCisgICAgaWYgKG1fZGZiTlBBUElP
YmplY3QpCisgICAgICAgIG1fZGZiTlBBUElPYmplY3QtPnBhaW50KGNvbnRleHQsIHJlY3QpOwor
I2VuZGlmCiB9CiAKIC8vIFRPRE86IFVuaWZ5IGFjcm9zcyBwb3J0cy4KQEAgLTI1OCw2ICsyNzEs
NyBAQCBib29sIFBsdWdpblZpZXc6OmRpc3BhdGNoTlBFdmVudChOUEV2ZW50JiBldmVudCkKICAg
ICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKKyNpZm5kZWYgWFBfREZCCiB2b2lkIHNldFNoYXJlZFhF
dmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwgUVdpZGdldCogb3duZXJXaWRnZXQpCiB7CiAgICAg
eEV2ZW50LT54YW55LnNlcmlhbCA9IDA7IC8vIHdlIGFyZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJl
cXVlc3QgcHJvY2Vzc2VkIGJ5IFggU2VydmVyCkBAIC0yOTksNiArMzEzLDcgQEAgdm9pZCBzZXRY
S2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwgS2V5Ym9hcmRFdmVudCogZXZl
bnQpCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9IDA7CiAgICAgeEV2ZW50LT54a2V5Lnlfcm9v
dCA9IDA7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAtMzA4LDE0ICszMjMsMjEgQEAgdm9pZCBQbHVn
aW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIGlm
IChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQtPnR5
cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVudCkKICAgICAgICAgcmV0dXJuOwogCisjaWZu
ZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZlbnQp
OwogICAgIHNldFhLZXlFdmVudFNwZWNpZmljRmllbGRzKCZucEV2ZW50LCBldmVudCk7CiAKICAg
ICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7CisjZWxzZQorICAgIGlmICghbV9kZmJOUEFQSU9iamVjdCB8fCAhbV9kZmJO
UEFQSU9iamVjdC0+ZGlzcGF0Y2hFdmVudChldmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOworI2VuZGlmCisKIH0KIAorI2lmbmRlZiBYUF9ERkIKIHN0YXRpYyB1bnNp
Z25lZCBpbnQgaW5wdXRFdmVudFN0YXRlKE1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIHVuc2ln
bmVkIGludCBzdGF0ZSA9IDA7CkBAIC0zOTAsNiArNDEyLDcgQEAgc3RhdGljIHZvaWQgc2V0WENy
b3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZl
bnQsIGMKICAgICB4Y3Jvc3Npbmcuc2FtZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5m
b2N1cyA9IGZhbHNlOwogfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VF
dmVudChNb3VzZUV2ZW50KiBldmVudCkKIHsKQEAgLTQwNCw2ICs0MjcsNyBAQCB2b2lkIFBsdWdp
blZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgICAgIGZvY3Vz
UGx1Z2luRWxlbWVudCgpOwogICAgIH0KIAorI2lmbmRlZiBYUF9ERkIKICAgICBYRXZlbnQgbnBF
dmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDIwLDEwICs0NDQsMTUgQEAg
dm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogCiAg
ICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOworI2Vsc2UKKyAgICBpZiAoIW1fZGZiTlBBUElPYmplY3QgfHwgIW1fZGZi
TlBBUElPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3Vz
SW5FdmVudCgpCiB7CisjaWZuZGVmIFhQX0RGQgogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGlu
aXRYRXZlbnQoJm5wRXZlbnQpOwogCkBAIC00MzMsMTAgKzQ2MiwxNSBAQCB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZUZvY3VzSW5FdmVudCgpCiAgICAgZXZlbnQuZGV0YWlsID0gTm90aWZ5RGV0YWls
Tm9uZTsKIAogICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbHNlCisgICAgaWYgKG1f
ZGZiTlBBUElPYmplY3QpCisgICAgICAgIG1fZGZiTlBBUElPYmplY3QtPmRpc3BhdGNoRXZlbnQo
RGlyZWN0RkJOUEFQSU9iamVjdDo6Rm9jdXNJbik7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5W
aWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIHsKKyNpZm5kZWYgWFBfREZCCiAgICAgWEV2ZW50
IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTQ0Niw2ICs0ODAsMTAg
QEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKICAgICBldmVudC5kZXRh
aWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOwor
I2Vsc2UKKyAgICBpZiAobV9kZmJOUEFQSU9iamVjdCkKKyAgICAgICAgbV9kZmJOUEFQSU9iamVj
dC0+ZGlzcGF0Y2hFdmVudChEaXJlY3RGQk5QQVBJT2JqZWN0OjpGb2N1c091dCk7CisjZW5kaWYK
IH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQpAQCAt
NDk4LDYgKzUzNiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAg
ICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX2NsaXBSZWN0LngoKSArIG1fY2xp
cFJlY3Qud2lkdGgoKTsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX2Ns
aXBSZWN0LnkoKSArIG1fY2xpcFJlY3QuaGVpZ2h0KCk7CiAgICAgfSBlbHNlIHsKKyNpZm5kZWYg
WFBfREZCCiAgICAgICAgIG1fbnBXaW5kb3cueCA9IDA7CiAgICAgICAgIG1fbnBXaW5kb3cueSA9
IDA7CiAKQEAgLTUwNSw2ICs1NDQsMTAgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lm
TmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSAwOwogICAgICAgICBt
X25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVj
dC5ib3R0b20gPSAwOworI2Vsc2UKKyAgICAgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpCisgICAg
ICAgICAgICBtX2RmYk5QQVBJT2JqZWN0LT5zZXROUFdpbmRvd0lmTmVlZGVkKCk7CisjZW5kaWYK
ICAgICB9CiAKICAgICBpZiAobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJr
RG9udENhbGxTZXRXaW5kb3dNb3JlVGhhbk9uY2UpKSB7CkBAIC01NzIsMTAgKzYxNSwxMiBAQCBi
b29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFi
bGUsIHZvaWQqIHZhbHVlLCBOUEVycgogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7
CiAgICAgICAgIHJldHVybiB0cnVlOwogCisjaWZuZGVmIFhQX0RGQgogICAgIGNhc2UgTlBOVlN1
cHBvcnRzWEVtYmVkQm9vbDoKICAgICAgICAgKnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9
IHRydWU7CiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgcmV0dXJu
IHRydWU7CisjZW5kaWYKIAogICAgIGNhc2UgTlBOVmphdmFzY3JpcHRFbmFibGVkQm9vbDoKICAg
ICAgICAgKnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9IHRydWU7CkBAIC01OTQsNiArNjM5
LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxl
IHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVz
dWx0KQogeworI2lmbmRlZiBYUF9ERkIKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CiAgICAgY2Fz
ZSBOUE5WeERpc3BsYXk6CiAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IFFYMTFJbmZvOjpkaXNw
bGF5KCk7CkBAIC02MjMsNiArNjY5LDkgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorI2Vsc2UKKyAgICByZXR1cm4g
bV9kZmJOUEFQSU9iamVjdCAmJiBtX2RmYk5QQVBJT2JqZWN0LT5wbGF0Zm9ybUdldFZhbHVlKHZh
cmlhYmxlLCB2YWx1ZSwgcmVzdWx0KTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6Omlu
dmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCkBAIC02NTYsNiArNzA1LDcgQEAgdm9p
ZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgaW52YWxpZGF0ZSgpOwogfQogCisjaWZu
ZGVmIFhQX0RGQgogc3RhdGljIERpc3BsYXkgKmdldFBsdWdpbkRpc3BsYXkoKQogewogICAgIC8v
IFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNpbmcgYSBkaWZmZXJlbnQgWCBjb25uZWN0
aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC03MjEsMTIgKzc3MSwxNCBAQCBzdGF0aWMg
dm9pZCBnZXRWaXN1YWxBbmRDb2xvcm1hcChpbnQgZGVwdGgsIFZpc3VhbCAqKnZpc3VhbCwgQ29s
b3JtYXAgKmNvbG9ybWFwKQogICAgIGlmICgqdmlzdWFsKQogICAgICAgICAqY29sb3JtYXAgPSBY
Q3JlYXRlQ29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgUVgxMUluZm86OmFwcFJvb3RXaW5k
b3coKSwgKnZpc3VhbCwgQWxsb2NOb25lKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CiAgICAgQVNTRVJU
KG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiAKKyNpZm5kZWYg
WFBfREZCCiAgICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAg
ICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlND
OjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9u
c09ubHkpOwpAQCAtNzUxLDkgKzgwMywyNSBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3Rh
cnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgwKTsKICAgICAgICAgbV9wbHVnaW5EaXNw
bGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0KKyNlbHNlCisgICAgaWYgKG1faXNXaW5k
b3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBs
dWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBtX2RmYk5QQVBJT2JqZWN0ID0gRGlyZWN0RkJOUEFQSU9iamVjdDo6Y3JlYXRlKHRo
aXMpOworCisgICAgaWYgKCFtX2RmYk5QQVBJT2JqZWN0KSB7CisgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNlbmRpZgogCiAgICAgc2hvdygpOwogCisj
aWZuZGVmIFhQX0RGQgogICAgIE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqIHdzaSA9IG5ldyBO
UFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KCk7CiAgICAgd3NpLT50eXBlID0gMDsKIApAQCAtNzk1
LDYgKzg2Myw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgfQogCiAg
ICAgbV9ucFdpbmRvdy53c19pbmZvID0gd3NpOworI2VuZGlmCiAKICAgICBpZiAoIShtX3BsdWdp
bi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkp
KSB7CiAgICAgICAgIHVwZGF0ZVBsdWdpbldpZGdldCgpOwpAQCAtODA5LDExICs4NzgsMTggQEAg
dm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBsdWdp
bldpZGdldCgpKQogICAgICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAorI2lm
bmRlZiBYUF9ERkIKICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAoUVgx
MUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkKICAg
ICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsKKyNl
bHNlCisgICAgaWYgKG1fZGZiTlBBUElPYmplY3QpIHsKKyAgICAgICAgZGVsZXRlIG1fZGZiTlBB
UElPYmplY3Q7CisgICAgICAgIG1fZGZiTlBBUElPYmplY3QgPSAwOworICAgIH0KKyNlbmRpZgog
fQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbHQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdERGQi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0
REZCLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MDU4MGJkZjRjODdkZmM3OGZlMzJlZGUxM2E0ZTM2YjQwODg3
YTBmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERG
Qi5jcHAKQEAgLTAsMCArMSw4MTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kZXJz
IEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbHVnaW5WaWV3UXRERkIuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVk
ZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgorI2luY2x1
ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVk
ZSA8UUdyYXBoaWNzVmlldz4KKyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3PgorI2luY2x1ZGUg
PFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTW91c2VFdmVudD4KKyNpbmNsdWRlIDxRVmFyaWFudD4K
KyNpbmNsdWRlIDxRV2lkZ2V0PgorCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2V4dGVybiBRX0dVSV9F
WFBPUlQgSURpcmVjdEZCU3VyZmFjZSogcXRfZGlyZWN0ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKGNv
bnN0IFFQaXhtYXAgJnBpeG1hcCk7CitRVF9FTkRfTkFNRVNQQUNFCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK3ZvaWQgRGlyZWN0RkJOUEFQSU9iamVjdDo6Y2xlYXJXaW5kb3dJbmZvKERpcmVjdEZC
TlBBUElPYmplY3Q6OkRGQldpbmRvd0luZm8gKndpbmRvd0luZm8pCit7CisgICAgaWYgKHdpbmRv
d0luZm8tPndpbmRvdykKKyAgICAgICAgd2luZG93SW5mby0+d2luZG93LT5SZWxlYXNlKHdpbmRv
d0luZm8tPndpbmRvdyk7CisgICAgaWYgKHdpbmRvd0luZm8tPmxheWVyKQorICAgICAgICB3aW5k
b3dJbmZvLT5sYXllci0+UmVsZWFzZSh3aW5kb3dJbmZvLT5sYXllcik7CisgICAgaWYgKHdpbmRv
d0luZm8tPmRmYikKKyAgICAgICAgd2luZG93SW5mby0+ZGZiLT5SZWxlYXNlKHdpbmRvd0luZm8t
PmRmYik7Cit9CisKK0RpcmVjdEZCTlBBUElPYmplY3Q6OkRpcmVjdEZCTlBBUElPYmplY3QoUGx1
Z2luVmlldyogcGx1Z2luVmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgREZCV2luZG93SW5mbyYgd2luZG93SW5mbykKKyAgICA6IG1fcGx1Z2luVmll
dyhwbHVnaW5WaWV3KSwgbV9kZmJTdXJmYWNlKDApLCBtX2luc3RhbGxlZEV2ZW50RmlsdGVyKGZh
bHNlKSwgbV9kZmJXaW5kb3dJbmZvKHdpbmRvd0luZm8pCit7Cit9CisKK0RpcmVjdEZCTlBBUElP
YmplY3Q6On5EaXJlY3RGQk5QQVBJT2JqZWN0KCkKK3sKKyAgICBjbGVhcldpbmRvd0luZm8oJm1f
ZGZiV2luZG93SW5mbyk7Cit9CisKK0RpcmVjdEZCTlBBUElPYmplY3QqIERpcmVjdEZCTlBBUElP
YmplY3Q6OmNyZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KQoreworICAgIEFTU0VSVChwbHVn
aW5WaWV3KTsKKyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gcGx1Z2luVmlldy0+bV9wYXJl
bnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAg
IGlmICghY2xpZW50IHx8ICFjbGllbnQtPm93bmVyV2lkZ2V0KCkpCisgICAgICAgIHJldHVybiAw
OworCisgICAgREZCV2luZG93SW5mbyB3aW5kb3dJbmZvID0geyAwLCAwLCAwIH07CisgICAgREZC
UmVzdWx0IHJlc3VsdCA9IERpcmVjdEZCQ3JlYXRlKCZ3aW5kb3dJbmZvLmRmYik7CisgICAgaWYg
KHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigiRGlyZWN0RkJOUEFQ
SU9iamVjdDo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisg
ICAgcmVzdWx0ID0gd2luZG93SW5mby5kZmItPkdldERpc3BsYXlMYXllcih3aW5kb3dJbmZvLmRm
YiwgRExJRF9QUklNQVJZLCAmd2luZG93SW5mby5sYXllcik7CisgICAgaWYgKHJlc3VsdCAhPSBE
RkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigiRGlyZWN0RkJOUEFQSU9iamVjdDo6Y3Jl
YXRlIiwgcmVzdWx0KTsKKyAgICAgICAgY2xlYXJXaW5kb3dJbmZvKCZ3aW5kb3dJbmZvKTsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmVzdWx0ID0gd2luZG93SW5mby5sYXllci0+
R2V0V2luZG93KHdpbmRvd0luZm8ubGF5ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsaWVudC0+b3duZXJXaWRnZXQoKS0+cHJvcGVydHkoIl9xX0RpcmVjdEZC
V2luZG93SUQiKS50b0ludCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmd2luZG93SW5mby53aW5kb3cpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKSB7Cisg
ICAgICAgIERpcmVjdEZCRXJyb3IoIkRpcmVjdEZCTlBBUElPYmplY3Q6OmNyZWF0ZSIsIHJlc3Vs
dCk7CisgICAgICAgIGNsZWFyV2luZG93SW5mbygmd2luZG93SW5mbyk7CisgICAgICAgIHJldHVy
biAwOworICAgIH0KKworICAgIHJldHVybiBuZXcgRGlyZWN0RkJOUEFQSU9iamVjdChwbHVnaW5W
aWV3LCB3aW5kb3dJbmZvKTsKK30KKwordm9pZCBEaXJlY3RGQk5QQVBJT2JqZWN0OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgREZC
RXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50
KSk7CisgICAgREZCVXNlckV2ZW50JiB1c2VyRXZlbnQgPSBkZmJFdmVudC51c2VyOworICAgIHVz
ZXJFdmVudC5jbGF6eiA9IERGRUNfVVNFUjsKKyAgICB1c2VyRXZlbnQudHlwZSA9IDB4ZGZiOwor
ICAgIHVzZXJFdmVudC5kYXRhID0gJm1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdzsKKyAgICBtX3Bs
dWdpblZpZXctPmRpc3BhdGNoTlBFdmVudChkZmJFdmVudCk7CisgICAgUVBhaW50ZXIqIHBhaW50
ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBJbnRSZWN0IGV4cG9zZWRSZWN0
KHJlY3QpOworICAgIGNvbnN0IEludFJlY3QgZnJhbWVSZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFt
ZVJlY3QoKTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KTsKKyAgICBleHBv
c2VkUmVjdC5tb3ZlKC1mcmFtZVJlY3QueCgpLCAtZnJhbWVSZWN0LnkoKSk7CisgICAgY29uc3Qg
UVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSBvbGRNb2RlID0gcGFpbnRlci0+Y29tcG9zaXRpb25N
b2RlKCk7CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3Np
dGlvbk1vZGVfU291cmNlKTsKKyAgICBwYWludGVyLT5kcmF3UGl4bWFwKFFQb2ludChmcmFtZVJl
Y3QueCgpICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QueSgpICsgZXhwb3NlZFJlY3QueSgp
KSwgbV9waXhtYXAsCisgICAgICAgICAgICAgICAgICAgICAgICBleHBvc2VkUmVjdCk7CisgICAg
cGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKG9sZE1vZGUpOworfQorCitib29sIERpcmVjdEZC
TlBBUElPYmplY3Q6OmRpc3BhdGNoRXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7
CisgICAgY29uc3QgUUtleUV2ZW50KiBxdEV2ZW50ID0gZXZlbnQtPmtleUV2ZW50KCktPnF0RXZl
bnQoKTsKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBz
aXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJJbnB1dEV2ZW50JiBpbnB1dCA9IGRmYkV2ZW50Lmlu
cHV0OworICAgIGlucHV0LmNsYXp6ID0gREZFQ19JTlBVVDsKKyAgICBpbnB1dC50eXBlID0gKHF0
RXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzID8gRElFVF9LRVlQUkVTUyA6IERJRVRf
S0VZUkVMRUFTRSk7CisgICAgdW5zaWduZWQgaW50IGZsYWdzID0gKERJRUZfS0VZU1lNQk9MIHwg
RElFRl9NT0RJRklFUlMpOworICAgIGlmIChxdEV2ZW50LT5pc0F1dG9SZXBlYXQoKSkKKyAgICAg
ICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisgICAgY29uc3QgUXQ6OktleWJvYXJkTW9kaWZpZXIg
bW9kaWZpZXJzW10gPSB7IFF0OjpTaGlmdE1vZGlmaWVyLCBRdDo6Q29udHJvbE1vZGlmaWVyLCBR
dDo6QWx0TW9kaWZpZXIsIFF0OjpNZXRhTW9kaWZpZXIgfTsKKyAgICBjb25zdCBERkJJbnB1dERl
dmljZU1vZGlmaWVyTWFzayBkZmJNb2RpZmllcnNbXSA9IHsgRElNTV9TSElGVCwgRElNTV9DT05U
Uk9MLCBESU1NX0FMVCwgRElNTV9NRVRBIH07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyAr
K2kpIHsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygpICYgbW9kaWZpZXJzW2ldKQor
ICAgICAgICAgICAgaW5wdXQubW9kaWZpZXJzID0gREZCSW5wdXREZXZpY2VNb2RpZmllck1hc2so
aW5wdXQubW9kaWZpZXJzIHwgZGZiTW9kaWZpZXJzW2ldKTsKKyAgICB9CisgICAgc3dpdGNoIChx
dEV2ZW50LT5rZXkoKSkgeworICAgIGNhc2UgUXQ6OktleV9CYWNrc3BhY2U6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0JBQ0tTUEFDRTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0g
RElLSV9CQUNLU1BBQ0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9UYWI6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1RBQjsKKyAgICAgICAgaW5wdXQua2V5X2lk
ID0gRElLSV9UQUI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9SZXR1cm46Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1JFVFVSTjsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9LUF9FTlRFUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Vz
Y2FwZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRVNDQVBFOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX0VTQ0FQRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0RlbGV0ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVMRVRFOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0RFTEVURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0xlZnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9M
RUZUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0xFRlQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9SaWdodDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
Q1VSU09SX1JJR0hUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1JJR0hUOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVXA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0NVUlNPUl9VUDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9VUDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rvd246CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX0NVUlNPUl9ET1dOOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0RPV047
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JbnNlcnQ6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX0lOU0VSVDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9J
TlNFUlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Ib21lOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19IT01FOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJ
X0hPTUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FbmQ6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0VORDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9F
TkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYWdlVXA6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX1BBR0VfVVA7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfUEFHRV9VUDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhZ2VEb3duOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QQUdFX0RPV047CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfUEFHRV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfUHJpbnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BSSU5UOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGF1c2U6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1BBVVNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2VsZWN0
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TRUxFQ1Q7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9PcGVuVXJsOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19HT1RPOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2xlYXI6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NMRUFSOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTWVudToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTUVOVTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hlbHA6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0hFTFA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9I
b21lUGFnZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfSU5URVJORVQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MYXVuY2hNYWlsOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19NQUlMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RmF2b3JpdGVzOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19GQVZPUklURVM7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYWNrOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19CQUNLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRm9y
d2FyZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRk9SV0FSRDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZVVwOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19WT0xVTUVfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9W
b2x1bWVEb3duOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19WT0xVTUVfRE9XTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZU11dGU6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX01VVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9NZWRpYVBsYXk6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BMQVk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZWRpYVN0b3A6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX1NUT1A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9NZWRpYVJlY29yZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUkVDT1JEOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFQcmV2aW91czoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUFJFVklPVVM7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9NZWRpYU5leHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX05F
WFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfRjE7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjE7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMjoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfRjI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfRjM7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjM7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9GNDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
RjQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9GNToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjU7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9GNjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjY7CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfRjY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9GNzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjc7CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfRjc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GODoK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjg7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfRjg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOToKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjk7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMTA6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0YxMDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9G
MTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMTE6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX0YxMTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GMTE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GMTI6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0YxMjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GMTI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TaGlmdDoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfU0hJRlQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfU0hJRlRf
TDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbnRyb2w6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0NPTlRST0w7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfQ09OVFJPTF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0OgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19BTFQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfQUxUX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BbHRHcjoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQUxUR1I7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9NZXRhOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19NRVRB
OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX01FVEFfTDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1N1cGVyX0w6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X1NVUEVSOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NVUEVSX0w7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9IeXBlcl9MOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19IWVBFUjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9IWVBFUl9MOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ2Fwc0xvY2s6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0NBUFNfTE9DSzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9D
QVBTX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1Mb2NrOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19OVU1fTE9DSzsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9OVU1fTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Nj
cm9sbExvY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NDUk9MTF9MT0NLOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NDUk9MTF9MT0NLOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BYm92ZWRvdDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfREVBRF9BQk9WRURPVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfQWJvdmVyaW5nOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FC
T1ZFUklORzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWN1dGU6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUNVVEU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9EZWFkX0JyZXZlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX0JSRVZFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9DYXJvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9DQVJPTjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2VkaWxsYToKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9DRURJTExBOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRGVhZF9DaXJjdW1mbGV4OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19ERUFEX0NJUkNVTUZMRVg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9E
ZWFkX0RpYWVyZXNpczoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9ESUFF
UkVTSVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0RvdWJsZWFjdXRl
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0RPVUJMRUFDVVRFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9HcmF2ZToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfREVBRF9HUkFWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0RlYWRfSW90YToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9J
T1RBOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9NYWNyb246CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfTUFDUk9OOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRGVhZF9PZ29uZWs6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0RFQURfT0dPTkVLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9TZW1pdm9pY2VkX1NvdW5kOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFE
X1NFTUlWT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFk
X1RpbGRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX1RJTERFOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Wb2ljZWRfU291bmQ6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfVk9JQ0VEX1NPVU5EOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfU3BhY2U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1NQQUNFOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NQQUNFOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXhjbGFtOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19FWENMQU1BVElPTl9NQVJLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfUXVvdGVEYmw6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1FVT1RBVElPTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X051bWJlclNpZ246CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX05VTUJFUl9TSUdOOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfRG9sbGFyOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ET0xM
QVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BlcmNlbnQ6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BFUkNFTlRfU0lHTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0FtcGVyc2FuZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfQU1QRVJTQU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ry
b3BoZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQVBPU1RST1BIRTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhcmVuTGVmdDoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhcmVuUmlnaHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BB
UkVOVEhFU0lTX1JJR0hUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXN0ZXJp
c2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0FTVEVSSVNLOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGx1czoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfUExVU19TSUdOOworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6
S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0tQX1BMVVM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db21tYToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfQ09NTUE7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQ09N
TUE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NaW51czoKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfTUlOVVNfU0lHTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0g
RElLSV9NSU5VU19TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGVyaW9k
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QRVJJT0Q7CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfUEVSSU9EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
U2xhc2g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NMQVNIOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX1NMQVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfMDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMDsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV8wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMToKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfMTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0g
RElLSV8xOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMjoKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfMjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV8yOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfMzoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfMzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV8zOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJ
S1NfNDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV80OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfNToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfNTsKKyAg
ICAgICAgaW5wdXQua2V5X2lkID0gRElLSV81OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfNjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfNjsKKyAgICAgICAgaW5w
dXQua2V5X2lkID0gRElLSV82OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfNzoK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfNzsKKyAgICAgICAgaW5wdXQua2V5X2lk
ID0gRElLSV83OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfODoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfODsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV84
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfOToKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfOTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV85OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29sb246CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX0NPTE9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2VtaWNv
bG9uOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TRU1JQ09MT047CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfU0VNSUNPTE9OOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfTGVzczoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTEVTU19USEFO
X1NJR047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfTEVTU19TSUdOOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXF1YWw6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0VRVUFMU19TSUdOOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0VRVUFMU19T
SUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfR3JlYXRlcjoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfR1JFQVRFUl9USEFOX1NJR047CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9RdWVzdGlvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfUVVFU1RJT05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0F0
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19BVDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X0E6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X0E7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0I6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0I7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0M6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0M7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0Q6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0Q7CisgICAg
ICAgIGlucHV0LmtleV9pZCA9IERJS0lfRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0U7CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0Y6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0Y7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfRjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0c6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0c7CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfRzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0g6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0g7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0k6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0k7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfSTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0o6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0o7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfSjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0s6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0s7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0w6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX0w7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
TDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X006CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NNQUxMX007CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfTTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X046CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1NNQUxMX047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfTjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X086CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NNQUxMX087CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfTzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1A6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NNQUxMX1A7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1E6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1NNQUxMX1E7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1I6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X1NNQUxMX1I7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1M6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NN
QUxMX1M7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfUzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X1Q6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxM
X1Q7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X1U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1U7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1Y6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1Y7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1c6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1c7CisgICAg
ICAgIGlucHV0LmtleV9pZCA9IERJS0lfVzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1g7CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfWDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1k6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1k7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfWTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1o6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NNQUxMX1o7CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfWjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNr
ZXRMZWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TUVVBUkVfQlJBQ0tFVF9M
RUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFja3NsYXNoOgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19CQUNLU0xBU0g7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfQkFDS1NMQVNIOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJh
Y2tldFJpZ2h0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TUVVBUkVfQlJBQ0tF
VF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzY2lpQ2lyY3VtOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DSVJDVU1GTEVYX0FDQ0VOVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VuZGVyc2NvcmU6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1VOREVSU0NPUkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9CcmFjZUxlZnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUkxZX0JS
QUNLRVRfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhcjoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVkVSVElDQUxfQkFSOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQnJhY2VSaWdodDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfQ1VSTFlfQlJBQ0tFVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0FzY2lpVGlsZGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1RJTERFOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0
OjpTaGlmdE1vZGlmaWVyKSAmJiBxdEV2ZW50LT5rZXkoKSA+PSBRdDo6S2V5X0EgJiYgcXRFdmVu
dC0+a2V5KCkgPD0gUXQ6OktleV9aKQorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gREZCSW5w
dXREZXZpY2VLZXlTeW1ib2woKGlucHV0LmtleV9zeW1ib2wgLSBESUtTX1NNQUxMX0EpICsgRElL
U19DQVBJVEFMX0EpOworICAgIGlmIChpbnB1dC5rZXlfaWQgIT0gRElLSV9VTktOT1dOKSB7Cisg
ICAgICAgIGZsYWdzIHw9IERJRUZfS0VZSUQ7CisgICAgICAgIGlmIChpbnB1dC5rZXlfaWQgPj0g
RElLSV8wICYmIGlucHV0LmtleV9pZCA8PSBESUtJXzkgJiYgcXRFdmVudC0+bW9kaWZpZXJzKCkg
JiBRdDo6S2V5cGFkTW9kaWZpZXIpCisgICAgICAgICAgICBpbnB1dC5rZXlfaWQgPSBERkJJbnB1
dERldmljZUtleUlkZW50aWZpZXIoaW5wdXQua2V5X2lkIC0gRElLSV8wICsgRElLSV9LUF8wKTsK
KyAgICB9CisgICAgaW5wdXQuZmxhZ3MgPSBERkJJbnB1dEV2ZW50RmxhZ3MoZmxhZ3MpOworICAg
IHJldHVybiBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBFdmVudChkZmJFdmVudCk7Cit9CisKK2Jv
b2wgRGlyZWN0RkJOUEFQSU9iamVjdDo6ZGlzcGF0Y2hFdmVudChjb25zdCBNb3VzZUV2ZW50KiBl
dmVudCkKK3sKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAw
LCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gZGZiRXZl
bnQud2luZG93OworICAgIG1fZGZiV2luZG93SW5mby53aW5kb3ctPkdldElEKG1fZGZiV2luZG93
SW5mby53aW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsKKyAgICB3aW5kb3cuY2xhenogPSBERkVD
X1dJTkRPVzsKKyAgICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX3Bs
dWdpblZpZXctPm1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCkpKTsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2VvdmVyRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vv
dXRFdmVudCkgeworICAgICAgICAvLyBlbnRlci9sZWF2ZQorICAgICAgICB3aW5kb3cudHlwZSA9
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5U
RVIgOiBEV0VUX0xFQVZFKTsKKyAgICAgICAgd2luZG93LnggPSBkZmJFdmVudC53aW5kb3cuY3gg
PSBwb3N0Wm9vbVBvcy54KCk7CisgICAgICAgIHdpbmRvdy55ID0gZGZiRXZlbnQud2luZG93LmN5
ID0gcG9zdFpvb21Qb3MueSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIG1vdXNlCisgICAg
ICAgIHVuc2lnbmVkIGludCBtb2RpZmllcnMgPSAwOworICAgICAgICBpZiAoZXZlbnQtPmN0cmxL
ZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX0NPTlRST0w7CisgICAgICAgIGlm
IChldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX1NISUZU
OworICAgICAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJzIHw9
IERJTU1fQUxUOworICAgICAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgICAgIG1v
ZGlmaWVycyB8PSBESU1NX01FVEE7CisgICAgICAgIHdpbmRvdy5tb2RpZmllcnMgPSBERkJJbnB1
dERldmljZU1vZGlmaWVyTWFzayhtb2RpZmllcnMpOworCisgICAgICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpIHsKKyAgICAgICAgICAgIHdpbmRvdy50eXBlID0gKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05E
T1dOIDogRFdFVF9CVVRUT05VUCk7CisgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LT5idXR0b24o
KSkgeworICAgICAgICAgICAgY2FzZSBMZWZ0QnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRv
dy5idXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAgICAgICB3aW5kb3cuYnV0dG9uID0gRElC
SV9NSURETEU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJpZ2h0
QnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5idXR0b24gPSBESUJJX1JJR0hUOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5idXR0b25zID0gREZC
SW5wdXREZXZpY2VCdXR0b25NYXNrKDApOworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgICAgICB3aW5kb3cu
dHlwZSA9IERXRVRfTU9USU9OOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LnggPSBwb3N0Wm9vbVBvcy54
KCk7CisgICAgd2luZG93LnkgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgY29uc3QgSW50UG9pbnQg
YWJzb2x1dGVMb2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCk7CisgICAgd2luZG93
LmN4ID0gYWJzb2x1dGVMb2NhdGlvbi54KCk7CisgICAgd2luZG93LmN5ID0gYWJzb2x1dGVMb2Nh
dGlvbi55KCk7CisKKyAgICByZXR1cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZi
RXZlbnQpOworfQorCitib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OmRpc3BhdGNoRXZlbnQoRXZl
bnRUeXBlIHR5cGUpCit7CisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJF
dmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCV2luZG93RXZlbnQmIHdpbmRvdyA9
IGRmYkV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEZvY3VzSW46IHdpbmRvdy50eXBlID0gRFdFVF9HT1RG
T0NVUzsgYnJlYWs7CisgICAgY2FzZSBGb2N1c091dDogd2luZG93LnR5cGUgPSBEV0VUX0xPU1RG
T0NVUzsgYnJlYWs7CisgICAgZGVmYXVsdDogcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1
cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCitib29sIERp
cmVjdEZCTlBBUElPYmplY3Q6OmV2ZW50RmlsdGVyKFFPYmplY3QqICwgUUV2ZW50KiBlKQorewor
ICAgIGlmIChlLT50eXBlKCkgPT0gUUV2ZW50OjpNb3ZlIHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6
OlJlc2l6ZSkgeworICAgICAgICBtX3BsdWdpblZpZXctPm1faGFzUGVuZGluZ0dlb21ldHJ5Q2hh
bmdlID0gdHJ1ZTsKKyAgICAgICAgbV90aW1lci5zdGFydCgxMCwgdGhpcyk7CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEaXJlY3RGQk5QQVBJT2JqZWN0Ojp0aW1lckV2ZW50
KFFUaW1lckV2ZW50KiBlKQoreworICAgIGlmIChlLT50aW1lcklkKCkgPT0gbV90aW1lci50aW1l
cklkKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisgICAgICAgIG1fcGx1Z2luVmlldy0+
Zm9yY2VSZWRyYXcoKTsKKyAgICB9Cit9CisKK3ZvaWQgRGlyZWN0RkJOUEFQSU9iamVjdDo6c2V0
TlBXaW5kb3dJZk5lZWRlZCgpCit7CisgICAgUVBvaW50IHBsdWdpblZpZXdHbG9iYWxQb3MgPSBt
X3BsdWdpblZpZXctPndpbmRvd0NsaXBSZWN0KCkudG9wTGVmdCgpOworICAgIFFXZWJQYWdlQ2xp
ZW50KiBjbGllbnQgPSBtX3BsdWdpblZpZXctPm1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICBpZiAoUVdpZGdldCogb3duZXJXaWRn
ZXQgPSBjbGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0KCkgOiAwKSB7CisgICAgICAgIGlmICgh
bV9pbnN0YWxsZWRFdmVudEZpbHRlcikgeworICAgICAgICAgICAgUVdpZGdldCogd2F0Y2hlZCA9
IG93bmVyV2lkZ2V0OworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAg
ICB3YXRjaGVkLT5pbnN0YWxsRXZlbnRGaWx0ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgaWYg
KHdhdGNoZWQtPmlzV2luZG93KCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJlbnRXaWRnZXQoKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIXdhdGNoZWQpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgbV9pbnN0YWxsZWRFdmVudEZpbHRlciA9IHRydWU7CisgICAgICAg
IH0KKworICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1hcFRvR2xv
YmFsKHBsdWdpblZpZXdHbG9iYWxQb3MpOworICAgICAgICBpZiAoY29uc3QgUUdyYXBoaWNzV2Vi
VmlldyogaXRlbSA9IHFvYmplY3RfY2FzdDxjb25zdCBRR3JhcGhpY3NXZWJWaWV3Kj4oY2xpZW50
LT5wbHVnaW5QYXJlbnQoKSkpIHsKKyAgICAgICAgICAgIFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkg
JiYgIWl0ZW0tPnNjZW5lKCktPnZpZXdzKCkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgIGNvbnN0
IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52aWV3cygpLnZhbHVlKDApOwor
ICAgICAgICAgICAgY29uc3QgUVBvaW50IGFkZCA9IHZpZXctPm1hcEZyb21TY2VuZShpdGVtLT5w
b3MoKSk7CisgICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zICs9IGFkZDsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmICgoUVNpemUpKG1fcGx1Z2luVmlldy0+bV93aW5kb3dSZWN0LnNp
emUoKSkgIT0gbV9waXhtYXAuc2l6ZSgpKSB7CisgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcCht
X3BsdWdpblZpZXctPm1fd2luZG93UmVjdC5zaXplKCkpOworICAgICAgICBtX3BpeG1hcC5maWxs
KFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgIG1fZGZiU3VyZmFjZSA9IFFUX1BSRVBFTkRfTkFN
RVNQQUNFKHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3BpeG1hcChtX3BpeG1hcCkpOworICAgIH0K
KworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy53c19pbmZvID0gJm1fZGZiV2luZG93SW5m
bzsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURyYXdh
YmxlOworCisgICAgbV9wbHVnaW5WaWV3LT5tX25wV2luZG93LnggPSBwbHVnaW5WaWV3R2xvYmFs
UG9zLngoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cueSA9IHBsdWdpblZpZXdHbG9i
YWxQb3MueSgpOworICAgIGNvbnN0IEludFJlY3QgZnJhbWVSZWN0ID0gbV9wbHVnaW5WaWV3LT5m
cmFtZVJlY3QoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cud2lkdGggPSBmcmFtZVJl
Y3Qud2lkdGgoKTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cuaGVpZ2h0ID0gZnJhbWVS
ZWN0LmhlaWdodCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC50b3Ag
PSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QueSgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdp
bmRvdy5jbGlwUmVjdC5sZWZ0ID0gbV9wbHVnaW5WaWV3LT5tX2NsaXBSZWN0LngoKTsKKyAgICBt
X3BsdWdpblZpZXctPm1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX3BsdWdpblZpZXctPm1f
Y2xpcFJlY3Qud2lkdGgoKSArIG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC54KCkgLSAxOworICAg
IG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX3BsdWdpblZpZXct
Pm1fY2xpcFJlY3QuaGVpZ2h0KCkgKyBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QueSgpIC0gMTsK
KyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cud2luZG93ID0gbV9kZmJTdXJmYWNlOworfQor
Citib29sIERpcmVjdEZCTlBBUElPYmplY3Q6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgc3dpdGNoICh2
YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVnhEaXNwbGF5OgorICAgICAgICAqcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKio+KHZhbHVlKSA9IG1fZGZiV2luZG93SW5mby5kZmI7CisgICAgICAgICpyZXN1
bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNlIE5Q
TlZ4dEFwcENvbnRleHQ6CisgICAgICAgICpyZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgTlBOVm5ldHNjYXBlV2luZG93OgorICAg
ICAgICAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHZhbHVlKSA9IG1fZGZiV2luZG93SW5mby53
aW5kb3c7CisgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdERGQi5oIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc5YzE1MzFkOTA4ZjE1MGU4NzIzMzI2MDI0MzFiZGRhMzViOGM0MjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmgKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBbmRlcnMgQmFra2VuIDxhZ2Jh
a2tlbkBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQbHVnaW5WaWV3UXRERkJfaAorI2RlZmlu
ZSBQbHVnaW5WaWV3UXRERkJfaAorCisjaW5jbHVkZSAibnBhcGkuaCIKKyNpbmNsdWRlIDxRQmFz
aWNUaW1lcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVk
ZSA8ZGlyZWN0ZmIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUGx1Z2luVmlldzsK
K2NsYXNzIEludFJlY3Q7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBNb3VzZUV2ZW50
OworY2xhc3MgS2V5Ym9hcmRFdmVudDsKK2NsYXNzIERpcmVjdEZCTlBBUElPYmplY3QgOiBwdWJs
aWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIERpcmVjdEZCTlBBUElPYmplY3QqIGNy
ZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KTsKKyAgICB+RGlyZWN0RkJOUEFQSU9iamVjdCgp
OworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByZWN0KTsKKyAgICB2b2lkIHNldE5QV2luZG93SWZOZWVkZWQoKTsKKyAgICBib29sIHBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpOworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9iamVjdCogb2JqZWN0LCBRRXZlbnQqIGV2
ZW50KTsKKyAgICB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGUpOworCisgICAgYm9vbCBk
aXNwYXRjaEV2ZW50KGNvbnN0IE1vdXNlRXZlbnQqIGV2ZW50KTsKKyAgICBib29sIGRpc3BhdGNo
RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQpOworICAgIGVudW0gRXZlbnRUeXBlIHsK
KyAgICAgICAgRm9jdXNJbiwKKyAgICAgICAgRm9jdXNPdXQKKyAgICB9OworCisgICAgYm9vbCBk
aXNwYXRjaEV2ZW50KEV2ZW50VHlwZSB0eXBlKTsKK3ByaXZhdGU6CisgICAgUGx1Z2luVmlldyog
bV9wbHVnaW5WaWV3OworICAgIFFQaXhtYXAgbV9waXhtYXA7CisgICAgSURpcmVjdEZCU3VyZmFj
ZSAqbV9kZmJTdXJmYWNlOworICAgIFFCYXNpY1RpbWVyIG1fdGltZXI7CisgICAgYm9vbCBtX2lu
c3RhbGxlZEV2ZW50RmlsdGVyOworICAgIHN0cnVjdCBERkJXaW5kb3dJbmZvIHsKKyAgICAgICAg
SURpcmVjdEZCKiBkZmI7CisgICAgICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7Cisg
ICAgICAgIElEaXJlY3RGQldpbmRvdyogd2luZG93OworICAgIH0gbV9kZmJXaW5kb3dJbmZvOwor
CisgICAgRGlyZWN0RkJOUEFQSU9iamVjdChQbHVnaW5WaWV3KiBwbHVnaW5WaWV3LCBjb25zdCBE
RkJXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhcldpbmRvd0lu
Zm8oREZCV2luZG93SW5mbyAqd2luZG93SW5mbyk7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63608</attachid>
            <date>2010-08-05 11:06:39 -0700</date>
            <delta_ts>2010-08-05 14:13:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100805110156.patch</filename>
            <type>text/plain</type>
            <size>48918</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2ViNmQzYjYyMmI2MTI4ZDMyZjk1MWU0NTIyNWM5ZWQxNTI2M2FjMy4uMGMzMzhlOWUwMjczMzBh
NjI2YzUwMzEyZTAwZjc5Zjk5OGMwODA3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxMC0wOC0wNSAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBRdFdlYktpdCBkb2Vzbid0IHN1cHBvcnQgTlBBUEkg
Zm9yIERpcmVjdEZCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjE3MQorCisgICAgICAgIFRoaXMgY29udHJpYnV0aW9uIGVuYWJsZXMgd2luZG93bGVz
cyBOUEFQSSBzdXBwb3J0IGZvciBRdC9XZWJLaXQgd2hlbgorICAgICAgICB1c2luZyBEaXJlY3RG
Qi4gSXQncyBiZWVuIHZlcmlmaWVkIHRvIHdvcmsgb24gTUlQUyBoYXJkd2FyZSB3aXRoCisgICAg
ICAgIEZsYXNobGl0ZS4KKworICAgICAgICBUaGUgY29kZSBpcyBsYXJnZWx5IGJhc2VkIG9uIHRo
ZSBRdC9YMTEgaW1wbGVtZW50YXRpb24gb2Ygd2luZG93bGVzcworICAgICAgICBOUEFQSS4gSXQg
YWRkcyB0aGUgZGVmaW5lIFhQX0RGQiB3aGVuIGVuYWJsZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuCisgICAgICAgIFgxMSBhbmQgRGlyZWN0RkIgd2hlbiBYUF9VTklYIGlzIGRlZmluZWQuIFRo
aXMgbWVhbnMgdGhhdCBucGFwaS5oIHdpbGwKKyAgICAgICAgZnVuY3Rpb24gdGhlIHNhbWUgd2F5
IGZvciBYMTEgYnVpbGRzLgorCisgICAgICAgIFNpbmNlIHRoZSBub3JtYWwgdXNlIGNhc2UgZm9y
IE5QQVBJIG9uIERpcmVjdEZCIGlzIGZvciB2aWRlbyBvbiBzaXRlcworICAgICAgICBsaWtlIHlv
dXR1YmUgaXQncyBpbXBvcnRhbnQgdG8gbWFrZSBzdXJlIHRoZSBwbHVnaW4gZ2V0cyBhbiB1cGRh
dGVkCisgICAgICAgIGdsb2JhbCBnZW9tZXRyeSBpZiB0aGUgd2luZG93IG1vdmVzIG9yIHJlc2l6
ZXMuIFRoaXMgaXMgZHVlIHRvIHRoZQorICAgICAgICBmYWN0IHRoYXQgdGhlIHZpZGVvIHdpbGwg
YmUgcmVuZGVyZWQgaW50byBhIGRpZmZlcmVudCBsYXllciByYXRoZXIKKyAgICAgICAgdGhhbiBh
Y3R1YWxseSBpbnRvIHRoZSBvZmZzY3JlZW4gc3VyZmFjZSB0aGF0J3MgYmVpbmcgcmVuZGVyZWQg
dG8uCisKKyAgICAgICAgSSBoYXZlIGEgbWFudWFsIHRlc3QgY2FzZSB0aGF0IEkgY291bGQgaGVs
cCBwZW9wbGUgc2V0IHVwIGZvciB0ZXN0aW5nCisgICAgICAgIHdpdGggUXQvUVdTIERpcmVjdEZC
IGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgaXQgYXV0b21hdGVkLgorCisgICAgICAgIFRv
IGVuYWJsZSBOUEFQSSBmb3IgRGlyZWN0RkIgdGhlIGRldmVsb3BlciBuZWVkcyB0byBtYWtlIHN1
cmUKKyAgICAgICAgcW1ha2UuY29uZiBjb250YWlucyB0aGlzIGxpbmU6CisKKyAgICAgICAgREVG
SU5FUyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSV9ESVJFQ1RGQgorCisgICAgICAgIFF0
IG11c3QgYWxzbyBiZSBjb25maWd1cmVkIHdpdGggdGhlIC1xdC1nZngtZGlyZWN0ZmIgb3B0aW9u
IChhcworICAgICAgICBvcHBvc2VkIHRvIC1wbHVnaW4tZ2Z4LWRpcmVjdGZiKQorCisgICAgICAg
IE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBicmlkZ2UvbnBhcGkuaDoKKyAgICAgICAgKiBicmlk
Z2UvbnBydW50aW1lX2ludGVybmFsLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3
Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRs
ZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91
c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5W
aWV3UXRERkIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdRdERGQjo6
Y2xlYXJXaW5kb3dJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdRdERGQjo6UGx1
Z2luVmlld1F0REZCKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdRdERGQjo6flBsdWdp
blZpZXdRdERGQik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UXRERkI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UXRERkI6OnBhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXdRdERGQjo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3UXRERkI6OmV2ZW50RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXdRdERGQjo6dGltZXJFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UXRE
RkI6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld1F0
REZCOjpwbGF0Zm9ybUdldFZhbHVlKToKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdR
dERGQi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdRdERGQjo6KToKKwog
MjAxMC0wOC0wNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlh
bnNlbkBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5u
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkK
aW5kZXggYjU4MTc5NDJiNTdlMDJhODAwYjMyNDQ0NTk4ZWM1OWE5NGVlYjVjYi4uOTJkZGRkOTAx
Zjg4NWU2NjIxMDc5M2Q5MmY5N2ZhZDhjZDEzM2ZmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC05Nyw2ICs5NywxMCBAQCBncmVh
dGVyVGhhbihRVF9NSU5PUl9WRVJTSU9OLCA1KSB7CiB9CiAKICMgTmVzY2FwZSBwbHVnaW5zIHN1
cHBvcnQgKE5QQVBJKQorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9B
UElfRElSRUNURkIpIHsKKyAgICBDT05GSUcgKz0gZGlyZWN0ZmIKKyAgICBERUZJTkVTICs9IEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKK30KICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQST0uKSB7CiAgICAgdW5peHx3aW4zMi0qOiFlbWJlZGRlZDohd2lu
Y2UqOiB7CiAgICAgICAgIERFRklORVMgKz0gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9MQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggNWNjOWM5ZGQwMDU0MzAwOTAzYjQzNzA0MTU3OTdiMzRlOGU4NTQ2Ny4uNzE2MDdmYTllOTEz
ZDljZWFjNDUxN2Q0MDMwMWIyZjZkZDg0YWFjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMzIwLDE2ICsyMzIwLDIxIEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEpIHsKICAgICAgICAg
ICAgICAgICBJTkNMVURFUEFUSCArPSBwbGF0Zm9ybS9tYWMKICAgICAgICAgICAgICAgICAjIE5v
dGU6IFhQX01BQ09TWCBpcyBkZWZpbmVkIGluIG5wYXBpLmgKICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgIWVtYmVkZGVkIHsKKyAgICAgICAgICAgICAgICBkaXJlY3RmYiB7
CisgICAgICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBfREZCCisgICAgICAgICAgICAgICAg
ICAgIFFNQUtFX0NYWEZMQUdTICs9ICQkUVRfQ0ZMQUdTX0RJUkVDVEZCCisgICAgICAgICAgICAg
ICAgICAgIExJQlMgKz0gJCRRVF9MSUJTX0RJUkVDVEZCCisgICAgICAgICAgICAgICAgICAgIFNP
VVJDRVMgKz0gcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXRERkIuY3BwCisgICAgICAgICAgICAgICAg
ICAgIEhFQURFUlMgKz0gcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXRERkIuaAorICAgICAgICAgICAg
ICAgIH0gZWxzZTohZW1iZWRkZWQgewogICAgICAgICAgICAgICAgICAgICBDT05GSUcgKz0geDEx
CiAgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gLWxYcmVuZGVyCisgICAgICAgICAgICAgICAg
ICAgIFNPVVJDRVMgKz0gcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKyAgICAgICAg
ICAgICAgICAgICAgSEVBREVSUyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgU09VUkNFUyArPSBcCi0gICAgICAgICAg
ICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwIFwKICAgICAgICAgICAg
ICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5QYWNrYWdlUXQuY3BwIFwKICAgICAgICAgICAgICAg
ICAgICAgcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCi0gICAgICAgICAgICAgICAgSEVBREVS
UyArPSBcCi0gICAgICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQu
aAogICAgICAgICAgICAgICAgIERFRklORVMgKz0gWFBfVU5JWAogICAgICAgICAgICAgfQogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oIGIvV2ViQ29yZS9icmlk
Z2UvbnBhcGkuaAppbmRleCA1ZmM4ZTQ2MTk5OGU4ZGQ1MGVjMzgwNzkyYjM3YjU5N2Y3ZDEyZjdi
Li5mODMxNDhmYzBjYmIxM2UwZmM0YmZlOWU3YWU0NDZkYzgxODQyYjkxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JyaWRnZS9ucGFwaS5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgKQEAgLTg5
LDcgKzg5LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCisjaWYg
ZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAjaW5jbHVkZSA8WDExL1hsaWIu
aD4KICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjQzLDcg
KzI0Myw3IEBAIHR5cGVkZWYgc3RydWN0IF9OUFNpemUKIC8qIEV4YWN0IG1lYW5pbmcgbXVzdCBi
ZSBzcGVjJ2QgaW4gZXZlbnQgbW9kZWwuICovCiAjZGVmaW5lIGtOUEV2ZW50U3RhcnRJTUUgMgog
Ci0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQo
WFBfREZCKQogLyoKICAqIFVuaXggc3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMK
ICAqLwpAQCAtNTIzLDYgKzUyMyw5IEBAIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgIHVpbnRw
dHJfdCB3UGFyYW07CiAgIHVpbnRwdHJfdCBsUGFyYW07CiB9IE5QRXZlbnQ7CisjZWxpZiBkZWZp
bmVkKFhQX0RGQikKKyNpbmNsdWRlIDxkaXJlY3RmYi5oPgordHlwZWRlZiBERkJFdmVudCBOUEV2
ZW50OwogI2VsaWYgZGVmaW5lZChYUF9PUzIpCiB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAogewpA
QCAtNTQ0LDcgKzU0Nyw3IEBAIHR5cGVkZWYgUmduSGFuZGxlIE5QUURSZWdpb247CiB0eXBlZGVm
IENHUGF0aFJlZiBOUENHUmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9XSU4pCiB0eXBlZGVmIEhS
R04gTlBSZWdpb247Ci0jZWxpZiBkZWZpbmVkKFhQX1VOSVgpCisjZWxpZiBkZWZpbmVkKFhQX1VO
SVgpICYmICFkZWZpbmVkKFhQX0RGQikKIHR5cGVkZWYgUmVnaW9uIE5QUmVnaW9uOwogI2VsaWYg
ZGVmaW5lZChYUF9TWU1CSUFOKQogdHlwZWRlZiBRUmVnaW9uKiBOUFJlZ2lvbjsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oIGIvV2ViQ29yZS9icmlkZ2Uv
bnBydW50aW1lX2ludGVybmFsLmgKaW5kZXggNzM2YTdmMTU2Yjc5Y2M2ZTU5ZGQ4NTY5Nzg5MDdh
ODVmODBkNmExOS4uMDE1OTMxZTIwNjVlNGZkMjNiY2UxZDdkNDRlYjM2MWU4ZGFkYzU0YyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKKysrIGIvV2ViQ29y
ZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJucGZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIm5wcnVudGltZS5oIgogCi0jaWZkZWYgWFBfVU5J
WAorI2lmIGRlZmluZWQgWFBfVU5JWCAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgI2luY2x1ZGUg
PFgxMS9YcmVzb3VyY2UuaD4KIAogICAgICN1bmRlZiBOb25lCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
aW5kZXggNTBlY2E3ZWVlNjgzODg2N2JjYzA0ODZmZmM0YzkwN2NiNTYxNTQ1Yy4uZjA0OWRiYjZj
NzAwZTE2ZTE3ZjZmYmMyNDU3ZjNmNDMxMDU2NGE1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApA
QCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBsdWdp
blZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VOSVgK
KyNpZiBkZWZpbmVkKFhQX1gxMSkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlmIChtX2lzV2lu
ZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUgKE5QU2V0V2lu
ZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9ucFdpbmRvdy53
c19pbmZvID0gMDsKQEAgLTgyMyw3ICs4MjMsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZy
YW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAog
ICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6ZWQoZmFs
c2UpCiAgICAgLCBtX2lzV2FpdGluZ1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVmaW5lZChYUF9VTklY
KQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQgKFhQX0RGQikKICAgICAsIG1fbmVl
ZHNYRW1iZWQoZmFsc2UpCiAjZW5kaWYKICNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKQEAgLTg0NCwxMCArODQ0LDE0IEBAIFBsdWdpblZpZXc6OlBsdWdpblZp
ZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdl
KiBwCiAjZW5kaWYKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQogICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKKyNpZiAhZGVm
aW5lZCBYUF9ERkIKICAgICAsIG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFsKDApCiAgICAg
LCBtX2NvbG9ybWFwKDApCiAgICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbHNlCisgICAgLCBt
X3BsdWdpblZpZXdRdERGQigwKQorI2VuZGlmCiAjZW5kaWYKICAgICAsIG1fbG9hZE1hbnVhbGx5
KGxvYWRNYW51YWxseSkKICAgICAsIG1fbWFudWFsU3RyZWFtKDApCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApp
bmRleCA0MzFjZTBlNzAyNmNjZjc4YmNlMjBhYWQ3N2JmZTJkYmU0Nzg0ODI1Li5kYWU4MDgyMDRl
YzFmNjBmYWYxODNhZTk1ODMzOWVkMjY0MmZiZWQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTc4
LDYgKzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsdWdpblN0cmVhbTsK
ICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Cisj
aWYgZGVmaW5lZCBYUF9ERkIgJiYgUExBVEZPUk0oUVQpCisgICAgY2xhc3MgUGx1Z2luVmlld1F0
REZCOworI2VuZGlmCiAKICAgICBlbnVtIFBsdWdpblN0YXR1cyB7CiAgICAgICAgIFBsdWdpblN0
YXR1c0Nhbk5vdEZpbmRQbHVnaW4sCkBAIC0zMTYsNyArMzE5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBib29sIG1faGF2ZUluaXRpYWxpemVkOwogICAgICAgICBib29sIG1faXNX
YWl0aW5nVG9TdGFydDsKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VO
SVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAgICAgYm9vbCBtX25lZWRzWEVtYmVkOwogI2Vu
ZGlmCiAKQEAgLTM2NiwxMiArMzY5LDE3IEBAIHByaXZhdGU6CiAKICNpZiBkZWZpbmVkKFhQX1VO
SVgpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBib29sIG1faGFzUGVu
ZGluZ0dlb21ldHJ5Q2hhbmdlOworI2lmbmRlZiBYUF9ERkIKICAgICAgICAgUGl4bWFwIG1fZHJh
d2FibGU7CiAgICAgICAgIFZpc3VhbCogbV92aXN1YWw7CiAgICAgICAgIENvbG9ybWFwIG1fY29s
b3JtYXA7CiAgICAgICAgIERpc3BsYXkqIG1fcGx1Z2luRGlzcGxheTsKIAogICAgICAgICB2b2lk
IGluaXRYRXZlbnQoWEV2ZW50KiBldmVudCk7CisjZWxzZQorICAgICAgICBmcmllbmQgY2xhc3Mg
UGx1Z2luVmlld1F0REZCOworICAgICAgICBQbHVnaW5WaWV3UXRERkIgKm1fcGx1Z2luVmlld1F0
REZCOworI2VuZGlmCiAjZW5kaWYKIAogICAgICAgICBJbnRSZWN0IG1fY2xpcFJlY3Q7IC8vIFRo
ZSBjbGlwIHJlY3QgdG8gYXBwbHkgdG8gYSB3aW5kb3dlZCBwbHVnLWluCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXQuY3BwCmluZGV4IDBjYTM1NmI0ZTQxNjNkOWJjZjUxOGMxNzYyNjY2M2VmNGRi
ODBiNDAuLjE5MjM2NzE4ZjNjNTFkZWZkN2QzNDg0MTkxNjkzNzFjYjE3NTk0OTQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHaXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kZXJzIEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29t
PgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MSw3ICs1Miw2IEBACiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUgIlBsdWdpbkNvbnRhaW5lclF0Lmgi
CiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCiAj
aW5jbHVkZSAiUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oIgpAQCAtNjgsNiArNjgsOCBAQAog
I2luY2x1ZGUgPFFLZXlFdmVudD4KICNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlIDxRV2lk
Z2V0PgorI2lmZGVmIFFfV1NfWDExCisjaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNp
bmNsdWRlIDxRWDExSW5mbz4KICNpbmNsdWRlIDxYMTEvWC5oPgogI2lmbmRlZiBRVF9OT19YUkVO
REVSCkBAIC03NSw2ICs3NywxMCBAQAogI2RlZmluZSBTdGF0dXMgaW50CiAjaW5jbHVkZSA8WDEx
L2V4dGVuc2lvbnMvWHJlbmRlci5oPgogI2VuZGlmCisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyNp
bmNsdWRlICJQbHVnaW5WaWV3UXRERkIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8cnVudGltZS9K
U0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KIApAQCAtMTEwLDYgKzExNiw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICBpZiAobV93aW5k
b3dSZWN0ID09IG9sZFdpbmRvd1JlY3QgJiYgbV9jbGlwUmVjdCA9PSBvbGRDbGlwUmVjdCkKICAg
ICAgICAgcmV0dXJuOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBpZiAoIW1faXNXaW5kb3dlZCAm
JiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CiAgICAgICAg
IGlmIChtX2RyYXdhYmxlKQogICAgICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3Bs
YXkoKSwgbV9kcmF3YWJsZSk7CkBAIC0xMTgsNiArMTI1LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1
cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
KE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoKTsK
ICAgICAgICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOyAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgc2Vy
dmVyIGtub3dzIGFib3V0IHRoZSBEcmF3YWJsZQogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gZG8g
bm90IGNhbGwgc2V0TlBXaW5kb3dJZk5lZWRlZCBpbW1lZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQg
b24gcGFpbnQoKQogICAgIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKQEAgLTE3
Miw2ICsxODAsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsK
IAorI2lmZGVmIFFfV1NfWDExCiAgICAgaWYgKG1faXNXaW5kb3dlZCB8fCAhbV9kcmF3YWJsZSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yNDAsNiArMjQ5LDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiAg
ICAgcGFpbnRlci0+ZHJhd1BpeG1hcChRUG9pbnQoZnJhbWVSZWN0KCkueCgpICsgZXhwb3NlZFJl
Y3QueCgpLCBmcmFtZVJlY3QoKS55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBxdERyYXdhYmxlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlZFJlY3QpOworI2VsaWYgZGVmaW5lZChYUF9E
RkIpCisgICAgaWYgKG1fcGx1Z2luVmlld1F0REZCKQorICAgICAgICBtX3BsdWdpblZpZXdRdERG
Qi0+cGFpbnQoY29udGV4dCwgcmVjdCk7CisjZW5kaWYKIH0KIAogLy8gVE9ETzogVW5pZnkgYWNy
b3NzIHBvcnRzLgpAQCAtMjU4LDYgKzI3MSw3IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hO
UEV2ZW50KE5QRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBhY2NlcHRlZDsKIH0KIAorI2lmZGVm
IFFfV1NfWDExCiB2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwgUVdp
ZGdldCogb3duZXJXaWRnZXQpCiB7CiAgICAgeEV2ZW50LT54YW55LnNlcmlhbCA9IDA7IC8vIHdl
IGFyZSB1bmF3YXJlIG9mIHRoZSBsYXN0IHJlcXVlc3QgcHJvY2Vzc2VkIGJ5IFggU2VydmVyCkBA
IC0yOTksNiArMzEzLDcgQEAgdm9pZCBzZXRYS2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgeEV2ZW50LT54a2V5Lnhfcm9vdCA9
IDA7CiAgICAgeEV2ZW50LT54a2V5Lnlfcm9vdCA9IDA7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVn
aW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpAQCAt
MzA4LDE0ICszMjMsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMo
KS5rZXlkb3duRXZlbnQgJiYgZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5dXBFdmVu
dCkKICAgICAgICAgcmV0dXJuOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBYRXZlbnQgbnBFdmVu
dDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKICAgICBzZXRYS2V5RXZlbnRTcGVjaWZpY0Zp
ZWxkcygmbnBFdmVudCwgZXZlbnQpOwogCiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVu
dCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworI2VsaWYgZGVmaW5lZChY
UF9ERkIpCisgICAgaWYgKCFtX3BsdWdpblZpZXdRdERGQiB8fCAhbV9wbHVnaW5WaWV3UXRERkIt
PmRpc3BhdGNoRXZlbnQoZXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQo
KTsKKyNlbmRpZgorCiB9CiAKKyNpZmRlZiBRX1dTX1gxMQogc3RhdGljIHVuc2lnbmVkIGludCBp
bnB1dEV2ZW50U3RhdGUoTW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgaW50IHN0
YXRlID0gMDsKQEAgLTM5MCw2ICs0MTIsNyBAQCBzdGF0aWMgdm9pZCBzZXRYQ3Jvc3NpbmdFdmVu
dFNwZWNpZmljRmllbGRzKFhFdmVudCogeEV2ZW50LCBNb3VzZUV2ZW50KiBldmVudCwgYwogICAg
IHhjcm9zc2luZy5zYW1lX3NjcmVlbiA9IHRydWU7CiAgICAgeGNyb3NzaW5nLmZvY3VzID0gZmFs
c2U7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNl
RXZlbnQqIGV2ZW50KQogewpAQCAtNDA0LDYgKzQyNyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFu
ZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICAgICAgZm9jdXNQbHVnaW5FbGVt
ZW50KCk7CiAgICAgfQogCisjaWZkZWYgUV9XU19YMTEKICAgICBYRXZlbnQgbnBFdmVudDsKICAg
ICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDIwLDEwICs0NDQsMTUgQEAgdm9pZCBQbHVn
aW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogCiAgICAgaWYgKCFk
aXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOworI2VsaWYgZGVmaW5lZChYUF9ERkIpCisgICAgaWYgKCFtX3BsdWdpblZpZXdRdERGQiB8
fCAhbV9wbHVnaW5WaWV3UXRERkItPmRpc3BhdGNoRXZlbnQoZXZlbnQpKQorICAgICAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6Omhh
bmRsZUZvY3VzSW5FdmVudCgpCiB7CisjaWZkZWYgUV9XU19YMTEKICAgICBYRXZlbnQgbnBFdmVu
dDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDMzLDEwICs0NjIsMTUgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQoKQogICAgIGV2ZW50LmRldGFpbCA9IE5v
dGlmeURldGFpbE5vbmU7CiAKICAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7CisjZWxpZiBk
ZWZpbmVkKFhQX0RGQikKKyAgICBpZiAobV9wbHVnaW5WaWV3UXRERkIpCisgICAgICAgIG1fcGx1
Z2luVmlld1F0REZCLT5kaXNwYXRjaEV2ZW50KFBsdWdpblZpZXdRdERGQjo6Rm9jdXNJbik7Cisj
ZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIHsKKyNp
ZmRlZiBRX1dTX1gxMQogICAgIFhFdmVudCBucEV2ZW50OwogICAgIGluaXRYRXZlbnQoJm5wRXZl
bnQpOwogCkBAIC00NDYsNiArNDgwLDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNP
dXRFdmVudCgpCiAgICAgZXZlbnQuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKIAogICAgIGRp
c3BhdGNoTlBFdmVudChucEV2ZW50KTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmICht
X3BsdWdpblZpZXdRdERGQikKKyAgICAgICAgbV9wbHVnaW5WaWV3UXRERkItPmRpc3BhdGNoRXZl
bnQoUGx1Z2luVmlld1F0REZCOjpGb2N1c091dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5W
aWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQpAQCAtNDk4LDYgKzUzNiw3IEBAIHZv
aWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAgIG1fbnBXaW5kb3cu
Y2xpcFJlY3QucmlnaHQgPSBtX2NsaXBSZWN0LngoKSArIG1fY2xpcFJlY3Qud2lkdGgoKTsKICAg
ICAgICAgbV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX2NsaXBSZWN0LnkoKSArIG1fY2xp
cFJlY3QuaGVpZ2h0KCk7CiAgICAgfSBlbHNlIHsKKyNpZmRlZiBRX1dTX1gxMQogICAgICAgICBt
X25wV2luZG93LnggPSAwOwogICAgICAgICBtX25wV2luZG93LnkgPSAwOwogCkBAIC01MDUsNiAr
NTQ0LDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgICAg
IG1fbnBXaW5kb3cuY2xpcFJlY3QudG9wID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy5jbGlwUmVj
dC5yaWdodCA9IDA7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gMDsKKyNl
bGlmIGRlZmluZWQoWFBfREZCKQorICAgICAgICBpZiAobV9wbHVnaW5WaWV3UXRERkIpCisgICAg
ICAgICAgICBtX3BsdWdpblZpZXdRdERGQi0+c2V0TlBXaW5kb3dJZk5lZWRlZCgpOworI2VuZGlm
CiAgICAgfQogCiAgICAgaWYgKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWly
a0RvbnRDYWxsU2V0V2luZG93TW9yZVRoYW5PbmNlKSkgewpAQCAtNTcyLDEwICs2MTUsMTIgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlh
YmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9S
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgY2FzZSBOUE5W
U3VwcG9ydHNYRW1iZWRCb29sOgogICAgICAgICAqc3RhdGljX2Nhc3Q8TlBCb29sKj4odmFsdWUp
ID0gdHJ1ZTsKICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgogCiAgICAgY2FzZSBOUE5WamF2YXNjcmlwdEVuYWJsZWRCb29sOgog
ICAgICAgICAqc3RhdGljX2Nhc3Q8TlBCb29sKj4odmFsdWUpID0gdHJ1ZTsKQEAgLTU5NCw2ICs2
MzksNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFi
bGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycgogCiBib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZXN1bHQpCiB7CisjaWZkZWYgUV9XU19YMTEKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CiAgICAg
Y2FzZSBOUE5WeERpc3BsYXk6CiAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IFFYMTFJbmZvOjpk
aXNwbGF5KCk7CkBAIC02MjMsNiArNjY5LDkgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUKICAg
ICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorI2VsaWYgZGVmaW5lZChY
UF9ERkIpCisgICAgcmV0dXJuIG1fcGx1Z2luVmlld1F0REZCICYmIG1fcGx1Z2luVmlld1F0REZC
LT5wbGF0Zm9ybUdldFZhbHVlKHZhcmlhYmxlLCB2YWx1ZSwgcmVzdWx0KTsKKyNlbmRpZgogfQog
CiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCkBA
IC02NTYsNiArNzA1LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgaW52
YWxpZGF0ZSgpOwogfQogCisjaWZkZWYgUV9XU19YMTEKIHN0YXRpYyBEaXNwbGF5ICpnZXRQbHVn
aW5EaXNwbGF5KCkKIHsKICAgICAvLyBUaGUgcGx1Z2luIHRvb2xraXQgbWlnaHQgcnVuIHVzaW5n
IGEgZGlmZmVyZW50IFggY29ubmVjdGlvbi4gQXQgdGhlIG1vbWVudCwgd2Ugb25seQpAQCAtNzIx
LDEyICs3NzEsMTQgQEAgc3RhdGljIHZvaWQgZ2V0VmlzdWFsQW5kQ29sb3JtYXAoaW50IGRlcHRo
LCBWaXN1YWwgKip2aXN1YWwsIENvbG9ybWFwICpjb2xvcm1hcCkKICAgICBpZiAoKnZpc3VhbCkK
ICAgICAgICAgKmNvbG9ybWFwID0gWENyZWF0ZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5KCks
IFFYMTFJbmZvOjphcHBSb290V2luZG93KCksICp2aXN1YWwsIEFsbG9jTm9uZSk7CiB9CisjZW5k
aWYKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9p
c1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNj
ZXNzZnVsbHkpOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1
bmNzKCktPmdldHZhbHVlKSB7CiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5W
aWV3KHRoaXMpOwogICAgICAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2Nr
cyhKU0M6OlNpbGVuY2VBc3NlcnRpb25zT25seSk7CkBAIC03NTEsOSArODAzLDI5IEBAIGJvb2wg
UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KDAp
OwogICAgICAgICBtX3BsdWdpbkRpc3BsYXkgPSBnZXRQbHVnaW5EaXNwbGF5KCk7CiAgICAgfQor
I2VsaWYgZGVmaW5lZChYUF9ERkIpCisgICAgaWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtX3BsdWdpblZp
ZXdRdERGQiA9IFBsdWdpblZpZXdRdERGQjo6Y3JlYXRlKHRoaXMpOworCisgICAgaWYgKCFtX3Bs
dWdpblZpZXdRdERGQikgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0
YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9zdGF0dXMgPSBQ
bHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgog
CiAgICAgc2hvdygpOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBOUFNldFdpbmRvd0NhbGxiYWNr
U3RydWN0KiB3c2kgPSBuZXcgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+
dHlwZSA9IDA7CiAKQEAgLTc5NSw2ICs4NjcsNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
U3RhcnQoKQogICAgIH0KIAogICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IHdzaTsKKyNlbmRpZgog
CiAgICAgaWYgKCEobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJG
aXJzdFNldFdpbmRvd0NhbGwpKSkgewogICAgICAgICB1cGRhdGVQbHVnaW5XaWRnZXQoKTsKQEAg
LTgwOSwxMSArODgyLDE4IEBAIHZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1EZXN0cm95KCkKICAg
ICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkKICAgICAgICAgZGVsZXRlIHBsYXRmb3JtUGx1
Z2luV2lkZ2V0KCk7CiAKKyNpZmRlZiBRX1dTX1gxMQogICAgIGlmIChtX2RyYXdhYmxlKQogICAg
ICAgICBYRnJlZVBpeG1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKIAogICAg
IGlmIChtX2NvbG9ybWFwKQogICAgICAgICBYRnJlZUNvbG9ybWFwKFFYMTFJbmZvOjpkaXNwbGF5
KCksIG1fY29sb3JtYXApOworI2VsaWYgZGVmaW5lZChYUF9ERkIpCisgICAgaWYgKG1fcGx1Z2lu
Vmlld1F0REZCKSB7CisgICAgICAgIGRlbGV0ZSBtX3BsdWdpblZpZXdRdERGQjsKKyAgICAgICAg
bV9wbHVnaW5WaWV3UXRERkIgPSAwOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZp
ZXc6OmhhbHQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERG
Qi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMjBiNjY4NzhjNDQ3OThjMjczYTUwY2I2MDU0MjczNmJjYTRiNDgxCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5jcHAKQEAgLTAsMCArMSw4
MTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kZXJzIEJha2tlbiA8YWdiYWtrZW5A
Z21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVnaW5W
aWV3UXRERkIuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgor
I2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2
ZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgorI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50
LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3PgorI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNs
dWRlIDxRTW91c2VFdmVudD4KKyNpbmNsdWRlIDxRVmFyaWFudD4KKyNpbmNsdWRlIDxRV2lkZ2V0
PgorCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2V4dGVybiBRX0dVSV9FWFBPUlQgSURpcmVjdEZCU3Vy
ZmFjZSogcXRfZGlyZWN0ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKGNvbnN0IFFQaXhtYXAgJnBpeG1h
cCk7CitRVF9FTkRfTkFNRVNQQUNFCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3ZvaWQgUGx1Z2lu
Vmlld1F0REZCOjpjbGVhcldpbmRvd0luZm8oUGx1Z2luVmlld1F0REZCOjpERkJXaW5kb3dJbmZv
ICp3aW5kb3dJbmZvKQoreworICAgIGlmICh3aW5kb3dJbmZvLT53aW5kb3cpCisgICAgICAgIHdp
bmRvd0luZm8tPndpbmRvdy0+UmVsZWFzZSh3aW5kb3dJbmZvLT53aW5kb3cpOworICAgIGlmICh3
aW5kb3dJbmZvLT5sYXllcikKKyAgICAgICAgd2luZG93SW5mby0+bGF5ZXItPlJlbGVhc2Uod2lu
ZG93SW5mby0+bGF5ZXIpOworICAgIGlmICh3aW5kb3dJbmZvLT5kZmIpCisgICAgICAgIHdpbmRv
d0luZm8tPmRmYi0+UmVsZWFzZSh3aW5kb3dJbmZvLT5kZmIpOworfQorCitQbHVnaW5WaWV3UXRE
RkI6OlBsdWdpblZpZXdRdERGQihQbHVnaW5WaWV3KiBwbHVnaW5WaWV3LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBERkJXaW5kb3dJbmZvJiB3aW5kb3dJ
bmZvKQorICAgIDogbV9wbHVnaW5WaWV3KHBsdWdpblZpZXcpLCBtX2RmYlN1cmZhY2UoMCksIG1f
aW5zdGFsbGVkRXZlbnRGaWx0ZXIoZmFsc2UpLCBtX2RmYldpbmRvd0luZm8od2luZG93SW5mbykK
K3sKK30KKworUGx1Z2luVmlld1F0REZCOjp+UGx1Z2luVmlld1F0REZCKCkKK3sKKyAgICBjbGVh
cldpbmRvd0luZm8oJm1fZGZiV2luZG93SW5mbyk7Cit9CisKK1BsdWdpblZpZXdRdERGQiogUGx1
Z2luVmlld1F0REZCOjpjcmVhdGUoUGx1Z2luVmlldyogcGx1Z2luVmlldykKK3sKKyAgICBBU1NF
UlQocGx1Z2luVmlldyk7CisgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IHBsdWdpblZpZXct
Pm1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KTsKKyAgICBpZiAoIWNsaWVudCB8fCAhY2xpZW50LT5vd25lcldpZGdldCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIERGQldpbmRvd0luZm8gd2luZG93SW5mbyA9IHsgMCwgMCwgMCB9Owor
ICAgIERGQlJlc3VsdCByZXN1bHQgPSBEaXJlY3RGQkNyZWF0ZSgmd2luZG93SW5mby5kZmIpOwor
ICAgIGlmIChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIERpcmVjdEZCRXJyb3IoIlBsdWdp
blZpZXdRdERGQjo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
CisgICAgcmVzdWx0ID0gd2luZG93SW5mby5kZmItPkdldERpc3BsYXlMYXllcih3aW5kb3dJbmZv
LmRmYiwgRExJRF9QUklNQVJZLCAmd2luZG93SW5mby5sYXllcik7CisgICAgaWYgKHJlc3VsdCAh
PSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2luVmlld1F0REZCOjpjcmVh
dGUiLCByZXN1bHQpOworICAgICAgICBjbGVhcldpbmRvd0luZm8oJndpbmRvd0luZm8pOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXN1bHQgPSB3aW5kb3dJbmZvLmxheWVyLT5H
ZXRXaW5kb3cod2luZG93SW5mby5sYXllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0eSgiX3FfRGlyZWN0RkJX
aW5kb3dJRCIpLnRvSW50KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZ3aW5kb3dJbmZvLndpbmRvdyk7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAg
ICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2luVmlld1F0REZCOjpjcmVhdGUiLCByZXN1bHQpOwor
ICAgICAgICBjbGVhcldpbmRvd0luZm8oJndpbmRvd0luZm8pOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisKKyAgICByZXR1cm4gbmV3IFBsdWdpblZpZXdRdERGQihwbHVnaW5WaWV3LCB3aW5k
b3dJbmZvKTsKK30KKwordm9pZCBQbHVnaW5WaWV3UXRERkI6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBERkJFdmVudCBkZmJFdmVu
dDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJV
c2VyRXZlbnQmIHVzZXJFdmVudCA9IGRmYkV2ZW50LnVzZXI7CisgICAgdXNlckV2ZW50LmNsYXp6
ID0gREZFQ19VU0VSOworICAgIHVzZXJFdmVudC50eXBlID0gMHhkZmI7CisgICAgdXNlckV2ZW50
LmRhdGEgPSAmbV9wbHVnaW5WaWV3LT5tX25wV2luZG93OworICAgIG1fcGx1Z2luVmlldy0+ZGlz
cGF0Y2hOUEV2ZW50KGRmYkV2ZW50KTsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpOworICAgIEludFJlY3QgZXhwb3NlZFJlY3QocmVjdCk7CisgICAg
Y29uc3QgSW50UmVjdCBmcmFtZVJlY3QgPSBtX3BsdWdpblZpZXctPmZyYW1lUmVjdCgpOworICAg
IGV4cG9zZWRSZWN0LmludGVyc2VjdChmcmFtZVJlY3QpOworICAgIGV4cG9zZWRSZWN0Lm1vdmUo
LWZyYW1lUmVjdC54KCksIC1mcmFtZVJlY3QueSgpKTsKKyAgICBjb25zdCBRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlIG9sZE1vZGUgPSBwYWludGVyLT5jb21wb3NpdGlvbk1vZGUoKTsKKyAgICBw
YWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3Vy
Y2UpOworICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdC54KCkgKyBleHBv
c2VkUmVjdC54KCksIGZyYW1lUmVjdC55KCkgKyBleHBvc2VkUmVjdC55KCkpLCBtX3BpeG1hcCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyAgICBwYWludGVyLT5zZXRD
b21wb3NpdGlvbk1vZGUob2xkTW9kZSk7Cit9CisKK2Jvb2wgUGx1Z2luVmlld1F0REZCOjpkaXNw
YXRjaEV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFFLZXlF
dmVudCogcXRFdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpLT5xdEV2ZW50KCk7CisgICAgREZCRXZl
bnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwgc2l6ZW9mKERGQkV2ZW50KSk7
CisgICAgREZCSW5wdXRFdmVudCYgaW5wdXQgPSBkZmJFdmVudC5pbnB1dDsKKyAgICBpbnB1dC5j
bGF6eiA9IERGRUNfSU5QVVQ7CisgICAgaW5wdXQudHlwZSA9IChxdEV2ZW50LT50eXBlKCkgPT0g
UUV2ZW50OjpLZXlQcmVzcyA/IERJRVRfS0VZUFJFU1MgOiBESUVUX0tFWVJFTEVBU0UpOworICAg
IHVuc2lnbmVkIGludCBmbGFncyA9IChESUVGX0tFWVNZTUJPTCB8IERJRUZfTU9ESUZJRVJTKTsK
KyAgICBpZiAocXRFdmVudC0+aXNBdXRvUmVwZWF0KCkpCisgICAgICAgIGZsYWdzIHw9IERJRUZf
UkVQRUFUOworICAgIGNvbnN0IFF0OjpLZXlib2FyZE1vZGlmaWVyIG1vZGlmaWVyc1tdID0geyBR
dDo6U2hpZnRNb2RpZmllciwgUXQ6OkNvbnRyb2xNb2RpZmllciwgUXQ6OkFsdE1vZGlmaWVyLCBR
dDo6TWV0YU1vZGlmaWVyIH07CisgICAgY29uc3QgREZCSW5wdXREZXZpY2VNb2RpZmllck1hc2sg
ZGZiTW9kaWZpZXJzW10gPSB7IERJTU1fU0hJRlQsIERJTU1fQ09OVFJPTCwgRElNTV9BTFQsIERJ
TU1fTUVUQSB9OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIGlm
IChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIG1vZGlmaWVyc1tpXSkKKyAgICAgICAgICAgIGlucHV0
Lm1vZGlmaWVycyA9IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNrKGlucHV0Lm1vZGlmaWVycyB8
IGRmYk1vZGlmaWVyc1tpXSk7CisgICAgfQorICAgIHN3aXRjaCAocXRFdmVudC0+a2V5KCkpIHsK
KyAgICBjYXNlIFF0OjpLZXlfQmFja3NwYWNlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19CQUNLU1BBQ0U7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQkFDS1NQQUNFOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVGFiOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19UQUI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVEFCOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmV0dXJuOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19SRVRVUk47CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfS1BfRU5U
RVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Fc2NhcGU6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0VTQ0FQRTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV9FU0NBUEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWxldGU6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFTEVURTsKKyAgICAgICAgaW5wdXQua2V5X2lk
ID0gRElLSV9ERUxFVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZWZ0Ogor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfTEVGVDsKKyAgICAgICAgaW5w
dXQua2V5X2lkID0gRElLSV9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
UmlnaHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUlNPUl9SSUdIVDsKKyAg
ICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1VwOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfVVA7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9Eb3duOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJTT1Jf
RE9XTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9ET1dOOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfSW5zZXJ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19JTlNFUlQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSU5TRVJUOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfSE9NRTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9IT01FOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRW5kOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19FTkQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRU5EOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfUGFnZVVwOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19QQUdFX1VQOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1BBR0VfVVA7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYWdlRG93bjoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfUEFHRV9ET1dOOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1BB
R0VfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ByaW50OgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QUklOVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhdXNlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QQVVTRTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbGVjdDoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfU0VMRUNUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfT3BlblVybDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfR09UTzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NsZWFyOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19DTEVBUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lbnU6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX01FTlU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9IZWxwOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19I
RUxQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZVBhZ2U6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0lOVEVSTkVUOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTGF1bmNoTWFpbDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
TUFJTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Zhdm9yaXRlczoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRkFWT1JJVEVTOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQmFjazoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQkFD
SzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0ZvcndhcmQ6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0ZPUldBUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9Wb2x1bWVVcDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVk9MVU1F
X1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVm9sdW1lRG93bjoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVk9MVU1FX0RPV047CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVNdXRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19NVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFQbGF5Ogor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QTEFZOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTWVkaWFTdG9wOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19TVE9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFSZWNvcmQ6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1JFQ09SRDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X01lZGlhUHJldmlvdXM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1BSRVZJT1VTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFO
ZXh0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ORVhUOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRjE6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X0YxOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YxOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRjI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YyOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YyOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRjM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0YzOworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX0YzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRjQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y0OworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0Y0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjU6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y1OworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX0Y1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjY6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y2OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjc6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0Y3OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0Y3
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjg6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0Y4OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0Y4OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjk6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX0Y5OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0Y5OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjEwOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19GMTA7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjEwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRjExOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19GMTE7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjExOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfRjEyOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19G
MTI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjEyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfU2hpZnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1NI
SUZUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NISUZUX0w7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9Db250cm9sOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19DT05UUk9MOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0NPTlRST0xfTDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdDoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfQUxUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0FMVF9MOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0R3I6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX0FMVEdSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWV0
YToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTUVUQTsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV9NRVRBX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9T
dXBlcl9MOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TVVBFUjsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV9TVVBFUl9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfSHlwZXJfTDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfSFlQRVI7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSFlQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0NhcHNMb2NrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19D
QVBTX0xPQ0s7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfQ0FQU19MT0NLOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtTG9jazoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfTlVNX0xPQ0s7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfTlVNX0xP
Q0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TY3JvbGxMb2NrOgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TQ1JPTExfTE9DSzsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9TQ1JPTExfTE9DSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfQWJvdmVkb3Q6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUJP
VkVET1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Fib3ZlcmluZzoK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9BQk9WRVJJTkc7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0FjdXRlOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19ERUFEX0FDVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRGVhZF9CcmV2ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9CUkVW
RTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQ2Fyb246CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0FST047CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9EZWFkX0NlZGlsbGE6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX0RFQURfQ0VESUxMQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRf
Q2lyY3VtZmxleDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9DSVJDVU1G
TEVYOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9EaWFlcmVzaXM6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfRElBRVJFU0lTOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Eb3VibGVhY3V0ZToKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfREVBRF9ET1VCTEVBQ1VURTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0RlYWRfR3JhdmU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X0RFQURfR1JBVkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0lvdGE6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfSU9UQTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfTWFjcm9uOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19ERUFEX01BQ1JPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0RlYWRfT2dvbmVrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX09HT05F
SzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfU2VtaXZvaWNlZF9Tb3Vu
ZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9TRU1JVk9JQ0VEX1NPVU5E
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9UaWxkZToKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9USUxERTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0RlYWRfVm9pY2VkX1NvdW5kOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX1ZPSUNFRF9TT1VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1NwYWNlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TUEFDRTsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9TUEFDRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0V4Y2xhbToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRVhDTEFNQVRJ
T05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1F1b3RlRGJsOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19RVU9UQVRJT047CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9OdW1iZXJTaWduOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19OVU1CRVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RvbGxh
cjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRE9MTEFSX1NJR047CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QZXJjZW50OgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19QRVJDRU5UX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9BbXBlcnNhbmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0FNUEVSU0FORDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fwb3N0cm9waGU6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0FQT1NUUk9QSEU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9QYXJlbkxlZnQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BB
UkVOVEhFU0lTX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYXJlblJp
Z2h0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QQVJFTlRIRVNJU19SSUdIVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzdGVyaXNrOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19BU1RFUklTSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X1BsdXM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BMVVNfU0lHTjsK
KyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OktleXBhZE1vZGlmaWVyKQor
ICAgICAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9LUF9QTFVTOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQ29tbWE6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X0NPTU1BOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0NPTU1BOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfTWludXM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX01JTlVTX1NJR047CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfTUlOVVNfU0lHTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BlcmlvZDoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfUEVSSU9EOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1BF
UklPRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NsYXNoOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19TTEFTSDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV9TTEFTSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzA6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTXzA7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfMDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzE6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTXzE7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfMTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTXzI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfMjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5XzM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzM7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfMzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5XzQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzQ7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzU6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzU7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzY6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzY7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
NjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzc6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTXzc7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfNzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzg6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTXzg7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfODsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5Xzk6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzk7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0NvbG9uOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DT0xPTjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbWljb2xvbjoKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfU0VNSUNPTE9OOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX1NFTUlDT0xPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0xlc3M6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0xFU1NfVEhBTl9TSUdOOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX0xFU1NfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0VxdWFsOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19FUVVBTFNfU0lH
TjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9FUVVBTFNfU0lHTjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0dyZWF0ZXI6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0dSRUFURVJfVEhBTl9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfUXVlc3Rpb246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1FVRVNUSU9OX01B
Uks7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9BdDoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfQVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9B
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9BOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9COgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9COworICAgICAgICBpbnB1dC5r
ZXlfaWQgPSBESUtJX0I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9DOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9DOworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX0M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EOgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9EOworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJX0Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9FOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9GOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJ
X0Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9HOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9HOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0c7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19TTUFMTF9IOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0g7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19TTUFMTF9JOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0k7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9KOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19TTUFMTF9KOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0o7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9LOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9LOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0s7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9MOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9MOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0w7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9NOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9NOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX007CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9OOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFM
TF9OOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX047CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9POgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9P
OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX087CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9QOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9QOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9ROgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9ROworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1E7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9SOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9SOworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX1I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9TOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9TOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX1M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9U
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9UOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9VOworICAgICAgICBpbnB1dC5r
ZXlfaWQgPSBESUtJX1U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9WOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9WOworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX1Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9XOgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9XOworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJX1c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9YOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9YOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX1g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9ZOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9ZOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJ
X1k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9aOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9aOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1o7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0TGVmdDoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRfTEVGVDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X0JhY2tzbGFzaDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfQkFDS1NMQVNIOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0JBQ0tTTEFT
SDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNrZXRSaWdodDoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRfUklHSFQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc2NpaUNpcmN1bToKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfQ0lSQ1VNRkxFWF9BQ0NFTlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9VbmRlcnNjb3JlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19V
TkRFUlNDT1JFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VMZWZ0Ogor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9CUkFDS0VUX0xFRlQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYXI6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1ZFUlRJQ0FMX0JBUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0JyYWNlUmlnaHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0NVUkxZX0JSQUNL
RVRfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc2NpaVRpbGRlOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19USUxERTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGlmICgocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6U2hpZnRNb2RpZmllcikg
JiYgcXRFdmVudC0+a2V5KCkgPj0gUXQ6OktleV9BICYmIHF0RXZlbnQtPmtleSgpIDw9IFF0OjpL
ZXlfWikKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERGQklucHV0RGV2aWNlS2V5U3ltYm9s
KChpbnB1dC5rZXlfc3ltYm9sIC0gRElLU19TTUFMTF9BKSArIERJS1NfQ0FQSVRBTF9BKTsKKyAg
ICBpZiAoaW5wdXQua2V5X2lkICE9IERJS0lfVU5LTk9XTikgeworICAgICAgICBmbGFncyB8PSBE
SUVGX0tFWUlEOworICAgICAgICBpZiAoaW5wdXQua2V5X2lkID49IERJS0lfMCAmJiBpbnB1dC5r
ZXlfaWQgPD0gRElLSV85ICYmIHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OktleXBhZE1vZGlm
aWVyKQorICAgICAgICAgICAgaW5wdXQua2V5X2lkID0gREZCSW5wdXREZXZpY2VLZXlJZGVudGlm
aWVyKGlucHV0LmtleV9pZCAtIERJS0lfMCArIERJS0lfS1BfMCk7CisgICAgfQorICAgIGlucHV0
LmZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGZsYWdzKTsKKyAgICByZXR1cm4gbV9wbHVnaW5W
aWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCitib29sIFBsdWdpblZpZXdRdERG
Qjo6ZGlzcGF0Y2hFdmVudChjb25zdCBNb3VzZUV2ZW50KiBldmVudCkKK3sKKyAgICBERkJFdmVu
dCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsK
KyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gZGZiRXZlbnQud2luZG93OworICAgIG1fZGZi
V2luZG93SW5mby53aW5kb3ctPkdldElEKG1fZGZiV2luZG93SW5mby53aW5kb3csICZ3aW5kb3cu
d2luZG93X2lkKTsKKyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKyAgICBJbnRQb2lu
dCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX3BsdWdpblZpZXctPm1fZWxlbWVudC0+
cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsK
KyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQgfHwg
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgeworICAgICAgICAv
LyBlbnRlci9sZWF2ZQorICAgICAgICB3aW5kb3cudHlwZSA9IChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIgOiBEV0VUX0xFQVZFKTsKKyAg
ICAgICAgd2luZG93LnggPSBkZmJFdmVudC53aW5kb3cuY3ggPSBwb3N0Wm9vbVBvcy54KCk7Cisg
ICAgICAgIHdpbmRvdy55ID0gZGZiRXZlbnQud2luZG93LmN5ID0gcG9zdFpvb21Qb3MueSgpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIG1vdXNlCisgICAgICAgIHVuc2lnbmVkIGludCBtb2Rp
ZmllcnMgPSAwOworICAgICAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgICAgIG1v
ZGlmaWVycyB8PSBESU1NX0NPTlRST0w7CisgICAgICAgIGlmIChldmVudC0+c2hpZnRLZXkoKSkK
KyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX1NISUZUOworICAgICAgICBpZiAoZXZlbnQt
PmFsdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQUxUOworICAgICAgICBp
ZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX01FVEE7
CisgICAgICAgIHdpbmRvdy5tb2RpZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFzayht
b2RpZmllcnMpOworCisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZl
bnQpIHsKKyAgICAgICAgICAgIHdpbmRvdy50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dOIDogRFdFVF9CVVRUT05VUCk7
CisgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LT5idXR0b24oKSkgeworICAgICAgICAgICAgY2Fz
ZSBMZWZ0QnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5idXR0b24gPSBESUJJX0xFRlQ7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1pZGRsZUJ1dHRvbjoK
KyAgICAgICAgICAgICAgICB3aW5kb3cuYnV0dG9uID0gRElCSV9NSURETEU7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJpZ2h0QnV0dG9uOgorICAgICAgICAgICAg
ICAgIHdpbmRvdy5idXR0b24gPSBESUJJX1JJR0hUOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHdpbmRvdy5idXR0b25zID0gREZCSW5wdXREZXZpY2VCdXR0b25NYXNr
KDApOworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlbW92ZUV2ZW50KSB7CisgICAgICAgICAgICB3aW5kb3cudHlwZSA9IERXRVRfTU9USU9OOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgfQorCisgICAgd2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7CisgICAgd2luZG93LnkgPSBw
b3N0Wm9vbVBvcy55KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJzb2x1dGVMb2NhdGlvbiA9IGV2
ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4ID0gYWJzb2x1dGVMb2NhdGlv
bi54KCk7CisgICAgd2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlvbi55KCk7CisKKyAgICByZXR1
cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCitib29sIFBs
dWdpblZpZXdRdERGQjo6ZGlzcGF0Y2hFdmVudChFdmVudFR5cGUgdHlwZSkKK3sKKyAgICBERkJF
dmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQp
KTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gZGZiRXZlbnQud2luZG93OworICAgIHdp
bmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
Rm9jdXNJbjogd2luZG93LnR5cGUgPSBEV0VUX0dPVEZPQ1VTOyBicmVhazsKKyAgICBjYXNlIEZv
Y3VzT3V0OiB3aW5kb3cudHlwZSA9IERXRVRfTE9TVEZPQ1VTOyBicmVhazsKKyAgICBkZWZhdWx0
OiByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiBtX3BsdWdpblZpZXctPmRpc3BhdGNo
TlBFdmVudChkZmJFdmVudCk7Cit9CisKK2Jvb2wgUGx1Z2luVmlld1F0REZCOjpldmVudEZpbHRl
cihRT2JqZWN0KiAsIFFFdmVudCogZSkKK3sKKyAgICBpZiAoZS0+dHlwZSgpID09IFFFdmVudDo6
TW92ZSB8fCBlLT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUpIHsKKyAgICAgICAgbV9wbHVnaW5W
aWV3LT5tX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7CisgICAgICAgIG1fdGltZXIu
c3RhcnQoMTAsIHRoaXMpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGx1
Z2luVmlld1F0REZCOjp0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKQoreworICAgIGlmIChlLT50
aW1lcklkKCkgPT0gbV90aW1lci50aW1lcklkKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7
CisgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VSZWRyYXcoKTsKKyAgICB9Cit9CisKK3ZvaWQg
UGx1Z2luVmlld1F0REZCOjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKK3sKKyAgICBRUG9pbnQgcGx1
Z2luVmlld0dsb2JhbFBvcyA9IG1fcGx1Z2luVmlldy0+d2luZG93Q2xpcFJlY3QoKS50b3BMZWZ0
KCk7CisgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGx1Z2luVmlldy0+bV9wYXJlbnRG
cmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlm
IChRV2lkZ2V0KiBvd25lcldpZGdldCA9IGNsaWVudCA/IGNsaWVudC0+b3duZXJXaWRnZXQoKSA6
IDApIHsKKyAgICAgICAgaWYgKCFtX2luc3RhbGxlZEV2ZW50RmlsdGVyKSB7CisgICAgICAgICAg
ICBRV2lkZ2V0KiB3YXRjaGVkID0gb3duZXJXaWRnZXQ7CisgICAgICAgICAgICB3aGlsZSAodHJ1
ZSkgeworICAgICAgICAgICAgICAgIHdhdGNoZWQtPmluc3RhbGxFdmVudEZpbHRlcih0aGlzKTsK
KyAgICAgICAgICAgICAgICBpZiAod2F0Y2hlZC0+aXNXaW5kb3coKSkKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgd2F0Y2hlZCA9IHdhdGNoZWQtPnBhcmVudFdp
ZGdldCgpOworICAgICAgICAgICAgICAgIGlmICghd2F0Y2hlZCkKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2luc3RhbGxlZEV2ZW50Rmls
dGVyID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQb3MgPSBv
d25lcldpZGdldC0+bWFwVG9HbG9iYWwocGx1Z2luVmlld0dsb2JhbFBvcyk7CisgICAgICAgIGlm
IChjb25zdCBRR3JhcGhpY3NXZWJWaWV3KiBpdGVtID0gcW9iamVjdF9jYXN0PGNvbnN0IFFHcmFw
aGljc1dlYlZpZXcqPihjbGllbnQtPnBsdWdpblBhcmVudCgpKSkgeworICAgICAgICAgICAgUV9B
U1NFUlQoaXRlbS0+c2NlbmUoKSAmJiAhaXRlbS0+c2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkp
OworICAgICAgICAgICAgY29uc3QgUUdyYXBoaWNzVmlldyogdmlldyA9IGl0ZW0tPnNjZW5lKCkt
PnZpZXdzKCkudmFsdWUoMCk7CisgICAgICAgICAgICBjb25zdCBRUG9pbnQgYWRkID0gdmlldy0+
bWFwRnJvbVNjZW5lKGl0ZW0tPnBvcygpKTsKKyAgICAgICAgICAgIHBsdWdpblZpZXdHbG9iYWxQ
b3MgKz0gYWRkOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKChRU2l6ZSkobV9wbHVnaW5W
aWV3LT5tX3dpbmRvd1JlY3Quc2l6ZSgpKSAhPSBtX3BpeG1hcC5zaXplKCkpIHsKKyAgICAgICAg
bV9waXhtYXAgPSBRUGl4bWFwKG1fcGx1Z2luVmlldy0+bV93aW5kb3dSZWN0LnNpemUoKSk7Cisg
ICAgICAgIG1fcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgbV9kZmJTdXJm
YWNlID0gUVRfUFJFUEVORF9OQU1FU1BBQ0UocXRfZGlyZWN0ZmJfc3VyZmFjZV9mb3JfcGl4bWFw
KG1fcGl4bWFwKSk7CisgICAgfQorCisgICAgbV9wbHVnaW5WaWV3LT5tX25wV2luZG93LndzX2lu
Zm8gPSAmbV9kZmJXaW5kb3dJbmZvOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy50eXBl
ID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cu
eCA9IHBsdWdpblZpZXdHbG9iYWxQb3MueCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRv
dy55ID0gcGx1Z2luVmlld0dsb2JhbFBvcy55KCk7CisgICAgY29uc3QgSW50UmVjdCBmcmFtZVJl
Y3QgPSBtX3BsdWdpblZpZXctPmZyYW1lUmVjdCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdp
bmRvdy53aWR0aCA9IGZyYW1lUmVjdC53aWR0aCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdp
bmRvdy5oZWlnaHQgPSBmcmFtZVJlY3QuaGVpZ2h0KCk7CisgICAgbV9wbHVnaW5WaWV3LT5tX25w
V2luZG93LmNsaXBSZWN0LnRvcCA9IG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC55KCk7CisgICAg
bV9wbHVnaW5WaWV3LT5tX25wV2luZG93LmNsaXBSZWN0LmxlZnQgPSBtX3BsdWdpblZpZXctPm1f
Y2xpcFJlY3QueCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC5yaWdo
dCA9IG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC53aWR0aCgpICsgbV9wbHVnaW5WaWV3LT5tX2Ns
aXBSZWN0LngoKSAtIDE7CisgICAgbV9wbHVnaW5WaWV3LT5tX25wV2luZG93LmNsaXBSZWN0LmJv
dHRvbSA9IG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC5oZWlnaHQoKSArIG1fcGx1Z2luVmlldy0+
bV9jbGlwUmVjdC55KCkgLSAxOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy53aW5kb3cg
PSBtX2RmYlN1cmZhY2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlld1F0REZCOjpwbGF0Zm9ybUdldFZh
bHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KQor
eworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlZ4RGlzcGxheToKKyAgICAg
ICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPih2YWx1ZSkgPSBtX2RmYldpbmRvd0luZm8uZGZi
OworICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgY2FzZSBOUE5WeHRBcHBDb250ZXh0OgorICAgICAgICAqcmVzdWx0ID0gTlBFUlJf
R0VORVJJQ19FUlJPUjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNlIE5QTlZuZXRz
Y2FwZVdpbmRvdzoKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPih2YWx1ZSkgPSBt
X2RmYldpbmRvd0luZm8ud2luZG93OworICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KK30KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXRERkIuaCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVn
aW5WaWV3UXRERkIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGMyZmE0ODdlYzgyOGMxMGVlNjAyMzhlM2YzM2My
ZjIxY2U3NjcxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdERGQi5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5k
ZXJzIEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGx1Z2luVmll
d1F0REZCX2gKKyNkZWZpbmUgUGx1Z2luVmlld1F0REZCX2gKKworI2luY2x1ZGUgIm5wYXBpLmgi
CisjaW5jbHVkZSA8UUJhc2ljVGltZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxR
UGl4bWFwPgorI2luY2x1ZGUgPGRpcmVjdGZiLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFBsdWdpblZpZXc7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgR3JhcGhpY3NDb250ZXh0Owor
Y2xhc3MgTW91c2VFdmVudDsKK2NsYXNzIEtleWJvYXJkRXZlbnQ7CitjbGFzcyBQbHVnaW5WaWV3
UXRERkIgOiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBsdWdpblZpZXdR
dERGQiogY3JlYXRlKFBsdWdpblZpZXcqIHBsdWdpblZpZXcpOworICAgIH5QbHVnaW5WaWV3UXRE
RkIoKTsKKyAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50
UmVjdCYgcmVjdCk7CisgICAgdm9pZCBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CisgICAgYm9vbCBw
bGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJv
ciogcmVzdWx0KTsKKyAgICBib29sIGV2ZW50RmlsdGVyKFFPYmplY3QqIG9iamVjdCwgUUV2ZW50
KiBldmVudCk7CisgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBlKTsKKworICAgIGJv
b2wgZGlzcGF0Y2hFdmVudChjb25zdCBNb3VzZUV2ZW50KiBldmVudCk7CisgICAgYm9vbCBkaXNw
YXRjaEV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KTsKKyAgICBlbnVtIEV2ZW50VHlw
ZSB7CisgICAgICAgIEZvY3VzSW4sCisgICAgICAgIEZvY3VzT3V0CisgICAgfTsKKworICAgIGJv
b2wgZGlzcGF0Y2hFdmVudChFdmVudFR5cGUgdHlwZSk7Citwcml2YXRlOgorICAgIFBsdWdpblZp
ZXcqIG1fcGx1Z2luVmlldzsKKyAgICBRUGl4bWFwIG1fcGl4bWFwOworICAgIElEaXJlY3RGQlN1
cmZhY2UgKm1fZGZiU3VyZmFjZTsKKyAgICBRQmFzaWNUaW1lciBtX3RpbWVyOworICAgIGJvb2wg
bV9pbnN0YWxsZWRFdmVudEZpbHRlcjsKKyAgICBzdHJ1Y3QgREZCV2luZG93SW5mbyB7CisgICAg
ICAgIElEaXJlY3RGQiogZGZiOworICAgICAgICBJRGlyZWN0RkJEaXNwbGF5TGF5ZXIqIGxheWVy
OworICAgICAgICBJRGlyZWN0RkJXaW5kb3cqIHdpbmRvdzsKKyAgICB9IG1fZGZiV2luZG93SW5m
bzsKKworICAgIFBsdWdpblZpZXdRdERGQihQbHVnaW5WaWV3KiBwbHVnaW5WaWV3LCBjb25zdCBE
RkJXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhcldpbmRvd0lu
Zm8oREZCV2luZG93SW5mbyAqd2luZG93SW5mbyk7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63633</attachid>
            <date>2010-08-05 14:13:41 -0700</date>
            <delta_ts>2010-08-05 14:43:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100805140856.patch</filename>
            <type>text/plain</type>
            <size>17901</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTFiNmM2ZTc2NGIyMmIzYjcxMDg2MTdmNGE5NGYzNjQxNzI2YmY0ZS4uY2IzMGFiMGM1N2Y3MTM4
ZmRlOGZhYWRiNDZiMmMwMWZkN2EwMjY4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMC0wOC0wNSAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUVRdIFF0V2ViS2l0IGRvZXNuJ3Qgc3VwcG9ydCBO
UEFQSSBmb3IgRGlyZWN0RkIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2MTcxCisKKyAgICAgICAgVGhpcyBjb250cmlidXRpb24gZW5hYmxlcyB3aW5k
b3dsZXNzIE5QQVBJIHN1cHBvcnQgZm9yIFF0L1dlYktpdCB3aGVuCisgICAgICAgIHVzaW5nIERp
cmVjdEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgK
KyAgICAgICAgRmxhc2hsaXRlLgorCisgICAgICAgIFRoZSBjb2RlIGlzIGxhcmdlbHkgYmFzZWQg
b24gdGhlIFF0L1gxMSBpbXBsZW1lbnRhdGlvbiBvZiB3aW5kb3dsZXNzCisgICAgICAgIE5QQVBJ
LiBJdCBhZGRzIHRoZSBkZWZpbmUgWFBfREZCIHdoZW4gZW5hYmxlZCB0byBkaWZmZXJlbnRpYXRl
IGJldHdlZW4KKyAgICAgICAgWDExIGFuZCBEaXJlY3RGQiB3aGVuIFhQX1VOSVggaXMgZGVmaW5l
ZC4gVGhpcyBtZWFucyB0aGF0IG5wYXBpLmggd2lsbAorICAgICAgICBmdW5jdGlvbiB0aGUgc2Ft
ZSB3YXkgZm9yIFgxMSBidWlsZHMuCisKKyAgICAgICAgU2luY2UgdGhlIG5vcm1hbCB1c2UgY2Fz
ZSBmb3IgTlBBUEkgb24gRGlyZWN0RkIgaXMgZm9yIHZpZGVvIG9uIHNpdGVzCisgICAgICAgIGxp
a2UgeW91dHViZSBpdCdzIGltcG9ydGFudCB0byBtYWtlIHN1cmUgdGhlIHBsdWdpbiBnZXRzIGFu
IHVwZGF0ZWQKKyAgICAgICAgZ2xvYmFsIGdlb21ldHJ5IGlmIHRoZSB3aW5kb3cgbW92ZXMgb3Ig
cmVzaXplcy4gVGhpcyBpcyBkdWUgdG8gdGhlCisgICAgICAgIGZhY3QgdGhhdCB0aGUgdmlkZW8g
d2lsbCBiZSByZW5kZXJlZCBpbnRvIGEgZGlmZmVyZW50IGxheWVyIHJhdGhlcgorICAgICAgICB0
aGFuIGFjdHVhbGx5IGludG8gdGhlIG9mZnNjcmVlbiBzdXJmYWNlIHRoYXQncyBiZWluZyByZW5k
ZXJlZCB0by4KKworICAgICAgICBJIGhhdmUgYSBtYW51YWwgdGVzdCBjYXNlIHRoYXQgSSBjb3Vs
ZCBoZWxwIHBlb3BsZSBzZXQgdXAgZm9yIHRlc3RpbmcKKyAgICAgICAgd2l0aCBRdC9RV1MgRGly
ZWN0RkIgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gbWFrZSBpdCBhdXRvbWF0ZWQuCisKKyAgICAg
ICAgVG8gZW5hYmxlIE5QQVBJIGZvciBEaXJlY3RGQiB0aGUgZGV2ZWxvcGVyIG5lZWRzIHRvIG1h
a2Ugc3VyZQorICAgICAgICBxbWFrZS5jb25mIGNvbnRhaW5zIHRoaXMgbGluZToKKworICAgICAg
ICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVDVEZCCisKKyAgICAg
ICAgUXQgbXVzdCBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLXF0LWdmeC1kaXJlY3RmYiBv
cHRpb24gKGFzCisgICAgICAgIG9wcG9zZWQgdG8gLXBsdWdpbi1nZngtZGlyZWN0ZmIpCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBicmlkZ2UvbnBhcGkuaDoKKyAgICAgICAg
KiBicmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5WaWV3Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1
c0luRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisKIDIwMTAtMDgtMDQgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCmluZGV4IGI1ODE3OTQyYjU3ZTAyYTgwMGIzMjQ0NDU5OGVjNTlhOTRlZWI1Y2IuLjky
ZGRkZDkwMWY4ODVlNjYyMTA3OTNkOTJmOTdmYWQ4Y2QxMzNmZjkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTcsNiArOTcsMTAg
QEAgZ3JlYXRlclRoYW4oUVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1
Z2lucyBzdXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5F
UyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRk
ZWQ6IXdpbmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJPTEKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDVjYzljOWRkMDA1NDMwMDkwM2I0MzcwNDE1Nzk3YjM0ZThlODU0NjcuLjcxNjA3
ZmE5ZTkxM2Q5Y2VhYzQ1MTdkNDAzMDFiMmY2ZGQ4NGFhYzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjMyMCwxNiArMjMyMCwy
MSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAg
ICAgICAgICAgICAgICAgSU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAg
ICAgIyBOb3RlOiBYUF9NQUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGly
ZWN0ZmIgeworICAgICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAg
ICAgICAgICAgICBRTUFLRV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAg
ICAgICAgICAgICAgICBMSUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAg
ICAgICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmNwcAorICAgICAgICAg
ICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0REZCLmgKKyAgICAg
ICAgICAgICAgICB9IGVsc2U6IWVtYmVkZGVkIHsKICAgICAgICAgICAgICAgICAgICAgQ09ORklH
ICs9IHgxMQogICAgICAgICAgICAgICAgICAgICBMSUJTICs9IC1sWHJlbmRlcgorICAgICAgICAg
ICAgICAgICAgICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCisg
ICAgICAgICAgICAgICAgICAgIEhFQURFUlMgKz0gcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJR
dC5oCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gXAotICAg
ICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcCBcCiAgICAg
ICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcCBcCiAgICAgICAg
ICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAotICAgICAgICAgICAgICAg
IEhFQURFUlMgKz0gXAotICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRh
aW5lclF0LmgKICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX1VOSVgKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaCBiL1dlYkNv
cmUvYnJpZGdlL25wYXBpLmgKaW5kZXggNWZjOGU0NjE5OThlOGRkNTBlYzM4MDc5MmIzN2I1OTdm
N2QxMmY3Yi4uZjgzMTQ4ZmMwY2JiMTNlMGZjNGJmZTllN2FlNDQ2ZGM4MTg0MmI5MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ucGFwaS5o
CkBAIC04OSw3ICs4OSw3IEBACiAjZW5kaWYKICNlbmRpZgogCi0jaWYgZGVmaW5lZChYUF9VTklY
KQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogI2luY2x1ZGUgPFgx
MS9YbGliLmg+CiAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAg
LTI0Myw3ICsyNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfTlBTaXplCiAvKiBFeGFjdCBtZWFuaW5n
IG11c3QgYmUgc3BlYydkIGluIGV2ZW50IG1vZGVsLiAqLwogI2RlZmluZSBrTlBFdmVudFN0YXJ0
SU1FIDIKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFk
ZWZpbmVkKFhQX0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVjdHVyZXMgYW5kIGRlZmlu
aXRpb25zCiAgKi8KQEAgLTUyMyw2ICs1MjMsOSBAQCB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAog
ICB1aW50cHRyX3Qgd1BhcmFtOwogICB1aW50cHRyX3QgbFBhcmFtOwogfSBOUEV2ZW50OworI2Vs
aWYgZGVmaW5lZChYUF9ERkIpCisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KK3R5cGVkZWYgREZCRXZl
bnQgTlBFdmVudDsKICNlbGlmIGRlZmluZWQoWFBfT1MyKQogdHlwZWRlZiBzdHJ1Y3QgX05QRXZl
bnQKIHsKQEAgLTU0NCw3ICs1NDcsNyBAQCB0eXBlZGVmIFJnbkhhbmRsZSBOUFFEUmVnaW9uOwog
dHlwZWRlZiBDR1BhdGhSZWYgTlBDR1JlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlw
ZWRlZiBIUkdOIE5QUmVnaW9uOwotI2VsaWYgZGVmaW5lZChYUF9VTklYKQorI2VsaWYgZGVmaW5l
ZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiB0eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsK
ICNlbGlmIGRlZmluZWQoWFBfU1lNQklBTikKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaCBiL1dlYkNvcmUv
YnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDczNmE3ZjE1NmI3OWNjNmU1OWRkODU2
OTc4OTA3YTg1ZjgwZDZhMTkuLjAzYmUwMjM5MzRlYzkwOGRkZjE0NTZhNmUxNDNjMWJmYmI2NzRk
YjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCisrKyBi
L1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSAibnBmdW5jdGlvbnMuaCIKICNpbmNsdWRlICJucHJ1bnRpbWUuaCIKIAotI2lmZGVm
IFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAj
aW5jbHVkZSA8WDExL1hyZXNvdXJjZS5oPgogCiAgICAgI3VuZGVmIE5vbmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAppbmRleCA1MGVjYTdlZWU2ODM4ODY3YmNjMDQ4NmZmYzRjOTA3Y2I1NjE1NDVjLi42
NWE5MTg0NTRkOWJkMDAyMDg5NTdiNTJhYjY2NjYxZDVhZTE1OGMyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzdG9wKCkKICAgICAg
ICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7CiAgICAgfQogCi0jaWZkZWYg
WFBfVU5JWAorI2lmIGRlZmluZWQoWFBfWDExKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgaWYg
KG1faXNXaW5kb3dlZCAmJiBtX25wV2luZG93LndzX2luZm8pCiAgICAgICAgICAgIGRlbGV0ZSAo
TlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCAqKW1fbnBXaW5kb3cud3NfaW5mbzsKICAgICBtX25w
V2luZG93LndzX2luZm8gPSAwOwpAQCAtODIzLDcgKzgyMyw3IEBAIFBsdWdpblZpZXc6OlBsdWdp
blZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNr
YWdlKiBwCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX2hhdmVJbml0aWFs
aXplZChmYWxzZSkKICAgICAsIG1faXNXYWl0aW5nVG9TdGFydChmYWxzZSkKLSNpZiBkZWZpbmVk
KFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZCAoWFBfREZCKQogICAg
ICwgbV9uZWVkc1hFbWJlZChmYWxzZSkKICNlbmRpZgogI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtODQ0LDEwICs4NDQsMTQgQEAgUGx1Z2luVmlldzo6
UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdp
blBhY2thZ2UqIHAKICNlbmRpZgogI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSh0cnVlKQor
I2lmICFkZWZpbmVkIFhQX0RGQgogICAgICwgbV9kcmF3YWJsZSgwKQogICAgICwgbV92aXN1YWwo
MCkKICAgICAsIG1fY29sb3JtYXAoMCkKICAgICAsIG1fcGx1Z2luRGlzcGxheSgwKQorI2VsaWYg
ZGVmaW5lZChYUF9ERkIpICYmIFBMQVRGT1JNKFFUKQorICAgICwgbV9wbHVnaW5WaWV3UXRERkIo
MCkKKyNlbmRpZgogI2VuZGlmCiAgICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAg
ICAgLCBtX21hbnVhbFN0cmVhbSgwKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggNDMxY2UwZTcwMjZj
Y2Y3OGJjZTIwYWFkNzdiZmUyZGJlNDc4NDgyNS4uYWZmNDVjNzQ1NTU3YjllNTc2ZmQwNzhlNDVk
NjU0YWM2ZTQ1MDYyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAor
KysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC03OCw2ICs3OCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBQbHVnaW5TdHJlYW07CiAgICAgY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworI2lmIGRlZmluZWQoWFBfREZC
KSAmJiBQTEFURk9STShRVCkKKyAgICBjbGFzcyBQbHVnaW5WaWV3UXRERkI7CisjZW5kaWYKIAog
ICAgIGVudW0gUGx1Z2luU3RhdHVzIHsKICAgICAgICAgUGx1Z2luU3RhdHVzQ2FuTm90RmluZFBs
dWdpbiwKQEAgLTMxNiw3ICszMTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgbV9oYXZlSW5pdGlhbGl6ZWQ7CiAgICAgICAgIGJvb2wgbV9pc1dhaXRpbmdUb1N0YXJ0Owog
Ci0jaWYgZGVmaW5lZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQo
WFBfREZCKQogICAgICAgICBib29sIG1fbmVlZHNYRW1iZWQ7CiAjZW5kaWYKIApAQCAtMzY2LDYg
KzM2OSwxMCBAQCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5n
ZTsKKyNpZiBkZWZpbmVkKFhQX0RGQikgJiYgUExBVEZPUk0oUVQpCisgICAgICAgIGZyaWVuZCBj
bGFzcyBQbHVnaW5WaWV3UXRERkI7CisgICAgICAgIFBsdWdpblZpZXdRdERGQiAqbV9wbHVnaW5W
aWV3UXRERkI7CisjZWxzZQogICAgICAgICBQaXhtYXAgbV9kcmF3YWJsZTsKICAgICAgICAgVmlz
dWFsKiBtX3Zpc3VhbDsKICAgICAgICAgQ29sb3JtYXAgbV9jb2xvcm1hcDsKQEAgLTM3Myw2ICsz
ODAsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIHZvaWQgaW5pdFhFdmVudChYRXZlbnQqIGV2ZW50
KTsKICNlbmRpZgorI2VuZGlmCiAKICAgICAgICAgSW50UmVjdCBtX2NsaXBSZWN0OyAvLyBUaGUg
Y2xpcCByZWN0IHRvIGFwcGx5IHRvIGEgd2luZG93ZWQgcGx1Zy1pbgogICAgICAgICBJbnRSZWN0
IG1fd2luZG93UmVjdDsgLy8gT3VyIHdpbmRvdyByZWN0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmll
d1F0LmNwcAppbmRleCAwY2EzNTZiNGU0MTYzZDliY2Y1MThjMTc2MjY2NjNlZjRkYjgwYjQwLi4x
OTIzNjcxOGYzYzUxZGVmZDdkMzQ4NDE5MTY5MzcxY2IxNzU5NDk0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQv
UGx1Z2luVmlld1F0LmNwcApAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFuZGVycyBCYWtrZW4gPGFnYmFra2VuQGdtYWlsLmNvbT4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNyArNTIsNiBAQAogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJQbHVnaW5Db250YWluZXJRdC5oIgogI2luY2x1
ZGUgIlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgogI2luY2x1ZGUg
IlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKQEAgLTY4LDYgKzY4LDggQEAKICNpbmNsdWRl
IDxRS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSA8UVdpZGdldD4KKyNp
ZmRlZiBRX1dTX1gxMQorI2luY2x1ZGUgIlBsdWdpbkNvbnRhaW5lclF0LmgiCiAjaW5jbHVkZSA8
UVgxMUluZm8+CiAjaW5jbHVkZSA8WDExL1guaD4KICNpZm5kZWYgUVRfTk9fWFJFTkRFUgpAQCAt
NzUsNiArNzcsMTAgQEAKICNkZWZpbmUgU3RhdHVzIGludAogI2luY2x1ZGUgPFgxMS9leHRlbnNp
b25zL1hyZW5kZXIuaD4KICNlbmRpZgorI2VsaWYgZGVmaW5lZChYUF9ERkIpCisjaW5jbHVkZSAi
UGx1Z2luVmlld1F0REZCLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAKQEAgLTExMCw2ICsxMTYsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgaWYgKG1fd2luZG93UmVjdCA9
PSBvbGRXaW5kb3dSZWN0ICYmIG1fY2xpcFJlY3QgPT0gb2xkQ2xpcFJlY3QpCiAgICAgICAgIHJl
dHVybjsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgaWYgKCFtX2lzV2luZG93ZWQgJiYgbV93aW5k
b3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0LnNpemUoKSkgewogICAgICAgICBpZiAobV9k
cmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1f
ZHJhd2FibGUpOwpAQCAtMTE4LDYgKzEyNSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1
Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChOUFNldFdp
bmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93LndzX2luZm8pLT5kZXB0aCk7CiAgICAgICAg
IFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93
cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9CisjZW5kaWYKIAogICAgIC8vIGRvIG5vdCBjYWxs
IHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRlbHksIHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50
KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7CkBAIC0xNzIsNiArMTgw
LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIHJlY3QpCiAKICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAKKyNpZmRl
ZiBRX1dTX1gxMQogICAgIGlmIChtX2lzV2luZG93ZWQgfHwgIW1fZHJhd2FibGUpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMjQwLDYgKzI0OSwxMCBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIHBhaW50
ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgpLngoKSArIGV4cG9zZWRSZWN0LngoKSwg
ZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAg
IGlmIChtX3BsdWdpblZpZXdRdERGQikKKyAgICAgICAgbV9wbHVnaW5WaWV3UXRERkItPnBhaW50
KGNvbnRleHQsIHJlY3QpOworI2VuZGlmCiB9CiAKIC8vIFRPRE86IFVuaWZ5IGFjcm9zcyBwb3J0
cy4KQEAgLTI1OCw2ICsyNzEsNyBAQCBib29sIFBsdWdpblZpZXc6OmRpc3BhdGNoTlBFdmVudChO
UEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKKyNpZmRlZiBRX1dTX1gx
MQogdm9pZCBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoWEV2ZW50KiB4RXZlbnQsIFFXaWRnZXQqIG93
bmVyV2lkZ2V0KQogewogICAgIHhFdmVudC0+eGFueS5zZXJpYWwgPSAwOyAvLyB3ZSBhcmUgdW5h
d2FyZSBvZiB0aGUgbGFzdCByZXF1ZXN0IHByb2Nlc3NlZCBieSBYIFNlcnZlcgpAQCAtMjk5LDYg
KzMxMyw3IEBAIHZvaWQgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50KiB4RXZlbnQs
IEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIHhFdmVudC0+eGtleS54X3Jvb3QgPSAwOwogICAg
IHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6
aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKQEAgLTMwOCwxNCAr
MzIzLDIxIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50KiBldmVudCkKICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93
bkV2ZW50ICYmIGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXVwRXZlbnQpCiAgICAg
ICAgIHJldHVybjsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAg
aW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoJm5w
RXZlbnQsIGV2ZW50KTsKIAogICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAg
ICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQor
ICAgIGlmICghbV9wbHVnaW5WaWV3UXRERkIgfHwgIW1fcGx1Z2luVmlld1F0REZCLT5kaXNwYXRj
aEV2ZW50KGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisjZW5k
aWYKKwogfQogCisjaWZkZWYgUV9XU19YMTEKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVu
dFN0YXRlKE1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7
CkBAIC0zOTAsNiArNDEyLDcgQEAgc3RhdGljIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZp
Y0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGMKICAgICB4Y3Jvc3Np
bmcuc2FtZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9zc2luZy5mb2N1cyA9IGZhbHNlOwogfQor
I2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBl
dmVudCkKIHsKQEAgLTQwNCw2ICs0MjcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNl
RXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwog
ICAgIH0KIAorI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhF
dmVudCgmbnBFdmVudCk7CiAKQEAgLTQyMCwxMCArNDQ0LDE1IEBAIHZvaWQgUGx1Z2luVmlldzo6
aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIAogICAgIGlmICghZGlzcGF0Y2hO
UEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNl
bGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmICghbV9wbHVnaW5WaWV3UXRERkIgfHwgIW1fcGx1
Z2luVmlld1F0REZCLT5kaXNwYXRjaEV2ZW50KGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1
c0luRXZlbnQoKQogeworI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAg
aW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTQzMywxMCArNDYyLDE1IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAgICBldmVudC5kZXRhaWwgPSBOb3RpZnlEZXRh
aWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2VsaWYgZGVmaW5lZChY
UF9ERkIpCisgICAgaWYgKG1fcGx1Z2luVmlld1F0REZCKQorICAgICAgICBtX3BsdWdpblZpZXdR
dERGQi0+ZGlzcGF0Y2hFdmVudChQbHVnaW5WaWV3UXRERkI6OkZvY3VzSW4pOworI2VuZGlmCiB9
CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCgpCiB7CisjaWZkZWYgUV9X
U19YMTEKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZucEV2ZW50KTsKIApA
QCAtNDQ2LDYgKzQ4MCwxMCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQo
KQogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlmeURldGFpbE5vbmU7CiAKICAgICBkaXNwYXRjaE5Q
RXZlbnQobnBFdmVudCk7CisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyAgICBpZiAobV9wbHVnaW5W
aWV3UXRERkIpCisgICAgICAgIG1fcGx1Z2luVmlld1F0REZCLT5kaXNwYXRjaEV2ZW50KFBsdWdp
blZpZXdRdERGQjo6Rm9jdXNPdXQpOworI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0
UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTQ5OCw2ICs1MzYsNyBAQCB2b2lkIFBsdWdp
blZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0
LnJpZ2h0ID0gbV9jbGlwUmVjdC54KCkgKyBtX2NsaXBSZWN0LndpZHRoKCk7CiAgICAgICAgIG1f
bnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9jbGlwUmVjdC55KCkgKyBtX2NsaXBSZWN0Lmhl
aWdodCgpOwogICAgIH0gZWxzZSB7CisjaWZkZWYgUV9XU19YMTEKICAgICAgICAgbV9ucFdpbmRv
dy54ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy55ID0gMDsKIApAQCAtNTA1LDYgKzU0NCwxMCBA
QCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogICAgICAgICBtX25wV2lu
ZG93LmNsaXBSZWN0LnRvcCA9IDA7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQg
PSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IDA7CisjZWxpZiBkZWZp
bmVkKFhQX0RGQikKKyAgICAgICAgaWYgKG1fcGx1Z2luVmlld1F0REZCKQorICAgICAgICAgICAg
bV9wbHVnaW5WaWV3UXRERkItPnNldE5QV2luZG93SWZOZWVkZWQoKTsKKyNlbmRpZgogICAgIH0K
IAogICAgIGlmIChtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEb250Q2Fs
bFNldFdpbmRvd01vcmVUaGFuT25jZSkpIHsKQEAgLTU3MiwxMCArNjE1LDEyIEBAIGJvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9p
ZCogdmFsdWUsIE5QRXJyCiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKKyNpZmRlZiBRX1dTX1gxMQogICAgIGNhc2UgTlBOVlN1cHBvcnRz
WEVtYmVkQm9vbDoKICAgICAgICAgKnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9IHRydWU7
CiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRydWU7
CisjZW5kaWYKIAogICAgIGNhc2UgTlBOVmphdmFzY3JpcHRFbmFibGVkQm9vbDoKICAgICAgICAg
KnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9IHRydWU7CkBAIC01OTQsNiArNjM5LDcgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlh
YmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KQog
eworI2lmZGVmIFFfV1NfWDExCiAgICAgc3dpdGNoICh2YXJpYWJsZSkgewogICAgIGNhc2UgTlBO
VnhEaXNwbGF5OgogICAgICAgICAqKHZvaWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlzcGxheSgp
OwpAQCAtNjIzLDYgKzY2OSw5IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShO
UE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyNlbGlmIGRlZmluZWQoWFBfREZCKQor
ICAgIHJldHVybiBtX3BsdWdpblZpZXdRdERGQiAmJiBtX3BsdWdpblZpZXdRdERGQi0+cGxhdGZv
cm1HZXRWYWx1ZSh2YXJpYWJsZSwgdmFsdWUsIHJlc3VsdCk7CisjZW5kaWYKIH0KIAogdm9pZCBQ
bHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtNjU2LDYg
KzcwNSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIGludmFsaWRhdGUo
KTsKIH0KIAorI2lmZGVmIFFfV1NfWDExCiBzdGF0aWMgRGlzcGxheSAqZ2V0UGx1Z2luRGlzcGxh
eSgpCiB7CiAgICAgLy8gVGhlIHBsdWdpbiB0b29sa2l0IG1pZ2h0IHJ1biB1c2luZyBhIGRpZmZl
cmVudCBYIGNvbm5lY3Rpb24uIEF0IHRoZSBtb21lbnQsIHdlIG9ubHkKQEAgLTcyMSwxMiArNzcx
LDE0IEBAIHN0YXRpYyB2b2lkIGdldFZpc3VhbEFuZENvbG9ybWFwKGludCBkZXB0aCwgVmlzdWFs
ICoqdmlzdWFsLCBDb2xvcm1hcCAqY29sb3JtYXApCiAgICAgaWYgKCp2aXN1YWwpCiAgICAgICAg
ICpjb2xvcm1hcCA9IFhDcmVhdGVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBRWDExSW5m
bzo6YXBwUm9vdFdpbmRvdygpLCAqdmlzdWFsLCBBbGxvY05vbmUpOwogfQorI2VuZGlmCiAKIGJv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7CiAgICAgQVNTRVJUKG1faXNTdGFydGVk
KTsKICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5
KTsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5n
ZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldyh0aGlz
KTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpT
aWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtNzUxLDkgKzgwMywyOSBAQCBib29sIFBsdWdpblZp
ZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgwKTsKICAgICAg
ICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlzcGxheSgpOwogICAgIH0KKyNlbGlmIGRl
ZmluZWQoWFBfREZCKQorICAgIGlmIChtX2lzV2luZG93ZWQpIHsKKyAgICAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2lu
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbV9wbHVnaW5WaWV3UXRERkIg
PSBQbHVnaW5WaWV3UXRERkI6OmNyZWF0ZSh0aGlzKTsKKworICAgIGlmICghbV9wbHVnaW5WaWV3
UXRERkIpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0dXMgPSBQ
bHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fc3RhdHVzID0gUGx1Z2luU3Rh
dHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIAogICAgIHNo
b3coKTsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCog
d3NpID0gbmV3IE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QoKTsKICAgICB3c2ktPnR5cGUgPSAw
OwogCkBAIC03OTUsNiArODY3LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkK
ICAgICB9CiAKICAgICBtX25wV2luZG93LndzX2luZm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlm
ICghKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRX
aW5kb3dDYWxsKSkpIHsKICAgICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7CkBAIC04MDksMTEg
Kzg4MiwxOCBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgaWYgKHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgIGRlbGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdl
dCgpOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgWEZy
ZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiAKICAgICBpZiAobV9j
b2xvcm1hcCkKICAgICAgICAgWEZyZWVDb2xvcm1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2Nv
bG9ybWFwKTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmIChtX3BsdWdpblZpZXdRdERG
QikgeworICAgICAgICBkZWxldGUgbV9wbHVnaW5WaWV3UXRERkI7CisgICAgICAgIG1fcGx1Z2lu
Vmlld1F0REZCID0gMDsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0
KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63639</attachid>
            <date>2010-08-05 14:43:37 -0700</date>
            <delta_ts>2010-11-05 13:25:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20100805143852.patch</filename>
            <type>text/plain</type>
            <size>48534</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTFiNmM2ZTc2NGIyMmIzYjcxMDg2MTdmNGE5NGYzNjQxNzI2YmY0ZS4uY2IzMGFiMGM1N2Y3MTM4
ZmRlOGZhYWRiNDZiMmMwMWZkN2EwMjY4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMC0wOC0wNSAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUVRdIFF0V2ViS2l0IGRvZXNuJ3Qgc3VwcG9ydCBO
UEFQSSBmb3IgRGlyZWN0RkIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2MTcxCisKKyAgICAgICAgVGhpcyBjb250cmlidXRpb24gZW5hYmxlcyB3aW5k
b3dsZXNzIE5QQVBJIHN1cHBvcnQgZm9yIFF0L1dlYktpdCB3aGVuCisgICAgICAgIHVzaW5nIERp
cmVjdEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgK
KyAgICAgICAgRmxhc2hsaXRlLgorCisgICAgICAgIFRoZSBjb2RlIGlzIGxhcmdlbHkgYmFzZWQg
b24gdGhlIFF0L1gxMSBpbXBsZW1lbnRhdGlvbiBvZiB3aW5kb3dsZXNzCisgICAgICAgIE5QQVBJ
LiBJdCBhZGRzIHRoZSBkZWZpbmUgWFBfREZCIHdoZW4gZW5hYmxlZCB0byBkaWZmZXJlbnRpYXRl
IGJldHdlZW4KKyAgICAgICAgWDExIGFuZCBEaXJlY3RGQiB3aGVuIFhQX1VOSVggaXMgZGVmaW5l
ZC4gVGhpcyBtZWFucyB0aGF0IG5wYXBpLmggd2lsbAorICAgICAgICBmdW5jdGlvbiB0aGUgc2Ft
ZSB3YXkgZm9yIFgxMSBidWlsZHMuCisKKyAgICAgICAgU2luY2UgdGhlIG5vcm1hbCB1c2UgY2Fz
ZSBmb3IgTlBBUEkgb24gRGlyZWN0RkIgaXMgZm9yIHZpZGVvIG9uIHNpdGVzCisgICAgICAgIGxp
a2UgeW91dHViZSBpdCdzIGltcG9ydGFudCB0byBtYWtlIHN1cmUgdGhlIHBsdWdpbiBnZXRzIGFu
IHVwZGF0ZWQKKyAgICAgICAgZ2xvYmFsIGdlb21ldHJ5IGlmIHRoZSB3aW5kb3cgbW92ZXMgb3Ig
cmVzaXplcy4gVGhpcyBpcyBkdWUgdG8gdGhlCisgICAgICAgIGZhY3QgdGhhdCB0aGUgdmlkZW8g
d2lsbCBiZSByZW5kZXJlZCBpbnRvIGEgZGlmZmVyZW50IGxheWVyIHJhdGhlcgorICAgICAgICB0
aGFuIGFjdHVhbGx5IGludG8gdGhlIG9mZnNjcmVlbiBzdXJmYWNlIHRoYXQncyBiZWluZyByZW5k
ZXJlZCB0by4KKworICAgICAgICBJIGhhdmUgYSBtYW51YWwgdGVzdCBjYXNlIHRoYXQgSSBjb3Vs
ZCBoZWxwIHBlb3BsZSBzZXQgdXAgZm9yIHRlc3RpbmcKKyAgICAgICAgd2l0aCBRdC9RV1MgRGly
ZWN0RkIgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gbWFrZSBpdCBhdXRvbWF0ZWQuCisKKyAgICAg
ICAgVG8gZW5hYmxlIE5QQVBJIGZvciBEaXJlY3RGQiB0aGUgZGV2ZWxvcGVyIG5lZWRzIHRvIG1h
a2Ugc3VyZQorICAgICAgICBxbWFrZS5jb25mIGNvbnRhaW5zIHRoaXMgbGluZToKKworICAgICAg
ICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVDVEZCCisKKyAgICAg
ICAgUXQgbXVzdCBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLXF0LWdmeC1kaXJlY3RmYiBv
cHRpb24gKGFzCisgICAgICAgIG9wcG9zZWQgdG8gLXBsdWdpbi1nZngtZGlyZWN0ZmIpCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBicmlkZ2UvbnBhcGkuaDoKKyAgICAgICAg
KiBicmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5WaWV3Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1
c0luRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisKIDIwMTAtMDgtMDQgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCmluZGV4IGI1ODE3OTQyYjU3ZTAyYTgwMGIzMjQ0NDU5OGVjNTlhOTRlZWI1Y2IuLjky
ZGRkZDkwMWY4ODVlNjYyMTA3OTNkOTJmOTdmYWQ4Y2QxMzNmZjkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTcsNiArOTcsMTAg
QEAgZ3JlYXRlclRoYW4oUVRfTUlOT1JfVkVSU0lPTiwgNSkgewogfQogCiAjIE5lc2NhcGUgcGx1
Z2lucyBzdXBwb3J0IChOUEFQSSkKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJX0RJUkVDVEZCKSB7CisgICAgQ09ORklHICs9IGRpcmVjdGZiCisgICAgREVGSU5F
UyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xCit9CiAhY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRk
ZWQ6IXdpbmNlKjogewogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJPTEKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDVjYzljOWRkMDA1NDMwMDkwM2I0MzcwNDE1Nzk3YjM0ZThlODU0NjcuLjMzMjUw
ZDQ0ZTY3M2QzYTliOThkYTMwZDkzMzM5MjBkYTY1OWQwMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjMyMCwxNiArMjMyMCwy
MSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiAg
ICAgICAgICAgICAgICAgSU5DTFVERVBBVEggKz0gcGxhdGZvcm0vbWFjCiAgICAgICAgICAgICAg
ICAgIyBOb3RlOiBYUF9NQUNPU1ggaXMgZGVmaW5lZCBpbiBucGFwaS5oCiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICFlbWJlZGRlZCB7CisgICAgICAgICAgICAgICAgZGly
ZWN0ZmIgeworICAgICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX0RGQgorICAgICAgICAg
ICAgICAgICAgICBRTUFLRV9DWFhGTEFHUyArPSAkJFFUX0NGTEFHU19ESVJFQ1RGQgorICAgICAg
ICAgICAgICAgICAgICBMSUJTICs9ICQkUVRfTElCU19ESVJFQ1RGQgorICAgICAgICAgICAgICAg
ICAgICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld0RGQlF0LmNwcAorICAgICAgICAg
ICAgICAgICAgICBIRUFERVJTICs9IHBsdWdpbnMvcXQvUGx1Z2luVmlld0RGQlF0LmgKKyAgICAg
ICAgICAgICAgICB9IGVsc2U6IWVtYmVkZGVkIHsKICAgICAgICAgICAgICAgICAgICAgQ09ORklH
ICs9IHgxMQogICAgICAgICAgICAgICAgICAgICBMSUJTICs9IC1sWHJlbmRlcgorICAgICAgICAg
ICAgICAgICAgICBTT1VSQ0VTICs9IHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCisg
ICAgICAgICAgICAgICAgICAgIEhFQURFUlMgKz0gcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJR
dC5oCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gXAotICAg
ICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcCBcCiAgICAg
ICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcCBcCiAgICAgICAg
ICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAotICAgICAgICAgICAgICAg
IEhFQURFUlMgKz0gXAotICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdpbkNvbnRh
aW5lclF0LmgKICAgICAgICAgICAgICAgICBERUZJTkVTICs9IFhQX1VOSVgKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaCBiL1dlYkNv
cmUvYnJpZGdlL25wYXBpLmgKaW5kZXggNWZjOGU0NjE5OThlOGRkNTBlYzM4MDc5MmIzN2I1OTdm
N2QxMmY3Yi4uZjgzMTQ4ZmMwY2JiMTNlMGZjNGJmZTllN2FlNDQ2ZGM4MTg0MmI5MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ucGFwaS5o
CkBAIC04OSw3ICs4OSw3IEBACiAjZW5kaWYKICNlbmRpZgogCi0jaWYgZGVmaW5lZChYUF9VTklY
KQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogI2luY2x1ZGUgPFgx
MS9YbGliLmg+CiAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAg
LTI0Myw3ICsyNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfTlBTaXplCiAvKiBFeGFjdCBtZWFuaW5n
IG11c3QgYmUgc3BlYydkIGluIGV2ZW50IG1vZGVsLiAqLwogI2RlZmluZSBrTlBFdmVudFN0YXJ0
SU1FIDIKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFk
ZWZpbmVkKFhQX0RGQikKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVjdHVyZXMgYW5kIGRlZmlu
aXRpb25zCiAgKi8KQEAgLTUyMyw2ICs1MjMsOSBAQCB0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAog
ICB1aW50cHRyX3Qgd1BhcmFtOwogICB1aW50cHRyX3QgbFBhcmFtOwogfSBOUEV2ZW50OworI2Vs
aWYgZGVmaW5lZChYUF9ERkIpCisjaW5jbHVkZSA8ZGlyZWN0ZmIuaD4KK3R5cGVkZWYgREZCRXZl
bnQgTlBFdmVudDsKICNlbGlmIGRlZmluZWQoWFBfT1MyKQogdHlwZWRlZiBzdHJ1Y3QgX05QRXZl
bnQKIHsKQEAgLTU0NCw3ICs1NDcsNyBAQCB0eXBlZGVmIFJnbkhhbmRsZSBOUFFEUmVnaW9uOwog
dHlwZWRlZiBDR1BhdGhSZWYgTlBDR1JlZ2lvbjsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlw
ZWRlZiBIUkdOIE5QUmVnaW9uOwotI2VsaWYgZGVmaW5lZChYUF9VTklYKQorI2VsaWYgZGVmaW5l
ZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiB0eXBlZGVmIFJlZ2lvbiBOUFJlZ2lvbjsK
ICNlbGlmIGRlZmluZWQoWFBfU1lNQklBTikKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaCBiL1dlYkNvcmUv
YnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDczNmE3ZjE1NmI3OWNjNmU1OWRkODU2
OTc4OTA3YTg1ZjgwZDZhMTkuLjAzYmUwMjM5MzRlYzkwOGRkZjE0NTZhNmUxNDNjMWJmYmI2NzRk
YjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCisrKyBi
L1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSAibnBmdW5jdGlvbnMuaCIKICNpbmNsdWRlICJucHJ1bnRpbWUuaCIKIAotI2lmZGVm
IFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAj
aW5jbHVkZSA8WDExL1hyZXNvdXJjZS5oPgogCiAgICAgI3VuZGVmIE5vbmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAppbmRleCA1MGVjYTdlZWU2ODM4ODY3YmNjMDQ4NmZmYzRjOTA3Y2I1NjE1NDVjLi5j
NzNjMTdmOTE4YWZiMjJlMmI5YzQ4NTVlN2I5NzcxNDUzMDdkM2Q3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzdG9wKCkKICAgICAg
ICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7CiAgICAgfQogCi0jaWZkZWYg
WFBfVU5JWAorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZCKQogICAgIGlm
IChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQogICAgICAgICAgICBkZWxldGUg
KE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93LndzX2luZm87CiAgICAgbV9u
cFdpbmRvdy53c19pbmZvID0gMDsKQEAgLTgyMyw3ICs4MjMsNyBAQCBQbHVnaW5WaWV3OjpQbHVn
aW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFj
a2FnZSogcAogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlh
bGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzV2FpdGluZ1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVmaW5l
ZChYUF9VTklYKQorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQgKFhQX0RGQikKICAg
ICAsIG1fbmVlZHNYRW1iZWQoZmFsc2UpCiAjZW5kaWYKICNpZiBPUyhXSU5ET1dTKSAmJiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTg0NCwxMCArODQ0LDE0IEBAIFBsdWdpblZpZXc6
OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVn
aW5QYWNrYWdlKiBwCiAjZW5kaWYKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkK
KyNpZiAhZGVmaW5lZCBYUF9ERkIKICAgICAsIG1fZHJhd2FibGUoMCkKICAgICAsIG1fdmlzdWFs
KDApCiAgICAgLCBtX2NvbG9ybWFwKDApCiAgICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKKyNlbGlm
IGRlZmluZWQoWFBfREZCKSAmJiBQTEFURk9STShRVCkKKyAgICAsIG1fcGx1Z2luVmlld0RGQlF0
KDApCisjZW5kaWYKICNlbmRpZgogICAgICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVhbGx5KQog
ICAgICwgbV9tYW51YWxTdHJlYW0oMCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDQzMWNlMGU3MDI2
Y2NmNzhiY2UyMGFhZDc3YmZlMmRiZTQ3ODQ4MjUuLjM3ZmE2OGI1N2Y0ZjFiMDQ3ODdkOGE3MzRh
OTY2Mzk0YjAxNTEzYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtNzgsNiArNzgsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUGx1Z2luU3RyZWFtOwogICAgIGNsYXNzIFJlc291
cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKyNpZiBkZWZpbmVkKFhQX0RG
QikgJiYgUExBVEZPUk0oUVQpCisgICAgY2xhc3MgUGx1Z2luVmlld0RGQlF0OworI2VuZGlmCiAK
ICAgICBlbnVtIFBsdWdpblN0YXR1cyB7CiAgICAgICAgIFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQ
bHVnaW4sCkBAIC0zMTYsNyArMzE5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBi
b29sIG1faGF2ZUluaXRpYWxpemVkOwogICAgICAgICBib29sIG1faXNXYWl0aW5nVG9TdGFydDsK
IAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVk
KFhQX0RGQikKICAgICAgICAgYm9vbCBtX25lZWRzWEVtYmVkOwogI2VuZGlmCiAKQEAgLTM2Niw2
ICszNjksMTAgQEAgcHJpdmF0ZToKIAogI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIGJvb2wgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFu
Z2U7CisjaWYgZGVmaW5lZChYUF9ERkIpICYmIFBMQVRGT1JNKFFUKQorICAgICAgICBmcmllbmQg
Y2xhc3MgUGx1Z2luVmlld0RGQlF0OworICAgICAgICBQbHVnaW5WaWV3REZCUXQgKm1fcGx1Z2lu
Vmlld0RGQlF0OworI2Vsc2UKICAgICAgICAgUGl4bWFwIG1fZHJhd2FibGU7CiAgICAgICAgIFZp
c3VhbCogbV92aXN1YWw7CiAgICAgICAgIENvbG9ybWFwIG1fY29sb3JtYXA7CkBAIC0zNzMsNiAr
MzgwLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICB2b2lkIGluaXRYRXZlbnQoWEV2ZW50KiBldmVu
dCk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhl
IGNsaXAgcmVjdCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KICAgICAgICAgSW50UmVj
dCBtX3dpbmRvd1JlY3Q7IC8vIE91ciB3aW5kb3cgcmVjdC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9xdC9QbHVnaW5WaWV3REZCUXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdERkJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY4ZWZkNTA1MDY3Yzk1NzYxY2JlNTI0ODg0NWQ0
MmRkNjFhZTVjYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5W
aWV3REZCUXQuY3BwCkBAIC0wLDAgKzEsODQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFuZGVycyBCYWtrZW4gPGFnYmFra2VuQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luVmlld0RGQlF0LmgiCisKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgor
I2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIK
KyNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgor
I2luY2x1ZGUgPFFHcmFwaGljc1ZpZXc+CisjaW5jbHVkZSA8UUdyYXBoaWNzV2ViVmlldz4KKyNp
bmNsdWRlIDxRS2V5RXZlbnQ+CisjaW5jbHVkZSA8UU1vdXNlRXZlbnQ+CisjaW5jbHVkZSA8UVZh
cmlhbnQ+CisjaW5jbHVkZSA8UVdpZGdldD4KKworUVRfQkVHSU5fTkFNRVNQQUNFCitleHRlcm4g
UV9HVUlfRVhQT1JUIElEaXJlY3RGQlN1cmZhY2UqIHF0X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3Bp
eG1hcChjb25zdCBRUGl4bWFwJiBwaXhtYXApOworUVRfRU5EX05BTUVTUEFDRQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3ZvaWQgUGx1Z2luVmlld0RGQlF0OjpjbGVhcldpbmRvd0luZm8oUGx1
Z2luVmlld0RGQlF0OjpERkJXaW5kb3dJbmZvKiB3aW5kb3dJbmZvKQoreworICAgIGlmICh3aW5k
b3dJbmZvLT53aW5kb3cpCisgICAgICAgIHdpbmRvd0luZm8tPndpbmRvdy0+UmVsZWFzZSh3aW5k
b3dJbmZvLT53aW5kb3cpOworICAgIGlmICh3aW5kb3dJbmZvLT5sYXllcikKKyAgICAgICAgd2lu
ZG93SW5mby0+bGF5ZXItPlJlbGVhc2Uod2luZG93SW5mby0+bGF5ZXIpOworICAgIGlmICh3aW5k
b3dJbmZvLT5kZmIpCisgICAgICAgIHdpbmRvd0luZm8tPmRmYi0+UmVsZWFzZSh3aW5kb3dJbmZv
LT5kZmIpOworfQorCitQbHVnaW5WaWV3REZCUXQ6OlBsdWdpblZpZXdERkJRdChQbHVnaW5WaWV3
KiBwbHVnaW5WaWV3LCBjb25zdCBERkJXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKQorICAgIDogbV9w
bHVnaW5WaWV3KHBsdWdpblZpZXcpCisgICAgLCBtX2RmYlN1cmZhY2UoMCkKKyAgICAsIG1faW5z
dGFsbGVkRXZlbnRGaWx0ZXIoZmFsc2UpCisgICAgLCBtX2RmYldpbmRvd0luZm8od2luZG93SW5m
bykKK3sKK30KKworUGx1Z2luVmlld0RGQlF0Ojp+UGx1Z2luVmlld0RGQlF0KCkKK3sKKyAgICBj
bGVhcldpbmRvd0luZm8oJm1fZGZiV2luZG93SW5mbyk7Cit9CisKK1BsdWdpblZpZXdERkJRdCog
UGx1Z2luVmlld0RGQlF0OjpjcmVhdGUoUGx1Z2luVmlldyogcGx1Z2luVmlldykKK3sKKyAgICBB
U1NFUlQocGx1Z2luVmlldyk7CisgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IHBsdWdpblZp
ZXctPm1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKTsKKyAgICBpZiAoIWNsaWVudCB8fCAhY2xpZW50LT5vd25lcldpZGdldCgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIERGQldpbmRvd0luZm8gd2luZG93SW5mbyA9IHsgMCwgMCwgMCB9
OworICAgIERGQlJlc3VsdCByZXN1bHQgPSBEaXJlY3RGQkNyZWF0ZSgmd2luZG93SW5mby5kZmIp
OworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIERpcmVjdEZCRXJyb3IoIlBs
dWdpblZpZXdERkJRdDo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorCisgICAgcmVzdWx0ID0gd2luZG93SW5mby5kZmItPkdldERpc3BsYXlMYXllcih3aW5kb3dJ
bmZvLmRmYiwgRExJRF9QUklNQVJZLCAmd2luZG93SW5mby5sYXllcik7CisgICAgaWYgKHJlc3Vs
dCAhPSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2luVmlld0RGQlF0Ojpj
cmVhdGUiLCByZXN1bHQpOworICAgICAgICBjbGVhcldpbmRvd0luZm8oJndpbmRvd0luZm8pOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXN1bHQgPSB3aW5kb3dJbmZvLmxheWVy
LT5HZXRXaW5kb3cod2luZG93SW5mby5sYXllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9wZXJ0eSgiX3FfRGlyZWN0
RkJXaW5kb3dJRCIpLnRvSW50KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZ3aW5kb3dJbmZvLndpbmRvdyk7CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsK
KyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2luVmlld0RGQlF0OjpjcmVhdGUiLCByZXN1bHQp
OworICAgICAgICBjbGVhcldpbmRvd0luZm8oJndpbmRvd0luZm8pOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IFBsdWdpblZpZXdERkJRdChwbHVnaW5WaWV3LCB3
aW5kb3dJbmZvKTsKK30KKwordm9pZCBQbHVnaW5WaWV3REZCUXQ6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBERkJFdmVudCBkZmJF
dmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZCRXZlbnQpKTsKKworICAg
IERGQlVzZXJFdmVudCYgdXNlckV2ZW50ID0gZGZiRXZlbnQudXNlcjsKKyAgICB1c2VyRXZlbnQu
Y2xhenogPSBERkVDX1VTRVI7CisgICAgdXNlckV2ZW50LnR5cGUgPSAweGRmYjsKKyAgICB1c2Vy
RXZlbnQuZGF0YSA9ICZtX3BsdWdpblZpZXctPm1fbnBXaW5kb3c7CisgICAgbV9wbHVnaW5WaWV3
LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworCisgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBj
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBJbnRSZWN0IGV4cG9zZWRSZWN0KHJlY3Qp
OworICAgIGNvbnN0IEludFJlY3QgZnJhbWVSZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFtZVJlY3Qo
KTsKKyAgICBleHBvc2VkUmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KTsKKyAgICBleHBvc2VkUmVj
dC5tb3ZlKC1mcmFtZVJlY3QueCgpLCAtZnJhbWVSZWN0LnkoKSk7CisgICAgY29uc3QgUVBhaW50
ZXI6OkNvbXBvc2l0aW9uTW9kZSBvbGRNb2RlID0gcGFpbnRlci0+Y29tcG9zaXRpb25Nb2RlKCk7
CisgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1v
ZGVfU291cmNlKTsKKyAgICBwYWludGVyLT5kcmF3UGl4bWFwKFFQb2ludChmcmFtZVJlY3QueCgp
ICsgZXhwb3NlZFJlY3QueCgpLCBmcmFtZVJlY3QueSgpICsgZXhwb3NlZFJlY3QueSgpKSwgbV9w
aXhtYXAsIGV4cG9zZWRSZWN0KTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUob2xk
TW9kZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB0cmFuc2xhdGVLZXkoY29uc3QgUUtleUV2
ZW50KiBxdEV2ZW50LCBERkJJbnB1dEV2ZW50JiBpbnB1dCk7CisKK2Jvb2wgUGx1Z2luVmlld0RG
QlF0OjpkaXNwYXRjaEV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNv
bnN0IFFLZXlFdmVudCogcXRFdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpLT5xdEV2ZW50KCk7CisK
KyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2Yo
REZCRXZlbnQpKTsKKworICAgIERGQklucHV0RXZlbnQmIGlucHV0ID0gZGZiRXZlbnQuaW5wdXQ7
CisgICAgaW5wdXQuY2xhenogPSBERkVDX0lOUFVUOworICAgIGlucHV0LnR5cGUgPSAocXRFdmVu
dC0+dHlwZSgpID09IFFFdmVudDo6S2V5UHJlc3MgPyBESUVUX0tFWVBSRVNTIDogRElFVF9LRVlS
RUxFQVNFKTsKKworICAgIHVuc2lnbmVkIGludCBmbGFncyA9IChESUVGX0tFWVNZTUJPTCB8IERJ
RUZfTU9ESUZJRVJTKTsKKworICAgIGlmIChxdEV2ZW50LT5pc0F1dG9SZXBlYXQoKSkKKyAgICAg
ICAgZmxhZ3MgfD0gRElFRl9SRVBFQVQ7CisKKyAgICBjb25zdCBRdDo6S2V5Ym9hcmRNb2RpZmll
ciBtb2RpZmllcnNbXSA9IHsgUXQ6OlNoaWZ0TW9kaWZpZXIsIFF0OjpDb250cm9sTW9kaWZpZXIs
IFF0OjpBbHRNb2RpZmllciwgUXQ6Ok1ldGFNb2RpZmllciB9OworICAgIGNvbnN0IERGQklucHV0
RGV2aWNlTW9kaWZpZXJNYXNrIGRmYk1vZGlmaWVyc1tdID0geyBESU1NX1NISUZULCBESU1NX0NP
TlRST0wsIERJTU1fQUxULCBESU1NX01FVEEgfTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7
ICsraSkgeworICAgICAgICBpZiAocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBtb2RpZmllcnNbaV0p
CisgICAgICAgICAgICBpbnB1dC5tb2RpZmllcnMgPSBERkJJbnB1dERldmljZU1vZGlmaWVyTWFz
ayhpbnB1dC5tb2RpZmllcnMgfCBkZmJNb2RpZmllcnNbaV0pOworICAgIH0KKworICAgIHRyYW5z
bGF0ZUtleShxdEV2ZW50LCBpbnB1dCk7CisKKyAgICBpZiAoKHF0RXZlbnQtPm1vZGlmaWVycygp
ICYgUXQ6OlNoaWZ0TW9kaWZpZXIpICYmIHF0RXZlbnQtPmtleSgpID49IFF0OjpLZXlfQSAmJiBx
dEV2ZW50LT5rZXkoKSA8PSBRdDo6S2V5X1opCisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
RkJJbnB1dERldmljZUtleVN5bWJvbCgoaW5wdXQua2V5X3N5bWJvbCAtIERJS1NfU01BTExfQSkg
KyBESUtTX0NBUElUQUxfQSk7CisKKyAgICBpZiAoaW5wdXQua2V5X2lkICE9IERJS0lfVU5LTk9X
TikgeworICAgICAgICBmbGFncyB8PSBESUVGX0tFWUlEOworICAgICAgICBpZiAoaW5wdXQua2V5
X2lkID49IERJS0lfMCAmJiBpbnB1dC5rZXlfaWQgPD0gRElLSV85ICYmIHF0RXZlbnQtPm1vZGlm
aWVycygpICYgUXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgaW5wdXQua2V5X2lkID0g
REZCSW5wdXREZXZpY2VLZXlJZGVudGlmaWVyKGlucHV0LmtleV9pZCAtIERJS0lfMCArIERJS0lf
S1BfMCk7CisgICAgfQorCisgICAgaW5wdXQuZmxhZ3MgPSBERkJJbnB1dEV2ZW50RmxhZ3MoZmxh
Z3MpOworICAgIHJldHVybiBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBFdmVudChkZmJFdmVudCk7
Cit9CisKK2Jvb2wgUGx1Z2luVmlld0RGQlF0OjpkaXNwYXRjaEV2ZW50KGNvbnN0IE1vdXNlRXZl
bnQqIGV2ZW50KQoreworICAgIERGQkV2ZW50IGRmYkV2ZW50OworICAgIG1lbXNldCgmZGZiRXZl
bnQsIDAsIHNpemVvZihERkJFdmVudCkpOworICAgIERGQldpbmRvd0V2ZW50JiB3aW5kb3cgPSBk
ZmJFdmVudC53aW5kb3c7CisgICAgbV9kZmJXaW5kb3dJbmZvLndpbmRvdy0+R2V0SUQobV9kZmJX
aW5kb3dJbmZvLndpbmRvdywgJndpbmRvdy53aW5kb3dfaWQpOworICAgIHdpbmRvdy5jbGF6eiA9
IERGRUNfV0lORE9XOworICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50
KG1fcGx1Z2luVmlldy0+bV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoZXZl
bnQtPmFic29sdXRlTG9jYXRpb24oKSkpOworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5t
b3VzZW91dEV2ZW50KSB7CisgICAgICAgIC8vIGVudGVyL2xlYXZlCisgICAgICAgIHdpbmRvdy50
eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50ID8gRFdF
VF9FTlRFUiA6IERXRVRfTEVBVkUpOworICAgICAgICB3aW5kb3cueCA9IGRmYkV2ZW50LndpbmRv
dy5jeCA9IHBvc3Rab29tUG9zLngoKTsKKyAgICAgICAgd2luZG93LnkgPSBkZmJFdmVudC53aW5k
b3cuY3kgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gbW91c2UK
KyAgICAgICAgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDA7CisgICAgICAgIGlmIChldmVudC0+
Y3RybEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1fQ09OVFJPTDsKKyAgICAg
ICAgaWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJzIHw9IERJTU1f
U0hJRlQ7CisgICAgICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgICAgICBtb2RpZmll
cnMgfD0gRElNTV9BTFQ7CisgICAgICAgIGlmIChldmVudC0+bWV0YUtleSgpKQorICAgICAgICAg
ICAgbW9kaWZpZXJzIHw9IERJTU1fTUVUQTsKKyAgICAgICAgd2luZG93Lm1vZGlmaWVycyA9IERG
QklucHV0RGV2aWNlTW9kaWZpZXJNYXNrKG1vZGlmaWVycyk7CisKKyAgICAgICAgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCkgeworICAgICAgICAgICAgd2luZG93LnR5cGUg
PSAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgPyBEV0VUX0JV
VFRPTkRPV04gOiBEV0VUX0JVVFRPTlVQKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQtPmJ1
dHRvbigpKSB7CisgICAgICAgICAgICBjYXNlIExlZnRCdXR0b246CisgICAgICAgICAgICAgICAg
d2luZG93LmJ1dHRvbiA9IERJQklfTEVGVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgTWlkZGxlQnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5idXR0b24g
PSBESUJJX01JRERMRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
UmlnaHRCdXR0b246CisgICAgICAgICAgICAgICAgd2luZG93LmJ1dHRvbiA9IERJQklfUklHSFQ7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LmJ1dHRvbnMg
PSBERkJJbnB1dERldmljZUJ1dHRvbk1hc2soMCk7CisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgICAgIHdp
bmRvdy50eXBlID0gRFdFVF9NT1RJT047CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cueCA9IHBvc3Rab29t
UG9zLngoKTsKKyAgICB3aW5kb3cueSA9IHBvc3Rab29tUG9zLnkoKTsKKyAgICBjb25zdCBJbnRQ
b2ludCBhYnNvbHV0ZUxvY2F0aW9uID0gZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKTsKKyAgICB3
aW5kb3cuY3ggPSBhYnNvbHV0ZUxvY2F0aW9uLngoKTsKKyAgICB3aW5kb3cuY3kgPSBhYnNvbHV0
ZUxvY2F0aW9uLnkoKTsKKworICAgIHJldHVybiBtX3BsdWdpblZpZXctPmRpc3BhdGNoTlBFdmVu
dChkZmJFdmVudCk7Cit9CisKK2Jvb2wgUGx1Z2luVmlld0RGQlF0OjpkaXNwYXRjaEV2ZW50KEV2
ZW50VHlwZSB0eXBlKQoreworICAgIERGQkV2ZW50IGRmYkV2ZW50OworICAgIG1lbXNldCgmZGZi
RXZlbnQsIDAsIHNpemVvZihERkJFdmVudCkpOworCisgICAgREZCV2luZG93RXZlbnQmIHdpbmRv
dyA9IGRmYkV2ZW50LndpbmRvdzsKKyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJTkRPVzsKKwor
ICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgRm9jdXNJbjogCisgICAgICAgIHdpbmRvdy50
eXBlID0gRFdFVF9HT1RGT0NVUzsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNPdXQ6
IAorICAgICAgICB3aW5kb3cudHlwZSA9IERXRVRfTE9TVEZPQ1VTOyAKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDogCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCitib29sIFBs
dWdpblZpZXdERkJRdDo6ZXZlbnRGaWx0ZXIoUU9iamVjdCogLCBRRXZlbnQqIGV2KQoreworICAg
IGlmIChldi0+dHlwZSgpID09IFFFdmVudDo6TW92ZSB8fCBldi0+dHlwZSgpID09IFFFdmVudDo6
UmVzaXplKSB7CisgICAgICAgIG1fcGx1Z2luVmlldy0+bV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFu
Z2UgPSB0cnVlOworICAgICAgICBtX3RpbWVyLnN0YXJ0KDEwLCB0aGlzKTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBsdWdpblZpZXdERkJRdDo6dGltZXJFdmVudChRVGlt
ZXJFdmVudCogZSkKK3sKKyAgICBpZiAoZS0+dGltZXJJZCgpID09IG1fdGltZXIudGltZXJJZCgp
KSB7CisgICAgICAgIG1fdGltZXIuc3RvcCgpOworICAgICAgICBtX3BsdWdpblZpZXctPmZvcmNl
UmVkcmF3KCk7CisgICAgfQorfQorCit2b2lkIFBsdWdpblZpZXdERkJRdDo6c2V0TlBXaW5kb3dJ
Zk5lZWRlZCgpCit7CisgICAgUVBvaW50IHBsdWdpblZpZXdHbG9iYWxQb3MgPSBtX3BsdWdpblZp
ZXctPndpbmRvd0NsaXBSZWN0KCkudG9wTGVmdCgpOworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGll
bnQgPSBtX3BsdWdpblZpZXctPm1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICBpZiAoUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGll
bnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0KCkgOiAwKSB7CisgICAgICAgIGlmICghbV9pbnN0YWxs
ZWRFdmVudEZpbHRlcikgeworICAgICAgICAgICAgUVdpZGdldCogd2F0Y2hlZCA9IG93bmVyV2lk
Z2V0OworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICB3YXRjaGVk
LT5pbnN0YWxsRXZlbnRGaWx0ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgaWYgKHdhdGNoZWQt
PmlzV2luZG93KCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IHdhdGNoZWQgPSB3YXRjaGVkLT5wYXJlbnRXaWRnZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAo
IXdhdGNoZWQpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbV9pbnN0YWxsZWRFdmVudEZpbHRlciA9IHRydWU7CisgICAgICAgIH0KKworICAg
ICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zID0gb3duZXJXaWRnZXQtPm1hcFRvR2xvYmFsKHBsdWdp
blZpZXdHbG9iYWxQb3MpOworICAgICAgICBpZiAoY29uc3QgUUdyYXBoaWNzV2ViVmlldyogaXRl
bSA9IHFvYmplY3RfY2FzdDxjb25zdCBRR3JhcGhpY3NXZWJWaWV3Kj4oY2xpZW50LT5wbHVnaW5Q
YXJlbnQoKSkpIHsKKyAgICAgICAgICAgIFFfQVNTRVJUKGl0ZW0tPnNjZW5lKCkgJiYgIWl0ZW0t
PnNjZW5lKCktPnZpZXdzKCkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgIGNvbnN0IFFHcmFwaGlj
c1ZpZXcqIHZpZXcgPSBpdGVtLT5zY2VuZSgpLT52aWV3cygpLnZhbHVlKDApOworICAgICAgICAg
ICAgY29uc3QgUVBvaW50IGFkZCA9IHZpZXctPm1hcEZyb21TY2VuZShpdGVtLT5wb3MoKSk7Cisg
ICAgICAgICAgICBwbHVnaW5WaWV3R2xvYmFsUG9zICs9IGFkZDsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmICgoUVNpemUpKG1fcGx1Z2luVmlldy0+bV93aW5kb3dSZWN0LnNpemUoKSkgIT0g
bV9waXhtYXAuc2l6ZSgpKSB7CisgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3BsdWdpblZp
ZXctPm1fd2luZG93UmVjdC5zaXplKCkpOworICAgICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFu
c3BhcmVudCk7CisgICAgICAgIG1fZGZiU3VyZmFjZSA9IFFUX1BSRVBFTkRfTkFNRVNQQUNFKHF0
X2RpcmVjdGZiX3N1cmZhY2VfZm9yX3BpeG1hcChtX3BpeG1hcCkpOworICAgIH0KKworICAgIG1f
cGx1Z2luVmlldy0+bV9ucFdpbmRvdy53c19pbmZvID0gJm1fZGZiV2luZG93SW5mbzsKKyAgICBt
X3BsdWdpblZpZXctPm1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURyYXdhYmxlOworCisg
ICAgbV9wbHVnaW5WaWV3LT5tX25wV2luZG93LnggPSBwbHVnaW5WaWV3R2xvYmFsUG9zLngoKTsK
KyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cueSA9IHBsdWdpblZpZXdHbG9iYWxQb3MueSgp
OworICAgIGNvbnN0IEludFJlY3QgZnJhbWVSZWN0ID0gbV9wbHVnaW5WaWV3LT5mcmFtZVJlY3Qo
KTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cud2lkdGggPSBmcmFtZVJlY3Qud2lkdGgo
KTsKKyAgICBtX3BsdWdpblZpZXctPm1fbnBXaW5kb3cuaGVpZ2h0ID0gZnJhbWVSZWN0LmhlaWdo
dCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC50b3AgPSBtX3BsdWdp
blZpZXctPm1fY2xpcFJlY3QueSgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdpbmRvdy5jbGlw
UmVjdC5sZWZ0ID0gbV9wbHVnaW5WaWV3LT5tX2NsaXBSZWN0LngoKTsKKyAgICBtX3BsdWdpblZp
ZXctPm1fbnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3Qu
d2lkdGgoKSArIG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC54KCkgLSAxOworICAgIG1fcGx1Z2lu
Vmlldy0+bV9ucFdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSBtX3BsdWdpblZpZXctPm1fY2xpcFJl
Y3QuaGVpZ2h0KCkgKyBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QueSgpIC0gMTsKKyAgICBtX3Bs
dWdpblZpZXctPm1fbnBXaW5kb3cud2luZG93ID0gbV9kZmJTdXJmYWNlOworfQorCitib29sIFBs
dWdpblZpZXdERkJRdDo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9p
ZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7Cisg
ICAgY2FzZSBOUE5WeERpc3BsYXk6CisgICAgICAgICpyZWludGVycHJldF9jYXN0PHZvaWQqKj4o
dmFsdWUpID0gbV9kZmJXaW5kb3dJbmZvLmRmYjsKKyAgICAgICAgKnJlc3VsdCA9IE5QRVJSX05P
X0VSUk9SOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4
dDoKKyAgICAgICAgKnJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgY2FzZSBOUE5WbmV0c2NhcGVXaW5kb3c6CisgICAgICAgICpyZWludGVy
cHJldF9jYXN0PHZvaWQqKj4odmFsdWUpID0gbV9kZmJXaW5kb3dJbmZvLndpbmRvdzsKKyAgICAg
ICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxp
bmUgdm9pZCB0cmFuc2xhdGVLZXkoY29uc3QgUUtleUV2ZW50KiBxdEV2ZW50LCBERkJJbnB1dEV2
ZW50JiBpbnB1dCkKK3sKKyAgICBzd2l0Y2ggKHF0RXZlbnQtPmtleSgpKSB7CisgICAgY2FzZSBR
dDo6S2V5X0JhY2tzcGFjZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQkFDS1NQ
QUNFOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0JBQ0tTUEFDRTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1RhYjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJ
S1NfVEFCOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1RBQjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X1JldHVybjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJ
S1NfUkVUVVJOOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0tQX0VOVEVSOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRXNjYXBlOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19FU0NBUEU7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRVNDQVBFOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVsZXRlOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19ERUxFVEU7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfREVM
RVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGVmdDoKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX0xFRlQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfTEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1JpZ2h0OgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJTT1JfUklHSFQ7CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9V
cDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX1VQOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RG93bjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSU09SX0RPV047CisgICAg
ICAgIGlucHV0LmtleV9pZCA9IERJS0lfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0luc2VydDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfSU5TRVJUOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0lOU0VSVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0hvbWU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0hPTUU7
CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSE9NRTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0VuZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRU5EOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0VORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X1BhZ2VVcDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEFHRV9V
UDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9QQUdFX1VQOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUGFnZURvd246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX1BBR0VfRE9XTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9QQUdFX0RPV047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QcmludDoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfUFJJTlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Q
YXVzZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEFVU0U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9TZWxlY3Q6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1NFTEVDVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X09wZW5Vcmw6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0dPVE87CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9DbGVhcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
Q0xFQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NZW51OgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19NRU5VOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfSGVscDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfSEVMUDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0hvbWVQYWdlOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19JTlRFUk5FVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0xhdW5jaE1haWw6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX01BSUw7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9GYXZvcml0ZXM6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX0ZBVk9SSVRFUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0JhY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0JBQ0s7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Gb3J3YXJkOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19GT1JXQVJEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVm9s
dW1lVXA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1ZPTFVNRV9VUDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1ZvbHVtZURvd246CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1ZPTFVNRV9ET1dOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfVm9sdW1lTXV0ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTVVURTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUGxheToKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfUExBWTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X01lZGlhU3RvcDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1RPUDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUmVjb3JkOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19SRUNPUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9NZWRpYVByZXZpb3VzOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QUkVW
SU9VUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhTmV4dDoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTkVYVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0YxOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19GMTsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9GMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X0YyOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19GMjsKKyAgICAgICAgaW5w
dXQua2V5X2lkID0gRElLSV9GMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Yz
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19GMzsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9GMzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y0OgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19GNDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0g
RElLSV9GNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y1OgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19GNTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9G
NTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y2OgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19GNjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GNjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y3OgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19GNzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GNzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Y4OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19GODsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GODsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0Y5OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19G
OTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GOTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0YxMDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjEwOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YxMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0YxMToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjExOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YxMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0YxMjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRjEyOworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1NoaWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TSElGVDsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9TSElGVF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfQ29udHJvbDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ09OVFJP
TDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9DT05UUk9MX0w7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9BbHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X0FMVDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9BTFRfTDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0FsdEdyOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19BTFRHUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01ldGE6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX01FVEE7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJ
S0lfTUVUQV9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU3VwZXJfTDoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1VQRVI7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfU1VQRVJfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0h5cGVy
X0w6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0hZUEVSOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0hZUEVSX0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9DYXBzTG9jazoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ0FQU19MT0NLOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0NBUFNfTE9DSzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5X051bUxvY2s6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X05VTV9MT0NLOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX05VTV9MT0NLOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2Nyb2xsTG9jazoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfU0NST0xMX0xPQ0s7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
U0NST0xMX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Fib3Zl
ZG90OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FCT1ZFRE9UOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9BYm92ZXJpbmc6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQUJPVkVSSU5HOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRGVhZF9BY3V0ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJ
S1NfREVBRF9BQ1VURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQnJl
dmU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQlJFVkU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0Nhcm9uOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19ERUFEX0NBUk9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRGVhZF9DZWRpbGxhOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0NF
RElMTEE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0NpcmN1bWZsZXg6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0lSQ1VNRkxFWDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfRGlhZXJlc2lzOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0RJQUVSRVNJUzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0RlYWRfRG91YmxlYWN1dGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0RFQURfRE9VQkxFQUNVVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9EZWFkX0dyYXZlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0dSQVZF
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Jb3RhOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0lPVEE7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9EZWFkX01hY3JvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
REVBRF9NQUNST047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX09nb25l
azoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9PR09ORUs7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX1NlbWl2b2ljZWRfU291bmQ6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfU0VNSVZPSUNFRF9TT1VORDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVGlsZGU6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX0RFQURfVElMREU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9EZWFkX1ZvaWNlZF9Tb3VuZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVB
RF9WT0lDRURfU09VTkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TcGFjZToK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1BBQ0U7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfU1BBQ0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FeGNs
YW06CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0VYQ0xBTUFUSU9OX01BUks7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9RdW90ZURibDoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfUVVPVEFUSU9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTnVtYmVyU2lnbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTlVNQkVS
X1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Eb2xsYXI6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RPTExBUl9TSUdOOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfUGVyY2VudDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
UEVSQ0VOVF9TSUdOOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQW1wZXJzYW5k
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19BTVBFUlNBTkQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9BcG9zdHJvcGhlOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19BUE9TVFJPUEhFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
UGFyZW5MZWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QQVJFTlRIRVNJU19M
RUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFyZW5SaWdodDoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEFSRU5USEVTSVNfUklHSFQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc3RlcmlzazoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfQVNURVJJU0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QbHVz
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QTFVTX1NJR047CisgICAgICAgIGlm
IChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpLZXlwYWRNb2RpZmllcikKKyAgICAgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfS1BfUExVUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5X0NvbW1hOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DT01NQTsKKyAg
ICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9DT01NQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X01pbnVzOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19NSU5VU19T
SUdOOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX01JTlVTX1NJR047CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9QZXJpb2Q6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1BFUklPRDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9QRVJJT0Q7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9TbGFzaDoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfU0xBU0g7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfU0xBU0g7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV8wOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU18wOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzA7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV8xOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U18xOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzE7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV8yOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU18yOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV8zOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU18zOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJXzM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV80Ogor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU180OworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJXzQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV81OgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU181OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV82OgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU182OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzY7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV83OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU183OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzc7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV84OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU184Owor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJXzg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV85OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU185OworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJXzk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9D
b2xvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ09MT047CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9TZW1pY29sb246CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX1NFTUlDT0xPTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9TRU1JQ09M
T047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MZXNzOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19MRVNTX1RIQU5fU0lHTjsKKyAgICAgICAgaW5wdXQua2V5X2lk
ID0gRElLSV9MRVNTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9FcXVh
bDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRVFVQUxTX1NJR047CisgICAgICAg
IGlucHV0LmtleV9pZCA9IERJS0lfRVFVQUxTX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9HcmVhdGVyOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19HUkVB
VEVSX1RIQU5fU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1F1ZXN0aW9u
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19RVUVTVElPTl9NQVJLOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0FUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQToKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfQTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0g
RElLSV9BOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQjoKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfQjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV9COworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQzoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfU01BTExfQzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9D
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRDoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfU01BTExfRDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9EOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRToKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfU01BTExfRTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9FOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfU01BTExfRjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9GOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfU01BTExfRzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9HOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJ
S1NfU01BTExfSDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9IOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfSToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1Nf
U01BTExfSTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9JOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfSjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01B
TExfSjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9KOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfSzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExf
SzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9LOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfTDsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9MOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfTToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfTTsKKyAg
ICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9NOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfTjsKKyAgICAg
ICAgaW5wdXQua2V5X2lkID0gRElLSV9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfTzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfTzsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV9POworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
UDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfUDsKKyAgICAgICAgaW5w
dXQua2V5X2lkID0gRElLSV9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUToK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfUTsKKyAgICAgICAgaW5wdXQu
a2V5X2lkID0gRElLSV9ROworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUjoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfUjsKKyAgICAgICAgaW5wdXQua2V5
X2lkID0gRElLSV9SOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUzoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfUzsKKyAgICAgICAgaW5wdXQua2V5X2lk
ID0gRElLSV9TOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVDoKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfVDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0g
RElLSV9UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVToKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfU01BTExfVTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV9VOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVjoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfU01BTExfVjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9W
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVzoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfU01BTExfVzsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9XOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfWDoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfU01BTExfWDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9YOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfWToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfU01BTExfWTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9ZOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfWjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfU01BTExfWjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9aOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2tldExlZnQ6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9CYWNrc2xhc2g6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0JB
Q0tTTEFTSDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9CQUNLU0xBU0g7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFja2V0UmlnaHQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NRVUFSRV9CUkFDS0VUX1JJR0hUOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfQXNjaWlDaXJjdW06CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTX0NJUkNVTUZMRVhfQUNDRU5UOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
VW5kZXJzY29yZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVU5ERVJTQ09SRTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JyYWNlTGVmdDoKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfQ1VSTFlfQlJBQ0tFVF9MRUZUOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfQmFyOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19W
RVJUSUNBTF9CQVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFjZVJpZ2h0
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9CUkFDS0VUX1JJR0hUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQXNjaWlUaWxkZToKKyAgICAgICAgaW5w
dXQua2V5X3N5bWJvbCA9IERJS1NfVElMREU7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQv
UGx1Z2luVmlld0RGQlF0LmggYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld0RGQlF0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGUxMTAxM2U2NWY2ZjAzOTkwZTFhZDVlNmViMTUzYzc0OWE1ZDFhMQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3REZCUXQuaApAQCAt
MCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFuZGVycyBCYWtrZW4gPGFn
YmFra2VuQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsdWdpblZpZXdERkJRdF9oCisjZGVm
aW5lIFBsdWdpblZpZXdERkJRdF9oCisKKyNpbmNsdWRlICJucGFwaS5oIgorI2luY2x1ZGUgPFFC
YXNpY1RpbWVyPgorI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UVBpeG1hcD4KKyNpbmNs
dWRlIDxkaXJlY3RmYi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQbHVnaW5WaWV3
OworY2xhc3MgSW50UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIE1vdXNlRXZl
bnQ7CitjbGFzcyBLZXlib2FyZEV2ZW50OworCitjbGFzcyBQbHVnaW5WaWV3REZCUXQgOiBwdWJs
aWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBsdWdpblZpZXdERkJRdCogY3JlYXRl
KFBsdWdpblZpZXcqIHBsdWdpblZpZXcpOworICAgIH5QbHVnaW5WaWV3REZCUXQoKTsKKworICAg
IHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KTsKKyAgICB2b2lkIHNldE5QV2luZG93SWZOZWVkZWQoKTsKKyAgICBib29sIHBsYXRmb3JtR2V0
VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQp
OworCisgICAgZW51bSBFdmVudFR5cGUgeworICAgICAgICBGb2N1c0luLAorICAgICAgICBGb2N1
c091dAorICAgIH07CisgICAgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50VHlwZSB0eXBlKTsKKyAg
ICBib29sIGRpc3BhdGNoRXZlbnQoY29uc3QgTW91c2VFdmVudCogZXZlbnQpOworICAgIGJvb2wg
ZGlzcGF0Y2hFdmVudChjb25zdCBLZXlib2FyZEV2ZW50KiBldmVudCk7Citwcm90ZWN0ZWQ6Cisg
ICAgYm9vbCBldmVudEZpbHRlcihRT2JqZWN0KiwgUUV2ZW50KiBldik7CisgICAgdm9pZCB0aW1l
ckV2ZW50KFFUaW1lckV2ZW50KiBlKTsKK3ByaXZhdGU6CisgICAgUGx1Z2luVmlldyogbV9wbHVn
aW5WaWV3OworICAgIFFQaXhtYXAgbV9waXhtYXA7CisgICAgSURpcmVjdEZCU3VyZmFjZSAqbV9k
ZmJTdXJmYWNlOworICAgIFFCYXNpY1RpbWVyIG1fdGltZXI7CisgICAgYm9vbCBtX2luc3RhbGxl
ZEV2ZW50RmlsdGVyOworICAgIHN0cnVjdCBERkJXaW5kb3dJbmZvIHsKKyAgICAgICAgSURpcmVj
dEZCKiBkZmI7CisgICAgICAgIElEaXJlY3RGQkRpc3BsYXlMYXllciogbGF5ZXI7CisgICAgICAg
IElEaXJlY3RGQldpbmRvdyogd2luZG93OworICAgIH0gbV9kZmJXaW5kb3dJbmZvOworCisgICAg
UGx1Z2luVmlld0RGQlF0KFBsdWdpblZpZXcqIHBsdWdpblZpZXcsIGNvbnN0IERGQldpbmRvd0lu
Zm8mIHdpbmRvd0luZm8pOworICAgIHN0YXRpYyB2b2lkIGNsZWFyV2luZG93SW5mbyhERkJXaW5k
b3dJbmZvKiB3aW5kb3dJbmZvKTsKK307Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAppbmRleCAwY2EzNTZiNGU0MTYzZDliY2Y1
MThjMTc2MjY2NjNlZjRkYjgwYjQwLi5jODBkMGExY2MwYjJiZjdiZjRlMzViZmNkZDZjOTYyNWNk
ZDEwNmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAor
KysgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtMiw2ICsyLDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNo
QGZvcndhcmRiaWFzLmluPgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFuZGVycyBCYWtrZW4gPGFn
YmFra2VuQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEs
NyArNTIsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJQbHVn
aW5Db250YWluZXJRdC5oIgogI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKQEAg
LTY4LDYgKzY4LDggQEAKICNpbmNsdWRlIDxRS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UVBhaW50ZXI+
CiAjaW5jbHVkZSA8UVdpZGdldD4KKyNpZmRlZiBRX1dTX1gxMQorI2luY2x1ZGUgIlBsdWdpbkNv
bnRhaW5lclF0LmgiCiAjaW5jbHVkZSA8UVgxMUluZm8+CiAjaW5jbHVkZSA8WDExL1guaD4KICNp
Zm5kZWYgUVRfTk9fWFJFTkRFUgpAQCAtNzUsNiArNzcsMTAgQEAKICNkZWZpbmUgU3RhdHVzIGlu
dAogI2luY2x1ZGUgPFgxMS9leHRlbnNpb25zL1hyZW5kZXIuaD4KICNlbmRpZgorI2VsaWYgZGVm
aW5lZChYUF9ERkIpCisjaW5jbHVkZSAiUGx1Z2luVmlld0RGQlF0LmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAK
QEAgLTExMCw2ICsxMTYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgp
CiAgICAgaWYgKG1fd2luZG93UmVjdCA9PSBvbGRXaW5kb3dSZWN0ICYmIG1fY2xpcFJlY3QgPT0g
b2xkQ2xpcFJlY3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgaWYg
KCFtX2lzV2luZG93ZWQgJiYgbV93aW5kb3dSZWN0LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0LnNp
emUoKSkgewogICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgIFhGcmVlUGl4bWFw
KFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwpAQCAtMTE4LDYgKzEyNSw3IEBAIHZv
aWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93Lndz
X2luZm8pLT5kZXB0aCk7CiAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsgLy8gbWFrZSBz
dXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKICAgICB9CisjZW5k
aWYKIAogICAgIC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVkZWQgaW1tZWRpYXRlbHks
IHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5n
ZSA9IHRydWU7CkBAIC0xNzIsNiArMTgwLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICBzZXROUFdp
bmRvd0lmTmVlZGVkKCk7CiAKKyNpZmRlZiBRX1dTX1gxMQogICAgIGlmIChtX2lzV2luZG93ZWQg
fHwgIW1fZHJhd2FibGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjQwLDYgKzI0OSwxMCBAQCB2
b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZyYW1lUmVjdCgp
LngoKSArIGV4cG9zZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgp
KSwgcXREcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsKKyNl
bGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmIChtX3BsdWdpblZpZXdERkJRdCkKKyAgICAgICAg
bV9wbHVnaW5WaWV3REZCUXQtPnBhaW50KGNvbnRleHQsIHJlY3QpOworI2VuZGlmCiB9CiAKIC8v
IFRPRE86IFVuaWZ5IGFjcm9zcyBwb3J0cy4KQEAgLTI1OCw2ICsyNzEsNyBAQCBib29sIFBsdWdp
blZpZXc6OmRpc3BhdGNoTlBFdmVudChOUEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gYWNjZXB0
ZWQ7CiB9CiAKKyNpZmRlZiBRX1dTX1gxMQogdm9pZCBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoWEV2
ZW50KiB4RXZlbnQsIFFXaWRnZXQqIG93bmVyV2lkZ2V0KQogewogICAgIHhFdmVudC0+eGFueS5z
ZXJpYWwgPSAwOyAvLyB3ZSBhcmUgdW5hd2FyZSBvZiB0aGUgbGFzdCByZXF1ZXN0IHByb2Nlc3Nl
ZCBieSBYIFNlcnZlcgpAQCAtMjk5LDYgKzMxMyw3IEBAIHZvaWQgc2V0WEtleUV2ZW50U3BlY2lm
aWNGaWVsZHMoWEV2ZW50KiB4RXZlbnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIHhFdmVu
dC0+eGtleS54X3Jvb3QgPSAwOwogICAgIHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQorI2Vu
ZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKQEAgLTMwOCwxNCArMzIzLDIxIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxl
S2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBpZiAoZXZlbnQtPnR5cGUo
KSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LT50eXBlKCkgIT0gZXZlbnRO
YW1lcygpLmtleXVwRXZlbnQpCiAgICAgICAgIHJldHVybjsKIAorI2lmZGVmIFFfV1NfWDExCiAg
ICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtl
eUV2ZW50U3BlY2lmaWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsKIAogICAgIGlmICghZGlzcGF0
Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
KyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmICghbV9wbHVnaW5WaWV3REZCUXQgfHwgIW1f
cGx1Z2luVmlld0RGQlF0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKKwogfQogCisjaWZkZWYgUV9XU19YMTEKIHN0YXRp
YyB1bnNpZ25lZCBpbnQgaW5wdXRFdmVudFN0YXRlKE1vdXNlRXZlbnQqIGV2ZW50KQogewogICAg
IHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CkBAIC0zOTAsNiArNDEyLDcgQEAgc3RhdGljIHZvaWQg
c2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVu
dCogZXZlbnQsIGMKICAgICB4Y3Jvc3Npbmcuc2FtZV9zY3JlZW4gPSB0cnVlOwogICAgIHhjcm9z
c2luZy5mb2N1cyA9IGZhbHNlOwogfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxl
TW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIHsKQEAgLTQwNCw2ICs0MjcsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgICAg
IGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgIH0KIAorI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2
ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTQyMCwxMCArNDQ0
LDE1IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVu
dCkKIAogICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+
c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmICghbV9w
bHVnaW5WaWV3REZCUXQgfHwgIW1fcGx1Z2luVmlld0RGQlF0LT5kaXNwYXRjaEV2ZW50KGV2ZW50
KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAogdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c0luRXZlbnQoKQogeworI2lmZGVmIFFfV1NfWDExCiAg
ICAgWEV2ZW50IG5wRXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTQzMywx
MCArNDYyLDE1IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAgICBl
dmVudC5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5w
RXZlbnQpOworI2VsaWYgZGVmaW5lZChYUF9ERkIpCisgICAgaWYgKG1fcGx1Z2luVmlld0RGQlF0
KQorICAgICAgICBtX3BsdWdpblZpZXdERkJRdC0+ZGlzcGF0Y2hFdmVudChQbHVnaW5WaWV3REZC
UXQ6OkZvY3VzSW4pOworI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNP
dXRFdmVudCgpCiB7CisjaWZkZWYgUV9XU19YMTEKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBp
bml0WEV2ZW50KCZucEV2ZW50KTsKIApAQCAtNDQ2LDYgKzQ4MCwxMCBAQCB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlmeURldGFp
bE5vbmU7CiAKICAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7CisjZWxpZiBkZWZpbmVkKFhQ
X0RGQikKKyAgICBpZiAobV9wbHVnaW5WaWV3REZCUXQpCisgICAgICAgIG1fcGx1Z2luVmlld0RG
QlF0LT5kaXNwYXRjaEV2ZW50KFBsdWdpblZpZXdERkJRdDo6Rm9jdXNPdXQpOworI2VuZGlmCiB9
CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTQ5
OCw2ICs1MzYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogICAg
ICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gbV9jbGlwUmVjdC54KCkgKyBtX2NsaXBS
ZWN0LndpZHRoKCk7CiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9jbGlw
UmVjdC55KCkgKyBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0gZWxzZSB7CisjaWZkZWYgUV9X
U19YMTEKICAgICAgICAgbV9ucFdpbmRvdy54ID0gMDsKICAgICAgICAgbV9ucFdpbmRvdy55ID0g
MDsKIApAQCAtNTA1LDYgKzU0NCwxMCBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZO
ZWVkZWQoKQogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IDA7CiAgICAgICAgIG1f
bnBXaW5kb3cuY2xpcFJlY3QucmlnaHQgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0
LmJvdHRvbSA9IDA7CisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyAgICAgICAgaWYgKG1fcGx1Z2lu
Vmlld0RGQlF0KQorICAgICAgICAgICAgbV9wbHVnaW5WaWV3REZCUXQtPnNldE5QV2luZG93SWZO
ZWVkZWQoKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmIChtX3BsdWdpbi0+cXVpcmtzKCkuY29u
dGFpbnMoUGx1Z2luUXVpcmtEb250Q2FsbFNldFdpbmRvd01vcmVUaGFuT25jZSkpIHsKQEAgLTU3
MiwxMCArNjE1LDEyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhO
UE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyCiAgICAgICAgICpyZXN1bHQg
PSBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyNpZmRlZiBRX1dTX1gx
MQogICAgIGNhc2UgTlBOVlN1cHBvcnRzWEVtYmVkQm9vbDoKICAgICAgICAgKnN0YXRpY19jYXN0
PE5QQm9vbCo+KHZhbHVlKSA9IHRydWU7CiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJP
UjsKICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKIAogICAgIGNhc2UgTlBOVmphdmFzY3Jp
cHRFbmFibGVkQm9vbDoKICAgICAgICAgKnN0YXRpY19jYXN0PE5QQm9vbCo+KHZhbHVlKSA9IHRy
dWU7CkBAIC01OTQsNiArNjM5LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVl
U3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKIAogYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSwgTlBFcnJvciogcmVzdWx0KQogeworI2lmZGVmIFFfV1NfWDExCiAgICAgc3dpdGNoICh2
YXJpYWJsZSkgewogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgogICAgICAgICAqKHZvaWQgKiopdmFs
dWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwpAQCAtNjIzLDYgKzY2OSw5IEBAIGJvb2wgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUs
IE5QRXJyb3IqIHJlCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
KyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIHJldHVybiBtX3BsdWdpblZpZXdERkJRdCAmJiBt
X3BsdWdpblZpZXdERkJRdC0+cGxhdGZvcm1HZXRWYWx1ZSh2YXJpYWJsZSwgdmFsdWUsIHJlc3Vs
dCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJ
bnRSZWN0JiByZWN0KQpAQCAtNjU2LDYgKzcwNSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VS
ZWRyYXcoKQogICAgIGludmFsaWRhdGUoKTsKIH0KIAorI2lmZGVmIFFfV1NfWDExCiBzdGF0aWMg
RGlzcGxheSAqZ2V0UGx1Z2luRGlzcGxheSgpCiB7CiAgICAgLy8gVGhlIHBsdWdpbiB0b29sa2l0
IG1pZ2h0IHJ1biB1c2luZyBhIGRpZmZlcmVudCBYIGNvbm5lY3Rpb24uIEF0IHRoZSBtb21lbnQs
IHdlIG9ubHkKQEAgLTcyMSwxMiArNzcxLDE0IEBAIHN0YXRpYyB2b2lkIGdldFZpc3VhbEFuZENv
bG9ybWFwKGludCBkZXB0aCwgVmlzdWFsICoqdmlzdWFsLCBDb2xvcm1hcCAqY29sb3JtYXApCiAg
ICAgaWYgKCp2aXN1YWwpCiAgICAgICAgICpjb2xvcm1hcCA9IFhDcmVhdGVDb2xvcm1hcChRWDEx
SW5mbzo6ZGlzcGxheSgpLCBRWDExSW5mbzo6YXBwUm9vdFdpbmRvdygpLCAqdmlzdWFsLCBBbGxv
Y05vbmUpOwogfQorI2VuZGlmCiAKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7
CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2lu
U3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgaWYgKG1f
cGx1Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3Ojpz
ZXRDdXJyZW50UGx1Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxM
b2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtNzUxLDkg
KzgwMywyOSBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBzZXRQ
bGF0Zm9ybVdpZGdldCgwKTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0gZ2V0UGx1Z2luRGlz
cGxheSgpOwogICAgIH0KKyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmIChtX2lzV2luZG93
ZWQpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgbV9wbHVnaW5WaWV3REZCUXQgPSBQbHVnaW5WaWV3REZCUXQ6OmNyZWF0ZSh0aGlzKTsK
KworICAgIGlmICghbV9wbHVnaW5WaWV3REZCUXQpIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKIAogICAgIHNob3coKTsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgTlBT
ZXRXaW5kb3dDYWxsYmFja1N0cnVjdCogd3NpID0gbmV3IE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1
Y3QoKTsKICAgICB3c2ktPnR5cGUgPSAwOwogCkBAIC03OTUsNiArODY3LDcgQEAgYm9vbCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICB9CiAKICAgICBtX25wV2luZG93LndzX2luZm8g
PSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQ
bHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxsKSkpIHsKICAgICAgICAgdXBkYXRlUGx1
Z2luV2lkZ2V0KCk7CkBAIC04MDksMTEgKzg4MiwxOCBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRm
b3JtRGVzdHJveSgpCiAgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgIGRl
bGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgpOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBpZiAo
bV9kcmF3YWJsZSkKICAgICAgICAgWEZyZWVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9k
cmF3YWJsZSk7CiAKICAgICBpZiAobV9jb2xvcm1hcCkKICAgICAgICAgWEZyZWVDb2xvcm1hcChR
WDExSW5mbzo6ZGlzcGxheSgpLCBtX2NvbG9ybWFwKTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQor
ICAgIGlmIChtX3BsdWdpblZpZXdERkJRdCkgeworICAgICAgICBkZWxldGUgbV9wbHVnaW5WaWV3
REZCUXQ7CisgICAgICAgIG1fcGx1Z2luVmlld0RGQlF0ID0gMDsKKyAgICB9CisjZW5kaWYKIH0K
IAogdm9pZCBQbHVnaW5WaWV3OjpoYWx0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73107</attachid>
            <date>2010-11-05 13:25:23 -0700</date>
            <delta_ts>2010-11-10 05:41:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36171-20101105132527.patch</filename>
            <type>text/plain</type>
            <size>56631</size>
            <attacher name="Anders Bakken">agbakken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDVkYjQzZTI1ODFkYzg5Y2FhZDNkYjRhZWE4YjY4MjAzMzQ0ODI1ZS4uZDQyYTc4NDRiMmJlN2Vl
MWNlMzBjMzBjMjVjMDRiZmE4NjQyMGFlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0xMS0wNSAgQW5k
ZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUVRdIFF0V2ViS2l0IGRvZXNuJ3Qgc3VwcG9ydCBO
UEFQSSBmb3IgRGlyZWN0RkIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2MTcxCisKKyAgICAgICAgVGhpcyBjb250cmlidXRpb24gZW5hYmxlcyB3aW5k
b3dsZXNzIE5QQVBJIHN1cHBvcnQgZm9yIFF0L1dlYktpdCB3aGVuCisgICAgICAgIHVzaW5nIERp
cmVjdEZCLiBJdCdzIGJlZW4gdmVyaWZpZWQgdG8gd29yayBvbiBNSVBTIGhhcmR3YXJlIHdpdGgK
KyAgICAgICAgRmxhc2hsaXRlLgorCisgICAgICAgIFRoZSBjb2RlIGlzIGxhcmdlbHkgYmFzZWQg
b24gdGhlIFF0L1gxMSBpbXBsZW1lbnRhdGlvbiBvZiB3aW5kb3dsZXNzCisgICAgICAgIE5QQVBJ
LiBJdCBhZGRzIHRoZSBkZWZpbmUgWFBfREZCIHdoZW4gZW5hYmxlZCB0byBkaWZmZXJlbnRpYXRl
IGJldHdlZW4KKyAgICAgICAgWDExIGFuZCBEaXJlY3RGQiB3aGVuIFhQX1VOSVggaXMgZGVmaW5l
ZC4gVGhpcyBtZWFucyB0aGF0IG5wYXBpLmggd2lsbAorICAgICAgICBmdW5jdGlvbiB0aGUgc2Ft
ZSB3YXkgZm9yIFgxMSBidWlsZHMuCisKKyAgICAgICAgU2luY2UgdGhlIG5vcm1hbCB1c2UgY2Fz
ZSBmb3IgTlBBUEkgb24gRGlyZWN0RkIgaXMgZm9yIHZpZGVvIG9uIHNpdGVzCisgICAgICAgIGxp
a2UgeW91dHViZSBpdCdzIGltcG9ydGFudCB0byBtYWtlIHN1cmUgdGhlIHBsdWdpbiBnZXRzIGFu
IHVwZGF0ZWQKKyAgICAgICAgZ2xvYmFsIGdlb21ldHJ5IGlmIHRoZSB3aW5kb3cgbW92ZXMgb3Ig
cmVzaXplcy4gVGhpcyBpcyBkdWUgdG8gdGhlCisgICAgICAgIGZhY3QgdGhhdCB0aGUgdmlkZW8g
d2lsbCBiZSByZW5kZXJlZCBpbnRvIGEgZGlmZmVyZW50IGxheWVyIHJhdGhlcgorICAgICAgICB0
aGFuIGFjdHVhbGx5IGludG8gdGhlIG9mZnNjcmVlbiBzdXJmYWNlIHRoYXQncyBiZWluZyByZW5k
ZXJlZCB0by4KKworICAgICAgICBJIGhhdmUgYSBtYW51YWwgdGVzdCBjYXNlIHRoYXQgSSBjb3Vs
ZCBoZWxwIHBlb3BsZSBzZXQgdXAgZm9yIHRlc3RpbmcKKyAgICAgICAgd2l0aCBRdC9RV1MgRGly
ZWN0RkIgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gbWFrZSBpdCBhdXRvbWF0ZWQuCisKKyAgICAg
ICAgVG8gZW5hYmxlIE5QQVBJIGZvciBEaXJlY3RGQiB0aGUgZGV2ZWxvcGVyIG5lZWRzIHRvIG1h
a2Ugc3VyZQorICAgICAgICBxbWFrZS5jb25mIGNvbnRhaW5zIHRoaXMgbGluZToKKworICAgICAg
ICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJX0RJUkVDVEZCCisKKyAgICAg
ICAgUXQgbXVzdCBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLXF0LWdmeC1kaXJlY3RmYiBv
cHRpb24gKGFzCisgICAgICAgIG9wcG9zZWQgdG8gLXBsdWdpbi1nZngtZGlyZWN0ZmIpCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBicmlkZ2UvbnBhcGkuaDoKKyAgICAgICAg
KiBicmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5WaWV3Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGb2N1
c0luRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgICogcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXRERkIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBB
UElPYmplY3Q6OmNsZWFyV2luZG93SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RGQk5Q
QVBJT2JqZWN0OjpEaXJlY3RGQk5QQVBJT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVj
dEZCTlBBUElPYmplY3Q6On5EaXJlY3RGQk5QQVBJT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpcmVjdEZCTlBBUElPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RG
Qk5QQVBJT2JqZWN0OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RGQk5QQVBJT2Jq
ZWN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBBUElPYmpl
Y3Q6OmV2ZW50RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBBUElPYmplY3Q6
OnRpbWVyRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0RkJOUEFQSU9iamVjdDo6c2V0
TlBXaW5kb3dJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RGQk5QQVBJT2JqZWN0
OjpwbGF0Zm9ybUdldFZhbHVlKToKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdERG
Qi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdEZCTlBBUElPYmplY3Q6Oik6CisK
IDIwMTAtMTEtMDUgIENocmlzIEd1aWxsb3J5ICA8Y2hyaXMuZ3VpbGxvcnlAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDE4ZjQwYzQxZTgyMzhj
OTIzY2U5YzNiMmVjNzA5MGVkMGRkNjZiMjguLjMwNDJlNzY2MjBlMWJkN2FhYmIxZjhkNzQ4Mzg3
YTBmNjczNTI4NDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtMjc5Niw5ICsyNzk2LDE3IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEpIHsKICAgICAgICAgICAgICAgICBJTkNMVURFUEFU
SCArPSBwbGF0Zm9ybS9tYWMKICAgICAgICAgICAgICAgICAjIE5vdGU6IFhQX01BQ09TWCBpcyBk
ZWZpbmVkIGluIG5wYXBpLmgKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
IWVtYmVkZGVkIHsKKyAgICAgICAgICAgICAgICBkaXJlY3RmYiB7CisgICAgICAgICAgICAgICAg
ICAgIERFRklORVMgKz0gWFBfREZCCisgICAgICAgICAgICAgICAgICAgIFFNQUtFX0NYWEZMQUdT
ICs9ICQkUVRfQ0ZMQUdTX0RJUkVDVEZCCisgICAgICAgICAgICAgICAgICAgIExJQlMgKz0gJCRR
VF9MSUJTX0RJUkVDVEZCCisgICAgICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXRERkIuY3BwCisgICAgICAgICAgICAgICAgICAgIEhFQURFUlMgKz0gcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXRERkIuaAorICAgICAgICAgICAgICAgIH0gZWxzZTohZW1iZWRk
ZWQgewogICAgICAgICAgICAgICAgICAgICBDT05GSUcgKz0geDExCiAgICAgICAgICAgICAgICAg
ICAgIExJQlMgKz0gLWxYcmVuZGVyCisgICAgICAgICAgICAgICAgICAgIFNPVVJDRVMgKz0gcGx1
Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKyAgICAgICAgICAgICAgICAgICAgSEVBREVS
UyArPSBwbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmgKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgbWFlbW81IHsKICAgICAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBN
T1pfUExBVEZPUk1fTUFFTU89NQpAQCAtMjgwNywxMSArMjgxNSw4IEBAIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEpIHsKICAgICAgICAgICAgICAgICAgICAg
REVGSU5FUyArPSBNT1pfUExBVEZPUk1fTUFFTU89NgogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9Q
bHVnaW5Db250YWluZXJRdC5jcHAgXAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1Bs
dWdpblBhY2thZ2VRdC5jcHAgXAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAKLSAgICAgICAgICAgICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgICAgICAg
ICAgICAgcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVG
SU5FUyArPSBYUF9VTklYCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFPTEKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYnJpZGdlL25wYXBpLmggYi9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oCmluZGV4IDdhM2E5
MzM5YzljOTkwZDA0NmIwNWQyOTFmMmI0YzcwYzQyYzcxNDMuLjRhOTE1ZjI5MGNhOWRiOWFlZWRh
YThhYWY3OGQ5MGRkZDAzMmVlZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgK
KysrIGIvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaApAQCAtODksNyArODksNyBAQAogI2VuZGlmCiAj
ZW5kaWYKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFk
ZWZpbmVkKFhQX0RGQikKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgogI2luY2x1ZGUgPFgxMS9YdXRp
bC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yNDMsNyArMjQzLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX05QU2l6ZQogLyogRXhhY3QgbWVhbmluZyBtdXN0IGJlIHNwZWMnZCBpbiBldmVudCBtb2Rl
bC4gKi8KICNkZWZpbmUga05QRXZlbnRTdGFydElNRSAyCiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgp
CisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAvKgogICogVW5peCBz
cGVjaWZpYyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICovCkBAIC01MjUsNiArNTI1LDkg
QEAgdHlwZWRlZiBzdHJ1Y3QgX05QRXZlbnQKICAgdWludHB0cl90IHdQYXJhbTsKICAgdWludHB0
cl90IGxQYXJhbTsKIH0gTlBFdmVudDsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorI2luY2x1ZGUg
PGRpcmVjdGZiLmg+Cit0eXBlZGVmIERGQkV2ZW50IE5QRXZlbnQ7CiAjZWxpZiBkZWZpbmVkKFhQ
X09TMikKIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiB7CkBAIC01NDYsNyArNTQ5LDcgQEAgdHlw
ZWRlZiBSZ25IYW5kbGUgTlBRRFJlZ2lvbjsKIHR5cGVkZWYgQ0dQYXRoUmVmIE5QQ0dSZWdpb247
CiAjZWxpZiBkZWZpbmVkKFhQX1dJTikKIHR5cGVkZWYgSFJHTiBOUFJlZ2lvbjsKLSNlbGlmIGRl
ZmluZWQoWFBfVU5JWCkKKyNlbGlmIGRlZmluZWQoWFBfVU5JWCkgJiYgIWRlZmluZWQoWFBfREZC
KQogdHlwZWRlZiBSZWdpb24gTlBSZWdpb247CiAjZWxpZiBkZWZpbmVkKFhQX1NZTUJJQU4pCiB0
eXBlZGVmIFFSZWdpb24qIE5QUmVnaW9uOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvbnBy
dW50aW1lX2ludGVybmFsLmggYi9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaApp
bmRleCA1NTBjMzRjNzE0ZmI1ZmI3M2FjMzE5NjNjZjdmZDNjYWZkMGZhYjBhLi40YzQ2ZDFkMjM5
OWE5OGNkZjI3MWY1NWQzZTlmODIxMTUyYTk3MWZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRn
ZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50
ZXJuYWwuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIm5wZnVuY3Rpb25zLmgiCiAjaW5j
bHVkZSAibnBydW50aW1lLmgiCiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZCBYUF9VTklY
ICYmICFkZWZpbmVkKFhQX0RGQikKICAgICAjaW5jbHVkZSA8WDExL1hyZXNvdXJjZS5oPgogCiAg
ICAgI3VuZGVmIE5vbmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZmVhdHVyZXMucHJpIGIvV2ViQ29y
ZS9mZWF0dXJlcy5wcmkKaW5kZXggMGEzOWIxNjA1YWJjMTE1MzBiYzFjOGY2Zjg3MDNmY2Q0NzBm
NDg0Ny4uNThjZDcwZWE0MTdkODMxYWUxNDExZmYxZjc4NDg5YmNjZmI4ODY5NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9mZWF0dXJlcy5wcmkKKysrIGIvV2ViQ29yZS9mZWF0dXJlcy5wcmkKQEAgLTg3
LDYgKzg3LDExIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQ9MSkg
ewogIyBUaWxlZCBCYWNraW5nIFN0b3JlIHN1cHBvcnQKICFjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVElMRURfQkFDS0lOR19TVE9SRT0uKTogREVGSU5FUyArPSBFTkFCTEVfVElMRURfQkFDS0lO
R19TVE9SRT0xCiAKK2RpcmVjdGZiLW5wYXBpIHsKKyAgICBDT05GSUcgKz0gZGlyZWN0ZmIKKyAg
ICBERUZJTkVTICs9IEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKK30KKwogIyBOZXNjYXBl
IHBsdWdpbnMgc3VwcG9ydCAoTlBBUEkpCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFND
QVBFX1BMVUdJTl9BUEk9LikgewogICAgIHVuaXh8d2luMzItKjohZW1iZWRkZWQ6IXdpbmNlKjog
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDYyNjE2YmIyMzkxMTlhOGQ2Nzc2YTBlNjdjOTgy
ODZjYzdhODJlYzkuLjc3OWYwYmEwZmMwYjgwODU5ZmNkMzUxY2M0OTFiMjcyZWMxZmY1NTcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIFBsdWdpblZpZXc6
OnN0b3AoKQogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKICAg
ICB9CiAKLSNpZmRlZiBYUF9VTklYCisjaWYgZGVmaW5lZChYUF9YMTEpICYmICFkZWZpbmVkKFhQ
X0RGQikKICAgICBpZiAobV9pc1dpbmRvd2VkICYmIG1fbnBXaW5kb3cud3NfaW5mbykKICAgICAg
ICAgICAgZGVsZXRlIChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0ICopbV9ucFdpbmRvdy53c19p
bmZvOwogICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7CkBAIC04NDksNyArODQ5LDcgQEAgUGx1
Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNp
emUsIFBsdWdpblBhY2thZ2UqIHAKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAgICAs
IG1faGF2ZUluaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9pc1dhaXRpbmdUb1N0YXJ0KGZhbHNl
KQotI2lmIGRlZmluZWQoWFBfVU5JWCkKKyNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVk
IChYUF9ERkIpCiAgICAgLCBtX25lZWRzWEVtYmVkKGZhbHNlKQogI2VuZGlmCiAjaWYgT1MoV0lO
RE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC04NzAsMTAgKzg3MCwxNCBA
QCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6
ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogI2VuZGlmCiAjaWYgZGVmaW5lZChYUF9VTklYKSAm
JiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5
Q2hhbmdlKHRydWUpCisjaWYgIWRlZmluZWQgWFBfREZCCiAgICAgLCBtX2RyYXdhYmxlKDApCiAg
ICAgLCBtX3Zpc3VhbCgwKQogICAgICwgbV9jb2xvcm1hcCgwKQogICAgICwgbV9wbHVnaW5EaXNw
bGF5KDApCisjZWxzZQorICAgICwgbV9wbHVnaW5WaWV3UXRERkIoMCkKKyNlbmRpZgogI2VuZGlm
CiAjaWYgUExBVEZPUk0oUVQpICYmIGRlZmluZWQoTU9aX1BMQVRGT1JNX01BRU1PKSAmJiAoTU9a
X1BMQVRGT1JNX01BRU1PID49IDUpCiAgICAgLCBtX3JlbmRlclRvSW1hZ2UoZmFsc2UpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuaAppbmRleCBkZWFlYzk5Zjg2MmU2NWNiOGZmN2QxNGNkZTRkNDAxODE0ZTdmMjU0
Li4wZjY1YzQ3NWYyNGMzMGQ4NjhiZDVlODAzZDQ2MjU1YTkwMTkzMWVmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmgKQEAgLTIyLDcgKzIyLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2lmbmRlZiBQ
bHVnaW5WaWV3X2gKQEAgLTg2LDYgKzg2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIFBsdWdpblN0cmVhbTsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7CisjaWYgZGVmaW5lZCBYUF9ERkIgJiYgUExBVEZPUk0oUVQpCisgICAg
Y2xhc3MgUGx1Z2luVmlld1F0REZCOworI2VuZGlmCiAKICAgICBlbnVtIFBsdWdpblN0YXR1cyB7
CiAgICAgICAgIFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQbHVnaW4sCkBAIC0xNjQsNyArMTY3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogdXNlckFn
ZW50U3RhdGljKCk7CiAjZW5kaWYKICAgICAgICAgdm9pZCBzdGF0dXMoY29uc3QgY2hhciogbWVz
c2FnZSk7Ci0gICAgICAgIAorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAg
ICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsK
ICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFi
bGUsIHZvaWQqIHZhbHVlKTsKQEAgLTI0OCw4ICsyNTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjZW5kaWYKICAgICAgICAgdm9pZCBrZWVwQWxpdmUoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKSAmJiBQTEFURk9STShRVCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpIAorI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
ICYmIFBMQVRGT1JNKFFUKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAgICAgICAgIHZpcnR1YWwgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwogI2Vsc2UKICAgICAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAt
MzU2LDcgKzM1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hhdmVJ
bml0aWFsaXplZDsKICAgICAgICAgYm9vbCBtX2lzV2FpdGluZ1RvU3RhcnQ7CiAKLSNpZiBkZWZp
bmVkKFhQX1VOSVgpCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiAhZGVmaW5lZChYUF9ERkIpCiAg
ICAgICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKICNlbmRpZgogCkBAIC00MDYsMjIgKzQwOSwyOSBA
QCBwcml2YXRlOgogCiAjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKICAgICAgICAgYm9vbCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZTsKKyNpZm5k
ZWYgWFBfREZCCiAgICAgICAgIFBpeG1hcCBtX2RyYXdhYmxlOwogICAgICAgICBWaXN1YWwqIG1f
dmlzdWFsOwogICAgICAgICBDb2xvcm1hcCBtX2NvbG9ybWFwOwogICAgICAgICBEaXNwbGF5KiBt
X3BsdWdpbkRpc3BsYXk7CiAKICAgICAgICAgdm9pZCBpbml0WEV2ZW50KFhFdmVudCogZXZlbnQp
OworI2Vsc2UKKyAgICAgICAgZnJpZW5kIGNsYXNzIFBsdWdpblZpZXdRdERGQjsKKyAgICAgICAg
UGx1Z2luVmlld1F0REZCICptX3BsdWdpblZpZXdRdERGQjsKKyNlbmRpZgogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShRVCkgCisjaWYgUExBVEZPUk0oUVQpCiAjaWYgZGVmaW5lZChNT1pfUExBVEZP
Uk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8gPj0gNSkKICAgICAgICAgUUltYWdlIG1f
aW1hZ2U7CiAgICAgICAgIGJvb2wgbV9yZW5kZXJUb0ltYWdlOwogICAgICAgICB2b2lkIHBhaW50
VXNpbmdJbWFnZVN1cmZhY2VFeHRlbnNpb24oUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IEludFJl
Y3QmIGV4cG9zZWRSZWN0KTsKICNlbmRpZgogI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCisjaWZuZGVmIFhQX0RGQgogICAgICAgICB2b2lkIHBhaW50
VXNpbmdYUGl4bWFwKFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRUmVjdCAmZXhwb3NlZFJlY3Qp
OworI2VuZGlmCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBPd25Q
dHI8UGxhdGZvcm1MYXllcj4gbV9wbGF0Zm9ybUxheWVyOwogICAgICAgICBmcmllbmQgY2xhc3Mg
UGx1Z2luR3JhcGhpY3NMYXllclF0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAppbmRl
eCBmZGJlNTUyZDFhNTMzMDAwMDBjZWRiYTFiYjI4NzI3YzYzOGY3YjMwLi5lZmM5NmVmMDhmMmEz
ZTY4YjBiMmY3NDE4ZDNiNDE5YTdlOTk2YzhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
cXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0
LmNwcApAQCAtMjIsNyArMjIsNyBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCkBAIC01Nyw3ICs1Nyw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgotI2luY2x1ZGUgIlBsdWdpbkNvbnRhaW5lclF0LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGVidWcu
aCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luTWFpblRocmVh
ZFNjaGVkdWxlci5oIgpAQCAtNzYsNiArNzUsOCBAQAogI2luY2x1ZGUgPFFQYWludGVyPgogI2lu
Y2x1ZGUgPFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbT4KICNpbmNsdWRlIDxRV2lkZ2V0PgorI2lm
ZGVmIFFfV1NfWDExCisjaW5jbHVkZSAiUGx1Z2luQ29udGFpbmVyUXQuaCIKICNpbmNsdWRlIDxR
WDExSW5mbz4KICNpbmNsdWRlIDxYMTEvWC5oPgogI2lmbmRlZiBRVF9OT19YUkVOREVSCkBAIC04
Myw2ICs4NCw5IEBACiAjZGVmaW5lIFN0YXR1cyBpbnQKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9u
cy9YcmVuZGVyLmg+CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorI2luY2x1ZGUgIlBs
dWdpblZpZXdRdERGQi5oIgorI2VuZGlmCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KIApAQCAtMTAwLDcgKzEwNCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IGRlZmluZWQoUV9XU19YMTEpCiAvLyBRdCdzIEdyYXBoaWNzTGF5ZXIgKEdyYXBoaWNzTGF5ZXJR
dCkgcmVxdWlyZXMgbGF5ZXJzIHRvIGJlIFFHcmFwaGljc1dpZGdldHMKIGNsYXNzIFBsdWdpbkdy
YXBoaWNzTGF5ZXJRdCA6IHB1YmxpYyBRR3JhcGhpY3NXaWRnZXQgewogcHVibGljOgpAQCAtMTM2
LDYgKzE0MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICBp
ZiAobV93aW5kb3dSZWN0ID09IG9sZFdpbmRvd1JlY3QgJiYgbV9jbGlwUmVjdCA9PSBvbGRDbGlw
UmVjdCkKICAgICAgICAgcmV0dXJuOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBpZiAoIW1faXNX
aW5kb3dlZCAmJiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7
CiAjaWYgZGVmaW5lZChNT1pfUExBVEZPUk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8g
Pj0gNSkKICAgICAgICAgLy8gT24gTWFlbW81LCBGbGFzaCBhbHdheXMgcmVuZGVycyB0byAxNi1i
aXQgYnVmZmVyCkBAIC0xNDcsMTEgKzE1MiwxMiBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBs
dWdpbldpZGdldCgpCiAgICAgICAgICAgICBpZiAobV9kcmF3YWJsZSkKICAgICAgICAgICAgICAg
ICBYRnJlZVBpeG1hcChRWDExSW5mbzo6ZGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKIAotICAgICAg
ICAgICAgbV9kcmF3YWJsZSA9IFhDcmVhdGVQaXhtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgUVgx
MUluZm86OmFwcFJvb3RXaW5kb3coKSwgbV93aW5kb3dSZWN0LndpZHRoKCksIG1fd2luZG93UmVj
dC5oZWlnaHQoKSwgCisgICAgICAgICAgICBtX2RyYXdhYmxlID0gWENyZWF0ZVBpeG1hcChRWDEx
SW5mbzo6ZGlzcGxheSgpLCBRWDExSW5mbzo6YXBwUm9vdFdpbmRvdygpLCBtX3dpbmRvd1JlY3Qu
d2lkdGgoKSwgbV93aW5kb3dSZWN0LmhlaWdodCgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93Lndz
X2luZm8pLT5kZXB0aCk7CiAgICAgICAgICAgICBRQXBwbGljYXRpb246OnN5bmNYKCk7IC8vIG1h
a2Ugc3VyZSB0aGF0IHRoZSBzZXJ2ZXIga25vd3MgYWJvdXQgdGhlIERyYXdhYmxlCiAgICAgICAg
IH0KICAgICB9CisjZW5kaWYKIAogICAgIC8vIGRvIG5vdCBjYWxsIHNldE5QV2luZG93SWZOZWVk
ZWQgaW1tZWRpYXRlbHksIHdpbGwgYmUgY2FsbGVkIG9uIHBhaW50KCkKICAgICBtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7CkBAIC0xOTYsNyArMjAyLDcgQEAgdm9pZCBQbHVnaW5W
aWV3OjpoaWRlKCkKICAgICBXaWRnZXQ6OmhpZGUoKTsKIH0KIAotI2lmIGRlZmluZWQoTU9aX1BM
QVRGT1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCisjaWYgZGVmaW5lZChN
T1pfUExBVEZPUk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8gPj0gNSkgJiYgZGVmaW5l
ZChRX1dTX1gxMSkKIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRVc2luZ0ltYWdlU3VyZmFjZUV4dGVu
c2lvbihRUGFpbnRlciogcGFpbnRlciwgY29uc3QgSW50UmVjdCYgZXhwb3NlZFJlY3QpCiB7CiAg
ICAgTlBJbWFnZUV4cG9zZSBpbWFnZUV4cG9zZTsKQEAgLTIyMiw3ICsyMjgsNyBAQCB2b2lkIFBs
dWdpblZpZXc6OnBhaW50VXNpbmdJbWFnZVN1cmZhY2VFeHRlbnNpb24oUVBhaW50ZXIqIHBhaW50
ZXIsIGNvbnN0IEludFJlYwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChtX2lzVHJhbnNwYXJl
bnQpIHsKICAgICAgICAgICAgIC8vIE9uIE1hZW1vNSwgRmxhc2ggZXhwZWN0cyB0aGUgYnVmZmVy
IHRvIGNvbnRhaW4gdGhlIGNvbnRlbnRzIHRoYXQgYXJlIGJlbG93IGl0LgotICAgICAgICAgICAg
Ly8gV2UgZG9uJ3Qgc3VwcG9ydCB0cmFuc3BhcmVuY3kgZm9yIG5vbi1yYXN0ZXIgZ3JhcGhpY3Nz
eXN0ZW0sIHNvIGNsZWFuIHRoZSBpbWFnZSAKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBv
cnQgdHJhbnNwYXJlbmN5IGZvciBub24tcmFzdGVyIGdyYXBoaWNzc3lzdGVtLCBzbyBjbGVhbiB0
aGUgaW1hZ2UKICAgICAgICAgICAgIC8vIGJlZm9yZSBnaXZpbmcgdG8gRmxhc2guCiAgICAgICAg
ICAgICBRUGFpbnRlciBpbWFnZVBhaW50ZXIoJm1faW1hZ2UpOwogICAgICAgICAgICAgaW1hZ2VQ
YWludGVyLmZpbGxSZWN0KGV4cG9zZWRSZWN0LCBRdDo6d2hpdGUpOwpAQCAtMjU5LDcgKzI2NSw2
IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRVc2luZ0ltYWdlU3VyZmFjZUV4dGVuc2lvbihRUGFp
bnRlciogcGFpbnRlciwgY29uc3QgSW50UmVjCiAgICAgaWYgKCFzdXJmYWNlSGFzVW50cmFuc2Zv
cm1lZENvbnRlbnRzIHx8ICFzdXJmYWNlIHx8IHN1cmZhY2UtPmRldlR5cGUoKSAhPSBRSW50ZXJu
YWw6OkltYWdlKQogICAgICAgICBwYWludGVyLT5kcmF3SW1hZ2UoUVBvaW50KGZyYW1lUmVjdCgp
LngoKSArIGV4cG9zZWRSZWN0LngoKSwgZnJhbWVSZWN0KCkueSgpICsgZXhwb3NlZFJlY3QueSgp
KSwgbV9pbWFnZSwgZXhwb3NlZFJlY3QpOwogfQotI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6
cGFpbnRVc2luZ1hQaXhtYXAoUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFSZWN0ICZleHBvc2Vk
UmVjdCkKIHsKQEAgLTI4NCwxMiArMjg5LDEyIEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRVc2lu
Z1hQaXhtYXAoUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFSZWN0ICZleHBvc2VkUmVjdCkKICAg
ICAgICAgUVBpeG1hcCogYmFja2luZ1N0b3JlUGl4bWFwID0gc3RhdGljX2Nhc3Q8UVBpeG1hcCo+
KGJhY2tpbmdTdG9yZURldmljZSk7CiAKICAgICAgICAgLy8gV2UgY2Fubm90IGdyYWIgY29udGVu
dHMgZnJvbSB0aGUgYmFja2luZyBzdG9yZSB3aGVuIHBhaW50aW5nIG9uIFFHcmFwaGljc1ZpZXcg
aXRlbXMKLSAgICAgICAgLy8gKGJlY2F1c2UgYmFja2luZyBzdG9yZSBjb250ZW50cyBhcmUgYWxy
ZWFkeSB0cmFuc2Zvcm1lZCkuIFdoYXQgd2UgcmVhbGx5IG1lYW4gdG8gZG8gCisgICAgICAgIC8v
IChiZWNhdXNlIGJhY2tpbmcgc3RvcmUgY29udGVudHMgYXJlIGFscmVhZHkgdHJhbnNmb3JtZWQp
LiBXaGF0IHdlIHJlYWxseSBtZWFuIHRvIGRvCiAgICAgICAgIC8vIGhlcmUgaXMgdG8gY2hlY2sg
aWYgd2UgYXJlIHBhaW50aW5nIG9uIFFXZWJWaWV3LCBidXQgbGV0J3MgYmUgYSBsaXR0bGUgcGVy
bWlzc2l2ZSA6KQogICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFt
ZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwogICAgICAgICBj
b25zdCBib29sIGJhY2tpbmdTdG9yZUhhc1VudHJhbnNmb3JtZWRDb250ZW50cyA9IGNsaWVudCAm
JiBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KGNsaWVudC0+cGx1Z2luUGFyZW50KCkpOwogCi0gICAg
ICAgIGlmIChoYXNWYWxpZEJhY2tpbmdTdG9yZSAmJiBiYWNraW5nU3RvcmVQaXhtYXAtPmRlcHRo
KCkgPT0gZHJhd2FibGVEZXB0aCAKKyAgICAgICAgaWYgKGhhc1ZhbGlkQmFja2luZ1N0b3JlICYm
IGJhY2tpbmdTdG9yZVBpeG1hcC0+ZGVwdGgoKSA9PSBkcmF3YWJsZURlcHRoCiAgICAgICAgICAg
ICAmJiBiYWNraW5nU3RvcmVIYXNVbnRyYW5zZm9ybWVkQ29udGVudHMpIHsKICAgICAgICAgICAg
IEdDIGdjID0gWERlZmF1bHRHQyhRWDExSW5mbzo6ZGlzcGxheSgpLCBRWDExSW5mbzo6YXBwU2Ny
ZWVuKCkpOwogICAgICAgICAgICAgWENvcHlBcmVhKFFYMTFJbmZvOjpkaXNwbGF5KCksIGJhY2tp
bmdTdG9yZVBpeG1hcC0+aGFuZGxlKCksIG1fZHJhd2FibGUsIGdjLApAQCAtMzIyLDYgKzMyNyw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRVc2luZ1hQaXhtYXAoUVBhaW50ZXIqIHBhaW50ZXIs
IGNvbnN0IFFSZWN0ICZleHBvc2VkUmVjdCkKIAogICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBv
aW50KGV4cG9zZWRSZWN0LngoKSwgZXhwb3NlZFJlY3QueSgpKSwgcXREcmF3YWJsZSwgZXhwb3Nl
ZFJlY3QpOwogfQorI2VuZGlmICAgIAogCiB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKQEAgLTM0Myw2ICszNDks
NyBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyNpZmRlZiBRX1dT
X1gxMQogICAgIGlmICghbV9kcmF3YWJsZQogI2lmIGRlZmluZWQoTU9aX1BMQVRGT1JNX01BRU1P
KSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCiAgICAgICAgICYmIG1faW1hZ2UuaXNOdWxs
KCkKQEAgLTM2NCw3ICszNzEsMTMgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICBwYWludGVyLT50cmFu
c2xhdGUoZnJhbWVSZWN0KCkueCgpLCBmcmFtZVJlY3QoKS55KCkpOwogICAgIHBhaW50VXNpbmdY
UGl4bWFwKHBhaW50ZXIsIGV4cG9zZWRSZWN0KTsKKwogICAgIHBhaW50ZXItPnRyYW5zbGF0ZSgt
ZnJhbWVSZWN0KCkueCgpLCAtZnJhbWVSZWN0KCkueSgpKTsKKworI2VsaWYgZGVmaW5lZChYUF9E
RkIpCisgICAgaWYgKG1fcGx1Z2luVmlld1F0REZCKQorICAgICAgICBtX3BsdWdpblZpZXdRdERG
Qi0+cGFpbnQoY29udGV4dCwgcmVjdCk7CisjZW5kaWYgICAgCiB9CiAKIC8vIFRPRE86IFVuaWZ5
IGFjcm9zcyBwb3J0cy4KQEAgLTM4NSw2ICszOTgsNyBAQCBib29sIFBsdWdpblZpZXc6OmRpc3Bh
dGNoTlBFdmVudChOUEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKKyNp
ZmRlZiBRX1dTX1gxMQogdm9pZCBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoWEV2ZW50KiB4RXZlbnQs
IFFXaWRnZXQqIG93bmVyV2lkZ2V0KQogewogICAgIHhFdmVudC0+eGFueS5zZXJpYWwgPSAwOyAv
LyB3ZSBhcmUgdW5hd2FyZSBvZiB0aGUgbGFzdCByZXF1ZXN0IHByb2Nlc3NlZCBieSBYIFNlcnZl
cgpAQCAtNDM5LDYgKzQ1Myw3IEBAIHZvaWQgc2V0WEtleUV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2
ZW50KiB4RXZlbnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIHhFdmVudC0+eGtleS54X3Jv
b3QgPSAwOwogICAgIHhFdmVudC0+eGtleS55X3Jvb3QgPSAwOwogfQorI2VuZGlmCiAKIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsK
QEAgLTQ0OCwxNCArNDYzLDIwIEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVu
dChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXVw
RXZlbnQpCiAgICAgICAgIHJldHVybjsKIAorI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2ZW50IG5w
RXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtleUV2ZW50U3BlY2lm
aWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsKIAogICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5w
RXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyNlbGlmIGRlZmlu
ZWQoWFBfREZCKQorICAgIGlmICghbV9wbHVnaW5WaWV3UXRERkIgfHwgIW1fcGx1Z2luVmlld1F0
REZCLT5kaXNwYXRjaEV2ZW50KGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5k
bGVkKCk7CisjZW5kaWYKIH0KIAorI2lmZGVmIFFfV1NfWDExCiBzdGF0aWMgdW5zaWduZWQgaW50
IGlucHV0RXZlbnRTdGF0ZShNb3VzZUV2ZW50KiBldmVudCkKIHsKICAgICB1bnNpZ25lZCBpbnQg
c3RhdGUgPSAwOwpAQCAtNTMwLDYgKzU1MSw3IEBAIHN0YXRpYyB2b2lkIHNldFhDcm9zc2luZ0V2
ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50KiB4RXZlbnQsIE1vdXNlRXZlbnQqIGV2ZW50LCBjCiAg
ICAgeGNyb3NzaW5nLnNhbWVfc2NyZWVuID0gdHJ1ZTsKICAgICB4Y3Jvc3NpbmcuZm9jdXMgPSBm
YWxzZTsKIH0KKyNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91
c2VFdmVudCogZXZlbnQpCiB7CkBAIC01NDYsNyArNTY4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpo
YW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogCiAgICAgICAgIGZvY3VzUGx1Z2lu
RWxlbWVudCgpOwogICAgIH0KLQorI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2ZW50IG5wRXZlbnQ7
CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTU2MywxMCArNTg1LDE1IEBAIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIAogICAgIGlm
ICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKKyNlbGlmIGRlZmluZWQoWFBfREZCKQorICAgIGlmICghbV9wbHVnaW5WaWV3UXRE
RkIgfHwgIW1fcGx1Z2luVmlld1F0REZCLT5kaXNwYXRjaEV2ZW50KGV2ZW50KSkKKyAgICAgICAg
ZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3
OjpoYW5kbGVGb2N1c0luRXZlbnQoKQogeworI2lmZGVmIFFfV1NfWDExCiAgICAgWEV2ZW50IG5w
RXZlbnQ7CiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAKQEAgLTU3NiwxMCArNjAzLDE1IEBA
IHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNJbkV2ZW50KCkKICAgICBldmVudC5kZXRhaWwg
PSBOb3RpZnlEZXRhaWxOb25lOwogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpOworI2Vs
aWYgZGVmaW5lZChYUF9ERkIpCisgICAgaWYgKG1fcGx1Z2luVmlld1F0REZCKQorICAgICAgICBt
X3BsdWdpblZpZXdRdERGQi0+ZGlzcGF0Y2hFdmVudChQbHVnaW5WaWV3UXRERkI6OkZvY3VzSW4p
OworI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRm9jdXNPdXRFdmVudCgpCiB7
CisjaWZkZWYgUV9XU19YMTEKICAgICBYRXZlbnQgbnBFdmVudDsKICAgICBpbml0WEV2ZW50KCZu
cEV2ZW50KTsKIApAQCAtNTg5LDYgKzYyMSwxMCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZv
Y3VzT3V0RXZlbnQoKQogICAgIGV2ZW50LmRldGFpbCA9IE5vdGlmeURldGFpbE5vbmU7CiAKICAg
ICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7CisjZWxpZiBkZWZpbmVkKFhQX0RGQikKKyAgICBp
ZiAobV9wbHVnaW5WaWV3UXRERkIpCisgICAgICAgIG1fcGx1Z2luVmlld1F0REZCLT5kaXNwYXRj
aEV2ZW50KFBsdWdpblZpZXdRdERGQjo6Rm9jdXNJbik7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVn
aW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQpAQCAtNjE0LDYgKzY1MCw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgaWYgKG1fc3RhdHVz
ICE9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSkKICAgICAgICAgcmV0dXJuOwogCisj
aWZkZWYgUV9XU19YMTEKICAgICAvLyBPbiBVbml4LCBvbmx5IGNhbGwgcGx1Z2luIGlmIGl0J3Mg
ZnVsbC1wYWdlIG9yIHdpbmRvd2VkCiAgICAgaWYgKG1fbW9kZSAhPSBOUF9GVUxMICYmIG1fbW9k
ZSAhPSBOUF9FTUJFRCkKICAgICAgICAgcmV0dXJuOwpAQCAtNjQ4LDEzICs2ODUsMTkgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgbV9ucFdpbmRvdy5j
bGlwUmVjdC50b3AgPSAwOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IDA7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQ2xpcHBpbmcgcmVjdGFuZ2xlIG9mIHRoZSBwbHVn
LWluOyB0aGUgb3JpZ2luIGlzIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGRyYXdhYmxlIG9y
IHdpbmRvdy4gCisgICAgICAgIC8vIENsaXBwaW5nIHJlY3RhbmdsZSBvZiB0aGUgcGx1Zy1pbjsg
dGhlIG9yaWdpbiBpcyB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBkcmF3YWJsZSBvciB3aW5k
b3cuCiAgICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QubGVmdCA9IG1fbnBXaW5kb3cueCArIG1f
Y2xpcFJlY3QueCgpOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IG1fbnBXaW5k
b3cueSArIG1fY2xpcFJlY3QueSgpOwogICAgICAgICBtX25wV2luZG93LmNsaXBSZWN0LnJpZ2h0
ID0gbV9ucFdpbmRvdy54ICsgbV9jbGlwUmVjdC54KCkgKyBtX2NsaXBSZWN0LndpZHRoKCk7CiAg
ICAgICAgIG1fbnBXaW5kb3cuY2xpcFJlY3QuYm90dG9tID0gbV9ucFdpbmRvdy55ICsgbV9jbGlw
UmVjdC55KCkgKyBtX2NsaXBSZWN0LmhlaWdodCgpOwogICAgIH0KIAorI2VsaWYgZGVmaW5lZChY
UF9ERkIpCisgICAgaWYgKG1fcGx1Z2luVmlld1F0REZCKSB7CisgICAgICAgIG1faGFzUGVuZGlu
Z0dlb21ldHJ5Q2hhbmdlID0gdHJ1ZTsKKyAgICAgICAgbV9wbHVnaW5WaWV3UXRERkItPnNldE5Q
V2luZG93SWZOZWVkZWQoKTsKKyAgICB9CisjZW5kaWYKICAgICBpZiAobV9wbHVnaW4tPnF1aXJr
cygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udENhbGxTZXRXaW5kb3dNb3JlVGhhbk9uY2UpKSB7
CiAgICAgICAgIC8vIEZMQVNIIFdPUktBUk9VTkQ6IE9ubHkgc2V0IGluaXRpYWxseS4gTXVsdGlw
bGUgY2FsbHMgdG8KICAgICAgICAgLy8gc2V0TlBXaW5kb3coKSBjYXVzZSB0aGUgcGx1Z2luIHRv
IGNyYXNoIGluIHdpbmRvd2VkIG1vZGUuCkBAIC03MjIsMTAgKzc2NSwxMiBAQCBib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQq
IHZhbHVlLCBOUEVycgogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAg
IHJldHVybiB0cnVlOwogCisjaWZkZWYgUV9XU19YMTEKICAgICBjYXNlIE5QTlZTdXBwb3J0c1hF
bWJlZEJvb2w6CiAgICAgICAgICpzdGF0aWNfY2FzdDxOUEJvb2wqPih2YWx1ZSkgPSB0cnVlOwog
ICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIHJldHVybiB0cnVlOwor
I2VuZGlmCiAKICAgICBjYXNlIE5QTlZqYXZhc2NyaXB0RW5hYmxlZEJvb2w6CiAgICAgICAgICpz
dGF0aWNfY2FzdDxOUEJvb2wqPih2YWx1ZSkgPSB0cnVlOwpAQCAtNzM3LDcgKzc4Miw3IEBAIGJv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJs
ZSwgdm9pZCogdmFsdWUsIE5QRXJyCiAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSNpZiBkZWZpbmVkKE1PWl9QTEFURk9STV9NQUVNTykg
JiYgKE1PWl9QTEFURk9STV9NQUVNTyA+PSA1KQorI2lmIGRlZmluZWQoUV9XU19YMTEpICYmIGRl
ZmluZWQoTU9aX1BMQVRGT1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCiAg
ICAgY2FzZSBOUE5WU3VwcG9ydHNXaW5kb3dsZXNzTG9jYWw6CiAgICAgICAgICpzdGF0aWNfY2Fz
dDxOUEJvb2wqPih2YWx1ZSkgPSB0cnVlOwogICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJS
T1I7CkBAIC03NTEsNiArNzk2LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVl
U3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKIAogYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSwgTlBFcnJvciogcmVzdWx0KQogeworI2lmZGVmIFFfV1NfWDExCiAgICAgc3dpdGNoICh2
YXJpYWJsZSkgewogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgogICAgICAgICAqKHZvaWQgKiopdmFs
dWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwpAQCAtNzgwLDExICs4MjYsMTQgQEAgYm9vbCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1
ZSwgTlBFcnJvciogcmUKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQorI2VsaWYgZGVmaW5lZChYUF9ERkIpCisgICAgcmV0dXJuIG1fcGx1Z2luVmlld1F0REZCICYm
IG1fcGx1Z2luVmlld1F0REZCLT5wbGF0Zm9ybUdldFZhbHVlKHZhcmlhYmxlLCB2YWx1ZSwgcmVz
dWx0KTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiAh
VVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBpZiAobV9wbGF0Zm9ybUxheWVyKSB7CiAgICAgICAgIG1fcGxhdGZvcm1MYXllci0+dXBkYXRl
KFFSZWN0RihyZWN0KSk7CiAgICAgICAgIHJldHVybjsKQEAgLTgyMSw2ICs4NzAsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KCkKICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKKyNpZmRl
ZiBRX1dTX1gxMQogc3RhdGljIERpc3BsYXkgKmdldFBsdWdpbkRpc3BsYXkoKQogewogICAgIC8v
IFRoZSBwbHVnaW4gdG9vbGtpdCBtaWdodCBydW4gdXNpbmcgYSBkaWZmZXJlbnQgWCBjb25uZWN0
aW9uLiBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5CkBAIC04ODYsMTIgKzkzNiwxNCBAQCBzdGF0aWMg
dm9pZCBnZXRWaXN1YWxBbmRDb2xvcm1hcChpbnQgZGVwdGgsIFZpc3VhbCAqKnZpc3VhbCwgQ29s
b3JtYXAgKmNvbG9ybWFwKQogICAgIGlmICgqdmlzdWFsKQogICAgICAgICAqY29sb3JtYXAgPSBY
Q3JlYXRlQ29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgUVgxMUluZm86OmFwcFJvb3RXaW5k
b3coKSwgKnZpc3VhbCwgQWxsb2NOb25lKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CiAgICAgQVNTRVJU
KG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiAKKyNpZmRlZiBR
X1dTX1gxMQogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+Z2V0dmFsdWUpIHsKICAg
ICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7CiAjaWYgVVNFKEpT
QykKQEAgLTkxOCw5ICs5NzAsOSBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQog
ICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldCgwKTsKICAgICAgICAgbV9wbHVnaW5EaXNwbGF5ID0g
Z2V0UGx1Z2luRGlzcGxheSgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiAhVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAgICAgaWYgKG1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5h
bGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKLSAgICAgICAgICAgICYmIG1fcGFyZW50RnJh
bWUtPnBhZ2UoKS0+c2V0dGluZ3MoKSAKKyAgICAgICAgICAgICYmIG1fcGFyZW50RnJhbWUtPnBh
Z2UoKS0+c2V0dGluZ3MoKQogICAgICAgICAgICAgJiYgbV9wYXJlbnRGcmFtZS0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpKSB7CiAgICAgICAgICAg
ICBtX3BsYXRmb3JtTGF5ZXIgPSBuZXcgUGx1Z2luR3JhcGhpY3NMYXllclF0KHRoaXMpOwogICAg
ICAgICAgICAgLy8gVHJpZ2dlciBsYXllciBjb21wdXRhdGlvbiBpbiBSZW5kZXJMYXllckNvbXBv
c2l0b3IKQEAgLTkyOCw5ICs5ODAsMjkgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0
KCkKICAgICAgICAgfQogI2VuZGlmCiAgICAgfQorI2VsaWYgZGVmaW5lZChYUF9ERkIpCisgICAg
aWYgKG1faXNXaW5kb3dlZCkgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICBt
X3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBtX3BsdWdpblZpZXdRdERGQiA9IFBsdWdpblZpZXdRdERGQjo6
Y3JlYXRlKHRoaXMpOworCisgICAgaWYgKCFtX3BsdWdpblZpZXdRdERGQikgeworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZWxzZQorICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2lu
OworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogCiAgICAgc2hvdygpOwogCisjaWZkZWYgUV9X
U19YMTEKICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiB3c2kgPSBuZXcgTlBTZXRXaW5k
b3dDYWxsYmFja1N0cnVjdCgpOwogICAgIHdzaS0+dHlwZSA9IDA7CiAKQEAgLTk3Miw2ICsxMDQ0
LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICB9CiAKICAgICBtX25w
V2luZG93LndzX2luZm8gPSB3c2k7CisjZW5kaWYKIAogICAgIGlmICghKG1fcGx1Z2luLT5xdWly
a3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxsKSkpIHsKICAg
ICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7CkBAIC05ODYsMTEgKzEwNTksMTggQEAgdm9pZCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdl
dCgpKQogICAgICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIAorI2lmZGVmIFFf
V1NfWDExCiAgICAgaWYgKG1fZHJhd2FibGUpCiAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZv
OjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwogCiAgICAgaWYgKG1fY29sb3JtYXApCiAgICAgICAg
IFhGcmVlQ29sb3JtYXAoUVgxMUluZm86OmRpc3BsYXkoKSwgbV9jb2xvcm1hcCk7CisjZWxpZiBk
ZWZpbmVkKFhQX0RGQikKKyAgICBpZiAobV9wbHVnaW5WaWV3UXRERkIpIHsKKyAgICAgICAgZGVs
ZXRlIG1fcGx1Z2luVmlld1F0REZCOworICAgICAgICBtX3BsdWdpblZpZXdRdERGQiA9IDA7Cisg
ICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFsdCgpCkBAIC0xMDAwLDggKzEw
ODAsOCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbHQoKQogdm9pZCBQbHVnaW5WaWV3OjpyZXN0YXJ0
KCkKIHsKIH0KLSAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpICYmIFBMQVRGT1JNKFFUKSAmJiAhZGVmaW5lZChYUF9ERkIpCiBQ
bGF0Zm9ybUxheWVyKiBQbHVnaW5WaWV3OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9wbGF0Zm9ybUxheWVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdERGQi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0
REZCLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMjBiNjY4NzhjNDQ3OThjMjczYTUwY2I2MDU0MjczNmJjYTRi
NDgxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdERG
Qi5jcHAKQEAgLTAsMCArMSw4MTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kZXJz
IEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbHVnaW5WaWV3UXRERkIuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVk
ZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgorI2luY2x1
ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVk
ZSA8UUdyYXBoaWNzVmlldz4KKyNpbmNsdWRlIDxRR3JhcGhpY3NXZWJWaWV3PgorI2luY2x1ZGUg
PFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTW91c2VFdmVudD4KKyNpbmNsdWRlIDxRVmFyaWFudD4K
KyNpbmNsdWRlIDxRV2lkZ2V0PgorCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2V4dGVybiBRX0dVSV9F
WFBPUlQgSURpcmVjdEZCU3VyZmFjZSogcXRfZGlyZWN0ZmJfc3VyZmFjZV9mb3JfcGl4bWFwKGNv
bnN0IFFQaXhtYXAgJnBpeG1hcCk7CitRVF9FTkRfTkFNRVNQQUNFCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK3ZvaWQgUGx1Z2luVmlld1F0REZCOjpjbGVhcldpbmRvd0luZm8oUGx1Z2luVmlld1F0
REZCOjpERkJXaW5kb3dJbmZvICp3aW5kb3dJbmZvKQoreworICAgIGlmICh3aW5kb3dJbmZvLT53
aW5kb3cpCisgICAgICAgIHdpbmRvd0luZm8tPndpbmRvdy0+UmVsZWFzZSh3aW5kb3dJbmZvLT53
aW5kb3cpOworICAgIGlmICh3aW5kb3dJbmZvLT5sYXllcikKKyAgICAgICAgd2luZG93SW5mby0+
bGF5ZXItPlJlbGVhc2Uod2luZG93SW5mby0+bGF5ZXIpOworICAgIGlmICh3aW5kb3dJbmZvLT5k
ZmIpCisgICAgICAgIHdpbmRvd0luZm8tPmRmYi0+UmVsZWFzZSh3aW5kb3dJbmZvLT5kZmIpOwor
fQorCitQbHVnaW5WaWV3UXRERkI6OlBsdWdpblZpZXdRdERGQihQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBERkJX
aW5kb3dJbmZvJiB3aW5kb3dJbmZvKQorICAgIDogbV9wbHVnaW5WaWV3KHBsdWdpblZpZXcpLCBt
X2RmYlN1cmZhY2UoMCksIG1faW5zdGFsbGVkRXZlbnRGaWx0ZXIoZmFsc2UpLCBtX2RmYldpbmRv
d0luZm8od2luZG93SW5mbykKK3sKK30KKworUGx1Z2luVmlld1F0REZCOjp+UGx1Z2luVmlld1F0
REZCKCkKK3sKKyAgICBjbGVhcldpbmRvd0luZm8oJm1fZGZiV2luZG93SW5mbyk7Cit9CisKK1Bs
dWdpblZpZXdRdERGQiogUGx1Z2luVmlld1F0REZCOjpjcmVhdGUoUGx1Z2luVmlldyogcGx1Z2lu
VmlldykKK3sKKyAgICBBU1NFUlQocGx1Z2luVmlldyk7CisgICAgUVdlYlBhZ2VDbGllbnQqIGNs
aWVudCA9IHBsdWdpblZpZXctPm1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCB8fCAhY2xpZW50LT5vd25lcldp
ZGdldCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIERGQldpbmRvd0luZm8gd2luZG93SW5m
byA9IHsgMCwgMCwgMCB9OworICAgIERGQlJlc3VsdCByZXN1bHQgPSBEaXJlY3RGQkNyZWF0ZSgm
d2luZG93SW5mby5kZmIpOworICAgIGlmIChyZXN1bHQgIT0gREZCX09LKSB7CisgICAgICAgIERp
cmVjdEZCRXJyb3IoIlBsdWdpblZpZXdRdERGQjo6Y3JlYXRlIiwgcmVzdWx0KTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgcmVzdWx0ID0gd2luZG93SW5mby5kZmItPkdldERpc3Bs
YXlMYXllcih3aW5kb3dJbmZvLmRmYiwgRExJRF9QUklNQVJZLCAmd2luZG93SW5mby5sYXllcik7
CisgICAgaWYgKHJlc3VsdCAhPSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1
Z2luVmlld1F0REZCOjpjcmVhdGUiLCByZXN1bHQpOworICAgICAgICBjbGVhcldpbmRvd0luZm8o
JndpbmRvd0luZm8pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXN1bHQgPSB3
aW5kb3dJbmZvLmxheWVyLT5HZXRXaW5kb3cod2luZG93SW5mby5sYXllciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LT5vd25lcldpZGdldCgpLT5wcm9w
ZXJ0eSgiX3FfRGlyZWN0RkJXaW5kb3dJRCIpLnRvSW50KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZ3aW5kb3dJbmZvLndpbmRvdyk7CisgICAgaWYgKHJlc3Vs
dCAhPSBERkJfT0spIHsKKyAgICAgICAgRGlyZWN0RkJFcnJvcigiUGx1Z2luVmlld1F0REZCOjpj
cmVhdGUiLCByZXN1bHQpOworICAgICAgICBjbGVhcldpbmRvd0luZm8oJndpbmRvd0luZm8pOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IFBsdWdpblZpZXdRdERG
QihwbHVnaW5WaWV3LCB3aW5kb3dJbmZvKTsKK30KKwordm9pZCBQbHVnaW5WaWV3UXRERkI6OnBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAg
ICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBzaXplb2YoREZC
RXZlbnQpKTsKKyAgICBERkJVc2VyRXZlbnQmIHVzZXJFdmVudCA9IGRmYkV2ZW50LnVzZXI7Cisg
ICAgdXNlckV2ZW50LmNsYXp6ID0gREZFQ19VU0VSOworICAgIHVzZXJFdmVudC50eXBlID0gMHhk
ZmI7CisgICAgdXNlckV2ZW50LmRhdGEgPSAmbV9wbHVnaW5WaWV3LT5tX25wV2luZG93OworICAg
IG1fcGx1Z2luVmlldy0+ZGlzcGF0Y2hOUEV2ZW50KGRmYkV2ZW50KTsKKyAgICBRUGFpbnRlciog
cGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworICAgIEludFJlY3QgZXhwb3Nl
ZFJlY3QocmVjdCk7CisgICAgY29uc3QgSW50UmVjdCBmcmFtZVJlY3QgPSBtX3BsdWdpblZpZXct
PmZyYW1lUmVjdCgpOworICAgIGV4cG9zZWRSZWN0LmludGVyc2VjdChmcmFtZVJlY3QpOworICAg
IGV4cG9zZWRSZWN0Lm1vdmUoLWZyYW1lUmVjdC54KCksIC1mcmFtZVJlY3QueSgpKTsKKyAgICBj
b25zdCBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlIG9sZE1vZGUgPSBwYWludGVyLT5jb21wb3Np
dGlvbk1vZGUoKTsKKyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNv
bXBvc2l0aW9uTW9kZV9Tb3VyY2UpOworICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoUVBvaW50KGZy
YW1lUmVjdC54KCkgKyBleHBvc2VkUmVjdC54KCksIGZyYW1lUmVjdC55KCkgKyBleHBvc2VkUmVj
dC55KCkpLCBtX3BpeG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZWRSZWN0KTsK
KyAgICBwYWludGVyLT5zZXRDb21wb3NpdGlvbk1vZGUob2xkTW9kZSk7Cit9CisKK2Jvb2wgUGx1
Z2luVmlld1F0REZCOjpkaXNwYXRjaEV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KQor
eworICAgIGNvbnN0IFFLZXlFdmVudCogcXRFdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpLT5xdEV2
ZW50KCk7CisgICAgREZCRXZlbnQgZGZiRXZlbnQ7CisgICAgbWVtc2V0KCZkZmJFdmVudCwgMCwg
c2l6ZW9mKERGQkV2ZW50KSk7CisgICAgREZCSW5wdXRFdmVudCYgaW5wdXQgPSBkZmJFdmVudC5p
bnB1dDsKKyAgICBpbnB1dC5jbGF6eiA9IERGRUNfSU5QVVQ7CisgICAgaW5wdXQudHlwZSA9IChx
dEV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpLZXlQcmVzcyA/IERJRVRfS0VZUFJFU1MgOiBESUVU
X0tFWVJFTEVBU0UpOworICAgIHVuc2lnbmVkIGludCBmbGFncyA9IChESUVGX0tFWVNZTUJPTCB8
IERJRUZfTU9ESUZJRVJTKTsKKyAgICBpZiAocXRFdmVudC0+aXNBdXRvUmVwZWF0KCkpCisgICAg
ICAgIGZsYWdzIHw9IERJRUZfUkVQRUFUOworICAgIGNvbnN0IFF0OjpLZXlib2FyZE1vZGlmaWVy
IG1vZGlmaWVyc1tdID0geyBRdDo6U2hpZnRNb2RpZmllciwgUXQ6OkNvbnRyb2xNb2RpZmllciwg
UXQ6OkFsdE1vZGlmaWVyLCBRdDo6TWV0YU1vZGlmaWVyIH07CisgICAgY29uc3QgREZCSW5wdXRE
ZXZpY2VNb2RpZmllck1hc2sgZGZiTW9kaWZpZXJzW10gPSB7IERJTU1fU0hJRlQsIERJTU1fQ09O
VFJPTCwgRElNTV9BTFQsIERJTU1fTUVUQSB9OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsg
KytpKSB7CisgICAgICAgIGlmIChxdEV2ZW50LT5tb2RpZmllcnMoKSAmIG1vZGlmaWVyc1tpXSkK
KyAgICAgICAgICAgIGlucHV0Lm1vZGlmaWVycyA9IERGQklucHV0RGV2aWNlTW9kaWZpZXJNYXNr
KGlucHV0Lm1vZGlmaWVycyB8IGRmYk1vZGlmaWVyc1tpXSk7CisgICAgfQorICAgIHN3aXRjaCAo
cXRFdmVudC0+a2V5KCkpIHsKKyAgICBjYXNlIFF0OjpLZXlfQmFja3NwYWNlOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19CQUNLU1BBQ0U7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfQkFDS1NQQUNFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfVGFiOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19UQUI7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfVEFCOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUmV0dXJuOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19SRVRVUk47CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfS1BfRU5URVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9F
c2NhcGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0VTQ0FQRTsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV9FU0NBUEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9EZWxldGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFTEVURTsKKyAg
ICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9ERUxFVEU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9MZWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJTT1Jf
TEVGVDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9MRUZUOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFF0OjpLZXlfUmlnaHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X0NVUlNPUl9SSUdIVDsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9SSUdIVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1VwOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19DVVJTT1JfVVA7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfVVA7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Eb3duOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19DVVJTT1JfRE9XTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9ET1dO
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSW5zZXJ0OgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19JTlNFUlQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
SU5TRVJUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSG9tZToKKyAgICAgICAg
aW5wdXQua2V5X3N5bWJvbCA9IERJS1NfSE9NRTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElL
SV9IT01FOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRW5kOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19FTkQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
RU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfUGFnZVVwOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19QQUdFX1VQOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX1BBR0VfVVA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYWdlRG93bjoK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEFHRV9ET1dOOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX1BBR0VfRE9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1ByaW50OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QUklOVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BhdXNlOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19QQVVTRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbGVj
dDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU0VMRUNUOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfT3BlblVybDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfR09UTzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NsZWFyOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DTEVBUjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X01lbnU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX01FTlU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IZWxwOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19IRUxQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
SG9tZVBhZ2U6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0lOVEVSTkVUOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTGF1bmNoTWFpbDoKKyAgICAgICAgaW5wdXQu
a2V5X3N5bWJvbCA9IERJS1NfTUFJTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X0Zhdm9yaXRlczoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRkFWT1JJVEVTOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQmFjazoKKyAgICAgICAgaW5wdXQua2V5
X3N5bWJvbCA9IERJS1NfQkFDSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Zv
cndhcmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0ZPUldBUkQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVVcDoKKyAgICAgICAgaW5wdXQua2V5X3N5
bWJvbCA9IERJS1NfVk9MVU1FX1VQOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
Vm9sdW1lRG93bjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfVk9MVU1FX0RPV047
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Wb2x1bWVNdXRlOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19NVVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfTWVkaWFQbGF5OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QTEFZOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWVkaWFTdG9wOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19TVE9QOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfTWVkaWFSZWNvcmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1JFQ09SRDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X01lZGlhUHJldmlvdXM6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1BSRVZJT1VTOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFF0OjpLZXlfTWVkaWFOZXh0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19O
RVhUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjE6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX0YxOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YxOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjI6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTX0YyOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YyOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0YzOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0YzOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRjQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtT
X0Y0OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0Y0OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfRjU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y1Owor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0Y1OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFF0OjpLZXlfRjY6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y2OworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpL
ZXlfRjc6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y3OworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0Y3OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjg6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y4OworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX0Y4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjk6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0Y5OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX0Y5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjEwOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19GMTA7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
RjEwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjExOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19GMTE7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjEx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRjEyOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19GMTI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfRjEyOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfU2hpZnQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1NISUZUOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1NISUZU
X0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Db250cm9sOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19DT05UUk9MOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX0NPTlRST0xfTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FsdDoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQUxUOworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJX0FMVF9MOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQWx0R3I6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0FMVEdSOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFF0OjpLZXlfTWV0YToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTUVU
QTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9NRVRBX0w7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9TdXBlcl9MOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19TVVBFUjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9TVVBFUl9MOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFF0OjpLZXlfSHlwZXJfTDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfSFlQRVI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfSFlQRVJfTDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NhcHNMb2NrOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19DQVBTX0xPQ0s7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
Q0FQU19MT0NLOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTnVtTG9jazoKKyAg
ICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfTlVNX0xPQ0s7CisgICAgICAgIGlucHV0Lmtl
eV9pZCA9IERJS0lfTlVNX0xPQ0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9T
Y3JvbGxMb2NrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TQ1JPTExfTE9DSzsK
KyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9TQ1JPTExfTE9DSzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfQWJvdmVkb3Q6CisgICAgICAgIGlucHV0LmtleV9zeW1i
b2wgPSBESUtTX0RFQURfQUJPVkVET1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9EZWFkX0Fib3ZlcmluZzoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9B
Qk9WRVJJTkc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0FjdXRlOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX0FDVVRFOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9CcmV2ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfREVBRF9CUkVWRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rl
YWRfQ2Fyb246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0FST047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9EZWFkX0NlZGlsbGE6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfQ0VESUxMQTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0RlYWRfQ2lyY3VtZmxleDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9
IERJS1NfREVBRF9DSVJDVU1GTEVYOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlf
RGVhZF9EaWFlcmVzaXM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURfRElB
RVJFU0lTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVhZF9Eb3VibGVhY3V0
ZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9ET1VCTEVBQ1VURTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfR3JhdmU6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX0RFQURfR1JBVkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9EZWFkX0lvdGE6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0RFQURf
SU9UQTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfTWFjcm9uOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX01BQ1JPTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfT2dvbmVrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19ERUFEX09HT05FSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Rl
YWRfU2VtaXZvaWNlZF9Tb3VuZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVB
RF9TRU1JVk9JQ0VEX1NPVU5EOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfRGVh
ZF9UaWxkZToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfREVBRF9USUxERTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0RlYWRfVm9pY2VkX1NvdW5kOgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19ERUFEX1ZPSUNFRF9TT1VORDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBRdDo6S2V5X1NwYWNlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19TUEFDRTsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9TUEFDRTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0V4Y2xhbToKKyAgICAgICAgaW5wdXQua2V5X3N5bWJv
bCA9IERJS1NfRVhDTEFNQVRJT05fTUFSSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5X1F1b3RlRGJsOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19RVU9UQVRJT047
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OdW1iZXJTaWduOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19OVU1CRVJfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRdDo6S2V5X0RvbGxhcjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfRE9M
TEFSX1NJR047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QZXJjZW50OgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19QRVJDRU5UX1NJR047CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9BbXBlcnNhbmQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0FNUEVSU0FORDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Fwb3N0
cm9waGU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0FQT1NUUk9QSEU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QYXJlbkxlZnQ6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTX1BBUkVOVEhFU0lTX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9QYXJlblJpZ2h0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19Q
QVJFTlRIRVNJU19SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0FzdGVy
aXNrOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19BU1RFUklTSzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1BsdXM6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1BMVVNfU0lHTjsKKyAgICAgICAgaWYgKHF0RXZlbnQtPm1vZGlmaWVycygpICYgUXQ6
OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9LUF9QTFVT
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfQ29tbWE6CisgICAgICAgIGlucHV0
LmtleV9zeW1ib2wgPSBESUtTX0NPTU1BOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0NP
TU1BOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0OjpLZXlfTWludXM6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTX01JTlVTX1NJR047CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfTUlOVVNfU0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1Blcmlv
ZDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfUEVSSU9EOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX1BFUklPRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5
X1NsYXNoOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTEFTSDsKKyAgICAgICAg
aW5wdXQua2V5X2lkID0gRElLSV9TTEFTSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6
S2V5XzA6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzA7CisgICAgICAgIGlucHV0
LmtleV9pZCA9IERJS0lfMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzE6Cisg
ICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzE7CisgICAgICAgIGlucHV0LmtleV9pZCA9
IERJS0lfMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzI6CisgICAgICAgIGlu
cHV0LmtleV9zeW1ib2wgPSBESUtTXzI7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfMjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzM6CisgICAgICAgIGlucHV0LmtleV9z
eW1ib2wgPSBESUtTXzM7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfMzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5XzQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBE
SUtTXzQ7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfNDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRdDo6S2V5XzU6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzU7Cisg
ICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBR
dDo6S2V5XzY6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzY7CisgICAgICAgIGlu
cHV0LmtleV9pZCA9IERJS0lfNjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzc6
CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzc7CisgICAgICAgIGlucHV0LmtleV9p
ZCA9IERJS0lfNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzg6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTXzg7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lf
ODsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5Xzk6CisgICAgICAgIGlucHV0Lmtl
eV9zeW1ib2wgPSBESUtTXzk7CisgICAgICAgIGlucHV0LmtleV9pZCA9IERJS0lfOTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0NvbG9uOgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19DT0xPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X1NlbWlj
b2xvbjoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU0VNSUNPTE9OOworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX1NFTUlDT0xPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBRdDo6S2V5X0xlc3M6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0xFU1NfVEhB
Tl9TSUdOOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0xFU1NfU0lHTjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0VxdWFsOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19FUVVBTFNfU0lHTjsKKyAgICAgICAgaW5wdXQua2V5X2lkID0gRElLSV9FUVVBTFNf
U0lHTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0dyZWF0ZXI6CisgICAgICAg
IGlucHV0LmtleV9zeW1ib2wgPSBESUtTX0dSRUFURVJfVEhBTl9TSUdOOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFF0OjpLZXlfUXVlc3Rpb246CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX1FVRVNUSU9OX01BUks7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9B
dDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQVQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9BOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFM
TF9BOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0E7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9COgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9C
OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0I7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9DOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9DOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9EOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9EOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX0Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9FOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9FOworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9GOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9GOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX0Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9H
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9HOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX0c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9IOgor
ICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9IOworICAgICAgICBpbnB1dC5r
ZXlfaWQgPSBESUtJX0g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9JOgorICAg
ICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9JOworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX0k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9KOgorICAgICAg
ICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9KOworICAgICAgICBpbnB1dC5rZXlfaWQg
PSBESUtJX0o7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9LOgorICAgICAgICBp
bnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9LOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBE
SUtJX0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9MOgorICAgICAgICBpbnB1
dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9MOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJ
X0w7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9NOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19TTUFMTF9NOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX007
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9OOgorICAgICAgICBpbnB1dC5rZXlf
c3ltYm9sID0gRElLU19TTUFMTF9OOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX047Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9POgorICAgICAgICBpbnB1dC5rZXlfc3lt
Ym9sID0gRElLU19TTUFMTF9POworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX087CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9QOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9s
ID0gRElLU19TTUFMTF9QOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1A7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9ROgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0g
RElLU19TTUFMTF9ROworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1E7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUXQ6OktleV9SOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElL
U19TTUFMTF9SOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1I7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUXQ6OktleV9TOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19T
TUFMTF9TOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1M7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUXQ6OktleV9UOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFM
TF9UOworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1Q7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUXQ6OktleV9VOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9V
OworICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1U7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUXQ6OktleV9WOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9WOwor
ICAgICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1Y7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UXQ6OktleV9XOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9XOworICAg
ICAgICBpbnB1dC5rZXlfaWQgPSBESUtJX1c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9YOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9YOworICAgICAg
ICBpbnB1dC5rZXlfaWQgPSBESUtJX1g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6Oktl
eV9ZOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9ZOworICAgICAgICBp
bnB1dC5rZXlfaWQgPSBESUtJX1k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9a
OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19TTUFMTF9aOworICAgICAgICBpbnB1
dC5rZXlfaWQgPSBESUtJX1o7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CcmFj
a2V0TGVmdDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNLRVRf
TEVGVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0JhY2tzbGFzaDoKKyAgICAg
ICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQkFDS1NMQVNIOworICAgICAgICBpbnB1dC5rZXlf
aWQgPSBESUtJX0JBQ0tTTEFTSDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRdDo6S2V5X0Jy
YWNrZXRSaWdodDoKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfU1FVQVJFX0JSQUNL
RVRfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9Bc2NpaUNpcmN1bToK
KyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERJS1NfQ0lSQ1VNRkxFWF9BQ0NFTlQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9VbmRlcnNjb3JlOgorICAgICAgICBpbnB1dC5r
ZXlfc3ltYm9sID0gRElLU19VTkRFUlNDT1JFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFF0
OjpLZXlfQnJhY2VMZWZ0OgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19DVVJMWV9C
UkFDS0VUX0xFRlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6OktleV9CYXI6CisgICAg
ICAgIGlucHV0LmtleV9zeW1ib2wgPSBESUtTX1ZFUlRJQ0FMX0JBUjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBRdDo6S2V5X0JyYWNlUmlnaHQ6CisgICAgICAgIGlucHV0LmtleV9zeW1ib2wg
PSBESUtTX0NVUkxZX0JSQUNLRVRfUklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUXQ6
OktleV9Bc2NpaVRpbGRlOgorICAgICAgICBpbnB1dC5rZXlfc3ltYm9sID0gRElLU19USUxERTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICgocXRFdmVudC0+bW9kaWZpZXJzKCkgJiBR
dDo6U2hpZnRNb2RpZmllcikgJiYgcXRFdmVudC0+a2V5KCkgPj0gUXQ6OktleV9BICYmIHF0RXZl
bnQtPmtleSgpIDw9IFF0OjpLZXlfWikKKyAgICAgICAgaW5wdXQua2V5X3N5bWJvbCA9IERGQklu
cHV0RGV2aWNlS2V5U3ltYm9sKChpbnB1dC5rZXlfc3ltYm9sIC0gRElLU19TTUFMTF9BKSArIERJ
S1NfQ0FQSVRBTF9BKTsKKyAgICBpZiAoaW5wdXQua2V5X2lkICE9IERJS0lfVU5LTk9XTikgewor
ICAgICAgICBmbGFncyB8PSBESUVGX0tFWUlEOworICAgICAgICBpZiAoaW5wdXQua2V5X2lkID49
IERJS0lfMCAmJiBpbnB1dC5rZXlfaWQgPD0gRElLSV85ICYmIHF0RXZlbnQtPm1vZGlmaWVycygp
ICYgUXQ6OktleXBhZE1vZGlmaWVyKQorICAgICAgICAgICAgaW5wdXQua2V5X2lkID0gREZCSW5w
dXREZXZpY2VLZXlJZGVudGlmaWVyKGlucHV0LmtleV9pZCAtIERJS0lfMCArIERJS0lfS1BfMCk7
CisgICAgfQorICAgIGlucHV0LmZsYWdzID0gREZCSW5wdXRFdmVudEZsYWdzKGZsYWdzKTsKKyAg
ICByZXR1cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZlbnQpOworfQorCiti
b29sIFBsdWdpblZpZXdRdERGQjo6ZGlzcGF0Y2hFdmVudChjb25zdCBNb3VzZUV2ZW50KiBldmVu
dCkKK3sKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAwLCBz
aXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gZGZiRXZlbnQu
d2luZG93OworICAgIG1fZGZiV2luZG93SW5mby53aW5kb3ctPkdldElEKG1fZGZiV2luZG93SW5m
by53aW5kb3csICZ3aW5kb3cud2luZG93X2lkKTsKKyAgICB3aW5kb3cuY2xhenogPSBERkVDX1dJ
TkRPVzsKKyAgICBJbnRQb2ludCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX3BsdWdp
blZpZXctPm1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNv
bHV0ZUxvY2F0aW9uKCkpKTsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
bW91c2VvdmVyRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRF
dmVudCkgeworICAgICAgICAvLyBlbnRlci9sZWF2ZQorICAgICAgICB3aW5kb3cudHlwZSA9IChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCA/IERXRVRfRU5URVIg
OiBEV0VUX0xFQVZFKTsKKyAgICAgICAgd2luZG93LnggPSBkZmJFdmVudC53aW5kb3cuY3ggPSBw
b3N0Wm9vbVBvcy54KCk7CisgICAgICAgIHdpbmRvdy55ID0gZGZiRXZlbnQud2luZG93LmN5ID0g
cG9zdFpvb21Qb3MueSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIG1vdXNlCisgICAgICAg
IHVuc2lnbmVkIGludCBtb2RpZmllcnMgPSAwOworICAgICAgICBpZiAoZXZlbnQtPmN0cmxLZXko
KSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX0NPTlRST0w7CisgICAgICAgIGlmIChl
dmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBESU1NX1NISUZUOwor
ICAgICAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJzIHw9IERJ
TU1fQUxUOworICAgICAgICBpZiAoZXZlbnQtPm1ldGFLZXkoKSkKKyAgICAgICAgICAgIG1vZGlm
aWVycyB8PSBESU1NX01FVEE7CisgICAgICAgIHdpbmRvdy5tb2RpZmllcnMgPSBERkJJbnB1dERl
dmljZU1vZGlmaWVyTWFzayhtb2RpZmllcnMpOworCisgICAgICAgIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZXVwRXZlbnQpIHsKKyAgICAgICAgICAgIHdpbmRvdy50eXBlID0gKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ID8gRFdFVF9CVVRUT05ET1dO
IDogRFdFVF9CVVRUT05VUCk7CisgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LT5idXR0b24oKSkg
eworICAgICAgICAgICAgY2FzZSBMZWZ0QnV0dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5i
dXR0b24gPSBESUJJX0xFRlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIE1pZGRsZUJ1dHRvbjoKKyAgICAgICAgICAgICAgICB3aW5kb3cuYnV0dG9uID0gRElCSV9N
SURETEU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJpZ2h0QnV0
dG9uOgorICAgICAgICAgICAgICAgIHdpbmRvdy5idXR0b24gPSBESUJJX1JJR0hUOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5idXR0b25zID0gREZCSW5w
dXREZXZpY2VCdXR0b25NYXNrKDApOworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgICAgICB3aW5kb3cudHlw
ZSA9IERXRVRfTU9USU9OOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LnggPSBwb3N0Wm9vbVBvcy54KCk7
CisgICAgd2luZG93LnkgPSBwb3N0Wm9vbVBvcy55KCk7CisgICAgY29uc3QgSW50UG9pbnQgYWJz
b2x1dGVMb2NhdGlvbiA9IGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCk7CisgICAgd2luZG93LmN4
ID0gYWJzb2x1dGVMb2NhdGlvbi54KCk7CisgICAgd2luZG93LmN5ID0gYWJzb2x1dGVMb2NhdGlv
bi55KCk7CisKKyAgICByZXR1cm4gbV9wbHVnaW5WaWV3LT5kaXNwYXRjaE5QRXZlbnQoZGZiRXZl
bnQpOworfQorCitib29sIFBsdWdpblZpZXdRdERGQjo6ZGlzcGF0Y2hFdmVudChFdmVudFR5cGUg
dHlwZSkKK3sKKyAgICBERkJFdmVudCBkZmJFdmVudDsKKyAgICBtZW1zZXQoJmRmYkV2ZW50LCAw
LCBzaXplb2YoREZCRXZlbnQpKTsKKyAgICBERkJXaW5kb3dFdmVudCYgd2luZG93ID0gZGZiRXZl
bnQud2luZG93OworICAgIHdpbmRvdy5jbGF6eiA9IERGRUNfV0lORE9XOworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgRm9jdXNJbjogd2luZG93LnR5cGUgPSBEV0VUX0dPVEZPQ1VTOyBi
cmVhazsKKyAgICBjYXNlIEZvY3VzT3V0OiB3aW5kb3cudHlwZSA9IERXRVRfTE9TVEZPQ1VTOyBi
cmVhazsKKyAgICBkZWZhdWx0OiByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiBtX3Bs
dWdpblZpZXctPmRpc3BhdGNoTlBFdmVudChkZmJFdmVudCk7Cit9CisKK2Jvb2wgUGx1Z2luVmll
d1F0REZCOjpldmVudEZpbHRlcihRT2JqZWN0KiAsIFFFdmVudCogZSkKK3sKKyAgICBpZiAoZS0+
dHlwZSgpID09IFFFdmVudDo6TW92ZSB8fCBlLT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUpIHsK
KyAgICAgICAgbV9wbHVnaW5WaWV3LT5tX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IHRydWU7
CisgICAgICAgIG1fdGltZXIuc3RhcnQoMTAsIHRoaXMpOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgUGx1Z2luVmlld1F0REZCOjp0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBl
KQoreworICAgIGlmIChlLT50aW1lcklkKCkgPT0gbV90aW1lci50aW1lcklkKCkpIHsKKyAgICAg
ICAgbV90aW1lci5zdG9wKCk7CisgICAgICAgIG1fcGx1Z2luVmlldy0+Zm9yY2VSZWRyYXcoKTsK
KyAgICB9Cit9CisKK3ZvaWQgUGx1Z2luVmlld1F0REZCOjpzZXROUFdpbmRvd0lmTmVlZGVkKCkK
K3sKKyAgICBRUG9pbnQgcGx1Z2luVmlld0dsb2JhbFBvcyA9IG1fcGx1Z2luVmlldy0+d2luZG93
Q2xpcFJlY3QoKS50b3BMZWZ0KCk7CisgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGx1
Z2luVmlldy0+bV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpOworICAgIGlmIChRV2lkZ2V0KiBvd25lcldpZGdldCA9IGNsaWVudCA/IGNsaWVu
dC0+b3duZXJXaWRnZXQoKSA6IDApIHsKKyAgICAgICAgaWYgKCFtX2luc3RhbGxlZEV2ZW50Rmls
dGVyKSB7CisgICAgICAgICAgICBRV2lkZ2V0KiB3YXRjaGVkID0gb3duZXJXaWRnZXQ7CisgICAg
ICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIHdhdGNoZWQtPmluc3RhbGxF
dmVudEZpbHRlcih0aGlzKTsKKyAgICAgICAgICAgICAgICBpZiAod2F0Y2hlZC0+aXNXaW5kb3co
KSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgd2F0Y2hlZCA9
IHdhdGNoZWQtPnBhcmVudFdpZGdldCgpOworICAgICAgICAgICAgICAgIGlmICghd2F0Y2hlZCkK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBt
X2luc3RhbGxlZEV2ZW50RmlsdGVyID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHBsdWdp
blZpZXdHbG9iYWxQb3MgPSBvd25lcldpZGdldC0+bWFwVG9HbG9iYWwocGx1Z2luVmlld0dsb2Jh
bFBvcyk7CisgICAgICAgIGlmIChjb25zdCBRR3JhcGhpY3NXZWJWaWV3KiBpdGVtID0gcW9iamVj
dF9jYXN0PGNvbnN0IFFHcmFwaGljc1dlYlZpZXcqPihjbGllbnQtPnBsdWdpblBhcmVudCgpKSkg
eworICAgICAgICAgICAgUV9BU1NFUlQoaXRlbS0+c2NlbmUoKSAmJiAhaXRlbS0+c2NlbmUoKS0+
dmlld3MoKS5pc0VtcHR5KCkpOworICAgICAgICAgICAgY29uc3QgUUdyYXBoaWNzVmlldyogdmll
dyA9IGl0ZW0tPnNjZW5lKCktPnZpZXdzKCkudmFsdWUoMCk7CisgICAgICAgICAgICBjb25zdCBR
UG9pbnQgYWRkID0gdmlldy0+bWFwRnJvbVNjZW5lKGl0ZW0tPnBvcygpKTsKKyAgICAgICAgICAg
IHBsdWdpblZpZXdHbG9iYWxQb3MgKz0gYWRkOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KChRU2l6ZSkobV9wbHVnaW5WaWV3LT5tX3dpbmRvd1JlY3Quc2l6ZSgpKSAhPSBtX3BpeG1hcC5z
aXplKCkpIHsKKyAgICAgICAgbV9waXhtYXAgPSBRUGl4bWFwKG1fcGx1Z2luVmlldy0+bV93aW5k
b3dSZWN0LnNpemUoKSk7CisgICAgICAgIG1fcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsK
KyAgICAgICAgbV9kZmJTdXJmYWNlID0gUVRfUFJFUEVORF9OQU1FU1BBQ0UocXRfZGlyZWN0ZmJf
c3VyZmFjZV9mb3JfcGl4bWFwKG1fcGl4bWFwKSk7CisgICAgfQorCisgICAgbV9wbHVnaW5WaWV3
LT5tX25wV2luZG93LndzX2luZm8gPSAmbV9kZmJXaW5kb3dJbmZvOworICAgIG1fcGx1Z2luVmll
dy0+bV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisKKyAgICBtX3BsdWdp
blZpZXctPm1fbnBXaW5kb3cueCA9IHBsdWdpblZpZXdHbG9iYWxQb3MueCgpOworICAgIG1fcGx1
Z2luVmlldy0+bV9ucFdpbmRvdy55ID0gcGx1Z2luVmlld0dsb2JhbFBvcy55KCk7CisgICAgY29u
c3QgSW50UmVjdCBmcmFtZVJlY3QgPSBtX3BsdWdpblZpZXctPmZyYW1lUmVjdCgpOworICAgIG1f
cGx1Z2luVmlldy0+bV9ucFdpbmRvdy53aWR0aCA9IGZyYW1lUmVjdC53aWR0aCgpOworICAgIG1f
cGx1Z2luVmlldy0+bV9ucFdpbmRvdy5oZWlnaHQgPSBmcmFtZVJlY3QuaGVpZ2h0KCk7CisgICAg
bV9wbHVnaW5WaWV3LT5tX25wV2luZG93LmNsaXBSZWN0LnRvcCA9IG1fcGx1Z2luVmlldy0+bV9j
bGlwUmVjdC55KCk7CisgICAgbV9wbHVnaW5WaWV3LT5tX25wV2luZG93LmNsaXBSZWN0LmxlZnQg
PSBtX3BsdWdpblZpZXctPm1fY2xpcFJlY3QueCgpOworICAgIG1fcGx1Z2luVmlldy0+bV9ucFdp
bmRvdy5jbGlwUmVjdC5yaWdodCA9IG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC53aWR0aCgpICsg
bV9wbHVnaW5WaWV3LT5tX2NsaXBSZWN0LngoKSAtIDE7CisgICAgbV9wbHVnaW5WaWV3LT5tX25w
V2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC5oZWlnaHQo
KSArIG1fcGx1Z2luVmlldy0+bV9jbGlwUmVjdC55KCkgLSAxOworICAgIG1fcGx1Z2luVmlldy0+
bV9ucFdpbmRvdy53aW5kb3cgPSBtX2RmYlN1cmZhY2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlld1F0
REZCOjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwg
TlBFcnJvciogcmVzdWx0KQoreworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5Q
TlZ4RGlzcGxheToKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPih2YWx1ZSkgPSBt
X2RmYldpbmRvd0luZm8uZGZiOworICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7Cisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBOUE5WeHRBcHBDb250ZXh0OgorICAgICAg
ICAqcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzoKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCoqPih2YWx1ZSkgPSBtX2RmYldpbmRvd0luZm8ud2luZG93OworICAgICAgICAqcmVzdWx0
ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXRERkIuaCBiL1dlYkNv
cmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXRERkIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGMyZmE0ODdlYzgy
OGMxMGVlNjAyMzhlM2YzM2MyZjIxY2U3NjcxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdERGQi5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQW5kZXJzIEJha2tlbiA8YWdiYWtrZW5AZ21haWwuY29tPgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUGx1Z2luVmlld1F0REZCX2gKKyNkZWZpbmUgUGx1Z2luVmlld1F0REZCX2gKKwor
I2luY2x1ZGUgIm5wYXBpLmgiCisjaW5jbHVkZSA8UUJhc2ljVGltZXI+CisjaW5jbHVkZSA8UU9i
amVjdD4KKyNpbmNsdWRlIDxRUGl4bWFwPgorI2luY2x1ZGUgPGRpcmVjdGZiLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBsdWdpblZpZXc7CitjbGFzcyBJbnRSZWN0OworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OworY2xhc3MgTW91c2VFdmVudDsKK2NsYXNzIEtleWJvYXJkRXZlbnQ7
CitjbGFzcyBQbHVnaW5WaWV3UXRERkIgOiBwdWJsaWMgUU9iamVjdCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBsdWdpblZpZXdRdERGQiogY3JlYXRlKFBsdWdpblZpZXcqIHBsdWdpblZpZXcpOwor
ICAgIH5QbHVnaW5WaWV3UXRERkIoKTsKKyAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCk7CisgICAgdm9pZCBzZXROUFdpbmRvd0lmTmVl
ZGVkKCk7CisgICAgYm9vbCBwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2
b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KTsKKyAgICBib29sIGV2ZW50RmlsdGVyKFFPYmpl
Y3QqIG9iamVjdCwgUUV2ZW50KiBldmVudCk7CisgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2
ZW50KiBlKTsKKworICAgIGJvb2wgZGlzcGF0Y2hFdmVudChjb25zdCBNb3VzZUV2ZW50KiBldmVu
dCk7CisgICAgYm9vbCBkaXNwYXRjaEV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KTsK
KyAgICBlbnVtIEV2ZW50VHlwZSB7CisgICAgICAgIEZvY3VzSW4sCisgICAgICAgIEZvY3VzT3V0
CisgICAgfTsKKworICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudFR5cGUgdHlwZSk7Citwcml2
YXRlOgorICAgIFBsdWdpblZpZXcqIG1fcGx1Z2luVmlldzsKKyAgICBRUGl4bWFwIG1fcGl4bWFw
OworICAgIElEaXJlY3RGQlN1cmZhY2UgKm1fZGZiU3VyZmFjZTsKKyAgICBRQmFzaWNUaW1lciBt
X3RpbWVyOworICAgIGJvb2wgbV9pbnN0YWxsZWRFdmVudEZpbHRlcjsKKyAgICBzdHJ1Y3QgREZC
V2luZG93SW5mbyB7CisgICAgICAgIElEaXJlY3RGQiogZGZiOworICAgICAgICBJRGlyZWN0RkJE
aXNwbGF5TGF5ZXIqIGxheWVyOworICAgICAgICBJRGlyZWN0RkJXaW5kb3cqIHdpbmRvdzsKKyAg
ICB9IG1fZGZiV2luZG93SW5mbzsKKworICAgIFBsdWdpblZpZXdRdERGQihQbHVnaW5WaWV3KiBw
bHVnaW5WaWV3LCBjb25zdCBERkJXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKTsKKyAgICBzdGF0aWMg
dm9pZCBjbGVhcldpbmRvd0luZm8oREZCV2luZG93SW5mbyAqd2luZG93SW5mbyk7Cit9OworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
</data>
<flag name="review"
          id="63488"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
      

    </bug>

</bugzilla>