<?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>193749</bug_id>
          
          <creation_ts>2019-01-23 16:52:27 -0800</creation_ts>
          <short_desc>[WPE][GTK] Deprecate nonfunctional process limit APIs</short_desc>
          <delta_ts>2019-09-03 02:57:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mcrha</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497656</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-23 16:52:27 -0800</bug_when>
    <thetext>Since r240363 &quot;Deprecate API to limit the maximum number of WebProcesses&quot; several inherently-unsafe WebKitWebContext APIs no longer work:

webkit_web_context_set_web_process_count_limit
webkit_web_context_get_web_process_count_limit

The process count limit APIs are no longer safe because we assume websites that abuse Spectre are able to read arbitrary memory from the web process, which could allow one security origin to compromise sensitive data from another after the process count limit is reached. We should deprecate those without replacement. This is easy to do because it shouldn&apos;t affect the correctness of application code unless the application is doing something weird.

typedef enum {
    WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS,
    WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES,
} WebKitProcessModel;

webkit_web_context_set_process_model
webkit_web_context_get_process_model

These ones are trickier. r240363 allows the special case of one secondary process, which is intended for debugging, but could be useful by many native apps that render trusted content. So in theory, we could keep these functions working as-is and without deprecation, though we should change the default process model to WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES and make sure our documentation explains the speculative execution attacks that will be enabled by WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS. But the problem is, we have to set APIProcessPoolConfiguration::m_usesSingleWebProcess before creating the WebProcessPool, which is too soon to keep webkit_web_context_set_process_model() working. Users call webkit_web_context_set_process_model() after the WebKitWebContext has been constructed (at which time the WebProcessPool has been constructed) but before constructing any WebKitWebViews with it (at which time the first web process is launched and it becomes too late). So if we want to keep this working, we&apos;d need to work with Brady to make some changes to allow setting the process limit to 1 in some other manner. Otherwise, deprecating seems reasonable too, and safer.

All of the above assumes we switch on PSON, which probably makes sense *after* branching 2.24. (Without PSON, multiple secondary process mode is not safe either.) So we could, for example, make these changes on trunk for now, but revert them and r240363 on the 2.24 branch.

Probably some API tests are broken, and will need to be updated.

In Epiphany, these are hidden settings, which I&apos;ll just remove because it&apos;s not safe for a web browser. We&apos;ve kept them around so far because some people need it to limit memory usage, but Adrian is about to land some massive improvements there (as much as 5x web process memory reduction with content extensions) so they won&apos;t be needed anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497764</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-01-24 01:39:09 -0800</bug_when>
    <thetext>We are supposed to branch in two weeks, we could also branch right now after r240363, but still allow to land the pending features API in the branch for a while. Then we can decide what to do in trunk. We can probably deprecate both APIs, and keep the single process mode as a debugging option using an env var (you love them). What&apos;s exactly PSON?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497823</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-24 08:57:52 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #1)
&gt; We are supposed to branch in two weeks, we could also branch right now after
&gt; r240363, but still allow to land the pending features API in the branch for
&gt; a while. Then we can decide what to do in trunk.

Either way seems fine.

&gt; We can probably deprecate
&gt; both APIs, and keep the single process mode as a debugging option using an
&gt; env var (you love them).

If we add an env var, let&apos;s limit it to developer mode.

&gt; What&apos;s exactly PSON?

Process swap on navigation.

Status quo: load google.com then apple.com in the same web view, only one web process is used, apple.com can potentially steal sensitive data from google.com because it can read process memory via speculative execution attack

PSON: load google.com then apple.com, new web process is launched for the same web view, danger is mitigated because the two security origins share different processes

Probably there will be problems, so not a great thing to enable at the end of the release cycle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498924</commentid>
    <comment_count>3</comment_count>
      <attachid>360313</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-27 19:54:42 -0800</bug_when>
    <thetext>Created attachment 360313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498925</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-27 19:55:47 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498926</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-27 19:57:07 -0800</bug_when>
    <thetext>We might want to change the deprecated tags to Deprecated: 2.26, if we revert r240363 on the 2.24 branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500048</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-30 10:05:26 -0800</bug_when>
    <thetext>Carlos, what do you want to do with this...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501827</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-04 07:53:43 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; We might want to change the deprecated tags to Deprecated: 2.26, if we
&gt; revert r240363 on the 2.24 branch.

We decided to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501832</commentid>
    <comment_count>8</comment_count>
      <attachid>361057</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-04 08:06:56 -0800</bug_when>
    <thetext>Created attachment 361057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501834</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-04 08:07:40 -0800</bug_when>
    <thetext>Note: my patch does not deprecate WebKitProcessModel simply because that introduces a ton of deprecation warnings in WebKit&apos;s own build process. We might want to do that in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502327</commentid>
    <comment_count>10</comment_count>
      <attachid>361057</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-02-05 03:31:25 -0800</bug_when>
    <thetext>Comment on attachment 361057
Patch

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

Looks fine, just a small comment below with a suggestion.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h:77
&gt;   *

I think that the deprecation could be added conditionally to avoid
the warnings while building WebKit, but still having them show for
applications built using 2.26.x -- something like the following could
work:

  #if !defined(WEBKIT2_COMPILATION)
  WEBKIT_DEPRECATED
  #endif
  typedef enum {
      ...
  } WebKitProcessModel;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502343</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-05 06:42:04 -0800</bug_when>
    <thetext>Good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505196</commentid>
    <comment_count>12</comment_count>
      <attachid>361057</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-02-12 03:43:52 -0800</bug_when>
    <thetext>Comment on attachment 361057
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:86
&gt; - * You can define the #WebKitCacheModel and #WebKitProcessModel with
&gt; - * webkit_web_context_set_cache_model() and
&gt; - * webkit_web_context_set_process_model(), depending on the needs of
&gt; + * You can define the #WebKitCacheModel with
&gt; + * webkit_web_context_set_cache_model(), depending on the needs of

hmm, are we sure there won&apos;t be process models in the future? will PSON be default? maybe it&apos;s safer to only deprecate the specific single process model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505272</commentid>
    <comment_count>13</comment_count>
      <attachid>361057</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-12 10:32:02 -0800</bug_when>
    <thetext>Comment on attachment 361057
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:86
&gt;&gt; + * webkit_web_context_set_cache_model(), depending on the needs of
&gt; 
&gt; hmm, are we sure there won&apos;t be process models in the future? will PSON be default? maybe it&apos;s safer to only deprecate the specific single process model.

Hm, I&apos;m not sure, we might indeed add more process models in the future. But we do want the documentation to reflect that the process model is currently ignored and specifying it won&apos;t do anything. I&apos;m open to suggestions as to how to handle the documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506242</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-14 10:53:23 -0800</bug_when>
    <thetext>Note my current patch does not deprecate WebKitProcessModel (although it is no longer used for any purpose).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506337</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-14 13:38:00 -0800</bug_when>
    <thetext>I forgot to update the documentation of webkit_web_view_new_with_related_view(). Need to do that too, though I&apos;m not really sure how since it&apos;s a security hole. Need to ask Apple about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506503</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-02-15 00:28:02 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; Note my current patch does not deprecate WebKitProcessModel (although it is
&gt; no longer used for any purpose).

I would only deprecate the specific process model, not the functions get/set and document that when using the deprecated one, the value will be ignored and the default one will be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509390</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-23 13:13:01 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #16)
&gt; I would only deprecate the specific process model, not the functions get/set
&gt; and document that when using the deprecated one, the value will be ignored
&gt; and the default one will be used.

Do you want to try submitting a patch? It just seems too weird to me. My suggestion is to deprecate the functions now, and just un-deprecate them in the future in the unlikely event we ever introduce a new process model. Seems more likely that we&apos;ll never do that. And if we do, applications will have to be changed anyway if they want to use the new process model. In the meantime, it doesn&apos;t make sense for applications to continue using these functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511395</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-01 07:07:41 -0800</bug_when>
    <thetext>(Don&apos;t forget about this one.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531087</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 16:26:40 -0700</bug_when>
    <thetext>BTW this is why TestMultiprocess is broken currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542372</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-06 06:25:17 -0700</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544038</commentid>
    <comment_count>21</comment_count>
      <attachid>361057</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-12 05:10:00 -0700</bug_when>
    <thetext>Comment on attachment 361057
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:86
&gt;&gt;&gt; - * You can define the #WebKitCacheModel and #WebKitProcessModel with
&gt;&gt;&gt; - * webkit_web_context_set_cache_model() and
&gt;&gt;&gt; - * webkit_web_context_set_process_model(), depending on the needs of
&gt;&gt;&gt; + * You can define the #WebKitCacheModel with
&gt;&gt;&gt; + * webkit_web_context_set_cache_model(), depending on the needs of
&gt;&gt; 
&gt;&gt; hmm, are we sure there won&apos;t be process models in the future? will PSON be default? maybe it&apos;s safer to only deprecate the specific single process model.
&gt; 
&gt; Hm, I&apos;m not sure, we might indeed add more process models in the future. But we do want the documentation to reflect that the process model is currently ignored and specifying it won&apos;t do anything. I&apos;m open to suggestions as to how to handle the documentation.

hmm, are we sure there won&apos;t be process models in the future? will PSON be default? maybe it&apos;s safer to only deprecate the specific single process model.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1533
&gt; - * This method **must be called before any web process has been created**,
&gt; - * as early as possible in your application. Calling it later will make
&gt; - * your application crash.
&gt; + * This function used to set the maximum number of web processes that
&gt; + * could be created at the same time for the @context, but it is no
&gt; + * longer safe to set such limits as process swapping is required to
&gt; + * mitigate speculative execution vulnerabilities.

I prefer to keep the documentation unchanged and add a note saying it&apos;s deprecated and does nothing now.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:-1560
&gt; -
&gt; -    if (context-&gt;priv-&gt;processCountLimit == limit)
&gt; -        return;
&gt; -
&gt; -    context-&gt;priv-&gt;processCountLimit = limit;

And add a g_warning here too saying this does nothing.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h:72
&gt; + * @WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES: Use one or more
&gt; + *   processes for each #WebKitWebView, while still allowing for some

One or more web processes for each view? It&apos;s confusing, the fact that we can swap processes is an implementation detail, there&apos;s still always one web process per web view, in contrast to single process for all web views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544083</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-12 07:41:19 -0700</bug_when>
    <thetext>OK, I still think it&apos;s weird to have a non-deprecated function that doesn&apos;t do anything, but your solution is OK too so I&apos;ll try again to implement it.

(In reply to Carlos Garcia Campos from comment #21)
&gt; &gt; Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h:72
&gt; &gt; + * @WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES: Use one or more
&gt; &gt; + *   processes for each #WebKitWebView, while still allowing for some
&gt; 
&gt; One or more web processes for each view? It&apos;s confusing, the fact that we
&gt; can swap processes is an implementation detail, there&apos;s still always one web
&gt; process per web view, in contrast to single process for all web views.

Hm, let&apos;s ask Chris (hey Chris!), but I think both your comment and my documentation are wrong. It&apos;s one process per security origin (right?). So a view will be backed by multiple web processes if it includes frames from different origins, right? The two separate origins are not permitted to run in the same process; otherwise, one origin can exfiltrate data from the other by abusing Spectre. (At least that&apos;s how Chrome is supposed to work. Chris, is that actually what you&apos;ve implemented? Or is that harder?) And also multiple views can happily share the same process without issue as long as they share the same security origin, right? (Again, Chris, is that what you&apos;ve implemented?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544084</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-12 07:44:06 -0700</bug_when>
    <thetext>Um, and then there&apos;s related views. Do related views from different origins still share the same process?

I guess using a separate process for frames and related views might be quite difficult to implement. I assume that&apos;s the end goal, but not sure if we&apos;re there yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546532</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-20 08:42:07 -0700</bug_when>
    <thetext>Hey Chris, could you answer the questions in comment #22 and comment #23 please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564389</commentid>
    <comment_count>25</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2019-08-23 00:21:02 -0700</bug_when>
    <thetext>Regarding comment #22: how would be a &quot;security origin&quot; distinguished?

Evolution uses iframe-s, these (and the main body as well) can reference different URIs, like mail://, evo-http://, evo-https://, gtk-stock://, ... all of them being handled by URI handlers. I cannot imagine you run one iframe in one WebProcess and another iframe of the same WebView in another process. That will surely break all the expectations Evolution has on WebKitGTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564772</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-08-23 22:29:55 -0700</bug_when>
    <thetext>(In reply to Milan Crha from comment #25)
&gt; Regarding comment #22: how would be a &quot;security origin&quot; distinguished?
&gt; 
&gt; Evolution uses iframe-s, these (and the main body as well) can reference
&gt; different URIs, like mail://, evo-http://, evo-https://, gtk-stock://, ...
&gt; all of them being handled by URI handlers. I cannot imagine you run one
&gt; iframe in one WebProcess and another iframe of the same WebView in another
&gt; process. That will surely break all the expectations Evolution has on
&gt; WebKitGTK+.

Security origin is &lt;protocol, host, port&gt;, so yes those would all be different -security origins (often abbreviated as &quot;origins&quot;).

This is, in fact, the eventual desired behavior afaik. I think it&apos;s what Chrome is doing also (or at least planning to do). It is nowadays a security vulnerability to have separate origins running in the same process. However, iframes can script each other, so it&apos;s not trivial to do and might not be implemented in WebKit yet (I&apos;m not sure).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567302</commentid>
    <comment_count>27</comment_count>
      <attachid>377875</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-03 01:40:02 -0700</bug_when>
    <thetext>Created attachment 377875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567305</commentid>
    <comment_count>28</comment_count>
      <attachid>377876</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-03 02:14:21 -0700</bug_when>
    <thetext>Created attachment 377876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567313</commentid>
    <comment_count>29</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-03 02:57:39 -0700</bug_when>
    <thetext>Committed r249419: &lt;https://trac.webkit.org/changeset/249419&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360313</attachid>
            <date>2019-01-27 19:54:42 -0800</date>
            <delta_ts>2019-02-04 08:06:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193749-20190127215441.patch</filename>
            <type>text/plain</type>
            <size>18096</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5M2Y5MjIyODkyYzNiNWZh
N2ExMTk1NjExYTU1MmQ3ZTQzMGJiYTcuLmI3YTY2YzA5Yzg5YjA4NGQ4MTU2YzkxYWM4NDYwYjhl
MGQzNWI2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDEtMjcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10g
RGVwcmVjYXRlIG5vbmZ1bmN0aW9uYWwgcHJvY2VzcyBsaW1pdCBBUElzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM3NDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGZvciB0aGVzZSBzZXR0
aW5ncyBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIFdlYktpdCBsYXllciwgc28gb3VyIEFQSSBz
aG91bGQgcmVtb3ZlCisgICAgICAgIHRoZW0gdG9vLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0
X3NldF9wcm9jZXNzX21vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJv
Y2Vzc19tb2RlbCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNz
X2NvdW50X2xpbWl0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nl
c3NfY291bnRfbGltaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0Lmg6
CisKIDIwMTgtMTItMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlcGxhY2UgbWFueSB1c2VzIG9mIFN0cmluZzo6Zm9ybWF0IHdpdGggbW9yZSB0eXBlLXNhZmUg
YWx0ZXJuYXRpdmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDcyNGM1ZmJmNWU4NDdjZWQxZjMwZmIwOGNmZDU4
ZDhkMWY1NjlmMGIuLmQ1YjY4ZDg1MjM0YjEyN2M0NzAyNDRjMTUyNmU3MTUyNzQyNWQ4YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC04Miw5ICs4Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgKiBU
aGUgI1dlYktpdFdlYkNvbnRleHQgbWFuYWdlcyBhbGwgYXNwZWN0cyBjb21tb24gdG8gYWxsCiAg
KiAjV2ViS2l0V2ViVmlldzwhLS0gLS0+cy4KICAqCi0gKiBZb3UgY2FuIGRlZmluZSB0aGUgI1dl
YktpdENhY2hlTW9kZWwgYW5kICNXZWJLaXRQcm9jZXNzTW9kZWwgd2l0aAotICogd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbCgpIGFuZAotICogd2Via2l0X3dlYl9jb250ZXh0X3Nl
dF9wcm9jZXNzX21vZGVsKCksIGRlcGVuZGluZyBvbiB0aGUgbmVlZHMgb2YKKyAqIFlvdSBjYW4g
ZGVmaW5lIHRoZSAjV2ViS2l0Q2FjaGVNb2RlbCB3aXRoCisgKiB3ZWJraXRfd2ViX2NvbnRleHRf
c2V0X2NhY2hlX21vZGVsKCksIGRlcGVuZGluZyBvbiB0aGUgbmVlZHMgb2YKICAqIHlvdXIgYXBw
bGljYXRpb24uIFlvdSBjYW4gYWNjZXNzIHRoZSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyIHRvIHNw
ZWNpZnkKICAqIHRoZSBiZWhhdmlvdXIgb2YgeW91ciBhcHBsaWNhdGlvbiByZWdhcmRpbmcgc2Vj
dXJpdHkgdXNpbmcKICAqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfbWFuYWdlcigp
LgpAQCAtMTc4LDggKzE3Nyw2IEBAIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dFByaXZhdGUgewog
CiAgICAgQ1N0cmluZyBmYXZpY29uRGF0YWJhc2VEaXJlY3Rvcnk7CiAgICAgV2ViS2l0VExTRXJy
b3JzUG9saWN5IHRsc0Vycm9yc1BvbGljeTsKLSAgICBXZWJLaXRQcm9jZXNzTW9kZWwgcHJvY2Vz
c01vZGVsOwotICAgIHVuc2lnbmVkIHByb2Nlc3NDb3VudExpbWl0OwogCiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgV2ViS2l0V2ViVmlldyo+IHdlYlZpZXdzOwogICAgIHVuc2lnbmVkIGVwaGVtZXJh
bFBhZ2VDb3VudDsKQEAgLTE0ODYsODcgKzE0ODMsNzMgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRl
eHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQKICAqIEBjb250ZXh0OiB0aGUgI1dlYktpdFdlYkNvbnRleHQKICAqIEBwcm9jZXNzX21vZGVs
OiBhICNXZWJLaXRQcm9jZXNzTW9kZWwKICAqCi0gKiBTcGVjaWZpZXMgYSBwcm9jZXNzIG1vZGVs
IGZvciBXZWJWaWV3cywgd2hpY2ggV2ViS2l0IHdpbGwgdXNlIHRvCi0gKiBkZXRlcm1pbmUgaG93
IGF1eGlsaWFyeSBwcm9jZXNzZXMgYXJlIGhhbmRsZWQuIFRoZSBkZWZhdWx0IHNldHRpbmcKLSAq
ICglV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTKSBpcyBzdWl0
YWJsZSBmb3IgbW9zdAotICogYXBwbGljYXRpb25zIHdoaWNoIGVtYmVkIGEgc21hbGwgYW1vdW50
IG9mIFdlYlZpZXdzLCBvciBhcmUgdXNlZCB0bwotICogZGlzcGxheSBkb2N1bWVudHMgd2hpY2gg
YXJlIGNvbnNpZGVyZWQgc2FmZSDigJQgbGlrZSBsb2NhbCBmaWxlcy4KLSAqCi0gKiBBcHBsaWNh
dGlvbnMgd2hpY2ggbWF5IHBvdGVudGlhbGx5IHVzZSBhIGxhcmdlIGFtb3VudCBvZiBXZWJWaWV3
cwotICog4oCUZm9yIGV4YW1wbGUgYSBtdWx0aS10YWJiZWQgd2ViIGJyb3dzZXLigJQgbWF5IHdh
bnQgdG8gdXNlCi0gKiAlV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BS
T0NFU1NFUywgd2hpY2ggd2lsbCB1c2UKLSAqIG9uZSBwcm9jZXNzIHBlciB2aWV3IG1vc3Qgb2Yg
dGhlIHRpbWUsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciB3ZWIKLSAqIHZpZXdzIHRvIHNoYXJl
IGEgcHJvY2VzcyB3aGVuIG5lZWRlZCAoZm9yIGV4YW1wbGUgd2hlbiBkaWZmZXJlbnQKLSAqIHZp
ZXdzIGludGVyYWN0IHdpdGggZWFjaCBvdGhlcikuIFVzaW5nIHRoaXMgbW9kZWwsIHdoZW4gYSBw
cm9jZXNzCi0gKiBoYW5ncyBvciBjcmFzaGVzLCBvbmx5IHRoZSBXZWJWaWV3cyB1c2luZyBpdCBz
dG9wIHdvcmtpbmcsIHdoaWxlCi0gKiB0aGUgcmVzdCBvZiB0aGUgV2ViVmlld3MgaW4gdGhlIGFw
cGxpY2F0aW9uIHdpbGwgc3RpbGwgZnVuY3Rpb24KLSAqIG5vcm1hbGx5LgorICogVGhpcyBmdW5j
dGlvbiBkb2VzIG5vdGhpbmcuCiAgKgotICogVGhpcyBtZXRob2QgKiptdXN0IGJlIGNhbGxlZCBi
ZWZvcmUgYW55IHdlYiBwcm9jZXNzIGhhcyBiZWVuIGNyZWF0ZWQqKiwKLSAqIGFzIGVhcmx5IGFz
IHBvc3NpYmxlIGluIHlvdXIgYXBwbGljYXRpb24uIENhbGxpbmcgaXQgbGF0ZXIgd2lsbCBtYWtl
Ci0gKiB5b3VyIGFwcGxpY2F0aW9uIGNyYXNoLgorICogVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGFs
bG93IHNwZWNpZnlpbmcgd2hldGhlciB3ZWIgdmlld3MgY3JlYXRlZCBpbgorICogQGNvbnRleHQg
c2hvdWxkIHNoYXJlIHRoZSBzYW1lIHdlYiBjb250ZW50IHJlbmRlcmluZyBwcm9jZXNzIG9yIHVz
ZQorICogc2VwYXJhdGUgcmVuZGVyaW5nIHByb2Nlc3Nlcy4gU2hhcmluZyB0aGUgc2FtZSBwcm9j
ZXNzIGlzIG5vIGxvbmdlcgorICogYWxsb3dlZC4KICAqCiAgKiBTaW5jZTogMi40CisgKgorICog
RGVwcmVjYXRlZDogMi4yNAogICovCi12b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vz
c19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJLaXRQcm9jZXNzTW9kZWwgcHJv
Y2Vzc01vZGVsKQordm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoV2Vi
S2l0V2ViQ29udGV4dCogY29udGV4dCwgV2ViS2l0UHJvY2Vzc01vZGVsKQogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpKTsKLQotICAgIGlmIChw
cm9jZXNzTW9kZWwgPT0gY29udGV4dC0+cHJpdi0+cHJvY2Vzc01vZGVsKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzTW9kZWwgPSBwcm9jZXNzTW9kZWw7CiB9
CiAKIC8qKgogICogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsOgogICogQGNv
bnRleHQ6IHRoZSAjV2ViS2l0V2ViQ29udGV4dAogICoKLSAqIFJldHVybnMgdGhlIGN1cnJlbnQg
cHJvY2VzcyBtb2RlbC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyB2YWx1ZQotICog
c2VlIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCgpLgorICogUmV0dXJucyB0
aGUgY3VycmVudCBwcm9jZXNzIG1vZGVsLCB3aGljaCBpcyBhbHdheXMKKyAqIEBXRUJLSVRfUFJP
Q0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTLiBGb3IgZGV0YWlscywgc2Vl
CisgKiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoKS4KICAqCi0gKiBSZXR1
cm5zOiB0aGUgY3VycmVudCAjV2ViS2l0UHJvY2Vzc01vZGVsCisgKiBSZXR1cm5zOiBAV0VCS0lU
X1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUwogICoKICAqIFNpbmNl
OiAyLjQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjI0CiAgKi8KIFdlYktpdFByb2Nlc3NNb2RlbCB3
ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29u
dGV4dCkKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQo
Y29udGV4dCksIFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUyk7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQp
LCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsKIAot
ICAgIHJldHVybiBjb250ZXh0LT5wcml2LT5wcm9jZXNzTW9kZWw7CisgICAgcmV0dXJuIFdFQktJ
VF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM7CiB9CiAKIC8qKgog
ICogd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdDoKICAqIEBj
b250ZXh0OiB0aGUgI1dlYktpdFdlYkNvbnRleHQKLSAqIEBsaW1pdDogdGhlIG1heGltdW0gbnVt
YmVyIG9mIHdlYiBwcm9jZXNzZXMKKyAqIEBsaW1pdDogaWdub3JlZAogICoKLSAqIFNldHMgdGhl
IG1heGltdW0gbnVtYmVyIG9mIHdlYiBwcm9jZXNzZXMgdGhhdCBjYW4gYmUgY3JlYXRlZCBhdCB0
aGUgc2FtZSB0aW1lIGZvciB0aGUgQGNvbnRleHQuCi0gKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAw
IGFuZCBtZWFucyBubyBsaW1pdC4KKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgogICoK
LSAqIFRoaXMgbWV0aG9kICoqbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgcHJvY2VzcyBo
YXMgYmVlbiBjcmVhdGVkKiosCi0gKiBhcyBlYXJseSBhcyBwb3NzaWJsZSBpbiB5b3VyIGFwcGxp
Y2F0aW9uLiBDYWxsaW5nIGl0IGxhdGVyIHdpbGwgbWFrZQotICogeW91ciBhcHBsaWNhdGlvbiBj
cmFzaC4KKyAqIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9m
IHdlYiBwcm9jZXNzZXMgdGhhdAorICogY291bGQgYmUgY3JlYXRlZCBhdCB0aGUgc2FtZSB0aW1l
IGZvciB0aGUgQGNvbnRleHQsIGJ1dCBpdCBpcyBubworICogbG9uZ2VyIHNhZmUgdG8gc2V0IHN1
Y2ggbGltaXRzIGFzIHByb2Nlc3Mgc3dhcHBpbmcgaXMgcmVxdWlyZWQgdG8KKyAqIG1pdGlnYXRl
IHNwZWN1bGF0aXZlIGV4ZWN1dGlvbiB2dWxuZXJhYmlsaXRpZXMuCiAgKgogICogU2luY2U6IDIu
MTAKKyAqCisgKiBEZXByZWNhdGVkOiAyLjI0CiAgKi8KLXZvaWQgd2Via2l0X3dlYl9jb250ZXh0
X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBn
dWludCBsaW1pdCkKK3ZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3Vu
dF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBndWludCkKIHsKICAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7Ci0KLSAgICBpZiAoY29u
dGV4dC0+cHJpdi0+cHJvY2Vzc0NvdW50TGltaXQgPT0gbGltaXQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGNvbnRleHQtPnByaXYtPnByb2Nlc3NDb3VudExpbWl0ID0gbGltaXQ7CiB9CiAKIC8q
KgogICogd2Via2l0X3dlYl9jb250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdDoKICAq
IEBjb250ZXh0OiB0aGUgI1dlYktpdFdlYkNvbnRleHQKICAqCi0gKiBHZXRzIHRoZSBtYXhpbXVt
IG51bWJlciBvZiB3ZWIgcHJvY2Vzc2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgYXQgdGhlIHNhbWUg
dGltZSBmb3IgdGhlIEBjb250ZXh0LgorICogVGhpcyBmdW5jdGlvbiB1c2VkIHRvIHJldHVybiB0
aGUgbWF4aW11bSBudW1iZXIgb2Ygd2ViIHByb2Nlc3NlcyBzZXQKKyAqIHdpdGggd2Via2l0X3dl
Yl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCgpLiBJdCBpcyBubworICogbG9u
Z2VyIHBvc3NpYmxlIHRvIHNldCBzdWNoIGEgbGltaXQsIHNvIG5vdyBpdCBhbHdheXMgcmV0dXJu
cyAwLgogICoKLSAqIFJldHVybnM6IHRoZSBtYXhpbXVtIGxpbWl0IG9mIHdlYiBwcm9jZXNzZXMs
IG9yIDAgaWYgdGhlcmUgaXNuJ3QgYSBsaW1pdC4KKyAqIFJldHVybnM6IDAKICAqCiAgKiBTaW5j
ZTogMi4xMAogICovCkBAIC0xNTc0LDcgKzE1NTcsNyBAQCBndWludCB3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0KFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRl
eHQpLCAwKTsKIAotICAgIHJldHVybiBjb250ZXh0LT5wcml2LT5wcm9jZXNzQ291bnRMaW1pdDsK
KyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgYWRkT3JpZ2luVG9NYXAoV2ViS2l0U2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiwgSGFzaE1hcDxTdHJpbmcsIGJvb2w+KiBtYXAsIGJvb2wgYWxs
b3dlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0LmgKaW5kZXggODEzNTFhZjNjNTEwODBlYjczYzI0NTA1YzZhZjgyMmY2MjIwYzlhMi4u
ZjU0OTVjYjIyYmQzMjg4ODQwZTY0ZTRjM2Y3MmI5MjU5ZGIxZWU5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTY3LDE5
ICs2NywxMSBAQCB0eXBlZGVmIGVudW0gewogLyoqCiAgKiBXZWJLaXRQcm9jZXNzTW9kZWw6CiAg
KiBAV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOiBVc2UgYSBz
aW5nbGUgcHJvY2VzcyB0bwotICogICBwZXJmb3JtIGNvbnRlbnQgcmVuZGVyaW5nLiBUaGUgcHJv
Y2VzcyBpcyBzaGFyZWQgYW1vbmcgYWxsIHRoZQotICogICAjV2ViS2l0V2ViVmlldyBpbnN0YW5j
ZXMgY3JlYXRlZCBieSB0aGUgYXBwbGljYXRpb246IGlmIHRoZSBwcm9jZXNzCi0gKiAgIGhhbmdz
IG9yIGNyYXNoZXMgYWxsIHRoZSB3ZWIgdmlld3MgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUg
YWZmZWN0ZWQuCi0gKiAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgcHJvY2VzcyBtb2RlbCwgYW5kIGl0
IHNob3VsZCBzdWZmaWNlIGZvciBtb3N0IGNhc2VzLgotICogQFdFQktJVF9QUk9DRVNTX01PREVM
X01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6IFVzZSBvbmUgcHJvY2VzcwotICogICBmb3Ig
ZWFjaCAjV2ViS2l0V2ViVmlldywgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9yIHNvbWUgb2YgdGhl
bSB0bwotICogICBzaGFyZSBhIHByb2Nlc3MgaW4gY2VydGFpbiBzaXR1YXRpb25zLiBUaGUgbWFp
biBhZHZhbnRhZ2UKLSAqICAgb2YgdGhpcyBwcm9jZXNzIG1vZGVsIGlzIHRoYXQgdGhlIHJlbmRl
cmluZyBwcm9jZXNzIGZvciBhIHdlYiB2aWV3Ci0gKiAgIGNhbiBjcmFzaCB3aGlsZSB0aGUgcmVz
dCBvZiB0aGUgdmlld3Mga2VlcCB3b3JraW5nIG5vcm1hbGx5LiBUaGlzCi0gKiAgIHByb2Nlc3Mg
bW9kZWwgaXMgaW5kaWNhdGVkIGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggbWF5IHVzZSBhIG51bWJl
cgotICogICBvZiB3ZWIgdmlld3MgYW5kIHRoZSBjb250ZW50IG9mIGluIGVhY2ggbXVzdCBub3Qg
aW50ZXJmZXJlIHdpdGggdGhlCi0gKiAgIHJlc3Qg4oCUIGZvciBleGFtcGxlIGEgZnVsbC1mbGVk
Z2VkIHdlYiBicm93c2VyIHdpdGggc3VwcG9ydCBmb3IKLSAqICAgbXVsdGlwbGUgdGFicy4KKyAq
ICAgcGVyZm9ybSBjb250ZW50IHJlbmRlcmluZy4gVGhpcyBpcyBubyBsb25nZXIgYWxsb3dlZCBz
aW5jZSAyLjI0LgorICogQFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9Q
Uk9DRVNTRVM6IFVzZSBvbmUgb3IgbW9yZQorICogICBwcm9jZXNzZXMgZm9yIGVhY2ggI1dlYktp
dFdlYlZpZXcsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciBzb21lCisgKiAgIG9mIHRoZW0gdG8g
c2hhcmUgYSBwcm9jZXNzIGluIGNlcnRhaW4gc2l0dWF0aW9ucy4gVGhpcyBwcm9jZXNzCisgKiAg
IG1vZGVsIGlzIG5vdyByZXF1aXJlZCBzaW5jZSAyLjI0LgogICoKICAqIEVudW0gdmFsdWVzIHVz
ZWQgZm9yIGRldGVybWluaW5nIHRoZSAjV2ViS2l0V2ViQ29udGV4dCBwcm9jZXNzIG1vZGVsLgog
ICoKQEAgLTE5MiwxMSArMTg0LDExIEBAIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9k
ZWwgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dAogV0VCS0lUX0FQSSBXZWJLaXRD
YWNoZU1vZGVsCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2NhY2hlX21vZGVsICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKIAotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0
X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAg
ICAgICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpOwogCi1XRUJL
SVRfQVBJIGd1aW50CitXRUJLSVRfREVQUkVDQVRFRCBndWludAogd2Via2l0X3dlYl9jb250ZXh0
X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAg
ICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9pZApAQCAtMzA1LDExICsyOTcsMTEg
QEAgd2Via2l0X3dlYl9jb250ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9mb3JfaG9zdCAgIChX
ZWJLaXRXZWJDb250ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZSAgICAgICAgICAgICAgICpjZXJ0aWZpY2F0ZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgKmhvc3QpOwogCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2Rl
bCAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFByb2Nlc3NNb2RlbCAgICAgICAgICAgICBwcm9jZXNzX21vZGVsKTsKIAotV0VCS0lUX0FQ
SSBXZWJLaXRQcm9jZXNzTW9kZWwKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdFByb2Nlc3NNb2Rl
bAogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9p
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRl
eHQuaAppbmRleCAwODFjZDExYTM0MmE5ZjYxMWE0ZjQxOThjZWMyOTMyOTRjMmEyNzAxLi5mYTk5
NWRmMTZkMzM1ZWI4MWJlMGM1YTg5NzQ5OGM5MGM2OTFmMDdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaApAQCAtNjcsMTkgKzY3
LDExIEBAIHR5cGVkZWYgZW51bSB7CiAvKioKICAqIFdlYktpdFByb2Nlc3NNb2RlbDoKICAqIEBX
RUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6IFVzZSBhIHNpbmds
ZSBwcm9jZXNzIHRvCi0gKiAgIHBlcmZvcm0gY29udGVudCByZW5kZXJpbmcuIFRoZSBwcm9jZXNz
IGlzIHNoYXJlZCBhbW9uZyBhbGwgdGhlCi0gKiAgICNXZWJLaXRXZWJWaWV3IGluc3RhbmNlcyBj
cmVhdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbjogaWYgdGhlIHByb2Nlc3MKLSAqICAgaGFuZ3Mgb3Ig
Y3Jhc2hlcyBhbGwgdGhlIHdlYiB2aWV3cyBpbiB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhZmZl
Y3RlZC4KLSAqICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBwcm9jZXNzIG1vZGVsLCBhbmQgaXQgc2hv
dWxkIHN1ZmZpY2UgZm9yIG1vc3QgY2FzZXMuCi0gKiBAV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVM
VElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzogVXNlIG9uZSBwcm9jZXNzCi0gKiAgIGZvciBlYWNo
ICNXZWJLaXRXZWJWaWV3LCB3aGlsZSBzdGlsbCBhbGxvd2luZyBmb3Igc29tZSBvZiB0aGVtIHRv
Ci0gKiAgIHNoYXJlIGEgcHJvY2VzcyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMuIFRoZSBtYWluIGFk
dmFudGFnZQotICogICBvZiB0aGlzIHByb2Nlc3MgbW9kZWwgaXMgdGhhdCB0aGUgcmVuZGVyaW5n
IHByb2Nlc3MgZm9yIGEgd2ViIHZpZXcKLSAqICAgY2FuIGNyYXNoIHdoaWxlIHRoZSByZXN0IG9m
IHRoZSB2aWV3cyBrZWVwIHdvcmtpbmcgbm9ybWFsbHkuIFRoaXMKLSAqICAgcHJvY2VzcyBtb2Rl
bCBpcyBpbmRpY2F0ZWQgZm9yIGFwcGxpY2F0aW9ucyB3aGljaCBtYXkgdXNlIGEgbnVtYmVyCi0g
KiAgIG9mIHdlYiB2aWV3cyBhbmQgdGhlIGNvbnRlbnQgb2YgaW4gZWFjaCBtdXN0IG5vdCBpbnRl
cmZlcmUgd2l0aCB0aGUKLSAqICAgcmVzdCDigJQgZm9yIGV4YW1wbGUgYSBmdWxsLWZsZWRnZWQg
d2ViIGJyb3dzZXIgd2l0aCBzdXBwb3J0IGZvcgotICogICBtdWx0aXBsZSB0YWJzLgorICogICBw
ZXJmb3JtIGNvbnRlbnQgcmVuZGVyaW5nLiBUaGlzIGlzIG5vIGxvbmdlciBhbGxvd2VkIHNpbmNl
IDIuMjQuCisgKiBAV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NF
U1NFUzogVXNlIG9uZSBvciBtb3JlCisgKiAgIHByb2Nlc3NlcyBmb3IgZWFjaCAjV2ViS2l0V2Vi
Vmlldywgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9yIHNvbWUKKyAqICAgb2YgdGhlbSB0byBzaGFy
ZSBhIHByb2Nlc3MgaW4gY2VydGFpbiBzaXR1YXRpb25zLiBUaGlzIHByb2Nlc3MKKyAqICAgbW9k
ZWwgaXMgbm93IHJlcXVpcmVkIHNpbmNlIDIuMjQuCiAgKgogICogRW51bSB2YWx1ZXMgdXNlZCBm
b3IgZGV0ZXJtaW5pbmcgdGhlICNXZWJLaXRXZWJDb250ZXh0IHByb2Nlc3MgbW9kZWwuCiAgKgpA
QCAtMTkyLDExICsxODQsMTEgQEAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbCAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0CiBXRUJLSVRfQVBJIFdlYktpdENhY2hl
TW9kZWwKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOwogCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfd2Vi
X3Byb2Nlc3NfY291bnRfbGltaXQgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCk7CiAKLVdFQktJVF9B
UEkgZ3VpbnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1aW50CiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0
X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAg
ICAgICpjb250ZXh0KTsKIAogV0VCS0lUX0FQSSB2b2lkCkBAIC0zMDEsMTEgKzI5MywxMSBAQCB3
ZWJraXRfd2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0ICAgKFdlYktp
dFdlYkNvbnRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR1Rsc0NlcnRpZmljYXRlICAgICAgICAgICAgICAgKmNlcnRpZmljYXRlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAgICAgICAgICAgICAgICAqaG9zdCk7CiAKLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0
UHJvY2Vzc01vZGVsICAgICAgICAgICAgIHByb2Nlc3NfbW9kZWwpOwogCi1XRUJLSVRfQVBJIFdl
YktpdFByb2Nlc3NNb2RlbAorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0UHJvY2Vzc01vZGVsCiB3
ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwgICAgICAgICAgICAgICAgKFdlYktp
dFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKIAogV0VCS0lUX0FQSSB2b2lkCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Y5OTRi
NThjM2Y4NDYyYWU2MjM3ZjFmMGI5NzdjZGFiMmEwMTYwOC4uOTIyYTk1NjZkMDM2ZGU5MDJmZmFh
Yzk5ODAyYzU2YTNhMDhhYzI1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAxLTI3ICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtdIERlcHJl
Y2F0ZSBub25mdW5jdGlvbmFsIHByb2Nlc3MgbGltaXQgQVBJcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNzQ5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvbWFpbi5jOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RNdWx0aXByb2Nlc3MuY3BwOgorICAgICAgICAodGVzdFdlYlByb2Nlc3NMaW1pdCk6Cisg
ICAgICAgIChiZWZvcmVBbGwpOgorCiAyMDE4LTEyLTE1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIG1hbnkgdXNlcyBvZiBTdHJpbmc6OmZvcm1hdCB3
aXRoIG1vcmUgdHlwZS1zYWZlIGFsdGVybmF0aXZlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKaW5kZXggYWZi
ZTU1NWVhNTI4M2JiYjdjODc0M2Y0YTM3NjdmNmU1Y2QxZWU0MS4uZTJhYzhiYjc0MGE3ZWI5ODZk
N2Y5MTE5NjFkNzYwZTljNmYxNGFiNyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCkBAIC01MjYsMTAgKzUy
Niw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIHdlYmtpdF9u
ZXR3b3JrX3Byb3h5X3NldHRpbmdzX2ZyZWUod2Via2l0UHJveHlTZXR0aW5ncyk7CiAgICAgfQog
Ci0gICAgY29uc3QgZ2NoYXIgKnNpbmdsZXByb2Nlc3MgPSBnX2dldGVudigiTUlOSUJST1dTRVJf
U0lOR0xFUFJPQ0VTUyIpOwotICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2Rl
bCh3ZWJDb250ZXh0LCAoc2luZ2xlcHJvY2VzcyAmJiAqc2luZ2xlcHJvY2VzcykgPwotICAgICAg
ICBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MgOiBXRUJLSVRf
UFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsKLQogICAgIC8vIEVu
YWJsZSB0aGUgZmF2aWNvbiBkYXRhYmFzZSwgYnkgc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBkaXJl
Y3RvcnkuCiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9mYXZpY29uX2RhdGFiYXNlX2RpcmVj
dG9yeSh3ZWJDb250ZXh0LCBOVUxMKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RNdWx0aXByb2Nlc3MuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RNdWx0aXByb2Nlc3MuY3BwCmluZGV4IDliNWU2YjYy
ZDEwYmM4ZmJkMWJhOGI5MWIxOTU0MjA5MWJiZTI5NmUuLjJmMmEyZTM5OWYwNDRjYmQ2NDcyNDI4
MGEzMzAwNTI2ZTczYjQ0NjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdE11bHRpcHJvY2Vzcy5jcHAKQEAgLTM3LDcgKzM3LDYgQEAg
cHVibGljOgogICAgICAgICAsIG1fd2ViVmlld0J1c05hbWVzKG51bVZpZXdzKQogICAgICAgICAs
IG1fd2ViVmlld3MobnVtVmlld3MpCiAgICAgewotICAgICAgICB3ZWJraXRfd2ViX2NvbnRleHRf
c2V0X3Byb2Nlc3NfbW9kZWwobV93ZWJDb250ZXh0LmdldCgpLCBXRUJLSVRfUFJPQ0VTU19NT0RF
TF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsKICAgICB9CiAKICAgICB2b2lkIGluaXRp
YWxpemVXZWJFeHRlbnNpb25zKCkgb3ZlcnJpZGUKQEAgLTE2OSw3ICsxNjgsNiBAQCBwdWJsaWM6
CiAgICAgICAgIDogbV9tYWluTG9vcChnX21haW5fbG9vcF9uZXcobnVsbHB0ciwgVFJVRSkpCiAg
ICAgICAgICwgbV9pbml0aWFsaXplV2ViRXh0ZW5zaW9uc1NpZ25hbENvdW50KDApCiAgICAgewot
ICAgICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwobV93ZWJDb250ZXh0
LmdldCgpLCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VT
KTsKICAgICAgICAgbV93ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKFRlc3Q6OmNyZWF0ZVdlYlZp
ZXcobV93ZWJDb250ZXh0LmdldCgpKSk7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBnX29i
amVjdF9yZWZfc2luayhtX3dlYlZpZXcpOwpAQCAtMjUwLDMyICsyNDgsMzAgQEAgc3RhdGljIHZv
aWQgdGVzdE11bHRpcHJvY2Vzc1dlYlZpZXdDcmVhdGVSZWFkeUNsb3NlKFVJQ2xpZW50TXVsdGlw
cm9jZXNzVGVzdCogdGUKIAogc3RhdGljIHZvaWQgdGVzdFdlYlByb2Nlc3NMaW1pdChNdWx0aXBy
b2Nlc3NUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogeworI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3dl
Yl9wcm9jZXNzX2NvdW50X2xpbWl0KHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSksID09LCAwKTsK
IAorICAgIC8vIFNldHRpbmcgYSBwcm9jZXNzIGNvdW50IGxpbWl0IGlzIG5vIGxvbmdlciBhbGxv
d2VkLgogICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQo
dGVzdC0+bV93ZWJDb250ZXh0LmdldCgpLCAxKTsKLSAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQodGVzdC0+bV93ZWJDb250
ZXh0LmdldCgpKSwgPT0sIDEpOwotCi0gICAgLy8gQ3JlYXRlIHR3byB3ZWIgdmlld3MgYnV0IHRo
ZXJlIHNob3VsZCBiZSBvbmx5IG9uZSB3ZWIgcHJvY2Vzcy4KLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtVmlld3M7IGkrKykgewotICAgICAgICB0ZXN0LT5sb2FkV2ViVmlld0FuZFdh
aXRVbnRpbExvYWRlZChpKTsKLSAgICAgICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfSVNfV0VCX1ZJ
RVcodGVzdC0+bV93ZWJWaWV3c1tpXS5nZXQoKSkpOwotICAgIH0KLQotICAgIGdfYXNzZXJ0X2Nt
cHVpbnQodGVzdC0+bV9pbml0aWFsaXplV2ViRXh0ZW5zaW9uc1NpZ25hbENvdW50LCA9PSwgMSk7
CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3dlYl9wcm9jZXNz
X2NvdW50X2xpbWl0KHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSksID09LCAwKTsKKyNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgYmVmb3JlQWxsKCkKIHsKKyNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIENoZWNrIHRoYXQgZGVmYXVsdCBzZXR0aW5nIGlz
IHRoZSBvbmUgc3RhdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgICAgZ19hc3NlcnRfY21wdWlu
dCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwod2Via2l0X3dlYl9jb250ZXh0
X2dldF9kZWZhdWx0KCkpLAotICAgICAgICA9PSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVE
X1NFQ09OREFSWV9QUk9DRVNTKTsKKyAgICAgICAgPT0sIFdFQktJVF9QUk9DRVNTX01PREVMX01V
TFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVMpOwogCisgICAgLy8gVmVyaWZ5IHRoYXQgY2hhbmdp
bmcgdGhlIHByb2Nlc3MgbW9kZWwgaXMgbm8gbG9uZ2VyIGFsbG93ZWQuCiAgICAgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVs
dCgpLAotICAgICAgICBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJP
Q0VTU0VTKTsKLQotICAgIC8vIENoZWNrIHRoYXQgdGhlIGdldHRlciByZXR1cm5zIHRoZSBuZXds
eS1zZXQgdmFsdWUKKyAgICAgICAgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFS
WV9QUk9DRVNTKTsKICAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRf
cHJvY2Vzc19tb2RlbCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKSksCiAgICAgICAg
ID09LCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsK
KyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCiAKICAgICBidXMgPSBuZXcgV2ViS2l0VGVzdEJ1
cygpOwogICAgIGlmICghYnVzLT5ydW4oKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361057</attachid>
            <date>2019-02-04 08:06:56 -0800</date>
            <delta_ts>2019-09-03 01:40:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193749-20190204100655.patch</filename>
            <type>text/plain</type>
            <size>18109</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmMTI1Y2MyMmE2ZDg5MjM2
NmFkNjg4MDMzNWViZmJjNzBlNjZlNmQuLjc1YjFlMmUzNTU3Y2I2YjYwNDMyZTNkOTFjMDJmNTc1
NDg0NzgxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDItMDQgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10g
RGVwcmVjYXRlIG5vbmZ1bmN0aW9uYWwgcHJvY2VzcyBsaW1pdCBBUElzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM3NDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGZvciB0aGVzZSBzZXR0
aW5ncyBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIFdlYktpdCBsYXllciwgc28gb3VyIEFQSSBz
aG91bGQgcmVtb3ZlCisgICAgICAgIHRoZW0gdG9vLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0
X3NldF9wcm9jZXNzX21vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJv
Y2Vzc19tb2RlbCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNz
X2NvdW50X2xpbWl0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nl
c3NfY291bnRfbGltaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0Lmg6
CisKIDIwMTktMDItMDQgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGF2b2lkIC1Xc3dpdGNoIHdhcm5pbmdzIGludHJvZHVj
ZWQgaW4gcjI0MDg4MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCA3MjRjNWZiZjVlODQ3Y2VkMWYzMGZiMDhjZmQ1
OGQ4ZDFmNTY5ZjBiLi40OWRjN2NjZTNkMzNhNGQ2MDE1MGY5MzJiYzZhYWJmNjA2YTFjNTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJD
b250ZXh0LmNwcApAQCAtODIsOSArODIsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICog
VGhlICNXZWJLaXRXZWJDb250ZXh0IG1hbmFnZXMgYWxsIGFzcGVjdHMgY29tbW9uIHRvIGFsbAog
ICogI1dlYktpdFdlYlZpZXc8IS0tIC0tPnMuCiAgKgotICogWW91IGNhbiBkZWZpbmUgdGhlICNX
ZWJLaXRDYWNoZU1vZGVsIGFuZCAjV2ViS2l0UHJvY2Vzc01vZGVsIHdpdGgKLSAqIHdlYmtpdF93
ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9kZWwoKSBhbmQKLSAqIHdlYmtpdF93ZWJfY29udGV4dF9z
ZXRfcHJvY2Vzc19tb2RlbCgpLCBkZXBlbmRpbmcgb24gdGhlIG5lZWRzIG9mCisgKiBZb3UgY2Fu
IGRlZmluZSB0aGUgI1dlYktpdENhY2hlTW9kZWwgd2l0aAorICogd2Via2l0X3dlYl9jb250ZXh0
X3NldF9jYWNoZV9tb2RlbCgpLCBkZXBlbmRpbmcgb24gdGhlIG5lZWRzIG9mCiAgKiB5b3VyIGFw
cGxpY2F0aW9uLiBZb3UgY2FuIGFjY2VzcyB0aGUgI1dlYktpdFNlY3VyaXR5TWFuYWdlciB0byBz
cGVjaWZ5CiAgKiB0aGUgYmVoYXZpb3VyIG9mIHlvdXIgYXBwbGljYXRpb24gcmVnYXJkaW5nIHNl
Y3VyaXR5IHVzaW5nCiAgKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X21hbmFnZXIo
KS4KQEAgLTE3OCw4ICsxNzcsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRQcml2YXRlIHsK
IAogICAgIENTdHJpbmcgZmF2aWNvbkRhdGFiYXNlRGlyZWN0b3J5OwogICAgIFdlYktpdFRMU0Vy
cm9yc1BvbGljeSB0bHNFcnJvcnNQb2xpY3k7Ci0gICAgV2ViS2l0UHJvY2Vzc01vZGVsIHByb2Nl
c3NNb2RlbDsKLSAgICB1bnNpZ25lZCBwcm9jZXNzQ291bnRMaW1pdDsKIAogICAgIEhhc2hNYXA8
dWludDY0X3QsIFdlYktpdFdlYlZpZXcqPiB3ZWJWaWV3czsKICAgICB1bnNpZ25lZCBlcGhlbWVy
YWxQYWdlQ291bnQ7CkBAIC0xNDg2LDg3ICsxNDgzLDczIEBAIHZvaWQgd2Via2l0X3dlYl9jb250
ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9mb3JfaG9zdChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0CiAgKiBAY29udGV4dDogdGhlICNXZWJLaXRXZWJDb250ZXh0CiAgKiBAcHJvY2Vzc19tb2Rl
bDogYSAjV2ViS2l0UHJvY2Vzc01vZGVsCiAgKgotICogU3BlY2lmaWVzIGEgcHJvY2VzcyBtb2Rl
bCBmb3IgV2ViVmlld3MsIHdoaWNoIFdlYktpdCB3aWxsIHVzZSB0bwotICogZGV0ZXJtaW5lIGhv
dyBhdXhpbGlhcnkgcHJvY2Vzc2VzIGFyZSBoYW5kbGVkLiBUaGUgZGVmYXVsdCBzZXR0aW5nCi0g
KiAoJVdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUykgaXMgc3Vp
dGFibGUgZm9yIG1vc3QKLSAqIGFwcGxpY2F0aW9ucyB3aGljaCBlbWJlZCBhIHNtYWxsIGFtb3Vu
dCBvZiBXZWJWaWV3cywgb3IgYXJlIHVzZWQgdG8KLSAqIGRpc3BsYXkgZG9jdW1lbnRzIHdoaWNo
IGFyZSBjb25zaWRlcmVkIHNhZmUg4oCUIGxpa2UgbG9jYWwgZmlsZXMuCi0gKgotICogQXBwbGlj
YXRpb25zIHdoaWNoIG1heSBwb3RlbnRpYWxseSB1c2UgYSBsYXJnZSBhbW91bnQgb2YgV2ViVmll
d3MKLSAqIOKAlGZvciBleGFtcGxlIGEgbXVsdGktdGFiYmVkIHdlYiBicm93c2Vy4oCUIG1heSB3
YW50IHRvIHVzZQotICogJVdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9Q
Uk9DRVNTRVMsIHdoaWNoIHdpbGwgdXNlCi0gKiBvbmUgcHJvY2VzcyBwZXIgdmlldyBtb3N0IG9m
IHRoZSB0aW1lLCB3aGlsZSBzdGlsbCBhbGxvd2luZyBmb3Igd2ViCi0gKiB2aWV3cyB0byBzaGFy
ZSBhIHByb2Nlc3Mgd2hlbiBuZWVkZWQgKGZvciBleGFtcGxlIHdoZW4gZGlmZmVyZW50Ci0gKiB2
aWV3cyBpbnRlcmFjdCB3aXRoIGVhY2ggb3RoZXIpLiBVc2luZyB0aGlzIG1vZGVsLCB3aGVuIGEg
cHJvY2VzcwotICogaGFuZ3Mgb3IgY3Jhc2hlcywgb25seSB0aGUgV2ViVmlld3MgdXNpbmcgaXQg
c3RvcCB3b3JraW5nLCB3aGlsZQotICogdGhlIHJlc3Qgb2YgdGhlIFdlYlZpZXdzIGluIHRoZSBh
cHBsaWNhdGlvbiB3aWxsIHN0aWxsIGZ1bmN0aW9uCi0gKiBub3JtYWxseS4KKyAqIFRoaXMgZnVu
Y3Rpb24gZG9lcyBub3RoaW5nLgogICoKLSAqIFRoaXMgbWV0aG9kICoqbXVzdCBiZSBjYWxsZWQg
YmVmb3JlIGFueSB3ZWIgcHJvY2VzcyBoYXMgYmVlbiBjcmVhdGVkKiosCi0gKiBhcyBlYXJseSBh
cyBwb3NzaWJsZSBpbiB5b3VyIGFwcGxpY2F0aW9uLiBDYWxsaW5nIGl0IGxhdGVyIHdpbGwgbWFr
ZQotICogeW91ciBhcHBsaWNhdGlvbiBjcmFzaC4KKyAqIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBh
bGxvdyBzcGVjaWZ5aW5nIHdoZXRoZXIgd2ViIHZpZXdzIGNyZWF0ZWQgaW4KKyAqIEBjb250ZXh0
IHNob3VsZCBzaGFyZSB0aGUgc2FtZSB3ZWIgY29udGVudCByZW5kZXJpbmcgcHJvY2VzcyBvciB1
c2UKKyAqIHNlcGFyYXRlIHJlbmRlcmluZyBwcm9jZXNzZXMuIFNoYXJpbmcgdGhlIHNhbWUgcHJv
Y2VzcyBpcyBubyBsb25nZXIKKyAqIGFsbG93ZWQuCiAgKgogICogU2luY2U6IDIuNAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjYKICAqLwotdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nl
c3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgV2ViS2l0UHJvY2Vzc01vZGVsIHBy
b2Nlc3NNb2RlbCkKK3ZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFByb2Nlc3NNb2RlbCkKIHsKICAgICBnX3Jl
dHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7Ci0KLSAgICBpZiAo
cHJvY2Vzc01vZGVsID09IGNvbnRleHQtPnByaXYtPnByb2Nlc3NNb2RlbCkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgY29udGV4dC0+cHJpdi0+cHJvY2Vzc01vZGVsID0gcHJvY2Vzc01vZGVsOwog
fQogCiAvKioKICAqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbDoKICAqIEBj
b250ZXh0OiB0aGUgI1dlYktpdFdlYkNvbnRleHQKICAqCi0gKiBSZXR1cm5zIHRoZSBjdXJyZW50
IHByb2Nlc3MgbW9kZWwuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgdmFsdWUKLSAq
IHNlZSB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoKS4KKyAqIFJldHVybnMg
dGhlIGN1cnJlbnQgcHJvY2VzcyBtb2RlbCwgd2hpY2ggaXMgYWx3YXlzCisgKiBAV0VCS0lUX1BS
T0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUy4gRm9yIGRldGFpbHMsIHNl
ZQorICogd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKCkuCiAgKgotICogUmV0
dXJuczogdGhlIGN1cnJlbnQgI1dlYktpdFByb2Nlc3NNb2RlbAorICogUmV0dXJuczogQFdFQktJ
VF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVMKICAqCiAgKiBTaW5j
ZTogMi40CisgKgorICogRGVwcmVjYXRlZDogMi4yNgogICovCiBXZWJLaXRQcm9jZXNzTW9kZWwg
d2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsKFdlYktpdFdlYkNvbnRleHQqIGNv
bnRleHQpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhU
KGNvbnRleHQpLCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1Mp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0
KSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7CiAK
LSAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+cHJvY2Vzc01vZGVsOworICAgIHJldHVybiBXRUJL
SVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOwogfQogCiAvKioK
ICAqIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQ6CiAgKiBA
Y29udGV4dDogdGhlICNXZWJLaXRXZWJDb250ZXh0Ci0gKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51
bWJlciBvZiB3ZWIgcHJvY2Vzc2VzCisgKiBAbGltaXQ6IGlnbm9yZWQKICAqCi0gKiBTZXRzIHRo
ZSBtYXhpbXVtIG51bWJlciBvZiB3ZWIgcHJvY2Vzc2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgYXQg
dGhlIHNhbWUgdGltZSBmb3IgdGhlIEBjb250ZXh0LgotICogVGhlIGRlZmF1bHQgdmFsdWUgaXMg
MCBhbmQgbWVhbnMgbm8gbGltaXQuCisgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4KICAq
Ci0gKiBUaGlzIG1ldGhvZCAqKm11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2ViIHByb2Nlc3Mg
aGFzIGJlZW4gY3JlYXRlZCoqLAotICogYXMgZWFybHkgYXMgcG9zc2libGUgaW4geW91ciBhcHBs
aWNhdGlvbi4gQ2FsbGluZyBpdCBsYXRlciB3aWxsIG1ha2UKLSAqIHlvdXIgYXBwbGljYXRpb24g
Y3Jhc2guCisgKiBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gc2V0IHRoZSBtYXhpbXVtIG51bWJlciBv
ZiB3ZWIgcHJvY2Vzc2VzIHRoYXQKKyAqIGNvdWxkIGJlIGNyZWF0ZWQgYXQgdGhlIHNhbWUgdGlt
ZSBmb3IgdGhlIEBjb250ZXh0LCBidXQgaXQgaXMgbm8KKyAqIGxvbmdlciBzYWZlIHRvIHNldCBz
dWNoIGxpbWl0cyBhcyBwcm9jZXNzIHN3YXBwaW5nIGlzIHJlcXVpcmVkIHRvCisgKiBtaXRpZ2F0
ZSBzcGVjdWxhdGl2ZSBleGVjdXRpb24gdnVsbmVyYWJpbGl0aWVzLgogICoKICAqIFNpbmNlOiAy
LjEwCisgKgorICogRGVwcmVjYXRlZDogMi4yNgogICovCi12b2lkIHdlYmtpdF93ZWJfY29udGV4
dF9zZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z3VpbnQgbGltaXQpCit2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfd2ViX3Byb2Nlc3NfY291
bnRfbGltaXQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgZ3VpbnQpCiB7CiAgICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwotCi0gICAgaWYgKGNv
bnRleHQtPnByaXYtPnByb2Nlc3NDb3VudExpbWl0ID09IGxpbWl0KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzQ291bnRMaW1pdCA9IGxpbWl0OwogfQogCiAv
KioKICAqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQ6CiAg
KiBAY29udGV4dDogdGhlICNXZWJLaXRXZWJDb250ZXh0CiAgKgotICogR2V0cyB0aGUgbWF4aW11
bSBudW1iZXIgb2Ygd2ViIHByb2Nlc3NlcyB0aGF0IGNhbiBiZSBjcmVhdGVkIGF0IHRoZSBzYW1l
IHRpbWUgZm9yIHRoZSBAY29udGV4dC4KKyAqIFRoaXMgZnVuY3Rpb24gdXNlZCB0byByZXR1cm4g
dGhlIG1heGltdW0gbnVtYmVyIG9mIHdlYiBwcm9jZXNzZXMgc2V0CisgKiB3aXRoIHdlYmtpdF93
ZWJfY29udGV4dF9zZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQoKS4gSXQgaXMgbm8KKyAqIGxv
bmdlciBwb3NzaWJsZSB0byBzZXQgc3VjaCBhIGxpbWl0LCBzbyBub3cgaXQgYWx3YXlzIHJldHVy
bnMgMC4KICAqCi0gKiBSZXR1cm5zOiB0aGUgbWF4aW11bSBsaW1pdCBvZiB3ZWIgcHJvY2Vzc2Vz
LCBvciAwIGlmIHRoZXJlIGlzbid0IGEgbGltaXQuCisgKiBSZXR1cm5zOiAwCiAgKgogICogU2lu
Y2U6IDIuMTAKICAqLwpAQCAtMTU3NCw3ICsxNTU3LDcgQEAgZ3VpbnQgd2Via2l0X3dlYl9jb250
ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250
ZXh0KSwgMCk7CiAKLSAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+cHJvY2Vzc0NvdW50TGltaXQ7
CisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGFkZE9yaWdpblRvTWFwKFdlYktpdFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4sIEhhc2hNYXA8U3RyaW5nLCBib29sPiogbWFwLCBib29sIGFs
bG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dC5oCmluZGV4IDgxMzUxYWYzYzUxMDgwZWI3M2MyNDUwNWM2YWY4MjJmNjIyMGM5YTIu
LjBjZDQ0ODNmMTZlYjAwN2U1MTE1NzdjMTAyMTdhN2EyNzAxMTdlMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCkBAIC02Nywx
OSArNjcsMTEgQEAgdHlwZWRlZiBlbnVtIHsKIC8qKgogICogV2ViS2l0UHJvY2Vzc01vZGVsOgog
ICogQFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzogVXNlIGEg
c2luZ2xlIHByb2Nlc3MgdG8KLSAqICAgcGVyZm9ybSBjb250ZW50IHJlbmRlcmluZy4gVGhlIHBy
b2Nlc3MgaXMgc2hhcmVkIGFtb25nIGFsbCB0aGUKLSAqICAgI1dlYktpdFdlYlZpZXcgaW5zdGFu
Y2VzIGNyZWF0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uOiBpZiB0aGUgcHJvY2VzcwotICogICBoYW5n
cyBvciBjcmFzaGVzIGFsbCB0aGUgd2ViIHZpZXdzIGluIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJl
IGFmZmVjdGVkLgotICogICBUaGlzIGlzIHRoZSBkZWZhdWx0IHByb2Nlc3MgbW9kZWwsIGFuZCBp
dCBzaG91bGQgc3VmZmljZSBmb3IgbW9zdCBjYXNlcy4KLSAqIEBXRUJLSVRfUFJPQ0VTU19NT0RF
TF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOiBVc2Ugb25lIHByb2Nlc3MKLSAqICAgZm9y
IGVhY2ggI1dlYktpdFdlYlZpZXcsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciBzb21lIG9mIHRo
ZW0gdG8KLSAqICAgc2hhcmUgYSBwcm9jZXNzIGluIGNlcnRhaW4gc2l0dWF0aW9ucy4gVGhlIG1h
aW4gYWR2YW50YWdlCi0gKiAgIG9mIHRoaXMgcHJvY2VzcyBtb2RlbCBpcyB0aGF0IHRoZSByZW5k
ZXJpbmcgcHJvY2VzcyBmb3IgYSB3ZWIgdmlldwotICogICBjYW4gY3Jhc2ggd2hpbGUgdGhlIHJl
c3Qgb2YgdGhlIHZpZXdzIGtlZXAgd29ya2luZyBub3JtYWxseS4gVGhpcwotICogICBwcm9jZXNz
IG1vZGVsIGlzIGluZGljYXRlZCBmb3IgYXBwbGljYXRpb25zIHdoaWNoIG1heSB1c2UgYSBudW1i
ZXIKLSAqICAgb2Ygd2ViIHZpZXdzIGFuZCB0aGUgY29udGVudCBvZiBpbiBlYWNoIG11c3Qgbm90
IGludGVyZmVyZSB3aXRoIHRoZQotICogICByZXN0IOKAlCBmb3IgZXhhbXBsZSBhIGZ1bGwtZmxl
ZGdlZCB3ZWIgYnJvd3NlciB3aXRoIHN1cHBvcnQgZm9yCi0gKiAgIG11bHRpcGxlIHRhYnMuCisg
KiAgIHBlcmZvcm0gY29udGVudCByZW5kZXJpbmcuIFRoaXMgaXMgbm8gbG9uZ2VyIGFsbG93ZWQg
c2luY2UgMi4yNi4KKyAqIEBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllf
UFJPQ0VTU0VTOiBVc2Ugb25lIG9yIG1vcmUKKyAqICAgcHJvY2Vzc2VzIGZvciBlYWNoICNXZWJL
aXRXZWJWaWV3LCB3aGlsZSBzdGlsbCBhbGxvd2luZyBmb3Igc29tZQorICogICBvZiB0aGVtIHRv
IHNoYXJlIGEgcHJvY2VzcyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMuIFRoaXMgcHJvY2VzcworICog
ICBtb2RlbCBpcyBub3cgcmVxdWlyZWQgc2luY2UgMi4yNi4KICAqCiAgKiBFbnVtIHZhbHVlcyB1
c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgI1dlYktpdFdlYkNvbnRleHQgcHJvY2VzcyBtb2RlbC4K
ICAqCkBAIC0xOTIsMTEgKzE4NCwxMSBAQCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2NhY2hlX21v
ZGVsICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQKIFdFQktJVF9BUEkgV2ViS2l0
Q2FjaGVNb2RlbAogd2Via2l0X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbCAgICAgICAgICAg
ICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0X3Nl
dF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0KTsKIAotV0VC
S0lUX0FQSSBndWludAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VpbnQKIHdlYmtpdF93ZWJfY29udGV4
dF9nZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAg
ICAgICAgICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJIHZvaWQKQEAgLTMwNSwxMSArMjk3LDEx
IEBAIHdlYmtpdF93ZWJfY29udGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QgICAo
V2ViS2l0V2ViQ29udGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHVGxzQ2VydGlmaWNhdGUgICAgICAgICAgICAgICAqY2VydGlmaWNhdGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpob3N0KTsKIAotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9k
ZWwgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRQcm9jZXNzTW9kZWwgICAgICAgICAgICAgcHJvY2Vzc19tb2RlbCk7CiAKLVdFQktJVF9B
UEkgV2ViS2l0UHJvY2Vzc01vZGVsCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRQcm9jZXNzTW9k
ZWwKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbCAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJIHZv
aWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vi
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250
ZXh0LmgKaW5kZXggMDgxY2QxMWEzNDJhOWY2MTFhNGY0MTk4Y2VjMjkzMjk0YzJhMjcwMS4uNjc0
YWY2NDQyNDE1OGY0YTI4YjUyMWIwNjU2ZTQyNmMzMmZkZjM3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTY3LDE5ICs2
NywxMSBAQCB0eXBlZGVmIGVudW0gewogLyoqCiAgKiBXZWJLaXRQcm9jZXNzTW9kZWw6CiAgKiBA
V0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOiBVc2UgYSBzaW5n
bGUgcHJvY2VzcyB0bwotICogICBwZXJmb3JtIGNvbnRlbnQgcmVuZGVyaW5nLiBUaGUgcHJvY2Vz
cyBpcyBzaGFyZWQgYW1vbmcgYWxsIHRoZQotICogICAjV2ViS2l0V2ViVmlldyBpbnN0YW5jZXMg
Y3JlYXRlZCBieSB0aGUgYXBwbGljYXRpb246IGlmIHRoZSBwcm9jZXNzCi0gKiAgIGhhbmdzIG9y
IGNyYXNoZXMgYWxsIHRoZSB3ZWIgdmlld3MgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgYWZm
ZWN0ZWQuCi0gKiAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgcHJvY2VzcyBtb2RlbCwgYW5kIGl0IHNo
b3VsZCBzdWZmaWNlIGZvciBtb3N0IGNhc2VzLgotICogQFdFQktJVF9QUk9DRVNTX01PREVMX01V
TFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6IFVzZSBvbmUgcHJvY2VzcwotICogICBmb3IgZWFj
aCAjV2ViS2l0V2ViVmlldywgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9yIHNvbWUgb2YgdGhlbSB0
bwotICogICBzaGFyZSBhIHByb2Nlc3MgaW4gY2VydGFpbiBzaXR1YXRpb25zLiBUaGUgbWFpbiBh
ZHZhbnRhZ2UKLSAqICAgb2YgdGhpcyBwcm9jZXNzIG1vZGVsIGlzIHRoYXQgdGhlIHJlbmRlcmlu
ZyBwcm9jZXNzIGZvciBhIHdlYiB2aWV3Ci0gKiAgIGNhbiBjcmFzaCB3aGlsZSB0aGUgcmVzdCBv
ZiB0aGUgdmlld3Mga2VlcCB3b3JraW5nIG5vcm1hbGx5LiBUaGlzCi0gKiAgIHByb2Nlc3MgbW9k
ZWwgaXMgaW5kaWNhdGVkIGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggbWF5IHVzZSBhIG51bWJlcgot
ICogICBvZiB3ZWIgdmlld3MgYW5kIHRoZSBjb250ZW50IG9mIGluIGVhY2ggbXVzdCBub3QgaW50
ZXJmZXJlIHdpdGggdGhlCi0gKiAgIHJlc3Qg4oCUIGZvciBleGFtcGxlIGEgZnVsbC1mbGVkZ2Vk
IHdlYiBicm93c2VyIHdpdGggc3VwcG9ydCBmb3IKLSAqICAgbXVsdGlwbGUgdGFicy4KKyAqICAg
cGVyZm9ybSBjb250ZW50IHJlbmRlcmluZy4gVGhpcyBpcyBubyBsb25nZXIgYWxsb3dlZCBzaW5j
ZSAyLjI2LgorICogQFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9D
RVNTRVM6IFVzZSBvbmUgb3IgbW9yZQorICogICBwcm9jZXNzZXMgZm9yIGVhY2ggI1dlYktpdFdl
YlZpZXcsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciBzb21lCisgKiAgIG9mIHRoZW0gdG8gc2hh
cmUgYSBwcm9jZXNzIGluIGNlcnRhaW4gc2l0dWF0aW9ucy4gVGhpcyBwcm9jZXNzCisgKiAgIG1v
ZGVsIGlzIG5vdyByZXF1aXJlZCBzaW5jZSAyLjI2LgogICoKICAqIEVudW0gdmFsdWVzIHVzZWQg
Zm9yIGRldGVybWluaW5nIHRoZSAjV2ViS2l0V2ViQ29udGV4dCBwcm9jZXNzIG1vZGVsLgogICoK
QEAgLTE5MiwxMSArMTg0LDExIEBAIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9kZWwg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dAogV0VCS0lUX0FQSSBXZWJLaXRDYWNo
ZU1vZGVsCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKIAotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dl
Yl9wcm9jZXNzX2NvdW50X2xpbWl0ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAg
ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpOwogCi1XRUJLSVRf
QVBJIGd1aW50CitXRUJLSVRfREVQUkVDQVRFRCBndWludAogd2Via2l0X3dlYl9jb250ZXh0X2dl
dF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9pZApAQCAtMzAxLDExICsyOTMsMTEgQEAg
d2Via2l0X3dlYl9jb250ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9mb3JfaG9zdCAgIChXZWJL
aXRXZWJDb250ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZSAgICAgICAgICAgICAgICpjZXJ0aWZpY2F0ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgICAgICAgICAgICAgICAgICAgKmhvc3QpOwogCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFByb2Nlc3NNb2RlbCAgICAgICAgICAgICBwcm9jZXNzX21vZGVsKTsKIAotV0VCS0lUX0FQSSBX
ZWJLaXRQcm9jZXNzTW9kZWwKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdFByb2Nlc3NNb2RlbAog
d2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9pZApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjMmE1
NGU5MjZhOGQ4N2Y3OTZkOTA5ODlhODIyYWYwMGIzYjM0ZGYuLjM2NmM4NDY3N2M0M2MzNGM2NWEx
ZDkxNTgzZjg5NDc5N2NhNjVmYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wMi0wNCAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBEZXBy
ZWNhdGUgbm9uZnVuY3Rpb25hbCBwcm9jZXNzIGxpbWl0IEFQSXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzc0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL21haW4uYzoK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0TXVsdGlwcm9jZXNzLmNwcDoKKyAgICAgICAgKHRlc3RXZWJQcm9jZXNzTGltaXQpOgor
ICAgICAgICAoYmVmb3JlQWxsKToKKwogMjAxOS0wMi0wMyAgRnVqaWkgSGlyb25vcmkgIDxIaXJv
bm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXSBXZWJLaXRUZXN0UnVubmVycyBp
cyBmYWlsaW5nIHRvIGNyZWF0ZSB0aGUgSW5kZXhlZERCIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFp
bi5jCmluZGV4IGFmYmU1NTVlYTUyODNiYmI3Yzg3NDNmNGEzNzY3ZjZlNWNkMWVlNDEuLmUyYWM4
YmI3NDBhN2ViOTg2ZDdmOTExOTYxZDc2MGU5YzZmMTRhYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpA
QCAtNTI2LDEwICs1MjYsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAg
ICAgICB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5nc19mcmVlKHdlYmtpdFByb3h5U2V0dGlu
Z3MpOwogICAgIH0KIAotICAgIGNvbnN0IGdjaGFyICpzaW5nbGVwcm9jZXNzID0gZ19nZXRlbnYo
Ik1JTklCUk9XU0VSX1NJTkdMRVBST0NFU1MiKTsKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0
X3Byb2Nlc3NfbW9kZWwod2ViQ29udGV4dCwgKHNpbmdsZXByb2Nlc3MgJiYgKnNpbmdsZXByb2Nl
c3MpID8KLSAgICAgICAgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9D
RVNTIDogV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7
Ci0KICAgICAvLyBFbmFibGUgdGhlIGZhdmljb24gZGF0YWJhc2UsIGJ5IHNwZWNpZnlpbmcgdGhl
IGRlZmF1bHQgZGlyZWN0b3J5LgogICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfZmF2aWNvbl9k
YXRhYmFzZV9kaXJlY3Rvcnkod2ViQ29udGV4dCwgTlVMTCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcApp
bmRleCA5YjVlNmI2MmQxMGJjOGZiZDFiYThiOTFiMTk1NDIwOTFiYmUyOTZlLi4yZjJhMmUzOTlm
MDQ0Y2JkNjQ3MjQyODBhMzMwMDUyNmU3M2I0NDY4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdE11bHRpcHJvY2Vzcy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RNdWx0aXByb2Nlc3MuY3BwCkBAIC0z
Nyw3ICszNyw2IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3dlYlZpZXdCdXNOYW1lcyhudW1WaWV3
cykKICAgICAgICAgLCBtX3dlYlZpZXdzKG51bVZpZXdzKQogICAgIHsKLSAgICAgICAgd2Via2l0
X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKG1fd2ViQ29udGV4dC5nZXQoKSwgV0VCS0lU
X1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7CiAgICAgfQogCiAg
ICAgdm9pZCBpbml0aWFsaXplV2ViRXh0ZW5zaW9ucygpIG92ZXJyaWRlCkBAIC0xNjksNyArMTY4
LDYgQEAgcHVibGljOgogICAgICAgICA6IG1fbWFpbkxvb3AoZ19tYWluX2xvb3BfbmV3KG51bGxw
dHIsIFRSVUUpKQogICAgICAgICAsIG1faW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnNTaWduYWxDb3Vu
dCgwKQogICAgIHsKLSAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVs
KG1fd2ViQ29udGV4dC5nZXQoKSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05E
QVJZX1BST0NFU1NFUyk7CiAgICAgICAgIG1fd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhUZXN0
OjpjcmVhdGVXZWJWaWV3KG1fd2ViQ29udGV4dC5nZXQoKSkpOwogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICAgICAgZ19vYmplY3RfcmVmX3NpbmsobV93ZWJWaWV3KTsKQEAgLTI1MCwzMiArMjQ4LDMw
IEBAIHN0YXRpYyB2b2lkIHRlc3RNdWx0aXByb2Nlc3NXZWJWaWV3Q3JlYXRlUmVhZHlDbG9zZShV
SUNsaWVudE11bHRpcHJvY2Vzc1Rlc3QqIHRlCiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJQcm9jZXNz
TGltaXQoTXVsdGlwcm9jZXNzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKKyNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9j
b250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0
KCkpLCA9PSwgMCk7CiAKKyAgICAvLyBTZXR0aW5nIGEgcHJvY2VzcyBjb3VudCBsaW1pdCBpcyBu
byBsb25nZXIgYWxsb3dlZC4KICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNz
X2NvdW50X2xpbWl0KHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSwgMSk7Ci0gICAgZ19hc3NlcnRf
Y21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0KHRl
c3QtPm1fd2ViQ29udGV4dC5nZXQoKSksID09LCAxKTsKLQotICAgIC8vIENyZWF0ZSB0d28gd2Vi
IHZpZXdzIGJ1dCB0aGVyZSBzaG91bGQgYmUgb25seSBvbmUgd2ViIHByb2Nlc3MuCi0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVZpZXdzOyBpKyspIHsKLSAgICAgICAgdGVzdC0+bG9h
ZFdlYlZpZXdBbmRXYWl0VW50aWxMb2FkZWQoaSk7Ci0gICAgICAgIGdfYXNzZXJ0X3RydWUoV0VC
S0lUX0lTX1dFQl9WSUVXKHRlc3QtPm1fd2ViVmlld3NbaV0uZ2V0KCkpKTsKLSAgICB9Ci0KLSAg
ICBnX2Fzc2VydF9jbXB1aW50KHRlc3QtPm1faW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnNTaWduYWxD
b3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dl
dF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpLCA9PSwg
MCk7CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAogfQogCiB2b2lkIGJlZm9yZUFsbCgpCiB7
CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBDaGVjayB0aGF0IGRlZmF1
bHQgc2V0dGluZyBpcyB0aGUgb25lIHN0YXRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbgogICAgIGdf
YXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsKHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgpKSwKLSAgICAgICAgPT0sIFdFQktJVF9QUk9DRVNT
X01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUyk7CisgICAgICAgID09LCBXRUJLSVRfUFJP
Q0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsKIAorICAgIC8vIFZlcmlm
eSB0aGF0IGNoYW5naW5nIHRoZSBwcm9jZXNzIG1vZGVsIGlzIG5vIGxvbmdlciBhbGxvd2VkLgog
ICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCh3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X2RlZmF1bHQoKSwKLSAgICAgICAgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVf
U0VDT05EQVJZX1BST0NFU1NFUyk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoZSBnZXR0ZXIgcmV0
dXJucyB0aGUgbmV3bHktc2V0IHZhbHVlCisgICAgICAgIFdFQktJVF9QUk9DRVNTX01PREVMX1NI
QVJFRF9TRUNPTkRBUllfUFJPQ0VTUyk7CiAgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2Vi
X2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwod2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0
KCkpLAogICAgICAgICA9PSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZ
X1BST0NFU1NFUyk7CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAogCiAgICAgYnVzID0gbmV3
IFdlYktpdFRlc3RCdXMoKTsKICAgICBpZiAoIWJ1cy0+cnVuKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377875</attachid>
            <date>2019-09-03 01:40:02 -0700</date>
            <delta_ts>2019-09-03 02:14:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-process-limit-deprecated.diff</filename>
            <type>text/plain</type>
            <size>13091</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMjBiNWQ4YmRiMDIuLmMwNTA3NDYzYzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDE5LTA5LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXVtHVEtdIERlcHJlY2F0ZSBub25mdW5jdGlvbmFsIHByb2Nl
c3MgbGltaXQgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzNzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAg
ICh3ZWJraXRXZWJDb250ZXh0Q29uc3RydWN0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X3NldF9wcm9jZXNzX21vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRf
cHJvY2Vzc19tb2RlbCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9j
ZXNzX2NvdW50X2xpbWl0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3By
b2Nlc3NfY291bnRfbGltaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0
Lmg6CisKIDIwMTktMDktMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZCBhbiBlbnYgdmFyIHRvIGZvcmNlIHNpbmds
ZSBwcm9jZXNzIG1vZGVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGJmMzAxZWRmZTBiLi5hZTllNjEzODNmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Q29udGV4dC5jcHAKQEAgLTE3Niw3ICsxNzYsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRQ
cml2YXRlIHsKICAgICBDU3RyaW5nIGZhdmljb25EYXRhYmFzZURpcmVjdG9yeTsKICAgICBXZWJL
aXRUTFNFcnJvcnNQb2xpY3kgdGxzRXJyb3JzUG9saWN5OwogICAgIFdlYktpdFByb2Nlc3NNb2Rl
bCBwcm9jZXNzTW9kZWw7Ci0gICAgdW5zaWduZWQgcHJvY2Vzc0NvdW50TGltaXQ7CiAKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBXZWJLaXRXZWJWaWV3Kj4gd2ViVmlld3M7CiAgICAgdW5zaWduZWQg
ZXBoZW1lcmFsUGFnZUNvdW50OwpAQCAtMzYyLDYgKzM2MSw4IEBAIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIHByaXYtPnRsc0Vycm9yc1BvbGljeSA9IFdFQktJVF9UTFNf
RVJST1JTX1BPTElDWV9GQUlMOwogICAgIHByaXYtPnByb2Nlc3NQb29sLT5zZXRJZ25vcmVUTFNF
cnJvcnMoZmFsc2UpOwogCisgICAgcHJpdi0+cHJvY2Vzc01vZGVsID0gV0VCS0lUX1BST0NFU1Nf
TU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKKwogI2lmIEVOQUJMRShNRU1PUllf
U0FNUExFUikKICAgICBpZiAoZ2V0ZW52KCJXRUJLSVRfU0FNUExFX01FTU9SWSIpKQogICAgICAg
ICBwcml2LT5wcm9jZXNzUG9vbC0+c3RhcnRNZW1vcnlTYW1wbGVyKDApOwpAQCAtMTUyOSwxNCAr
MTUzMCw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9m
b3JfaG9zdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0CiAgKiBAcHJvY2Vzc19tb2RlbDogYSAj
V2ViS2l0UHJvY2Vzc01vZGVsCiAgKgogICogU3BlY2lmaWVzIGEgcHJvY2VzcyBtb2RlbCBmb3Ig
V2ViVmlld3MsIHdoaWNoIFdlYktpdCB3aWxsIHVzZSB0bwotICogZGV0ZXJtaW5lIGhvdyBhdXhp
bGlhcnkgcHJvY2Vzc2VzIGFyZSBoYW5kbGVkLiBUaGUgZGVmYXVsdCBzZXR0aW5nCi0gKiAoJVdF
QktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUykgaXMgc3VpdGFibGUg
Zm9yIG1vc3QKLSAqIGFwcGxpY2F0aW9ucyB3aGljaCBlbWJlZCBhIHNtYWxsIGFtb3VudCBvZiBX
ZWJWaWV3cywgb3IgYXJlIHVzZWQgdG8KLSAqIGRpc3BsYXkgZG9jdW1lbnRzIHdoaWNoIGFyZSBj
b25zaWRlcmVkIHNhZmUg4oCUIGxpa2UgbG9jYWwgZmlsZXMuCi0gKgotICogQXBwbGljYXRpb25z
IHdoaWNoIG1heSBwb3RlbnRpYWxseSB1c2UgYSBsYXJnZSBhbW91bnQgb2YgV2ViVmlld3MKLSAq
IOKAlGZvciBleGFtcGxlIGEgbXVsdGktdGFiYmVkIHdlYiBicm93c2Vy4oCUIG1heSB3YW50IHRv
IHVzZQotICogJVdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNT
RVMsIHdoaWNoIHdpbGwgdXNlCisgKiBkZXRlcm1pbmUgaG93IGF1eGlsaWFyeSBwcm9jZXNzZXMg
YXJlIGhhbmRsZWQuCisgKgorICogJVdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09O
REFSWV9QUk9DRVNTRVMgd2lsbCB1c2UKICAqIG9uZSBwcm9jZXNzIHBlciB2aWV3IG1vc3Qgb2Yg
dGhlIHRpbWUsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciB3ZWIKICAqIHZpZXdzIHRvIHNoYXJl
IGEgcHJvY2VzcyB3aGVuIG5lZWRlZCAoZm9yIGV4YW1wbGUgd2hlbiBkaWZmZXJlbnQKICAqIHZp
ZXdzIGludGVyYWN0IHdpdGggZWFjaCBvdGhlcikuIFVzaW5nIHRoaXMgbW9kZWwsIHdoZW4gYSBw
cm9jZXNzCkBAIC0xNTQ0LDYgKzE1NDAsOSBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9hbGxv
d190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dAogICog
dGhlIHJlc3Qgb2YgdGhlIFdlYlZpZXdzIGluIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHN0aWxsIGZ1
bmN0aW9uCiAgKiBub3JtYWxseS4KICAqCisgKiAlV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVE
X1NFQ09OREFSWV9QUk9DRVNTIGlzIGRlcHJlY2F0ZWQgc2luY2UgMi4yNiwKKyAqIHVzaW5nIGl0
IGhhcyBubyBlZmZlY3QgZm9yIHNlY3VyaXR5IHJlYXNvbnMuCisgKgogICogVGhpcyBtZXRob2Qg
KiptdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IHdlYiBwcm9jZXNzIGhhcyBiZWVuIGNyZWF0ZWQq
KiwKICAqIGFzIGVhcmx5IGFzIHBvc3NpYmxlIGluIHlvdXIgYXBwbGljYXRpb24uIENhbGxpbmcg
aXQgbGF0ZXIgd2lsbCBtYWtlCiAgKiB5b3VyIGFwcGxpY2F0aW9uIGNyYXNoLgpAQCAtMTU1NCw2
ICsxNTUzLDExIEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFByb2NlCiB7CiAgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogCisgICAgaWYgKHByb2Nlc3NN
b2RlbCA9PSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MpIHsK
KyAgICAgICAgZ193YXJuaW5nKCJXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZ
X1BST0NFU1MgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdCIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgaWYgKHByb2Nlc3NNb2RlbCA9PSBjb250ZXh0LT5wcml2LT5wcm9j
ZXNzTW9kZWwpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTU3Myw3ICsxNTc3LDcgQEAgdm9pZCB3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29u
dGV4dCwgV2ViS2l0UHJvY2UKICAqLwogV2ViS2l0UHJvY2Vzc01vZGVsIHdlYmtpdF93ZWJfY29u
dGV4dF9nZXRfcHJvY2Vzc19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogewotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSwgV0VC
S0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTKTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCksIFdFQktJVF9QUk9D
RVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVMpOwogCiAgICAgcmV0dXJuIGNv
bnRleHQtPnByaXYtPnByb2Nlc3NNb2RlbDsKIH0KQEAgLTE1ODYsMjAgKzE1OTAsMTcgQEAgV2Vi
S2l0UHJvY2Vzc01vZGVsIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbChXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXgKICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdlYiBw
cm9jZXNzZXMgdGhhdCBjYW4gYmUgY3JlYXRlZCBhdCB0aGUgc2FtZSB0aW1lIGZvciB0aGUgQGNv
bnRleHQuCiAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwIGFuZCBtZWFucyBubyBsaW1pdC4KICAq
Ci0gKiBUaGlzIG1ldGhvZCAqKm11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2ViIHByb2Nlc3Mg
aGFzIGJlZW4gY3JlYXRlZCoqLAotICogYXMgZWFybHkgYXMgcG9zc2libGUgaW4geW91ciBhcHBs
aWNhdGlvbi4gQ2FsbGluZyBpdCBsYXRlciB3aWxsIG1ha2UKLSAqIHlvdXIgYXBwbGljYXRpb24g
Y3Jhc2guCisgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdyBkZXByZWNhdGVkIGFuZCBkb2VzIG5vdGhp
bmcgZm9yIHNlY3VyaXR5IHJlYXNvbnMuCiAgKgogICogU2luY2U6IDIuMTAKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjI2CiAgKi8KIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vz
c19jb3VudF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBndWludCBsaW1pdCkKIHsK
ICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAK
LSAgICBpZiAoY29udGV4dC0+cHJpdi0+cHJvY2Vzc0NvdW50TGltaXQgPT0gbGltaXQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvbnRleHQtPnByaXYtPnByb2Nlc3NDb3VudExpbWl0ID0gbGlt
aXQ7CisgICAgZ193YXJuaW5nKCJ3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2Nv
dW50X2xpbWl0IGlzIGRlcHJlY2F0ZWQgYW5kIGRvZXMgbm90aGluZy4gTGltaXRpbmcgdGhlIG51
bWJlciBvZiB3ZWIgcHJvY2Vzc2VzIGlzIG5vIGxvbmdlciBwb3NzaWJsZSBmb3Igc2VjdXJpdHkg
cmVhc29ucyIpOwogfQogCiAvKioKQEAgLTE2MDgsMTUgKzE2MDksMTkgQEAgdm9pZCB3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0KFdlYktpdFdlYkNvbnRleHQq
IGNvbnRleHQsIGcKICAqCiAgKiBHZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3ZWIgcHJvY2Vz
c2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgYXQgdGhlIHNhbWUgdGltZSBmb3IgdGhlIEBjb250ZXh0
LgogICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgbm93IGRlcHJlY2F0ZWQgYW5kIGFsd2F5cyByZXR1
cm5zIDAgKG5vIGxpbWl0KS4gU2VlIGFsc28gd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJv
Y2Vzc19jb3VudF9saW1pdCgpLgorICoKICAqIFJldHVybnM6IHRoZSBtYXhpbXVtIGxpbWl0IG9m
IHdlYiBwcm9jZXNzZXMsIG9yIDAgaWYgdGhlcmUgaXNuJ3QgYSBsaW1pdC4KICAqCiAgKiBTaW5j
ZTogMi4xMAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjYKICAqLwogZ3VpbnQgd2Via2l0X3dlYl9j
b250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChj
b250ZXh0KSwgMCk7CiAKLSAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+cHJvY2Vzc0NvdW50TGlt
aXQ7CisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGFkZE9yaWdpblRvTWFwKFdlYktp
dFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIEhhc2hNYXA8U3RyaW5nLCBib29sPiogbWFwLCBib29s
IGFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5oCmluZGV4IDgyYThkODI4ZGZhLi45NWNlNWE1ZjRmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTY3
LDExICs2Nyw3IEBAIHR5cGVkZWYgZW51bSB7CiAKIC8qKgogICogV2ViS2l0UHJvY2Vzc01vZGVs
OgotICogQFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzogVXNl
IGEgc2luZ2xlIHByb2Nlc3MgdG8KLSAqICAgcGVyZm9ybSBjb250ZW50IHJlbmRlcmluZy4gVGhl
IHByb2Nlc3MgaXMgc2hhcmVkIGFtb25nIGFsbCB0aGUKLSAqICAgI1dlYktpdFdlYlZpZXcgaW5z
dGFuY2VzIGNyZWF0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uOiBpZiB0aGUgcHJvY2VzcwotICogICBo
YW5ncyBvciBjcmFzaGVzIGFsbCB0aGUgd2ViIHZpZXdzIGluIHRoZSBhcHBsaWNhdGlvbiB3aWxs
IGJlIGFmZmVjdGVkLgotICogICBUaGlzIGlzIHRoZSBkZWZhdWx0IHByb2Nlc3MgbW9kZWwsIGFu
ZCBpdCBzaG91bGQgc3VmZmljZSBmb3IgbW9zdCBjYXNlcy4KKyAqIEBXRUJLSVRfUFJPQ0VTU19N
T0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6IERlcHJlY2F0ZWQgMi4yNi4KICAqIEBXRUJL
SVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOiBVc2Ugb25lIHBy
b2Nlc3MKICAqICAgZm9yIGVhY2ggI1dlYktpdFdlYlZpZXcsIHdoaWxlIHN0aWxsIGFsbG93aW5n
IGZvciBzb21lIG9mIHRoZW0gdG8KICAqICAgc2hhcmUgYSBwcm9jZXNzIGluIGNlcnRhaW4gc2l0
dWF0aW9ucy4gVGhlIG1haW4gYWR2YW50YWdlCkBAIC0xOTMsMTEgKzE4OSwxMSBAQCB3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNv
bnRleHQKIFdFQktJVF9BUEkgV2ViS2l0Q2FjaGVNb2RlbAogd2Via2l0X3dlYl9jb250ZXh0X2dl
dF9jYWNoZV9tb2RlbCAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCk7CiAKLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpbWl0KTsKIAotV0VCS0lUX0FQSSBndWludAorV0VCS0lUX0RFUFJFQ0FURUQg
Z3VpbnQKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQgICAg
ICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJ
IHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJD
b250ZXh0LmgKaW5kZXggYTMyNjgwZmE4MzAuLmRlYjg4NWMxODVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaApAQCAtNjcsMTEg
KzY3LDcgQEAgdHlwZWRlZiBlbnVtIHsKIAogLyoqCiAgKiBXZWJLaXRQcm9jZXNzTW9kZWw6Ci0g
KiBAV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOiBVc2UgYSBz
aW5nbGUgcHJvY2VzcyB0bwotICogICBwZXJmb3JtIGNvbnRlbnQgcmVuZGVyaW5nLiBUaGUgcHJv
Y2VzcyBpcyBzaGFyZWQgYW1vbmcgYWxsIHRoZQotICogICAjV2ViS2l0V2ViVmlldyBpbnN0YW5j
ZXMgY3JlYXRlZCBieSB0aGUgYXBwbGljYXRpb246IGlmIHRoZSBwcm9jZXNzCi0gKiAgIGhhbmdz
IG9yIGNyYXNoZXMgYWxsIHRoZSB3ZWIgdmlld3MgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUg
YWZmZWN0ZWQuCi0gKiAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgcHJvY2VzcyBtb2RlbCwgYW5kIGl0
IHNob3VsZCBzdWZmaWNlIGZvciBtb3N0IGNhc2VzLgorICogQFdFQktJVF9QUk9DRVNTX01PREVM
X1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzogRGVwcmVjYXRlZCAyLjI2LgogICogQFdFQktJVF9Q
Uk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6IFVzZSBvbmUgcHJvY2Vz
cwogICogICBmb3IgZWFjaCAjV2ViS2l0V2ViVmlldywgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9y
IHNvbWUgb2YgdGhlbSB0bwogICogICBzaGFyZSBhIHByb2Nlc3MgaW4gY2VydGFpbiBzaXR1YXRp
b25zLiBUaGUgbWFpbiBhZHZhbnRhZ2UKQEAgLTE5MywxMSArMTg5LDExIEBAIHdlYmtpdF93ZWJf
Y29udGV4dF9zZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4
dAogV0VCS0lUX0FQSSBXZWJLaXRDYWNoZU1vZGVsCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Nh
Y2hlX21vZGVsICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAg
ICpjb250ZXh0KTsKIAotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0ICAgICAgKFdlYktp
dFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGltaXQpOwogCi1XRUJLSVRfQVBJIGd1aW50CitXRUJLSVRfREVQUkVDQVRFRCBndWlu
dAogd2Via2l0X3dlYl9jb250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9p
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcy
NWNkMzI1MGJkLi4wMzI2ZmQ1MWFmNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTAzICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtdIERl
cHJlY2F0ZSBub25mdW5jdGlvbmFsIHByb2Nlc3MgbGltaXQgQVBJcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNzQ5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvbWFpbi5j
OgorICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RNdWx0aXByb2Nlc3MuY3BwOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAg
KHRlc3RXZWJQcm9jZXNzTGltaXQpOiBEZWxldGVkLgorCiAyMDE5LTA4LTMwICBBZHJpYW4gUGVy
ZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBO
ZXcgQVBJIHRvIHJlbW92ZSBhIGZpbHRlciBmcm9tIGFuIHVzZXIgY29udGVudCBtYW5hZ2VyIGdp
dmVuIGl0cyBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFp
bi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwppbmRleCBlYzY0ODA3YzAyMy4uODNj
ZDI5MzQ3N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpAQCAtNTUyLDEwICs1NTIsNiBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICB3ZWJraXRfbmV0d29ya19wcm94eV9z
ZXR0aW5nc19mcmVlKHdlYmtpdFByb3h5U2V0dGluZ3MpOwogICAgIH0KIAotICAgIGNvbnN0IGdj
aGFyICpzaW5nbGVwcm9jZXNzID0gZ19nZXRlbnYoIk1JTklCUk9XU0VSX1NJTkdMRVBST0NFU1Mi
KTsKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwod2ViQ29udGV4dCwg
KHNpbmdsZXByb2Nlc3MgJiYgKnNpbmdsZXByb2Nlc3MpID8KLSAgICAgICAgV0VCS0lUX1BST0NF
U1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTIDogV0VCS0lUX1BST0NFU1NfTU9ERUxf
TVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7Ci0KICAgICAvLyBFbmFibGUgdGhlIGZhdmlj
b24gZGF0YWJhc2UsIGJ5IHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQgZGlyZWN0b3J5LgogICAgIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfZmF2aWNvbl9kYXRhYmFzZV9kaXJlY3Rvcnkod2ViQ29udGV4
dCwgTlVMTCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcAppbmRleCA5YjVlNmI2MmQxMC4uMDQ4ODlhMDlk
OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
TXVsdGlwcm9jZXNzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdE11bHRpcHJvY2Vzcy5jcHAKQEAgLTI0OCwzNCArMjQ4LDEwIEBAIHN0YXRpYyB2b2lk
IHRlc3RNdWx0aXByb2Nlc3NXZWJWaWV3Q3JlYXRlUmVhZHlDbG9zZShVSUNsaWVudE11bHRpcHJv
Y2Vzc1Rlc3QqIHRlCiAgICAgZ19hc3NlcnRfY21wdWludCh0ZXN0LT5tX2luaXRpYWxpemVXZWJF
eHRlbnNpb25zU2lnbmFsQ291bnQsID09LCAxKTsKIH0KIAotc3RhdGljIHZvaWQgdGVzdFdlYlBy
b2Nlc3NMaW1pdChNdWx0aXByb2Nlc3NUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQotewotICAg
IGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3Vu
dF9saW1pdCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpLCA9PSwgMCk7Ci0KLSAgICB3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0KHRlc3QtPm1fd2ViQ29udGV4
dC5nZXQoKSwgMSk7Ci0gICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0
X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0KHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSksID09LCAx
KTsKLQotICAgIC8vIENyZWF0ZSB0d28gd2ViIHZpZXdzIGJ1dCB0aGVyZSBzaG91bGQgYmUgb25s
eSBvbmUgd2ViIHByb2Nlc3MuCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVZpZXdz
OyBpKyspIHsKLSAgICAgICAgdGVzdC0+bG9hZFdlYlZpZXdBbmRXYWl0VW50aWxMb2FkZWQoaSk7
Ci0gICAgICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0lTX1dFQl9WSUVXKHRlc3QtPm1fd2ViVmll
d3NbaV0uZ2V0KCkpKTsKLSAgICB9Ci0KLSAgICBnX2Fzc2VydF9jbXB1aW50KHRlc3QtPm1faW5p
dGlhbGl6ZVdlYkV4dGVuc2lvbnNTaWduYWxDb3VudCwgPT0sIDEpOwotfQotCiB2b2lkIGJlZm9y
ZUFsbCgpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCBkZWZhdWx0IHNldHRpbmcgaXMgdGhlIG9uZSBz
dGF0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93
ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1
bHQoKSksCi0gICAgICAgID09LCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZ
X1BST0NFU1MpOwotCi0gICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKHdl
YmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgpLAotICAgICAgICBXRUJLSVRfUFJPQ0VTU19N
T0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsKLQotICAgIC8vIENoZWNrIHRoYXQg
dGhlIGdldHRlciByZXR1cm5zIHRoZSBuZXdseS1zZXQgdmFsdWUKLSAgICBnX2Fzc2VydF9jbXB1
aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbCh3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X2RlZmF1bHQoKSksCi0gICAgICAgID09LCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxU
SVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93
ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1
bHQoKSksID09LCBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VT
U0VTKTsKIAogICAgIGJ1cyA9IG5ldyBXZWJLaXRUZXN0QnVzKCk7CiAgICAgaWYgKCFidXMtPnJ1
bigpKQpAQCAtMjgzLDcgKzI1OSw2IEBAIHZvaWQgYmVmb3JlQWxsKCkKIAogICAgIE11bHRpcHJv
Y2Vzc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJwcm9jZXNzLXBlci13ZWItdmlldyIs
IHRlc3RQcm9jZXNzUGVyV2ViVmlldyk7CiAgICAgVUlDbGllbnRNdWx0aXByb2Nlc3NUZXN0Ojph
ZGQoIldlYktpdFdlYlZpZXciLCAibXVsdGlwcm9jZXNzLWNyZWF0ZS1yZWFkeS1jbG9zZSIsIHRl
c3RNdWx0aXByb2Nlc3NXZWJWaWV3Q3JlYXRlUmVhZHlDbG9zZSk7Ci0gICAgTXVsdGlwcm9jZXNz
VGVzdDo6YWRkKCJXZWJLaXRXZWJDb250ZXh0IiwgIndlYi1wcm9jZXNzLWxpbWl0IiwgdGVzdFdl
YlByb2Nlc3NMaW1pdCk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377876</attachid>
            <date>2019-09-03 02:14:21 -0700</date>
            <delta_ts>2019-09-03 02:47:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-process-limit-deprecated.diff</filename>
            <type>text/plain</type>
            <size>13836</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMjBiNWQ4YmRiMDIuLmMwNTA3NDYzYzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDE5LTA5LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXVtHVEtdIERlcHJlY2F0ZSBub25mdW5jdGlvbmFsIHByb2Nl
c3MgbGltaXQgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzNzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAg
ICh3ZWJraXRXZWJDb250ZXh0Q29uc3RydWN0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X3NldF9wcm9jZXNzX21vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRf
cHJvY2Vzc19tb2RlbCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9j
ZXNzX2NvdW50X2xpbWl0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3By
b2Nlc3NfY291bnRfbGltaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0
Lmg6CisKIDIwMTktMDktMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZCBhbiBlbnYgdmFyIHRvIGZvcmNlIHNpbmds
ZSBwcm9jZXNzIG1vZGVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGJmMzAxZWRmZTBiLi5hZTllNjEzODNmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Q29udGV4dC5jcHAKQEAgLTE3Niw3ICsxNzYsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRQ
cml2YXRlIHsKICAgICBDU3RyaW5nIGZhdmljb25EYXRhYmFzZURpcmVjdG9yeTsKICAgICBXZWJL
aXRUTFNFcnJvcnNQb2xpY3kgdGxzRXJyb3JzUG9saWN5OwogICAgIFdlYktpdFByb2Nlc3NNb2Rl
bCBwcm9jZXNzTW9kZWw7Ci0gICAgdW5zaWduZWQgcHJvY2Vzc0NvdW50TGltaXQ7CiAKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBXZWJLaXRXZWJWaWV3Kj4gd2ViVmlld3M7CiAgICAgdW5zaWduZWQg
ZXBoZW1lcmFsUGFnZUNvdW50OwpAQCAtMzYyLDYgKzM2MSw4IEBAIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIHByaXYtPnRsc0Vycm9yc1BvbGljeSA9IFdFQktJVF9UTFNf
RVJST1JTX1BPTElDWV9GQUlMOwogICAgIHByaXYtPnByb2Nlc3NQb29sLT5zZXRJZ25vcmVUTFNF
cnJvcnMoZmFsc2UpOwogCisgICAgcHJpdi0+cHJvY2Vzc01vZGVsID0gV0VCS0lUX1BST0NFU1Nf
TU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKKwogI2lmIEVOQUJMRShNRU1PUllf
U0FNUExFUikKICAgICBpZiAoZ2V0ZW52KCJXRUJLSVRfU0FNUExFX01FTU9SWSIpKQogICAgICAg
ICBwcml2LT5wcm9jZXNzUG9vbC0+c3RhcnRNZW1vcnlTYW1wbGVyKDApOwpAQCAtMTUyOSwxNCAr
MTUzMCw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9m
b3JfaG9zdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0CiAgKiBAcHJvY2Vzc19tb2RlbDogYSAj
V2ViS2l0UHJvY2Vzc01vZGVsCiAgKgogICogU3BlY2lmaWVzIGEgcHJvY2VzcyBtb2RlbCBmb3Ig
V2ViVmlld3MsIHdoaWNoIFdlYktpdCB3aWxsIHVzZSB0bwotICogZGV0ZXJtaW5lIGhvdyBhdXhp
bGlhcnkgcHJvY2Vzc2VzIGFyZSBoYW5kbGVkLiBUaGUgZGVmYXVsdCBzZXR0aW5nCi0gKiAoJVdF
QktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUykgaXMgc3VpdGFibGUg
Zm9yIG1vc3QKLSAqIGFwcGxpY2F0aW9ucyB3aGljaCBlbWJlZCBhIHNtYWxsIGFtb3VudCBvZiBX
ZWJWaWV3cywgb3IgYXJlIHVzZWQgdG8KLSAqIGRpc3BsYXkgZG9jdW1lbnRzIHdoaWNoIGFyZSBj
b25zaWRlcmVkIHNhZmUg4oCUIGxpa2UgbG9jYWwgZmlsZXMuCi0gKgotICogQXBwbGljYXRpb25z
IHdoaWNoIG1heSBwb3RlbnRpYWxseSB1c2UgYSBsYXJnZSBhbW91bnQgb2YgV2ViVmlld3MKLSAq
IOKAlGZvciBleGFtcGxlIGEgbXVsdGktdGFiYmVkIHdlYiBicm93c2Vy4oCUIG1heSB3YW50IHRv
IHVzZQotICogJVdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNT
RVMsIHdoaWNoIHdpbGwgdXNlCisgKiBkZXRlcm1pbmUgaG93IGF1eGlsaWFyeSBwcm9jZXNzZXMg
YXJlIGhhbmRsZWQuCisgKgorICogJVdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09O
REFSWV9QUk9DRVNTRVMgd2lsbCB1c2UKICAqIG9uZSBwcm9jZXNzIHBlciB2aWV3IG1vc3Qgb2Yg
dGhlIHRpbWUsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciB3ZWIKICAqIHZpZXdzIHRvIHNoYXJl
IGEgcHJvY2VzcyB3aGVuIG5lZWRlZCAoZm9yIGV4YW1wbGUgd2hlbiBkaWZmZXJlbnQKICAqIHZp
ZXdzIGludGVyYWN0IHdpdGggZWFjaCBvdGhlcikuIFVzaW5nIHRoaXMgbW9kZWwsIHdoZW4gYSBw
cm9jZXNzCkBAIC0xNTQ0LDYgKzE1NDAsOSBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9hbGxv
d190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dAogICog
dGhlIHJlc3Qgb2YgdGhlIFdlYlZpZXdzIGluIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHN0aWxsIGZ1
bmN0aW9uCiAgKiBub3JtYWxseS4KICAqCisgKiAlV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVE
X1NFQ09OREFSWV9QUk9DRVNTIGlzIGRlcHJlY2F0ZWQgc2luY2UgMi4yNiwKKyAqIHVzaW5nIGl0
IGhhcyBubyBlZmZlY3QgZm9yIHNlY3VyaXR5IHJlYXNvbnMuCisgKgogICogVGhpcyBtZXRob2Qg
KiptdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IHdlYiBwcm9jZXNzIGhhcyBiZWVuIGNyZWF0ZWQq
KiwKICAqIGFzIGVhcmx5IGFzIHBvc3NpYmxlIGluIHlvdXIgYXBwbGljYXRpb24uIENhbGxpbmcg
aXQgbGF0ZXIgd2lsbCBtYWtlCiAgKiB5b3VyIGFwcGxpY2F0aW9uIGNyYXNoLgpAQCAtMTU1NCw2
ICsxNTUzLDExIEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFByb2NlCiB7CiAgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogCisgICAgaWYgKHByb2Nlc3NN
b2RlbCA9PSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MpIHsK
KyAgICAgICAgZ193YXJuaW5nKCJXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZ
X1BST0NFU1MgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdCIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgaWYgKHByb2Nlc3NNb2RlbCA9PSBjb250ZXh0LT5wcml2LT5wcm9j
ZXNzTW9kZWwpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTU3Myw3ICsxNTc3LDcgQEAgdm9pZCB3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29u
dGV4dCwgV2ViS2l0UHJvY2UKICAqLwogV2ViS2l0UHJvY2Vzc01vZGVsIHdlYmtpdF93ZWJfY29u
dGV4dF9nZXRfcHJvY2Vzc19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogewotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSwgV0VC
S0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTKTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCksIFdFQktJVF9QUk9D
RVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVMpOwogCiAgICAgcmV0dXJuIGNv
bnRleHQtPnByaXYtPnByb2Nlc3NNb2RlbDsKIH0KQEAgLTE1ODYsMjAgKzE1OTAsMTcgQEAgV2Vi
S2l0UHJvY2Vzc01vZGVsIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbChXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXgKICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdlYiBw
cm9jZXNzZXMgdGhhdCBjYW4gYmUgY3JlYXRlZCBhdCB0aGUgc2FtZSB0aW1lIGZvciB0aGUgQGNv
bnRleHQuCiAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwIGFuZCBtZWFucyBubyBsaW1pdC4KICAq
Ci0gKiBUaGlzIG1ldGhvZCAqKm11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2ViIHByb2Nlc3Mg
aGFzIGJlZW4gY3JlYXRlZCoqLAotICogYXMgZWFybHkgYXMgcG9zc2libGUgaW4geW91ciBhcHBs
aWNhdGlvbi4gQ2FsbGluZyBpdCBsYXRlciB3aWxsIG1ha2UKLSAqIHlvdXIgYXBwbGljYXRpb24g
Y3Jhc2guCisgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdyBkZXByZWNhdGVkIGFuZCBkb2VzIG5vdGhp
bmcgZm9yIHNlY3VyaXR5IHJlYXNvbnMuCiAgKgogICogU2luY2U6IDIuMTAKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjI2CiAgKi8KIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vz
c19jb3VudF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBndWludCBsaW1pdCkKIHsK
ICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAK
LSAgICBpZiAoY29udGV4dC0+cHJpdi0+cHJvY2Vzc0NvdW50TGltaXQgPT0gbGltaXQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvbnRleHQtPnByaXYtPnByb2Nlc3NDb3VudExpbWl0ID0gbGlt
aXQ7CisgICAgZ193YXJuaW5nKCJ3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2Nv
dW50X2xpbWl0IGlzIGRlcHJlY2F0ZWQgYW5kIGRvZXMgbm90aGluZy4gTGltaXRpbmcgdGhlIG51
bWJlciBvZiB3ZWIgcHJvY2Vzc2VzIGlzIG5vIGxvbmdlciBwb3NzaWJsZSBmb3Igc2VjdXJpdHkg
cmVhc29ucyIpOwogfQogCiAvKioKQEAgLTE2MDgsMTUgKzE2MDksMTkgQEAgdm9pZCB3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0KFdlYktpdFdlYkNvbnRleHQq
IGNvbnRleHQsIGcKICAqCiAgKiBHZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3ZWIgcHJvY2Vz
c2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgYXQgdGhlIHNhbWUgdGltZSBmb3IgdGhlIEBjb250ZXh0
LgogICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgbm93IGRlcHJlY2F0ZWQgYW5kIGFsd2F5cyByZXR1
cm5zIDAgKG5vIGxpbWl0KS4gU2VlIGFsc28gd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJv
Y2Vzc19jb3VudF9saW1pdCgpLgorICoKICAqIFJldHVybnM6IHRoZSBtYXhpbXVtIGxpbWl0IG9m
IHdlYiBwcm9jZXNzZXMsIG9yIDAgaWYgdGhlcmUgaXNuJ3QgYSBsaW1pdC4KICAqCiAgKiBTaW5j
ZTogMi4xMAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjYKICAqLwogZ3VpbnQgd2Via2l0X3dlYl9j
b250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChj
b250ZXh0KSwgMCk7CiAKLSAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+cHJvY2Vzc0NvdW50TGlt
aXQ7CisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGFkZE9yaWdpblRvTWFwKFdlYktp
dFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIEhhc2hNYXA8U3RyaW5nLCBib29sPiogbWFwLCBib29s
IGFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5oCmluZGV4IDgyYThkODI4ZGZhLi45NWNlNWE1ZjRmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTY3
LDExICs2Nyw3IEBAIHR5cGVkZWYgZW51bSB7CiAKIC8qKgogICogV2ViS2l0UHJvY2Vzc01vZGVs
OgotICogQFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzogVXNl
IGEgc2luZ2xlIHByb2Nlc3MgdG8KLSAqICAgcGVyZm9ybSBjb250ZW50IHJlbmRlcmluZy4gVGhl
IHByb2Nlc3MgaXMgc2hhcmVkIGFtb25nIGFsbCB0aGUKLSAqICAgI1dlYktpdFdlYlZpZXcgaW5z
dGFuY2VzIGNyZWF0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uOiBpZiB0aGUgcHJvY2VzcwotICogICBo
YW5ncyBvciBjcmFzaGVzIGFsbCB0aGUgd2ViIHZpZXdzIGluIHRoZSBhcHBsaWNhdGlvbiB3aWxs
IGJlIGFmZmVjdGVkLgotICogICBUaGlzIGlzIHRoZSBkZWZhdWx0IHByb2Nlc3MgbW9kZWwsIGFu
ZCBpdCBzaG91bGQgc3VmZmljZSBmb3IgbW9zdCBjYXNlcy4KKyAqIEBXRUJLSVRfUFJPQ0VTU19N
T0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6IERlcHJlY2F0ZWQgMi4yNi4KICAqIEBXRUJL
SVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOiBVc2Ugb25lIHBy
b2Nlc3MKICAqICAgZm9yIGVhY2ggI1dlYktpdFdlYlZpZXcsIHdoaWxlIHN0aWxsIGFsbG93aW5n
IGZvciBzb21lIG9mIHRoZW0gdG8KICAqICAgc2hhcmUgYSBwcm9jZXNzIGluIGNlcnRhaW4gc2l0
dWF0aW9ucy4gVGhlIG1haW4gYWR2YW50YWdlCkBAIC0xOTMsMTEgKzE4OSwxMSBAQCB3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNv
bnRleHQKIFdFQktJVF9BUEkgV2ViS2l0Q2FjaGVNb2RlbAogd2Via2l0X3dlYl9jb250ZXh0X2dl
dF9jYWNoZV9tb2RlbCAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCk7CiAKLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpbWl0KTsKIAotV0VCS0lUX0FQSSBndWludAorV0VCS0lUX0RFUFJFQ0FURUQg
Z3VpbnQKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nlc3NfY291bnRfbGltaXQgICAg
ICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJ
IHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJD
b250ZXh0LmgKaW5kZXggYTMyNjgwZmE4MzAuLmRlYjg4NWMxODVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYkNvbnRleHQuaApAQCAtNjcsMTEg
KzY3LDcgQEAgdHlwZWRlZiBlbnVtIHsKIAogLyoqCiAgKiBXZWJLaXRQcm9jZXNzTW9kZWw6Ci0g
KiBAV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOiBVc2UgYSBz
aW5nbGUgcHJvY2VzcyB0bwotICogICBwZXJmb3JtIGNvbnRlbnQgcmVuZGVyaW5nLiBUaGUgcHJv
Y2VzcyBpcyBzaGFyZWQgYW1vbmcgYWxsIHRoZQotICogICAjV2ViS2l0V2ViVmlldyBpbnN0YW5j
ZXMgY3JlYXRlZCBieSB0aGUgYXBwbGljYXRpb246IGlmIHRoZSBwcm9jZXNzCi0gKiAgIGhhbmdz
IG9yIGNyYXNoZXMgYWxsIHRoZSB3ZWIgdmlld3MgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUg
YWZmZWN0ZWQuCi0gKiAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgcHJvY2VzcyBtb2RlbCwgYW5kIGl0
IHNob3VsZCBzdWZmaWNlIGZvciBtb3N0IGNhc2VzLgorICogQFdFQktJVF9QUk9DRVNTX01PREVM
X1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzogRGVwcmVjYXRlZCAyLjI2LgogICogQFdFQktJVF9Q
Uk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6IFVzZSBvbmUgcHJvY2Vz
cwogICogICBmb3IgZWFjaCAjV2ViS2l0V2ViVmlldywgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9y
IHNvbWUgb2YgdGhlbSB0bwogICogICBzaGFyZSBhIHByb2Nlc3MgaW4gY2VydGFpbiBzaXR1YXRp
b25zLiBUaGUgbWFpbiBhZHZhbnRhZ2UKQEAgLTE5MywxMSArMTg5LDExIEBAIHdlYmtpdF93ZWJf
Y29udGV4dF9zZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4
dAogV0VCS0lUX0FQSSBXZWJLaXRDYWNoZU1vZGVsCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Nh
Y2hlX21vZGVsICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAg
ICpjb250ZXh0KTsKIAotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9wcm9jZXNzX2NvdW50X2xpbWl0ICAgICAgKFdlYktp
dFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGltaXQpOwogCi1XRUJLSVRfQVBJIGd1aW50CitXRUJLSVRfREVQUkVDQVRFRCBndWlu
dAogd2Via2l0X3dlYl9jb250ZXh0X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9p
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcy
NWNkMzI1MGJkLi4wMzI2ZmQ1MWFmNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTAzICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtdIERl
cHJlY2F0ZSBub25mdW5jdGlvbmFsIHByb2Nlc3MgbGltaXQgQVBJcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNzQ5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvbWFpbi5j
OgorICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RNdWx0aXByb2Nlc3MuY3BwOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAg
KHRlc3RXZWJQcm9jZXNzTGltaXQpOiBEZWxldGVkLgorCiAyMDE5LTA4LTMwICBBZHJpYW4gUGVy
ZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBO
ZXcgQVBJIHRvIHJlbW92ZSBhIGZpbHRlciBmcm9tIGFuIHVzZXIgY29udGVudCBtYW5hZ2VyIGdp
dmVuIGl0cyBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFp
bi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwppbmRleCBlYzY0ODA3YzAyMy4uODNj
ZDI5MzQ3N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpAQCAtNTUyLDEwICs1NTIsNiBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICB3ZWJraXRfbmV0d29ya19wcm94eV9z
ZXR0aW5nc19mcmVlKHdlYmtpdFByb3h5U2V0dGluZ3MpOwogICAgIH0KIAotICAgIGNvbnN0IGdj
aGFyICpzaW5nbGVwcm9jZXNzID0gZ19nZXRlbnYoIk1JTklCUk9XU0VSX1NJTkdMRVBST0NFU1Mi
KTsKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwod2ViQ29udGV4dCwg
KHNpbmdsZXByb2Nlc3MgJiYgKnNpbmdsZXByb2Nlc3MpID8KLSAgICAgICAgV0VCS0lUX1BST0NF
U1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTIDogV0VCS0lUX1BST0NFU1NfTU9ERUxf
TVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7Ci0KICAgICAvLyBFbmFibGUgdGhlIGZhdmlj
b24gZGF0YWJhc2UsIGJ5IHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQgZGlyZWN0b3J5LgogICAgIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfZmF2aWNvbl9kYXRhYmFzZV9kaXJlY3Rvcnkod2ViQ29udGV4
dCwgTlVMTCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcAppbmRleCA5YjVlNmI2MmQxMC4uYjMzN2Y0ZGJm
N2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
TXVsdGlwcm9jZXNzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdE11bHRpcHJvY2Vzcy5jcHAKQEAgLTYxLDExICs2MSwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fd2ViVmlld3NbaW5kZXhdID0gVGVzdDo6YWRvcHRWaWV3KFRlc3Q6OmNyZWF0ZVdlYlZp
ZXcobV93ZWJDb250ZXh0LmdldCgpKSk7CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdo
ZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QobV93ZWJWaWV3c1tpbmRleF0uZ2V0KCkpKTsKIAotICAg
ICAgICBtX3dlYlZpZXdCdXNOYW1lc1tpbmRleF0gPSBHVW5pcXVlUHRyPGNoYXI+KGdfc3RyZHVw
X3ByaW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1IiwgVGVzdDo6c193ZWJF
eHRlbnNpb25JRCkpOwotCiAgICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWwobV93ZWJW
aWV3c1tpbmRleF0uZ2V0KCksICI8aHRtbD48L2h0bWw+IiwgbnVsbHB0cik7CiAgICAgICAgIGdf
c2lnbmFsX2Nvbm5lY3QobV93ZWJWaWV3c1tpbmRleF0uZ2V0KCksICJsb2FkLWNoYW5nZWQiLCBH
X0NBTExCQUNLKGxvYWRDaGFuZ2VkKSwgdGhpcyk7CiAgICAgICAgIGdfbWFpbl9sb29wX3J1biht
X21haW5Mb29wKTsKKworICAgICAgICBtX3dlYlZpZXdCdXNOYW1lc1tpbmRleF0gPSBHVW5pcXVl
UHRyPGNoYXI+KGdfc3RyZHVwX3ByaW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVz
dCV1IiwgVGVzdDo6c193ZWJFeHRlbnNpb25JRCkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIHdl
YlByb2Nlc3NQaWQodW5zaWduZWQgaW5kZXgpCkBAIC0yNDgsMzQgKzI0OCwxMCBAQCBzdGF0aWMg
dm9pZCB0ZXN0TXVsdGlwcm9jZXNzV2ViVmlld0NyZWF0ZVJlYWR5Q2xvc2UoVUlDbGllbnRNdWx0
aXByb2Nlc3NUZXN0KiB0ZQogICAgIGdfYXNzZXJ0X2NtcHVpbnQodGVzdC0+bV9pbml0aWFsaXpl
V2ViRXh0ZW5zaW9uc1NpZ25hbENvdW50LCA9PSwgMSk7CiB9CiAKLXN0YXRpYyB2b2lkIHRlc3RX
ZWJQcm9jZXNzTGltaXQoTXVsdGlwcm9jZXNzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKLXsK
LSAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2ViX3Byb2Nlc3Nf
Y291bnRfbGltaXQodGVzdC0+bV93ZWJDb250ZXh0LmdldCgpKSwgPT0sIDApOwotCi0gICAgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCh0ZXN0LT5tX3dlYkNv
bnRleHQuZ2V0KCksIDEpOwotICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0
X2dldF93ZWJfcHJvY2Vzc19jb3VudF9saW1pdCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpLCA9
PSwgMSk7Ci0KLSAgICAvLyBDcmVhdGUgdHdvIHdlYiB2aWV3cyBidXQgdGhlcmUgc2hvdWxkIGJl
IG9ubHkgb25lIHdlYiBwcm9jZXNzLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1W
aWV3czsgaSsrKSB7Ci0gICAgICAgIHRlc3QtPmxvYWRXZWJWaWV3QW5kV2FpdFVudGlsTG9hZGVk
KGkpOwotICAgICAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19XRUJfVklFVyh0ZXN0LT5tX3dl
YlZpZXdzW2ldLmdldCgpKSk7Ci0gICAgfQotCi0gICAgZ19hc3NlcnRfY21wdWludCh0ZXN0LT5t
X2luaXRpYWxpemVXZWJFeHRlbnNpb25zU2lnbmFsQ291bnQsID09LCAxKTsKLX0KLQogdm9pZCBi
ZWZvcmVBbGwoKQogewogICAgIC8vIENoZWNrIHRoYXQgZGVmYXVsdCBzZXR0aW5nIGlzIHRoZSBv
bmUgc3RhdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gICAgZ19hc3NlcnRfY21wdWludCh3ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwod2Via2l0X3dlYl9jb250ZXh0X2dldF9k
ZWZhdWx0KCkpLAotICAgICAgICA9PSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09O
REFSWV9QUk9DRVNTKTsKLQotICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2Rl
bCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKSwKLSAgICAgICAgV0VCS0lUX1BST0NF
U1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7Ci0KLSAgICAvLyBDaGVjayB0
aGF0IHRoZSBnZXR0ZXIgcmV0dXJucyB0aGUgbmV3bHktc2V0IHZhbHVlCi0gICAgZ19hc3NlcnRf
Y21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwod2Via2l0X3dlYl9j
b250ZXh0X2dldF9kZWZhdWx0KCkpLAotICAgICAgICA9PSwgV0VCS0lUX1BST0NFU1NfTU9ERUxf
TVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUyk7CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwod2Via2l0X3dlYl9jb250ZXh0X2dldF9k
ZWZhdWx0KCkpLCA9PSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BS
T0NFU1NFUyk7CiAKICAgICBidXMgPSBuZXcgV2ViS2l0VGVzdEJ1cygpOwogICAgIGlmICghYnVz
LT5ydW4oKSkKQEAgLTI4Myw3ICsyNTksNiBAQCB2b2lkIGJlZm9yZUFsbCgpCiAKICAgICBNdWx0
aXByb2Nlc3NUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAicHJvY2Vzcy1wZXItd2ViLXZp
ZXciLCB0ZXN0UHJvY2Vzc1BlcldlYlZpZXcpOwogICAgIFVJQ2xpZW50TXVsdGlwcm9jZXNzVGVz
dDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIm11bHRpcHJvY2Vzcy1jcmVhdGUtcmVhZHktY2xvc2Ui
LCB0ZXN0TXVsdGlwcm9jZXNzV2ViVmlld0NyZWF0ZVJlYWR5Q2xvc2UpOwotICAgIE11bHRpcHJv
Y2Vzc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJ3ZWItcHJvY2Vzcy1saW1pdCIsIHRl
c3RXZWJQcm9jZXNzTGltaXQpOwogfQogCiB2b2lkIGFmdGVyQWxsKCkK
</data>
<flag name="review"
          id="393560"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>